Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Languages): 👽 add pl-PL language #4064

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion api/constants/languages.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@


languages = ['en-US', 'zh-Hans', 'zh-Hant', 'pt-BR', 'es-ES', 'fr-FR', 'de-DE', 'ja-JP', 'ko-KR', 'ru-RU', 'it-IT', 'uk-UA', 'vi-VN']
languages = ['en-US', 'zh-Hans', 'zh-Hant', 'pt-BR', 'es-ES', 'fr-FR', 'de-DE', 'ja-JP', 'ko-KR', 'ru-RU', 'it-IT', 'uk-UA', 'vi-VN', 'pl-PL']

language_timezone_mapping = {
'en-US': 'America/New_York',
Expand All @@ -16,6 +16,7 @@
'it-IT': 'Europe/Rome',
'uk-UA': 'Europe/Kyiv',
'vi-VN': 'Asia/Ho_Chi_Minh',
'pl-PL': 'Europe/Warsaw'
}


Expand Down
9 changes: 9 additions & 0 deletions web/i18n/language.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export type I18nText = {
'vi-VN': string
'de_DE': string
'zh_Hant': string
'pl-PL': string
}

export const languages = [
Expand Down Expand Up @@ -112,6 +113,12 @@ export const languages = [
example: 'Xin chào, Dify!',
supported: true,
},
{
value: 'pl-PL',
name: 'Polski (Polish)',
example: 'Cześć, Dify!',
supported: true,
},
]

export const LanguagesSupported = languages.filter(item => item.supported).map(item => item.value)
Expand All @@ -133,6 +140,7 @@ export const NOTICE_I18N = {
de_DE: 'Wichtiger Hinweis',
ja_JP: '重要なお知らせ',
ko_KR: '중요 공지',
pl_PL: 'Ważne ogłoszenie',
uk_UA: 'Важливе повідомлення',
vi_VN: 'Thông báo quan trọng',
},
Expand All @@ -145,6 +153,7 @@ export const NOTICE_I18N = {
de_DE: 'Our system will be unavailable from 19:00 to 24:00 UTC on August 28 for an upgrade. For questions, kindly contact our support team (support@dify.ai). We value your patience.',
ja_JP: 'Our system will be unavailable from 19:00 to 24:00 UTC on August 28 for an upgrade. For questions, kindly contact our support team (support@dify.ai). We value your patience.',
ko_KR: 'Our system will be unavailable from 19:00 to 24:00 UTC on August 28 for an upgrade. For questions, kindly contact our support team (support@dify.ai). We value your patience.',
pl_PL: 'Nasz system będzie niedostępny od 19:00 do 24:00 UTC 28 sierpnia w celu aktualizacji. W przypadku pytań prosimy o kontakt z naszym zespołem wsparcia (support@dify.ai). Doceniamy Twoją cierpliwość.',
uk_UA: 'Наша система буде недоступна з 19:00 до 24:00 UTC 28 серпня для оновлення. Якщо у вас виникнуть запитання, будь ласка, зв’яжіться з нашою службою підтримки (support@dify.ai). Дякуємо за терпіння.',
vi_VN: 'Hệ thống của chúng tôi sẽ ngừng hoạt động từ 19:00 đến 24:00 UTC vào ngày 28 tháng 8 để nâng cấp. Nếu có thắc mắc, vui lòng liên hệ với nhóm hỗ trợ của chúng tôi (support@dify.ai). Chúng tôi đánh giá cao sự kiên nhẫn của bạn.',
},
Expand Down
89 changes: 89 additions & 0 deletions web/i18n/pl-PL/app-annotation.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
const translation = {
title: 'Adnotacje',
name: 'Odpowiedź adnotacji',
editBy: 'Odpowiedź edytowana przez {{author}}',
noData: {
title: 'Brak adnotacji',
description:
'Możesz edytować adnotacje podczas debugowania aplikacji lub importować adnotacje tutaj w celu uzyskania wysokiej jakości odpowiedzi.',
},
table: {
header: {
question: 'pytanie',
answer: 'odpowiedź',
createdAt: 'utworzono',
hits: 'trafienia',
actions: 'akcje',
addAnnotation: 'Dodaj adnotację',
bulkImport: 'Masowy import',
bulkExport: 'Masowy eksport',
clearAll: 'Wyczyść wszystkie adnotacje',
},
},
editModal: {
title: 'Edytuj odpowiedź adnotacji',
queryName: 'Zapytanie użytkownika',
answerName: 'Bot opowiadający historie',
yourAnswer: 'Twoja odpowiedź',
answerPlaceholder: 'Wpisz tutaj swoją odpowiedź',
yourQuery: 'Twoje zapytanie',
queryPlaceholder: 'Wpisz tutaj swoje zapytanie',
removeThisCache: 'Usuń tę adnotację',
createdAt: 'Utworzono',
},
addModal: {
title: 'Dodaj odpowiedź adnotacji',
queryName: 'Pytanie',
answerName: 'Odpowiedź',
answerPlaceholder: 'Wpisz tutaj odpowiedź',
queryPlaceholder: 'Wpisz tutaj zapytanie',
createNext: 'Dodaj kolejną odpowiedź adnotacji',
},
batchModal: {
title: 'Masowy import',
csvUploadTitle: 'Przeciągnij i upuść tutaj swój plik CSV, lub ',
browse: 'przeglądaj',
tip: 'Plik CSV musi spełniać następującą strukturę:',
question: 'pytanie',
answer: 'odpowiedź',
contentTitle: 'zawartość fragmentu',
content: 'zawartość',
template: 'Pobierz szablon tutaj',
cancel: 'Anuluj',
run: 'Uruchom batch',
runError: 'Uruchomienie batcha nie powiodło się',
processing: 'Przetwarzanie batcha',
completed: 'Import zakończony',
error: 'Błąd importu',
ok: 'OK',
},
errorMessage: {
answerRequired: 'Odpowiedź jest wymagana',
queryRequired: 'Pytanie jest wymagane',
},
viewModal: {
annotatedResponse: 'Odpowiedź adnotacji',
hitHistory: 'Historia trafień',
hit: 'Trafienie',
hits: 'Trafienia',
noHitHistory: 'Brak historii trafień',
},
hitHistoryTable: {
query: 'Zapytanie',
match: 'Dopasowanie',
response: 'Odpowiedź',
source: 'Źródło',
score: 'Wynik',
time: 'Czas',
},
initSetup: {
title: 'Początkowa konfiguracja odpowiedzi adnotacji',
configTitle: 'Konfiguracja odpowiedzi adnotacji',
confirmBtn: 'Zapisz i włącz',
configConfirmBtn: 'Zapisz',
},
embeddingModelSwitchTip:
'Model wektoryzacji tekstu adnotacji, przełączanie modeli spowoduje ponowne osadzenie, co wiąże się z dodatkowymi kosztami.',
}

export default translation
102 changes: 102 additions & 0 deletions web/i18n/pl-PL/app-api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
const translation = {
apiServer: 'Serwer API',
apiKey: 'Klucz API',
status: 'Status',
disabled: 'Wyłączony',
ok: 'W usłudze',
copy: 'Kopiuj',
copied: 'Skopiowane',
play: 'Graj',
pause: 'Pauza',
playing: 'Gra',
loading: 'Ładowanie',
merMaind: {
rerender: 'Przerób Renderowanie',
},
never: 'Nigdy',
apiKeyModal: {
apiSecretKey: 'Tajny klucz API',
apiSecretKeyTips:
'Aby zapobiec nadużyciom API, chron swój klucz API. Unikaj używania go jako zwykłego tekstu w kodzie front-end. :)',
createNewSecretKey: 'Utwórz nowy tajny klucz',
secretKey: 'Tajny Klucz',
created: 'UTWORZONY',
lastUsed: 'OSTATNIO UŻYWANY',
generateTips: 'Przechowuj ten klucz w bezpiecznym i dostępnym miejscu.',
},
actionMsg: {
deleteConfirmTitle: 'Usunąć ten tajny klucz?',
deleteConfirmTips: 'Tej akcji nie można cofnąć.',
ok: 'OK',
},
completionMode: {
title: 'Zakończenie App API',
info: 'Do generowania tekstu wysokiej jakości, takiego jak artykuły, podsumowania i tłumaczenia, użyj API completion-messages z danymi wejściowymi użytkownika. Generowanie tekstu zależy od parametrów modelu i szablonów promptów ustawionych w Dify Prompt Engineering.',
createCompletionApi: 'Utwórz Wiadomość Zakończenia',
createCompletionApiTip:
'Utwórz Wiadomość Zakończenia, aby obsługiwać tryb pytanie-odpowiedź.',
inputsTips:
'(Opcjonalnie) Podaj pola wejściowe użytkownika jako pary klucz-wartość, odpowiadające zmiennym w Prompt Eng. Klucz to nazwa zmiennej, Wartość to wartość parametru. Jeśli typ pola to Wybierz, przesłana Wartość musi być jednym z predefiniowanych wyborów.',
queryTips: 'Treść tekstu wprowadzanego przez użytkownika.',
blocking:
'Typ blokujący, czekanie na zakończenie wykonania i zwrócenie wyników. (Żądania mogą być przerywane, jeśli proces jest długi)',
streaming:
'zwraca strumieniowo. Implementacja strumieniowego zwrotu na podstawie SSE (Server-Sent Events).',
messageFeedbackApi: 'Informacje zwrotne o wiadomości (lubię)',
messageFeedbackApiTip:
'Oceniaj otrzymane wiadomości w imieniu użytkowników końcowych na podstawie polubień lub niepolubień. Te dane są widoczne na stronie Logi i adnotacje i są używane do przyszłego dostrojenia modelu.',
messageIDTip: 'ID wiadomości',
ratingTip: 'lubię lub nie lubię, null to cofnięcie',
parametersApi: 'Uzyskaj informacje o parametrach aplikacji',
parametersApiTip:
'Pobierz skonfigurowane parametry wejściowe, w tym nazwy zmiennych, nazwy pól, typy i domyślne wartości. Zwykle używane do wyświetlania tych pól w formularzu lub wypełniania domyślnych wartości po załadowaniu klienta.',
},
chatMode: {
title: 'Chat App API',
info: 'Do wszechstronnych aplikacji konwersacyjnych w formacie Q&A, wywołaj API chat-messages, aby rozpocząć dialog. Utrzymuj trwające rozmowy, przekazując zwrócone conversation_id. Parametry odpowiedzi i szablony zależą od ustawień Dify Prompt Eng.',
createChatApi: 'Utwórz wiadomość czatu',
createChatApiTip:
'Utwórz nową wiadomość konwersacji lub kontynuuj istniejący dialog.',
inputsTips:
'(Opcjonalnie) Podaj pola wejściowe użytkownika jako pary klucz-wartość, odpowiadające zmiennym w Prompt Eng. Klucz to nazwa zmiennej, Wartość to wartość parametru. Jeśli typ pola to Wybierz, przesłana Wartość musi być jednym z predefiniowanych wyborów.',
queryTips: 'Treść pytania/wprowadzanej przez użytkownika',
blocking:
'Typ blokujący, czekanie na zakończenie wykonania i zwrócenie wyników. (Żądania mogą być przerywane, jeśli proces jest długi)',
streaming:
'zwraca strumieniowo. Implementacja strumieniowego zwrotu na podstawie SSE (Server-Sent Events).',
conversationIdTip:
'(Opcjonalnie) ID rozmowy: pozostaw puste dla pierwszej rozmowy; przekaż conversation_id z kontekstu, aby kontynuować dialog.',
messageFeedbackApi: 'Informacje zwrotne od użytkownika terminala, lubię',
messageFeedbackApiTip:
'Oceniaj otrzymane wiadomości w imieniu użytkowników końcowych na podstawie polubień lub niepolubień. Te dane są widoczne na stronie Logi i adnotacje i są używane do przyszłego dostrojenia modelu.',
messageIDTip: 'ID wiadomości',
ratingTip: 'lubię lub nie lubię, null to cofnięcie',
chatMsgHistoryApi: 'Pobierz historię wiadomości czatu',
chatMsgHistoryApiTip:
'Pierwsza strona zwraca najnowsze `limit` wiadomości, które są w odwrotnej kolejności.',
chatMsgHistoryConversationIdTip: 'ID rozmowy',
chatMsgHistoryFirstId:
'ID pierwszego rekordu czatu na bieżącej stronie. Domyślnie brak.',
chatMsgHistoryLimit: 'Ile czatów jest zwracanych w jednym żądaniu',
conversationsListApi: 'Pobierz listę rozmów',
conversationsListApiTip:
'Pobiera listę sesji bieżącego użytkownika. Domyślnie zwraca ostatnie 20 sesji.',
conversationsListFirstIdTip:
'ID ostatniego rekordu na bieżącej stronie, domyślnie brak.',
conversationsListLimitTip: 'Ile czatów jest zwracanych w jednym żądaniu',
conversationRenamingApi: 'Zmiana nazwy rozmowy',
conversationRenamingApiTip:
'Zmień nazwy rozmów; nazwa jest wyświetlana w interfejsach klienta wielosesyjnego.',
conversationRenamingNameTip: 'Nowa nazwa',
parametersApi: 'Uzyskaj informacje o parametrach aplikacji',
parametersApiTip:
'Pobierz skonfigurowane parametry wejściowe, w tym nazwy zmiennych, nazwy pól, typy i domyślne wartości. Zwykle używane do wyświetlania tych pól w formularzu lub wypełniania domyślnych wartości po załadowaniu klienta.',
},
develop: {
requestBody: 'Ciało żądania',
pathParams: 'Parametry ścieżki',
query: 'Zapytanie',
},
}

export default translation