From 616c5bdd50ced83564c25b1a05afa4f97065efcd Mon Sep 17 00:00:00 2001 From: Maxblake Date: Sun, 2 Mar 2025 03:51:18 +0000 Subject: [PATCH] feat: add polish language (#190) --- src/i18n/index.ts | 11 +- src/i18n/pl.ts | 206 +++++++++++++++++++++ src/pages/secondary/SettingsPage/index.tsx | 2 + 3 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 src/i18n/pl.ts diff --git a/src/i18n/index.ts b/src/i18n/index.ts index 3270e536..05bbf4d2 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -3,10 +3,12 @@ import i18n from 'i18next' import { initReactI18next } from 'react-i18next' import en from './en' import zh from './zh' +import pl from './pl' const resources = { en, - zh + zh, + pl } i18n @@ -14,13 +16,13 @@ i18n type: 'languageDetector', detect: function () { const lng = localStorage.getItem('i18nextLng') - if (lng === 'zh' || lng === 'en') { + if (lng === 'pl' || lng === 'zh' || lng === 'en') { return lng } return undefined }, cacheUserLanguage: function (lng: string) { - if (lng === 'zh' || lng === 'en') { + if (lng === 'pl' || lng === 'zh' || lng === 'en') { localStorage.setItem('i18nextLng', lng) } } @@ -38,6 +40,9 @@ i18n.services.formatter?.add('date', (timestamp, lng) => { if (lng?.startsWith('zh')) { return dayjs(timestamp).format('YYYY/MM/DD') } + if (lng?.startsWith('pl')) { + return dayjs(timestamp).format('DD/MM/YYYY/') + } return dayjs(timestamp).format('MMM D, YYYY') }) diff --git a/src/i18n/pl.ts b/src/i18n/pl.ts new file mode 100644 index 00000000..eb5cb70f --- /dev/null +++ b/src/i18n/pl.ts @@ -0,0 +1,206 @@ +export default { + translation: { + 'Welcome! 🥳': 'Witamy! 🥳', + About: 'O Nas', + 'New Note': 'Nowa Publikacja', + Post: 'Publikuj', + Home: 'Strona Główna', + 'Relay settings': 'Ustawienia transmiterów', + Settings: 'Ustawienia', + SidebarRelays: 'Transmitery', + Refresh: 'Odśwież', + Profile: 'Twój Profil', + Logout: 'Wyloguj', + Following: 'Obserwowani', + followings: 'niżej wymienionych', + reposted: 'Udostępnił', + 'just now': 'teraz', + 'n minutes ago': '{{n}} m', + 'n m': '{{n}}m', + 'n hours ago': '{{n}} g', + 'n h': '{{n}}h', + 'n days ago': '{{n}} d ', + 'n d': '{{n}}d', + date: '{{timestamp, date}}', + Follow: 'Obserwuj', + Unfollow: 'Porzuć', + 'Follow failed': 'Obserwacja nieudana', + 'Unfollow failed': 'Porzucenie obserwacji nieudane', + 'show new notes': 'Pokaż nowe wpisy', + 'loading...': 'ładowanie...', + 'no more notes': 'Koniec wpisów', + 'reply to': 'Odpowiedź na', + reply: 'odpowiedz', + Reply: 'Skomentuj', + 'load more older replies': 'Pobierz więcej starszych odpowiedzi', + 'Write something...': 'Napisz coś...', + Cancel: 'Anuluj', + Mentions: 'Wzmianki', + 'Failed to post': 'Nie udało się opublikować', + 'Post successful': 'Twój wpis został wysłany.', + 'Your post has been published': 'Publikowani są jedynie użytkownicy z białej listy', + Repost: 'Udostępnij', + Quote: 'Zacytuj', + 'Copy event ID': 'Skopiuj ID wydarzenia', + 'Copy user ID': 'Skopiuj ID użytkownika', + 'View raw event': 'Pokaż szczegóły wpisu', + Like: 'Polub', + 'switch to light theme': 'Przełącz na jasny motyw', + 'switch to dark theme': 'Przełącz na ciemny motyw ', + 'switch to system theme': 'Przełącz na motyw systemu (automatyczny)', + Note: 'Cały wpis', + note: 'note', + "username's following": "{{username}} obserwuje:", + "username's used relays": "{{username}} użył transmiterów", + "username's muted": "Zablokowani przez {{username}} ", + Login: 'Logowanie', + 'Follows you': 'Obserwujący', + 'Relay Settings': 'Ustawienia transmiterów', + 'Relay set name': 'Wpisz nazwę grupy', + 'Add a new relay set': 'Utwórz grupę transmiterów', + Add: 'Dodaj', + 'n relays': '{{n}} szt.', + Rename: 'Zmień nazwę', + 'Copy share link': 'Kopiuj link', + Delete: 'Usuń', + 'Relay already exists': 'Transmiter już istnieje', + 'invalid relay URL': 'Nieprawidłowy URL transmitera', + 'Add a new relay': 'Dodaj nowy transmiter', + back: 'z powrotem', + 'Lost in the void': 'Zagubiony w przestrzeni', + 'Carry me home': 'Na stronę główną', + 'no replies': 'Brak komentarzy', + 'Reply to': 'Odpowiedz do', + Search: 'Wyszukiwarka', + 'The relays you are connected to do not support search': + 'Podłączone transmitery nie obsługują wyszukiwania', + 'supports search': 'Obsługa wyszukiwania', + 'Show more...': 'Więcej...', + 'All users': 'Wszyscy użytkownicy', + 'Display replies': 'Wyświetl komentarze', + Notes: 'Wpisy', + 'Notes & Replies': 'Wpisy & Komentarze', + Notifications: 'Powiadomienia', + 'no more notifications': 'Koniec powiadomień', + 'Using private key login is insecure. It is recommended to use a browser extension for login, such as alby, nostr-keyx or nos2x.': + 'Korzystanie z logowania za pomocą klucza prywatnego może nie być bezpieczne. Zaleca się używanie rozszerzenia przeglądarki do logowania, takiego jak Alby, Keys.Band lub Nos2x.', + 'Login with Browser Extension': 'Logowanie z rozszerzeniem przeglądarki', + 'Login with Bunker': 'Logowanie z bunkrem', + 'Login with Private Key': 'Logowanie z prywatnym kluczem (nsec)', + 'reload notes': 'Odśwież', + 'Logged in Accounts': 'Zalogowane konta', + 'Add an Account': 'Dodaj Konto', + 'More options': 'Więcej opcji', + 'Add client tag': 'Dodaj tag klienta', + 'Show others this was sent via Jumble': 'Pokaż innym, że zostało to wysłane przez Jumble', + 'Are you sure you want to logout?': 'Czy na pewno chcesz się wylogować?', + 'relay sets': 'Zestawy transmiterów', + edit: 'edytuj', + Languages: 'Języki', + Theme: 'Wygląd', + System: 'Domyślny', + Light: 'Jasny', + Dark: 'Ciemny', + Temporary: 'Tymczasowe', + 'Choose a relay set': 'Wybierz zestaw transmiterów', + 'Switch account': 'Zmień konto', + Pictures: 'Zdjęcia', + 'Picture note': 'Wpis Graficzny', + 'A special note for picture-first clients like Olas': + 'Publikacja ze zdjęciami i opisem dla klientów takich jak Olas', + 'Picture note requires images': 'Wpis graficzny wymaga obrazów', + Relays: 'Transmitery', + image: 'grafika', + 'Normal Note': 'Zwykły wpis', + 'Picture Note': 'Wpis graficzny', + 'R & W': 'O & Z', + Read: 'Odczyt', + Write: 'Zapis', + 'Push to relays': 'Wyślij do transmiterów', + 'Push Successful': 'Wysłano Pomyślnie', + 'Successfully pushed relay sets to relays': 'Pomyślnie wysłano zestaw do transmiterów', + 'Pull from relays': 'Pobierz z transmiterów', + 'Select the relay sets you want to pull': 'Wybierz zestaw transmiterów do pobrania', + 'No relay sets found': 'Nie znaleziono zestawu transmiterów', + 'Pull n relay sets': 'Pobierz {{n}} zestawów transmiterów', + Pull: 'Pobierz', + 'Select all': 'Wszystkie', + 'Relay Sets': 'Grupy transmiterów', + 'Read & Write Relays': 'Transmitery zapisu i odczytu', + 'read relays description': + 'Transmitery odczytu służą do wyszukiwania zdarzeń dotyczących użytkownika. Inni użytkownicy będą publikować wpisy, które chcą, abyś zobaczył, w transmiterach odczytu.', + 'write relays description': + 'Transmitery zapisu służą do publikowania wydarzeń. Inni użytkownicy będą wyszukiwać zdarzenia z transmiterów zapisu.', + 'read & write relays notice': + 'Liczba serwerów odczytu i zapisu powinna wynosić od 2 do 4.', + "Don't have an account yet?": "Nie masz jeszcze konta?", + 'or simply generate a private key': 'lub wygeneruj klucz prywatny nowego konta', + 'This is a private key. Do not share it with anyone. Keep it safe and secure. You will not be able to recover it if you lose it.': + 'Jest to klucz prywatny. Nie należy go nikomu udostępniać. Przechowuj go w bezpiecznym miejscu. W przypadku jego utraty nie będzie można go odzyskać.', + Edit: 'Edytuj', + Save: 'Zapisz', + 'Display Name': 'Twoja nazwa użytkownika', + Bio: 'O mnie', + 'Nostr Address (NIP-05)': 'Adres Nostr (NIP-05)', + 'Invalid NIP-05 address': 'Nieprawidłowy adres NIP-05', + 'Copy private key': 'Kopiuj klucz prywatny', + 'Enter the password to decrypt your ncryptsec': 'Wprowadź hasło, aby odszyfrować ncryptsec', + Back: 'Wróć', + 'optional: encrypt nsec': 'opcjonalnie: encrypt nsec', + password: 'hasło', + 'Sign up': 'Zarejestruj się', + 'Save to': 'Zapisz do', + 'Enter a name for the new relay set': 'Wpisz nazwę nowegej grupy transmiterów', + 'Save to a new relay set': 'Zapisz do nowego zestawu przekaźników', + Mute: 'Zablokuj', + Muted: 'Zablokowani', + Unmute: 'Przywróć', + 'Mute user': 'Ucisz użytkownika ', + 'Unmute user': 'Przywróć użytkownika ', + 'Append n relays': 'Dodaj {{n}} transmiterów', + Append: 'Dodaj', + 'Select relays to append': 'Wybierz transmitery do dodania', + 'calculating...': 'obliczanie...', + 'Calculate optimal read relays': 'Obliczanie optymalnego odczytu transmiterów', + 'Login to set': 'Zaloguj się', + 'Please login to view following feed': 'Zaloguj się, aby wyświetlić poniższy wpis', + 'Send only to r': 'Wyślij tylko do {{r}}', + 'Send only to these relays': 'Wyślij tylko do tych transmiterów', + Explore: 'Transmitery', + 'Search relays': 'Wyszukaj transmiter', + relayInfoBadgeAuth: '✔️', + relayInfoBadgeSearch: 'Wyszukaj', + relayInfoBadgePayment: 'Płatność', + Operator: 'Operator', + Contact: 'Kontakt', + Software: 'Software', + Version: 'Wersja', + 'Random Relays': 'Losowo wybrane', + randomRelaysRefresh: 'Odśwież', + 'Explore more': 'Zobacz więcej', + 'Payment page': 'Strona płatności', + 'Supported NIPs': 'Obsługiwane NIP-y', + 'Open in a': 'Otwórz w {{a}}', + 'Cannot handle event of kind k': 'Nie można obsłużyć zdarzenia typu {{k}}', + 'Sorry! The note cannot be found 😔 ': 'Przepraszam! Nie można znaleźć wpisu 😔', + 'This user has been muted': 'Ten użytkownik został wyciszony', + Wallet: 'Portfel', + Sats: 'satsów', + sats: 'satsów', + 'Zap to': 'Zap dla użytkownika ', + 'Zap n sats': 'Zap {{n}} satsów', + zapComment: 'Komentarz do zapa', + 'Default zap amount': 'Standardowa kwota zapa', + 'Default zap comment': 'Standardowy komentarz do zapa', + 'Lightning Address (or LNURL)': 'Lightning Adres (lub LNURL)', + 'Quick zap': 'Szybki zap', + 'If enabled, you can zap with a single click': 'Jeśli ta opcja jest włączona, można wysyłać zapa jednym kliknięciem', + All: 'Wszystkie', + Reactions: 'Odzewy', + Zaps: 'Zapy', + 'Enjoying Jumble?': 'Podoba ci się Jumble?', + 'Your donation helps me maintain Jumble and make it better! 😊': + 'Twoja darowizna pomoże mi utrzymać i ulepszać Jumble! 😊', + 'Earlier notifications': 'Wcześniejsze powiadomienia' + } +} diff --git a/src/pages/secondary/SettingsPage/index.tsx b/src/pages/secondary/SettingsPage/index.tsx index 7fc44b4a..631bdbe3 100644 --- a/src/pages/secondary/SettingsPage/index.tsx +++ b/src/pages/secondary/SettingsPage/index.tsx @@ -51,6 +51,8 @@ const SettingsPage = forwardRef(({ index }: { index?: number }, ref) => { English 简体中文 + Polski +