diff --git a/frontend/app/locales/pl.json b/frontend/app/locales/pl.json
new file mode 100644
index 00000000..b38cb667
--- /dev/null
+++ b/frontend/app/locales/pl.json
@@ -0,0 +1,170 @@
+{
+ "anonymousLoginForm.length-limit": "Nazwa użytkownika musi mieć co najmniej 3 litery",
+ "anonymousLoginForm.log-in": "Zaloguj się",
+ "anonymousLoginForm.symbol-limit": "Nazwa użytkownika powinna składać się z liter, numerów, podkreślinków lub spacji",
+ "anonymousLoginForm.user-name": "Nazwa użytkownika",
+ "authPanel.anonymous-provider": "Użytkownik anonimowy",
+ "authPanel.disable-comments": "Wyłącz komentarze",
+ "authPanel.disabled-cookies": "Wyłącz zewnętrzne blokowanie cookies w celu logowania lub otwierania w nich komentarzy",
+ "authPanel.enable-comments": "Włącz komentarze",
+ "authPanel.enable-cookies": "Zezwalaj na cookies w celu logowania i komentowania",
+ "authPanel.hide-settings": "Ukryj ustawienia",
+ "authPanel.logged-as": "Jesteś zalogowany jako",
+ "authPanel.login": "Zaloguj:",
+ "authPanel.logout": "Wyloguj?",
+ "authPanel.new-page": "nowa strona",
+ "authPanel.or-provider": "lub",
+ "authPanel.other-provider": "Inny",
+ "authPanel.read-only": "Tylko do odczytu",
+ "authPanel.request-to-delete-data": "Zażądaj usunięcia swoich danych",
+ "authPanel.show-settings": "Pokaż ustawienia",
+ "blockingDuration.day": "Na dzień",
+ "blockingDuration.month": "Na miesiąc",
+ "blockingDuration.permanently": "Na stałe",
+ "blockingDuration.week": "Na tydzień",
+ "comment.block": "Zablokuj",
+ "comment.block-user": "Czy chcesz zablokować {userName} {duration}?",
+ "comment.blocked-user": "Zablokowany",
+ "comment.blocking-period": "Okres zablokowania",
+ "comment.cancel": "Anuluj",
+ "comment.controversy": "Spór: {value}",
+ "comment.copied": "Skopiowano!",
+ "comment.copy": "Skopiuj",
+ "comment.delete": "Usuń",
+ "comment.delete-message": "Czy chcesz usunąć ten komentarz?",
+ "comment.deleted-comment": "Ten komentarz został usunięty",
+ "comment.deleted-user": "Usunięto",
+ "comment.edit": "Edytuj",
+ "comment.expired-time": "Czas przeznaczony na edycję skończył się.",
+ "comment.go-to-parent": "Idź do komentarza nadrzędnego",
+ "comment.hide": "Ukryj",
+ "comment.hide-user-comment": "Czy chcesz ukryć komentarze użytkownika {userName}?",
+ "comment.pin": "Przypnij",
+ "comment.pin-comment": "Czy chcesz przypiąć ten komentarz?",
+ "comment.reply": "Odpowiedz",
+ "comment.time": "{day} o {time}",
+ "comment.toggle-verification": "Włącz/wyłącz veryfikację",
+ "comment.unblock": "Odblokuj",
+ "comment.unblock-user": "Czy chcesz odblokować tego użytkownika?",
+ "comment.unpin": "Odepnij",
+ "comment.unpin-comment": "Czy chcesz odpiąć ten komentarz?",
+ "comment.unverified-user": "Niezweryfikowany użytkownik",
+ "comment.unverify-user": "Czy chcesz cofnąć weryfikację użytkownika {userName}?",
+ "comment.verified-user": "Zweryfikowany użytkownik",
+ "comment.verify-user": "Czy chcesz zweryfikować użytkownika {userName}?",
+ "comment.vote-error": "Błąd głosowania: {voteErrorMessage}",
+ "commentForm.anonymous-uploading-disabled": "Dodawanie zdjęć jest wyłączone dla anonimowych użytkowników. Zaloguj się by mieć możliwość dodawania zdjęć.",
+ "commentForm.exceeded-size": "{fileName} przekracza maksymalny limit {maxImageSize}",
+ "commentForm.input-placeholder": "Twój komentarz tutaj",
+ "commentForm.new-comment": "Nowy komentarz",
+ "commentForm.notice-about-styling": "Stylowanie z Markdown jest wspierane",
+ "commentForm.preview": "Podgląd",
+ "commentForm.reply": "Odpowiedz",
+ "commentForm.save": "Zapisz",
+ "commentForm.send": "Wyślij",
+ "commentForm.subscribe-by": "Subskrybuj przez",
+ "commentForm.subscribe-or": "lub",
+ "commentForm.unauthorized-uploading-disabled": "Dodawanie zdjęć jest wyłączone dla niezalogowanych użytkowników. Zaloguj się by mieć możliwość dodawania zdjęć.",
+ "commentForm.unexpected-error": "Coś poszło nie tak. Spróbuj ponownie później.",
+ "commentForm.upload-file-fail": "{fileName} dodanie pliku nie powiodło się \"{errorMessage}\"",
+ "commentForm.uploading": "Dodawanie pliku...",
+ "commentForm.uploading-file": "dodawanie pliku {fileName}...",
+ "commentSort.sort-by": "Sortuj z",
+ "commentsSort.best": "Najlepsze",
+ "commentsSort.least-controversial": "Najmniej kontrowersyjne",
+ "commentsSort.least-recently-updated": "Ostatnio zaktualizowane",
+ "commentsSort.most-controversial": "Najbardziej kontrowersyjne",
+ "commentsSort.newest": "Najnowsze",
+ "commentsSort.oldest": "Najstarsze",
+ "commentsSort.recently-updated": "Ostatnio aktualizowane",
+ "commentsSort.worst": "Najgorsze",
+ "emailLoginForm.back": "Powrót",
+ "emailLoginForm.confirm": "Potwierdź",
+ "emailLoginForm.email-address": "Adres email",
+ "emailLoginForm.empty-token": "Pole z tokenem nie może być puste",
+ "emailLoginForm.expired-token": "Token wygasł",
+ "emailLoginForm.invalid-email": "Adres powinien być poprawnym adresem email",
+ "emailLoginForm.loading": "Ładuję...",
+ "emailLoginForm.send-verification": "Wyślij weryfikację",
+ "emailLoginForm.token": "Token",
+ "emailLoginForm.user-not-found": "Żaden użytkownik nie został znaleziony",
+ "errors.0": "Coś poszło nie tak. Spróbuj ponownie później.",
+ "errors.1": "Komentarz nie został znaleziony. Odśwież stronę i spróbuj ponownie.",
+ "errors.10": "Jest już za późno żeby edytować ten komentarz.",
+ "errors.11": "Komentarz ma już odpowiedź, edytowanie nie jest możliwe.",
+ "errors.12": "Nie można zapisać rezultatu głosowania. Spróbuj ponownie później.",
+ "errors.13": "Nie możesz zagłosować na swój własny komentarz.",
+ "errors.14": "Już zagłosowałeś na ten komentarz.",
+ "errors.15": "Za dużo głosów na ten komentarz.",
+ "errors.16": "Minimalny wynik osiągnięty dla komentarza.",
+ "errors.17": "Akcja odrzucona. Spróbuj ponownie później.",
+ "errors.18": "Żądany plik nie został znaleziony.",
+ "errors.2": "Nie udało sie sparsować przychodzącego zapytania do struktury danych.",
+ "errors.3": "Nie masz wystarczających uprawnień by wykonać te operację.",
+ "errors.4": "Niepoprawne dane komentarza.",
+ "errors.5": "Komentarz nie może zostać odnaleziony. Odśwież stronę i spróbuj ponownie.",
+ "errors.6": "Strona nie została znaleziona. Odśwież stronę i spróbuj ponownie.",
+ "errors.7": "Użytkownik został zablokowany.",
+ "errors.8": "Użytkownik został zablokowany.",
+ "errors.9": "Edycja komentarza nie powiodła się. Spróbuj ponownie później.",
+ "errors.failed-fetch": "Nie udało się pobrać. Sprawdź swoje połączenie internetowe i spróbuj ponownie później",
+ "errors.forbidden": "Zabronione.",
+ "errors.not-authorized": "Nie jesteś upoważniony.",
+ "errors.to-many-request": "Przekroczyłeś maksymalny limit zapytań.",
+ "errors.unexpected-error": "Coś poszło nie tak.",
+ "root.pinned-comments": "Przypięte komentarze",
+ "root.powered-by": "Powered by Remark42",
+ "root.show-more": "Pokaż więcej",
+ "settings.block": "zablokuj",
+ "settings.block-time": "do {day} o {time}",
+ "settings.block-user": "Czy chcesz zablokować użytkownika {userName}?",
+ "settings.blocked-users-header": "Zablokowani użytkownicy:",
+ "settings.blocked-users-title": "Zablokowani użytkownicy",
+ "settings.hidden-user-header": "Ukryci użytkownicy:",
+ "settings.hidden-users-title": "Ukryci użytkownicy",
+ "settings.hide": "ukryj",
+ "settings.no-blocked-users": "Nie ma obecnie żadnych zablokowanych użytkowników.",
+ "settings.no-hidden-users": "Nie ma obecnie żadnych ukrytych użytkowników.",
+ "settings.permanently": "trwale",
+ "settings.show": "pokaż",
+ "settings.unblock": "odblokuj",
+ "settings.unblock-user": "Czy chcesz odblokować użytkownika {userName}?",
+ "settings.unknown": "nieznany",
+ "subscribeByEmail.back": "Wróć",
+ "subscribeByEmail.close": "Zamknij",
+ "subscribeByEmail.email": "Email",
+ "subscribeByEmail.expired-token": "Wygasły token",
+ "subscribeByEmail.have-been-subscribed": "Subskrybujesz aktualizacje przez email",
+ "subscribeByEmail.have-been-unsubscribed": "Nie subskrybujesz aktualizacji przez email",
+ "subscribeByEmail.only-registered-users": "Dostępne tylko dla zarejestrowanych użytkowników",
+ "subscribeByEmail.submit": "Potwierdź",
+ "subscribeByEmail.subscribe": "Zasubskrybuj",
+ "subscribeByEmail.subscribe-by-email": "Zasubskrybuj używając email",
+ "subscribeByEmail.subscribe-to-replies": "Zasubskrybuj do odpowiedzi",
+ "subscribeByEmail.subscribed": "Subskrybujesz aktualizacje przez email",
+ "subscribeByEmail.token": "Token",
+ "subscribeByEmail.unsubscribe": "Wypisz się z subskrypcji",
+ "subscribeByRSS.button-title": "Zasubskrybuj przez RSS",
+ "subscribeByRSS.replies": "Odpowiedzi",
+ "subscribeByRSS.site": "Strona",
+ "subscribeByRSS.thread": "Wątek",
+ "subscribeByRSS.title": "RSS",
+ "toolbar.attach-image": "Załącz zdjęcie, przeciągnij i upuść lub wklej ze schowka",
+ "toolbar.bold": "Dodaj pogrubienie ",
+ "toolbar.code": "Dodaj kod",
+ "toolbar.header": "Dodaj nagłówek",
+ "toolbar.italic": "Dodaj kursywę ",
+ "toolbar.link": "Dodaj link ",
+ "toolbar.ordered-list": "Dodaj numerowaną listę",
+ "toolbar.quote": "Dodaj cytat",
+ "toolbar.unordered-list": "Dodaj listę punktowaną",
+ "user-info.last-comments": "Ostatnie komentarze {userName}",
+ "user-info.unexpected-error": "Coś poszło nie tak",
+ "vote.anonymous": "Anonimowi użytkownicy nie mają prawa głosu",
+ "vote.deleted": "Nie można głosować na usunięte komentarze",
+ "vote.guest": "Zaloguj się żeby głosować",
+ "vote.only-positive": "Dozwolony tylko wynik pozytywny",
+ "vote.only-post-page": "Głosowanie możliwe tylko na stronie posta",
+ "vote.own-comment": "Nie można głosować na swoje własne komentarze",
+ "vote.readonly": "Nie można głosować na wątki tylko do odczytu"
+}
diff --git a/frontend/app/utils/loadLocale.ts b/frontend/app/utils/loadLocale.ts
index 347982ce..fcdac2c1 100644
--- a/frontend/app/utils/loadLocale.ts
+++ b/frontend/app/utils/loadLocale.ts
@@ -38,6 +38,11 @@ export async function loadLocale(locale: string): Promise
.then(res => res.default)
.catch(() => enMessages);
}
+ if (locale === 'pl') {
+ return import(/* webpackChunkName: "pl" */ '../locales/pl.json')
+ .then(res => res.default)
+ .catch(() => enMessages);
+ }
return enMessages;
}
diff --git a/frontend/tasks/supportedLocales.json b/frontend/tasks/supportedLocales.json
index 045829be..039f2517 100644
--- a/frontend/tasks/supportedLocales.json
+++ b/frontend/tasks/supportedLocales.json
@@ -1 +1 @@
-["en", "ru", "de", "fi", "es", "zh", "tr", "bg"]
+["en", "ru", "de", "fi", "es", "zh", "tr", "bg", "pl"]