diff --git a/constants.py b/constants.py index 4d384552..48a7dc2e 100755 --- a/constants.py +++ b/constants.py @@ -40,7 +40,7 @@ REGISTRATION = True # (bool) # Supported languages for the application -LANGUAGES = ["en", "tr", "es", "de", "zh", "fr", "uk", "ru", "pt", "ja"] # (list) +LANGUAGES = ["en", "tr", "es", "de", "zh", "fr", "uk", "ru", "pt", "ja", "pl"] # (list) ### LOGGER SETTINGS ### diff --git a/templates/tailwindUI/changeLanguage.html.jinja b/templates/tailwindUI/changeLanguage.html.jinja index 116d261c..1315ea0e 100644 --- a/templates/tailwindUI/changeLanguage.html.jinja +++ b/templates/tailwindUI/changeLanguage.html.jinja @@ -22,6 +22,9 @@ 🇪🇸 Español + + 🇵🇱 Polski + 🇫🇷 Français diff --git a/translations/pl.json b/translations/pl.json new file mode 100644 index 00000000..f0060358 --- /dev/null +++ b/translations/pl.json @@ -0,0 +1,320 @@ +{ + "about": { + "title": "O aplikacji", + "version": "Wersja", + "description": "Prosta aplikacja blogowa stworzona za pomocą Flask, SQLite3, WTForms, Passlib, reCAPTCHA, Requests, TailwindCSS, Tabler Icons", + "moreInfo": "Kliknij, aby uzyskać więcej informacji o", + "sourceRepo": "kodzie źródłowym", + "credits": "Stworzone z przez Doğukan Ürker" + }, + "accountSettings": { + "title": "Ustawienia konta", + "username": "zmień nazwę użytkownika", + "password": "zmień hasło", + "delete": "usuń konto", + "language": "zmień język", + "profilePicture": "zmień zdjęcie profilowe" + }, + "adminPanel": { + "title": "Panel administracyjny", + "users": "Użytkownicy", + "posts": "Posty", + "comments": "Komentarze" + }, + "adminPanelComments": { + "title": "Panel administracyjny - Komentarze", + "comments": "Komentarze", + "postID": "ID posta", + "creationTime": "Czas utworzenia", + "creationDate": "Data utworzenia", + "author": "Autor" + }, + "adminPanelUsers": { + "title": "Panel administracyjny - Użytkownicy", + "id": "ID", + "users": "Użytkownicy", + "email": "E-mail", + "joinTime": "Czas dołączenia", + "joinDate": "Data dołączenia", + "role": "Rola", + "points": "Punkty", + "delete": "usuń użytkownika", + "setUser": "ustaw rolę użytkownika na użytkownika", + "setAdmin": "ustaw rolę użytkownika na administratora" + }, + "categories": { + "all": "Wszystkie", + "apps": "Aplikacje", + "art": "Sztuka", + "books": "Książki", + "business": "Biznes", + "code": "Kod", + "education": "Edukacja", + "finance": "Finanse", + "foods": "Jedzenie", + "games": "Gry", + "health": "Zdrowie", + "history": "Historia", + "movies": "Filmy", + "music": "Muzyka", + "nature": "Przyroda", + "science": "Nauka", + "series": "Seriale", + "sports": "Sport", + "technology": "Technologia", + "travel": "Podróże", + "web": "Web", + "other": "Inne" + }, + "changeLanguage": { + "title": "Wybierz język" + }, + "changePassword": { + "title": "Zmień hasło", + "currentPassword": "Aktualne hasło", + "newPassword": "Nowe hasło", + "confirmPassword": "Potwierdź hasło", + "change": "Zmień hasło" + }, + "changeProfilePicture": { + "title": "Zmień zdjęcie profilowe", + "default": "domyślny seed to Twoja nazwa użytkownika", + "info": "kliknij, aby uzyskać więcej informacji o seedach zdjęć profilowych", + "set": "Ustaw zdjęcie profilowe", + "placeholder": "Wprowadź seed dla zdjęcia profilowego" + }, + "changeUserName": { + "title": "Zmień nazwę użytkownika", + "placeholder": "Nowa nazwa użytkownika", + "change": "Zmień nazwę użytkownika" + }, + "createPost": { + "title": "Stwórz post", + "titlePlaceholder": "tytuł posta", + "category": "Wybierz kategorię", + "content": "Treść", + "banner": "Prześlij baner", + "bannerPlaceholder": "baner posta", + "tags": "tagi", + "post": "Opublikuj", + "separate": "(Oddziel tagi przecinkami)" + }, + "csrfError": { + "reason": "Powód", + "description": "Wypełnij ten sam formularz ponownie." + }, + "dashboard": { + "title": "Pulpit", + "titleAdmin": "Panel administracyjny - Posty", + "posts": "Posty", + "comments": "Komentarze", + "tags": "Tagi", + "views": "Wyświetlenia", + "creationTime": "Czas utworzenia", + "creationDate": "Data utworzenia", + "editTime": "Ostatnia edycja", + "editDate": "Data ostatniej edycji", + "author": "Autor", + "category": "Kategoria", + "noPosts": "Ten użytkownik jeszcze nie stworzył żadnych postów.", + "noPost": "Brak postu,", + "create": "stwórz jeden", + "go": "przejdź do postu" + }, + "editPost": { + "title": "Edytuj post", + "titlePlaceholder": "tytuł posta", + "category": "Wybierz kategorię", + "current": "Aktualny baner", + "new": "Nowy baner", + "tags": "tagi", + "separate": "(Oddziel tagi przecinkami)", + "save": "Zapisz zmiany", + "bannerPlaceholder": "baner posta" + }, + "login": { + "title": "Logowanie", + "username": "nazwa użytkownika", + "password": "hasło", + "forgot": "Zapomniałeś hasła?" + }, + "notFound": { + "text": "Nie wiem co to jest", + "sorry": "przepraszam", + "home": "przejdź do strony głównej" + }, + "passwordReset": { + "title": "Resetowanie hasła", + "email": "e-mail", + "username": "nazwa użytkownika", + "send": "Wyślij e-mail z linkiem do resetowania hasła", + "reset": "Zresetuj hasło", + "code": "Wyślij kod", + "codePlaceholder": "Wprowadź kod, który otrzymałeś", + "newPassword": "Nowe hasło", + "confirmPassword": "Potwierdź hasło" + }, + "post": { + "placeholder": "Co myślisz?" + }, + "sortMenu": { + "asc": "Rosnąco", + "desc": "Malejąco", + "create": "Data utworzenia", + "title": "Tytuł", + "views": "Wyświetlenia", + "category": "Kategoria", + "edit": "Data ostatniej edycji" + }, + "search": { + "title": "Szukaj", + "noResults": "Brak wyników", + "users": "Użytkownicy", + "posts": "Posty", + "results": "Wyniki" + }, + "searchBar": { + "title": "Szukaj", + "placeholder": "szukaj" + }, + "signup": { + "title": "Rejestracja", + "username": "nazwa użytkownika", + "email": "e-mail", + "password": "hasło", + "confirm": "potwierdź hasło", + "policy": "Polityka prywatności", + "by": "Rejestrując się, akceptujesz" + }, + "unauthorized": { + "title": "Błąd reCAPTCHA", + "request": "Proszę wysłać formularz ponownie.", + "info": "Weryfikacja reCAPTCHA nie powiodła się." + }, + "user": { + "posts": "Posty", + "comments": "Komentarze", + "points": "Punkty", + "joinDate": "Data dołączenia", + "createDate": "Data utworzenia", + "createTime": "Czas utworzenia", + "dashboard": "pulpit", + "role": "Rola", + "user": "Użytkownik", + "admin": "administrator", + "settings": "ustawienia", + "views": "Wyświetlenia", + "go": "przejdź do postu" + }, + "verifyUser": { + "title": "Weryfikacja konta", + "placeholder": "Wprowadź kod, który otrzymałeś", + "send": "Kliknij, aby wysłać kod weryfikacyjny" + }, + "flash": { + "changePassword": { + "same": "Nowe hasło nie może być takie samo jak stare hasło.", + "match": "Hasła nie pasują do siebie.", + "success": "Hasło zostało zmienione.", + "old": "Stare hasło jest niepoprawne.", + "login": "Musisz się zalogować, aby zmienić hasło." + }, + "changeProfilePicture": { + "success": "Zdjęcie profilowe zostało zmienione." + }, + "changeUserName": { + "same": "To jest już twoja nazwa użytkownika.", + "success": "Nazwa użytkownika została zmieniona.", + "taken": "Ta nazwa użytkownika jest już zajęta.", + "ascii": "Nazwa użytkownika może zawierać tylko znaki ASCII." + }, + "createPost": { + "success": "Otrzymałeś 20 punktów za stworzenie posta.", + "login": "Musisz się zalogować, aby stworzyć posta.", + "empty": "Nie możesz pozostawić tytułu ani treści pustych." + }, + "dashboard": { + "login": "Musisz się zalogować, aby zobaczyć swój pulpit." + }, + "editPost": { + "success": "Post został edytowany.", + "login": "Musisz się zalogować, aby edytować post.", + "empty": "Nie możesz pozostawić tytułu ani treści pustych.", + "author": "Nie możesz edytować postu innej osoby." + }, + "login": { + "success": "Zalogowano pomyślnie.", + "password": "Niepoprawne hasło", + "notFound": "Użytkownik nie został znaleziony" + }, + "logout": { + "success": "Wylogowano pomyślnie." + }, + "passwordReset": { + "success": "Hasło zostało zresetowane. Możesz zalogować się za pomocą nowego hasła.", + "email": "E-mail został wysłany.", + "code": "Kod został wysłany.", + "same": "Nowe hasło nie może być takie samo jak stare hasło.", + "match": "Hasła nie pasują do siebie.", + "notFound": "Użytkownik nie został znaleziony.", + "wrong": "Kod jest niepoprawny." + }, + "delete": { + "user": "Użytkownik został usunięty.", + "post": "Post został usunięty.", + "comment": "Komentarz został usunięty." + }, + "setLanguage": { + "success": "Język został zmieniony." + }, + "post": { + "success": "Otrzymałeś 5 punktów za skomentowanie." + }, + "signup": { + "success": "Rejestracja zakończona sukcesem.", + "ascii": "Nazwa użytkownika może zawierać tylko znaki ASCII.", + "username": "Ta nazwa użytkownika jest już zajęta.", + "email": "Ten e-mail jest już zajęty.", + "password": "Hasła nie pasują do siebie.", + "taken": "Ta nazwa użytkownika i e-mail są już zajęte." + }, + "verifyUser": { + "success": "Twoje konto zostało zweryfikowane.", + "code": "Kod został wysłany.", + "notFound": "Użytkownik nie został znaleziony.", + "wrong": "Kod jest niepoprawny." + }, + "error": { + "wrongCall": "Dokonano błędnego wywołania komunikatu flash po stronie serwera." + } + }, + "roles": { + "user": "Użytkownik", + "admin": "Administrator" + }, + "privacyPolicy": { + "title": "Polityka prywatności", + "intro": "Niniejsza Polityka prywatności opisuje, w jaki sposób Flask Blog Doğukana Ürkera ('my', 'nas', lub 'nasze') gromadzi, wykorzystuje i ujawnia Twoje informacje podczas korzystania z naszej aplikacji mobilnej (zwana dalej 'Aplikacją').", + "information": "Gromadzenie i wykorzystanie informacji", + "informationText": "Kiedy korzystasz z naszej Aplikacji, zbieramy i rejestrujemy różne rodzaje danych o aktywności użytkowników, w tym między innymi:", + "informationUser": "Dane logowania użytkownika: Zbieramy informacje związane z aktywnością logowania użytkownika w celach uwierzytelniania i bezpieczeństwa.", + "informationPost": "Dane o postach i komentarzach: Zbieramy informacje na temat postów i komentarzy zamieszczonych w Aplikacji w celu zapewnienia funkcjonalności i zaangażowania użytkowników.", + "informationGeneral": "Ogólna aktywność użytkowników: Rejestrujemy różne aktywności użytkowników w Aplikacji w celu poprawy doświadczeń użytkowników, rozwiązywania problemów technicznych i analizowania wzorców użytkowania.", + "cookies": "Ciasteczka", + "cookiesText": "Nasza Aplikacja używa ciasteczek, aby poprawić doświadczenia użytkownika. Ciasteczka, które używamy, obejmują:", + "cookiesTheme": "Ciasteczko z motywem UI: Przechowujemy preferencje dotyczące motywu UI użytkownika, aby spersonalizować wygląd Aplikacji.", + "cookiesLanguage": "Domyślny język przeglądarki: Przechowujemy preferencje dotyczące domyślnego języka przeglądarki użytkownika, aby dostarczyć zlokalizowane treści.", + "serviceProviders": "Dostawcy usług", + "serviceProvidersText": "Możemy zatrudniać firmy zewnętrzne lub osoby, aby ułatwiły działanie naszej Aplikacji lub świadczyły usługi w naszym imieniu. Ci zewnętrzni dostawcy mogą mieć dostęp do Twoich informacji, aby wykonywać zadania takie jak analizy, hosting i wsparcie techniczne. Jednakże są zobowiązani do niewykorzystywania tych informacji do innych celów ani do ujawniania ich osobom trzecim.", + "otherLinks": "Linki do innych stron", + "otherLinksText": "Nasza Aplikacja może zawierać linki do stron zewnętrznych, w tym do X i osobistej strony Doğukana Ürkera. Nie ponosimy odpowiedzialności za treści ani praktyki prywatności takich stron zewnętrznych. Zachęcamy użytkowników do zapoznania się z politykami prywatności tych stron przed podaniem jakichkolwiek informacji osobistych.", + "security": "Bezpieczeństwo", + "securityText": "Podejmujemy rozsądne środki ostrożności, aby chronić informacje zbierane za pośrednictwem naszej Aplikacji. Należy jednak pamiętać, że żadna metoda transmisji przez internet ani metoda przechowywania elektronicznego nie jest w 100% bezpieczna, i nie możemy zagwarantować absolutnego bezpieczeństwa.", + "children": "Prywatność dzieci", + "childrenText": "Nasza Aplikacja nie jest przeznaczona dla osób poniżej 13 roku życia. Nie zbieramy świadomie informacji umożliwiających identyfikację osobistą od dzieci poniżej 13 roku życia. Jeśli jesteś rodzicem lub opiekunem i wiesz, że Twoje dziecko podało nam informacje osobiste, prosimy o kontakt, abyśmy mogli podjąć odpowiednie kroki.", + "changes": "Zmiany w tej Polityce prywatności", + "changesText": "Możemy od czasu do czasu aktualizować naszą Politykę prywatności. Dlatego zaleca się regularne przeglądanie tej strony w celu sprawdzenia wszelkich zmian. Powiadomimy Cię o wszelkich zmianach, publikując nową Politykę prywatności na tej stronie. Zmiany te wchodzą w życie natychmiast po ich opublikowaniu na tej stronie.", + "contact": "Kontakt", + "contactText": "Jeśli masz jakiekolwiek pytania lub sugestie dotyczące naszej Polityki prywatności, nie wahaj się z nami skontaktować. E-mail:" + } +}