feat: add polish language (#190)

This commit is contained in:
Maxblake
2025-03-02 03:51:18 +00:00
committed by GitHub
parent 249593d547
commit 616c5bdd50
3 changed files with 216 additions and 3 deletions

View File

@@ -3,10 +3,12 @@ import i18n from 'i18next'
import { initReactI18next } from 'react-i18next' import { initReactI18next } from 'react-i18next'
import en from './en' import en from './en'
import zh from './zh' import zh from './zh'
import pl from './pl'
const resources = { const resources = {
en, en,
zh zh,
pl
} }
i18n i18n
@@ -14,13 +16,13 @@ i18n
type: 'languageDetector', type: 'languageDetector',
detect: function () { detect: function () {
const lng = localStorage.getItem('i18nextLng') const lng = localStorage.getItem('i18nextLng')
if (lng === 'zh' || lng === 'en') { if (lng === 'pl' || lng === 'zh' || lng === 'en') {
return lng return lng
} }
return undefined return undefined
}, },
cacheUserLanguage: function (lng: string) { cacheUserLanguage: function (lng: string) {
if (lng === 'zh' || lng === 'en') { if (lng === 'pl' || lng === 'zh' || lng === 'en') {
localStorage.setItem('i18nextLng', lng) localStorage.setItem('i18nextLng', lng)
} }
} }
@@ -38,6 +40,9 @@ i18n.services.formatter?.add('date', (timestamp, lng) => {
if (lng?.startsWith('zh')) { if (lng?.startsWith('zh')) {
return dayjs(timestamp).format('YYYY/MM/DD') 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') return dayjs(timestamp).format('MMM D, YYYY')
}) })

206
src/i18n/pl.ts Normal file
View File

@@ -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'
}
}

View File

@@ -51,6 +51,8 @@ const SettingsPage = forwardRef(({ index }: { index?: number }, ref) => {
<SelectContent> <SelectContent>
<SelectItem value="en">English</SelectItem> <SelectItem value="en">English</SelectItem>
<SelectItem value="zh"></SelectItem> <SelectItem value="zh"></SelectItem>
<SelectItem value="pl">Polski</SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
</SettingItem> </SettingItem>