Files
TREK/client/src/i18n/translations/pl.ts
T
jubnl 3b94727c07 fix(journey): fix issue #704 — active logic, archive, places rename, search, trip reminders
- Derive journey lifecycle from linked trip dates (live/upcoming/completed/draft)
  instead of relying solely on status field; status=archived always wins
- Add Archive/Restore Journey action in journey settings dialog
- Rename cities → places end-to-end (SQL alias, TS types, stats field, all locales)
- Wire up search icon: toggles inline input, filters by title+subtitle client-side
- Fix channelConfigured check: trip reminders enabled by default since inapp is
  always available; remove channel check, controlled solely by admin setting
- Expose notify_trip_reminder toggle in Admin → Settings → Notifications
- Add trip_date_min/trip_date_max to listJourneys SQL for client-side lifecycle
- Add archived status to Journey type (server + client)
- Update all 15 locale files with new keys (search, archive, places, trip reminders)
2026-04-17 16:59:23 +02:00

2237 lines
123 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const pl: Record<string, string | { name: string; category: string }[]> = {
// Common
'common.save': 'Zapisz',
'common.showMore': 'Pokaż więcej',
'common.showLess': 'Pokaż mniej',
'common.cancel': 'Anuluj',
'common.clear': 'Wyczyść',
'common.delete': 'Usuń',
'common.edit': 'Edytuj',
'common.add': 'Dodaj',
'common.loading': 'Ładowanie...',
'common.error': 'Błąd',
'common.unknownError': 'Nieznany błąd',
'common.tooManyAttempts': 'Zbyt wiele prób. Spróbuj ponownie później.',
'common.back': 'Wstecz',
'common.all': 'Wszystko',
'common.close': 'Zamknij',
'common.open': 'Otwórz',
'common.upload': 'Prześlij',
'common.search': 'Szukaj',
'common.confirm': 'Potwierdź',
'common.ok': 'OK',
'common.yes': 'Tak',
'common.no': 'Nie',
'common.or': 'lub',
'common.none': 'Brak',
'common.date': 'Data',
'common.rename': 'Zmień nazwę',
'common.name': 'Nazwa',
'common.email': 'E-mail',
'common.password': 'Hasło',
'common.saving': 'Zapisywanie...',
'trips.memberRemoved': '{username} usunięty',
'trips.memberRemoveError': 'Nie udało się usunąć',
'trips.memberAdded': '{username} dodany',
'trips.memberAddError': 'Nie udało się dodać',
'common.expand': 'Rozwiń',
'common.collapse': 'Zwiń',
'common.update': 'Aktualizuj',
'common.change': 'Zmień',
'common.uploading': 'Przesyłanie...',
'common.backToPlanning': 'Powrót do planowania',
'common.reset': 'Resetuj',
// Navbar
'nav.trip': 'Podróż',
'nav.share': 'Udostępnij',
'nav.settings': 'Ustawienia',
'nav.admin': 'Admin',
'nav.logout': 'Wyloguj',
'nav.lightMode': 'Tryb jasny',
'nav.darkMode': 'Tryb ciemny',
'nav.autoMode': 'Tryb automatyczny',
'nav.administrator': 'Administrator',
// Dashboard
'dashboard.title': 'Moje podróże',
'dashboard.subtitle.loading': 'Ładowanie podróży...',
'dashboard.subtitle.trips': '{count} podróży ({archived} zarchiwizowanych)',
'dashboard.subtitle.empty': 'Rozpocznij swoją pierwszą podróż',
'dashboard.subtitle.activeOne': '{count} aktywna podróż',
'dashboard.subtitle.activeMany': '{count} aktywnych podróży',
'dashboard.subtitle.archivedSuffix': ' · {count} zarchiwizowanych',
'dashboard.newTrip': 'Nowa podróż',
'dashboard.gridView': 'Widok siatki',
'dashboard.listView': 'Widok listy',
'dashboard.currency': 'Waluta',
'dashboard.timezone': 'Strefy czasowe',
'dashboard.localTime': 'Czas lokalny',
'dashboard.timezoneCustomTitle': 'Własna strefa czasowa',
'dashboard.timezoneCustomLabelPlaceholder': 'Nazwa (opcjonalnie)',
'dashboard.timezoneCustomTzPlaceholder': 'np. Europe/Warsaw',
'dashboard.timezoneCustomAdd': 'Dodaj',
'dashboard.timezoneCustomErrorEmpty': 'Podaj identyfikator strefy czasowej',
'dashboard.timezoneCustomErrorInvalid': 'Nieprawidłowa strefa czasowa. Użyj formatu takiego jak Europe/Warsaw',
'dashboard.timezoneCustomErrorDuplicate': 'Już dodana',
'dashboard.emptyTitle': 'Brak podróży',
'dashboard.emptyText': 'Utwórz swoją pierwszą podróż i zacznij planować!',
'dashboard.emptyButton': 'Utwórz pierwszą podróż',
'dashboard.nextTrip': 'Następna podróż',
'dashboard.shared': 'Udostępniona',
'dashboard.sharedBy': 'Udostępniona przez {name}',
'dashboard.days': 'Dni',
'dashboard.places': 'Miejsca',
'dashboard.archive': 'Archiwizuj',
'dashboard.restore': 'Przywróć',
'dashboard.archived': 'Zarchiwizowana',
'dashboard.status.ongoing': 'W trakcie',
'dashboard.status.today': 'Dzisiaj',
'dashboard.status.tomorrow': 'Jutro',
'dashboard.status.past': 'Zakończona',
'dashboard.status.daysLeft': '{count} dni do końca',
'dashboard.toast.loadError': 'Nie udało się załadować podróży',
'dashboard.toast.created': 'Podróż została utworzona pomyślnie!',
'dashboard.toast.createError': 'Nie udało się utworzyć podróży',
'dashboard.toast.updated': 'Podróż została zaktualizowana!',
'dashboard.toast.updateError': 'Nie udało się zaktualizować podróży',
'dashboard.toast.deleted': 'Podróż została usunięta',
'dashboard.toast.deleteError': 'Nie udało się usunąć podróży',
'dashboard.toast.archived': 'Podróż została zarchiwizowana',
'dashboard.toast.archiveError': 'Nie udało się zarchiwizować podróży',
'dashboard.toast.restored': 'Podróż została przywrócona',
'dashboard.toast.restoreError': 'Nie udało się przywrócić podróży',
'dashboard.confirm.delete': 'Usunąć podróż "{title}"? Wszystkie miejsca i plany zostaną trwale usunięte.',
'dashboard.editTrip': 'Edytuj podróż',
'dashboard.createTrip': 'Utwórz nową podróż',
'dashboard.tripTitle': 'Nazwa podróży',
'dashboard.tripTitlePlaceholder': 'np. Lato w Japonii',
'dashboard.tripDescription': 'Opis',
'dashboard.tripDescriptionPlaceholder': 'Opisz swoją podróż',
'dashboard.startDate': 'Data rozpoczęcia',
'dashboard.endDate': 'Data zakończenia',
'dashboard.dayCount': 'Liczba dni',
'dashboard.dayCountHint': 'Ile dni zaplanować, gdy nie ustawiono dat podróży.',
'dashboard.noDateHint': 'Nie ustawiono daty — zostanie utworzonych 7 domyślnych dni. Możesz to zmienić w dowolnym momencie.',
'dashboard.coverImage': 'Okładka',
'dashboard.addCoverImage': 'Dodaj okładkę (lub przeciągnij i upuść)',
'dashboard.addMembers': 'Uczestnicy podróży',
'dashboard.addMember': 'Dodaj uczestnika',
'dashboard.coverSaved': 'Okładka została zapisana',
'dashboard.coverUploadError': 'Nie udało się przesłać okładki',
'dashboard.coverRemoveError': 'Nie udało się usunąć okładki',
'dashboard.titleRequired': 'Nazwa podróży jest wymagana',
'dashboard.endDateError': 'Data zakończenia musi być po dacie rozpoczęcia',
// Settings
'settings.title': 'Ustawienia',
'settings.subtitle': 'Skonfiguruj swoje ustawienia',
'settings.tabs.display': 'Wygląd',
'settings.tabs.map': 'Mapa',
'settings.tabs.notifications': 'Powiadomienia',
'settings.tabs.integrations': 'Integracje',
'settings.tabs.account': 'Konto',
'settings.tabs.offline': 'Offline',
'settings.tabs.about': 'O aplikacji',
'settings.map': 'Mapa',
'settings.mapTemplate': 'Szablon mapy',
'settings.mapTemplatePlaceholder.select': 'Wybierz szablon...',
'settings.mapDefaultHint': 'Pozostaw puste dla OpenStreetMap (domyślnie)',
'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
'settings.mapHint': 'Szablon URL dla kafelków mapy',
'settings.latitude': 'Szerokość',
'settings.longitude': 'Długość',
'settings.saveMap': 'Zapisz mapę',
'settings.apiKeys': 'Klucze API',
'settings.mapsKey': 'Klucz Google Maps API',
'settings.mapsKeyHint': 'Do wyszukiwania miejsc. Wymaga Places API (New). Uzyskaj dostęp na console.cloud.google.com',
'settings.weatherKey': 'Klucz OpenWeatherMap API',
'settings.weatherKeyHint': 'Do danych pogodowych. Bezpłatnie na openweathermap.org/api',
'settings.keyPlaceholder': 'Podaj klucz...',
'settings.configured': 'Skonfigurowano',
'settings.saveKeys': 'Zapisz klucze',
'settings.display': 'Preferencje',
'settings.colorMode': 'Motyw',
'settings.light': 'Jasny',
'settings.dark': 'Ciemny',
'settings.auto': 'Automatyczny',
'settings.language': 'Język',
'settings.temperature': 'Jednostka temperatury',
'settings.timeFormat': 'Format czasu',
'settings.routeCalculation': 'Obliczanie trasy',
'settings.blurBookingCodes': 'Rozmyj kody rezerwacji',
'settings.notifications': 'Powiadomienia',
'settings.notifyTripInvite': 'Zaproszenia do podróży',
'settings.notifyBookingChange': 'Zmiany w rezerwacjach',
'settings.notifyTripReminder': 'Przypomnienia o podróżach',
'settings.notifyVacayInvite': 'Zaproszenia do połączenia kalendarzy',
'settings.notifyPhotosShared': 'Udostępnione zdjęcia (Immich)',
'settings.notifyCollabMessage': 'Wiadomości czatu (Collab)',
'settings.notifyPackingTagged': 'Lista pakowania: przypisania',
'settings.notifyWebhook': 'Powiadomienia Webhook',
'settings.notifyVersionAvailable': 'Nowa wersja dostępna',
'admin.smtp.title': 'E-maile i powiadomienia',
'admin.smtp.hint': 'Konfiguracja SMTP dla powiadomień e-mail. Opcjonalnie: URL Webhooka dla Discorda, Slacka, itp.',
'admin.smtp.testButton': 'Wyślij testowego e-maila',
'admin.smtp.testSuccess': 'Testowy e-mail został wysłany pomyślnie',
'admin.smtp.testFailed': 'Nie udało się wysłać testowego e-maila',
'dayplan.icsTooltip': 'Eksportuj kalendarz (ICS)',
'share.linkTitle': 'Publiczny link',
'share.linkHint': 'Utwórz link umożliwiający przeglądanie tej podróży bez logowania. Tylko do odczytu — bez możliwości edycji.',
'share.createLink': 'Utwórz link',
'share.deleteLink': 'Usuń link',
'share.createError': 'Nie udało się utworzyć linku',
'common.copy': 'Kopiuj',
'common.copied': 'Skopiowano',
'share.permMap': 'Mapa i plan',
'share.permBookings': 'Rezerwacje',
'share.permPacking': 'Lista pakowania',
'shared.expired': 'Link wygasł lub jest nieprawidłowy',
'shared.expiredHint': 'Ten link do podróży jest już nieaktywny.',
'shared.readOnly': 'Widok udostępniony tylko do odczytu',
'shared.tabPlan': 'Plan',
'shared.tabBookings': 'Rezerwacje',
'shared.tabPacking': 'Lista pakowania',
'shared.tabBudget': 'Budżet',
'shared.tabChat': 'Czat',
'shared.days': 'dni',
'shared.places': 'miejsca',
'shared.other': 'Inne',
'shared.totalBudget': 'Całkowity budżet',
'shared.messages': 'wiadomości',
'shared.sharedVia': 'Udostępnione przez',
'shared.confirmed': 'Potwierdzone',
'shared.pending': 'Oczekujące',
'share.permBudget': 'Budżet',
'share.permCollab': 'Czat',
'settings.on': 'Włączone',
'settings.off': 'Wyłączone',
'settings.mcp.title': 'Konfiguracja MCP',
'settings.mcp.endpoint': 'Endpoint MCP',
'settings.mcp.clientConfig': 'Konfiguracja klienta',
'settings.mcp.clientConfigHint': 'Zastąp <your_token> tokenem API z listy poniżej. Ścieżka do npx może wymagać dostosowania do Twojego systemu (np. C:\\PROGRA~1\\nodejs\\npx.cmd w systemie Windows).',
'settings.mcp.clientConfigHintOAuth': 'Zastąp <your_client_id> i <your_client_secret> danymi uwierzytelniającymi z klienta OAuth 2.1 utworzonego powyżej. mcp-remote otworzy przeglądarkę, aby dokończyć autoryzację przy pierwszym połączeniu. Ścieżka do npx może wymagać dostosowania do Twojego systemu (np. C:\\PROGRA~1\\nodejs\\npx.cmd w systemie Windows).',
'settings.mcp.copy': 'Kopiuj',
'settings.mcp.copied': 'Skopiowano!',
'settings.mcp.apiTokens': 'Tokeny API',
'settings.mcp.createToken': 'Utwórz nowy token',
'settings.mcp.noTokens': 'Brak tokenów. Utwórz go, aby połączyć klientów MCP.',
'settings.mcp.tokenCreatedAt': 'Utworzono',
'settings.mcp.tokenUsedAt': 'Użyto',
'settings.mcp.deleteTokenTitle': 'Usuń token',
'settings.mcp.deleteTokenMessage': 'Ten token przestanie działać natychmiastowo. Każdy klient MCP używający go straci dostęp.',
'settings.mcp.modal.createTitle': 'Utwórz token API',
'settings.mcp.modal.tokenName': 'Nazwa tokenu',
'settings.mcp.modal.tokenNamePlaceholder': 'np. Claude Desktop, Laptop służbowy',
'settings.mcp.modal.creating': 'Tworzenie...',
'settings.mcp.modal.create': 'Utwórz token',
'settings.mcp.modal.createdTitle': 'Token został utworzony',
'settings.mcp.modal.createdWarning': 'Ten token zostanie wyświetlony tylko raz. Skopiuj i zapisz go — nie będzie można go zobaczyć ponownie.',
'settings.mcp.modal.done': 'Gotowe',
'settings.mcp.toast.created': 'Token został utworzony',
'settings.mcp.toast.createError': 'Nie udało się utworzyć tokenu',
'settings.mcp.toast.deleted': 'Token został usunięty',
'settings.mcp.toast.deleteError': 'Nie udało się usunąć tokenu',
'settings.mcp.apiTokensDeprecated': 'Tokeny API są przestarzałe i zostaną usunięte w przyszłej wersji. Użyj zamiast tego klientów OAuth 2.1.',
'settings.oauth.clients': 'Klienci OAuth 2.1',
'settings.oauth.clientsHint': 'Zarejestruj klientów OAuth 2.1, aby zewnętrzne aplikacje MCP (Claude Web, Cursor itp.) mogły się łączyć bez statycznych tokenów.',
'settings.oauth.createClient': 'Nowy klient',
'settings.oauth.noClients': 'Brak zarejestrowanych klientów OAuth.',
'settings.oauth.clientId': 'ID klienta',
'settings.oauth.clientSecret': 'Sekret klienta',
'settings.oauth.deleteClient': 'Usuń klienta',
'settings.oauth.deleteClientMessage': 'Ten klient i wszystkie aktywne sesje zostaną trwale usunięte. Każda aplikacja, która go używa, natychmiast utraci dostęp.',
'settings.oauth.rotateSecret': 'Odnów sekret',
'settings.oauth.rotateSecretMessage': 'Zostanie wygenerowany nowy sekret klienta, a wszystkie istniejące sesje zostaną natychmiast unieważnione. Zaktualizuj aplikację przed zamknięciem tego okna.',
'settings.oauth.rotateSecretConfirm': 'Odnów',
'settings.oauth.rotateSecretConfirming': 'Odnawianie…',
'settings.oauth.rotateSecretDoneTitle': 'Wygenerowano nowy sekret',
'settings.oauth.rotateSecretDoneWarning': 'Ten sekret jest wyświetlany tylko raz. Skopiuj go teraz i zaktualizuj aplikację — wszystkie poprzednie sesje zostały unieważnione.',
'settings.oauth.activeSessions': 'Aktywne sesje OAuth',
'settings.oauth.sessionScopes': 'Uprawnienia',
'settings.oauth.sessionExpires': 'Wygasa',
'settings.oauth.revoke': 'Unieważnij',
'settings.oauth.revokeSession': 'Unieważnij sesję',
'settings.oauth.revokeSessionMessage': 'Spowoduje to natychmiastowe unieważnienie dostępu dla tej sesji OAuth.',
'settings.oauth.modal.createTitle': 'Zarejestruj klienta OAuth',
'settings.oauth.modal.presets': 'Szybkie ustawienia',
'settings.oauth.modal.clientName': 'Nazwa aplikacji',
'settings.oauth.modal.clientNamePlaceholder': 'np. Claude Web, Moja aplikacja MCP',
'settings.oauth.modal.redirectUris': 'URI przekierowania',
'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth',
'settings.oauth.modal.redirectUrisHint': 'Jeden URI na linię. Wymagane HTTPS (localhost zwolniony). Wymagana dokładna zgodność.',
'settings.oauth.modal.scopes': 'Dozwolone uprawnienia',
'settings.oauth.modal.scopesHint': 'list_trips i get_trip_summary są zawsze dostępne — bez wymaganych uprawnień. Umożliwiają AI odkrycie potrzebnych ID podróży.',
'settings.oauth.modal.selectAll': 'Zaznacz wszystko',
'settings.oauth.modal.deselectAll': 'Odznacz wszystko',
'settings.oauth.modal.creating': 'Rejestrowanie…',
'settings.oauth.modal.create': 'Zarejestruj klienta',
'settings.oauth.modal.createdTitle': 'Klient zarejestrowany',
'settings.oauth.modal.createdWarning': 'Sekret klienta jest wyświetlany tylko raz. Skopiuj go teraz — nie można go odzyskać.',
'settings.oauth.toast.createError': 'Nie udało się zarejestrować klienta OAuth',
'settings.oauth.toast.deleted': 'Klient OAuth usunięty',
'settings.oauth.toast.deleteError': 'Nie udało się usunąć klienta OAuth',
'settings.oauth.toast.revoked': 'Sesja unieważniona',
'settings.oauth.toast.revokeError': 'Nie udało się unieważnić sesji',
'settings.oauth.toast.rotateError': 'Nie udało się odnowić sekretu klienta',
'settings.account': 'Konto',
'settings.about': 'O aplikacji',
'settings.about.reportBug': 'Zgłoś błąd',
'settings.about.reportBugHint': 'Znalazłeś problem? Daj nam znać',
'settings.about.featureRequest': 'Zaproponuj funkcję',
'settings.about.featureRequestHint': 'Zaproponuj nową funkcję',
'settings.about.wikiHint': 'Dokumentacja i poradniki',
'settings.about.description': 'TREK to samodzielnie hostowany planer podróży, który pomaga organizować wyprawy od pierwszego pomysłu po ostatnie wspomnienie. Planowanie dzienne, budżet, listy pakowania, zdjęcia i wiele więcej — wszystko w jednym miejscu, na własnym serwerze.',
'settings.about.madeWith': 'Stworzone z',
'settings.about.madeBy': 'przez Maurice\'a i rosnącą społeczność open-source.',
'settings.username': 'Nazwa użytkownika',
'settings.email': 'E-mail',
'settings.role': 'Rola',
'settings.roleAdmin': 'Administrator',
'settings.oidcLinked': 'Połączono z',
'settings.changePassword': 'Zmień hasło',
'settings.currentPassword': 'Aktualne hasło',
'settings.currentPasswordRequired': 'Aktualne hasło jest wymagane',
'settings.newPassword': 'Nowe hasło',
'settings.confirmPassword': 'Potwierdź nowe hasło',
'settings.updatePassword': 'Zaktualizuj hasło',
'settings.passwordRequired': 'Proszę podać aktualne i nowe hasło',
'settings.passwordTooShort': 'Hasło musi mieć co najmniej 8 znaków',
'settings.passwordMismatch': 'Hasła nie są identyczne',
'settings.passwordWeak': 'Hasło musi zawierać wielką literę, małą literę i cyfrę',
'settings.passwordChanged': 'Hasło zostało zmienione pomyślnie',
'settings.deleteAccount': 'Usuń konto',
'settings.deleteAccountTitle': 'Usunąć twoje konto?',
'settings.deleteAccountWarning': 'Twoje konto i wszystkie twoje podróże, miejsca i pliki zostaną trwale usunięte. Tej akcji nie można cofnąć.',
'settings.deleteAccountConfirm': 'Usuń na zawsze',
'settings.deleteBlockedTitle': 'Nie można usunąć konta',
'settings.deleteBlockedMessage': 'Jesteś jedynym administratorem. Wyznacz innego użytkownika na administratora przed usunięciem konta.',
'settings.roleUser': 'Użytkownik',
'settings.saveProfile': 'Zapisz profil',
'settings.toast.mapSaved': 'Ustawienia mapy zostały zapisane',
'settings.toast.keysSaved': 'Klucze API zostały zapisane',
'settings.toast.displaySaved': 'Preferencje zostały zapisane',
'settings.toast.profileSaved': 'Profil został zapisany',
'settings.uploadAvatar': 'Prześlij zdjęcie profilowe',
'settings.removeAvatar': 'Usuń zdjęcie profilowe',
'settings.avatarUploaded': 'Zdjęcie profilowe zostało zaktualizowane',
'settings.avatarRemoved': 'Zdjęcie profilowe zostało usunięte',
'settings.avatarError': 'Przesyłanie nie powiodło się',
'settings.mfa.title': 'Uwierzytelnianie dwuskładnikowe (2FA)',
'settings.mfa.description': 'Dodaje drugi krok, kiedy logujesz się e-mailem i hasłem. Użyj aplikacji uwierzytelniającej (Google Authenticator, Authy, itp.).',
'settings.mfa.requiredByPolicy': 'Twój administrator wymaga uwierzytelniania dwuskładnikowego. Skonfiguruj aplikację uwierzytelniającą poniżej, zanim przejdziesz dalej.',
'settings.mfa.backupTitle': 'Kody zapasowe',
'settings.mfa.backupDescription': 'Użyj tych jednorazowych kodów zapasowych, jeżeli stracisz dostęp do swojej aplikacji uwierzytelniającej.',
'settings.mfa.backupWarning': 'Zapisz te kody. Każdy z nich może być wykorzystany tylko raz.',
'settings.mfa.backupCopy': 'Kopiuj kody',
'settings.mfa.backupDownload': 'Pobierz TXT',
'settings.mfa.backupPrint': 'Drukuj / PDF',
'settings.mfa.backupCopied': 'Kody zapasowe zostały skopiowane',
'settings.mfa.enabled': '2FA jest włączone dla Twojego konta.',
'settings.mfa.disabled': '2FA jest wyłączone.',
'settings.mfa.setup': 'Skonfiguruj aplikację uwierzytelniającą',
'settings.mfa.scanQr': 'Zeskanuj ten kod QR za pomocą aplikacji lub wprowadź klucz ręcznie.',
'settings.mfa.secretLabel': 'Tajny klucz (wprowadź ręcznie)',
'settings.mfa.codePlaceholder': '6-cyfrowy kod',
'settings.mfa.enable': 'Włącz 2FA',
'settings.mfa.cancelSetup': 'Anuluj',
'settings.mfa.disableTitle': 'Wyłącz 2FA',
'settings.mfa.disableHint': 'Podaj hasło do konta i aktualny kod z aplikacji uwierzytelniającej.',
'settings.mfa.disable': 'Wyłącz 2FA',
'settings.mfa.toastEnabled': 'Uwierzytelnianie dwuskładnikowe zostało włączone',
'settings.mfa.toastDisabled': 'Uwierzytelnianie dwuskładnikowe zostało wyłączone',
'settings.mfa.demoBlocked': 'Niedostępne w trybie demonstracyjnym',
// Login
'login.error': 'Logowanie nie powiodło się. Sprawdź dane logowania.',
'login.tagline': 'Twoje podróże.\nTwój plan.',
'login.description': 'Planuj wspólnie podróże z interaktywnymi mapami, budżetami i synchronizacją w czasie rzeczywistym.',
'login.features.maps': 'Interaktywne mapy',
'login.features.mapsDesc': 'Google Places, trasy i grupowanie',
'login.features.realtime': 'Synchronizacja w czasie rzeczywistym',
'login.features.realtimeDesc': 'Planuj wspólnie przez WebSocket',
'login.features.budget': 'Śledzenie budżetu',
'login.features.budgetDesc': 'Kategorie, wykresy i koszty w przeliczeniu na osobę',
'login.features.collab': 'Współpraca',
'login.features.collabDesc': 'Wielu użytkowników i wspólne podróże',
'login.features.packing': 'Listy pakowania',
'login.features.packingDesc': 'Kategorie, postęp i sugestie',
'login.features.bookings': 'Rezerwacje',
'login.features.bookingsDesc': 'Loty, hotele, restauracje i więcej',
'login.features.files': 'Dokumenty',
'login.features.filesDesc': 'Przesyłaj i zarządzaj dokumentami',
'login.features.routes': 'Inteligentne trasy',
'login.features.routesDesc': 'Automatyczna optymalizacja i eksport do Google Maps',
'login.selfHosted': 'Własny hosting \u00B7 Otwarty kod źródłowy \u00B7 Twoje dane pozostają Twoje',
'login.title': 'Zaloguj się',
'login.subtitle': 'Witaj ponownie',
'login.signingIn': 'Logowanie...',
'login.signIn': 'Zaloguj się',
'login.createAdmin': 'Utwórz konto administratora',
'login.createAdminHint': 'Skonfiguruj pierwsze konto administratora dla TREK.',
'login.createAccount': 'Utwórz konto',
'login.createAccountHint': 'Zarejestruj nowe konto.',
'login.creating': 'Tworzenie...',
'login.noAccount': "Nie masz konta?",
'login.hasAccount': 'Masz już konto?',
'login.register': 'Zarejestruj się',
'login.emailPlaceholder': 'twoj@email.pl',
'login.username': 'Nazwa użytkownika',
'login.oidc.registrationDisabled': 'Rejestracja jest wyłączona. Skontaktuj się z administratorem.',
'login.oidc.noEmail': 'Nie otrzymano e-maila od dostawcy.',
'login.oidc.tokenFailed': 'Nie udało się uwierzytelnić.',
'login.oidc.invalidState': 'Nieprawidłowa sesja. Spróbuj ponownie.',
'login.demoFailed': 'Nie udało się zalogować do wersji demonstracyjnej',
'login.oidcSignIn': 'Zaloguj się z {name}',
'login.oidcOnly': 'Uwierzytelnianie hasłem jest wyłączone. Zaloguj się za pomocą swojego dostawcy SSO.',
'login.oidcLoggedOut': 'Zostałeś wylogowany. Zaloguj się ponownie za pomocą swojego dostawcy SSO.',
'login.demoHint': 'Wypróbuj demo — nie wymaga rejestracji',
'login.mfaTitle': 'Uwierzytelnianie dwuskładnikowe',
'login.mfaSubtitle': 'Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej.',
'login.mfaCodeLabel': 'Kod weryfikacyjny',
'login.mfaCodeRequired': 'Wprowadź kod z aplikacji uwierzytelniającej.',
'login.mfaHint': 'Otwórz Google Authenticator, Authy lub inną aplikację TOTP.',
'login.mfaBack': '← Powrót do logowania',
'login.mfaVerify': 'Weryfikuj',
'login.invalidInviteLink': 'Nieprawidłowy lub wygasły link zaproszenia',
'login.oidcFailed': 'Logowanie OIDC nie powiodło się',
'login.usernameRequired': 'Nazwa użytkownika jest wymagana',
'login.passwordMinLength': 'Hasło musi mieć co najmniej 8 znaków',
// Register
'register.passwordMismatch': 'Hasła nie są identyczne',
'register.passwordTooShort': 'Hasło musi mieć co najmniej 6 znaków',
'register.failed': 'Rejestracja nie powiodła się',
'register.getStarted': 'Rozpocznij',
'register.subtitle': 'Utwórz konto i zacznij planować swoje wymarzone podróże.',
'register.feature1': 'Nieograniczone plany podróży',
'register.feature2': 'Interaktywna mapa',
'register.feature3': 'Zarządzaj miejscami i kategoriami',
'register.feature4': 'Śledź rezerwacje',
'register.feature5': 'Twórz listy pakowania',
'register.feature6': 'Przechowuj zdjęcia i pliki',
'register.createAccount': 'Utwórz konto',
'register.startPlanning': 'Zacznij planować podróż',
'register.minChars': 'Min. 6 znaków',
'register.confirmPassword': 'Potwierdź hasło',
'register.repeatPassword': 'Powtórz hasło',
'register.registering': 'Rejestrowanie...',
'register.register': 'Zarejestruj się',
'register.hasAccount': 'Masz już konto?',
'register.signIn': 'Zaloguj się',
// Admin
'admin.title': 'Administracja',
'admin.subtitle': 'Zarządzanie użytkownikami i ustawienia systemowe',
'admin.tabs.users': 'Użytkownicy',
'admin.tabs.categories': 'Kategorie',
'admin.tabs.backup': 'Backupy',
'admin.tabs.notifications': 'Powiadomienia',
'admin.tabs.audit': 'Audit',
'admin.stats.users': 'Użytkownicy',
'admin.stats.trips': 'Podróże',
'admin.stats.places': 'Miejsca',
'admin.stats.photos': 'Zdjęcia',
'admin.stats.files': 'Pliki',
'admin.table.user': 'Użytkownik',
'admin.table.email': 'E-mail',
'admin.table.role': 'Rola',
'admin.table.created': 'Utworzono',
'admin.table.lastLogin': 'Ostatnie logowanie',
'admin.table.actions': 'Akcje',
'admin.you': '(Ty)',
'admin.editUser': 'Edytuj użytkownika',
'admin.newPassword': 'Nowe hasło',
'admin.newPasswordHint': 'Pozostaw puste, aby zachować obecne hasło',
'admin.deleteUser': 'Usunąć użytkownika "{name}"? Wszystkie jego podróże zostaną trwale usunięte.',
'admin.deleteUserTitle': 'Usuń użytkownika',
'admin.newPasswordPlaceholder': 'Podaj nowe hasło...',
'admin.toast.loadError': 'Nie udało się załadować danych administratora',
'admin.toast.userUpdated': 'Użytkownik został zaktualizowany',
'admin.toast.updateError': 'Nie udało się zaktualizować użytkownika',
'admin.toast.userDeleted': 'Użytkownik został usunięty',
'admin.toast.deleteError': 'Nie udało się usunąć użytkownika',
'admin.toast.cannotDeleteSelf': 'Nie można usunąć własnego konta',
'admin.toast.userCreated': 'Użytkownik został utworzony',
'admin.toast.createError': 'Nie udało się utworzyć użytkownika',
'admin.toast.fieldsRequired': 'Nazwa użytkownika, e-mail i hasło są wymagane',
'admin.createUser': 'Utwórz użytkownika',
'admin.invite.title': 'Linki zaproszeń',
'admin.invite.subtitle': 'Twórz jednorazowe linki do rejestracji',
'admin.invite.create': 'Utwórz link',
'admin.invite.createAndCopy': 'Utwórz i skopiuj',
'admin.invite.empty': 'Nie utworzono jeszcze żadnych linków zaproszeń',
'admin.invite.maxUses': 'Maksymalna liczba użyć',
'admin.invite.expiry': 'Wygasa po',
'admin.invite.uses': 'użycia',
'admin.invite.expiresAt': 'wygasa',
'admin.invite.createdBy': 'utworzone przez',
'admin.invite.active': 'Aktywny',
'admin.invite.expired': 'Wygasł',
'admin.invite.usedUp': 'Wykorzystany',
'admin.invite.copied': 'Link zaproszenia został skopiowany do schowka',
'admin.invite.copyLink': 'Skopiuj link',
'admin.invite.deleted': 'Link zaproszenia został usunięty',
'admin.invite.createError': 'Nie udało się utworzyć linku zaproszenia',
'admin.invite.deleteError': 'Nie udało się usunąć linku zaproszenia',
'admin.tabs.settings': 'Ustawienia',
'admin.allowRegistration': 'Zezwól na rejestrację',
'admin.allowRegistrationHint': 'Nowi użytkownicy mogą się rejestrować samodzielnie',
'admin.authMethods': 'Authentication Methods',
'admin.passwordLogin': 'Password Login',
'admin.passwordLoginHint': 'Allow users to sign in with email and password',
'admin.passwordRegistration': 'Password Registration',
'admin.passwordRegistrationHint': 'Allow new users to register with email and password',
'admin.oidcLogin': 'SSO Login',
'admin.oidcLoginHint': 'Allow users to sign in with SSO',
'admin.oidcRegistration': 'SSO Auto-Provisioning',
'admin.oidcRegistrationHint': 'Automatically create accounts for new SSO users',
'admin.envOverrideHint': 'Password login settings are controlled by the OIDC_ONLY environment variable and cannot be changed here.',
'admin.lockoutWarning': 'At least one login method must remain enabled',
'admin.requireMfa': 'Wymagaj uwierzytelniania dwuskładnikowego (2FA)',
'admin.requireMfaHint': 'Użytkownicy bez 2FA muszą ukończyć konfigurację w Ustawieniach zanim zaczną korzystać z aplikacji.',
'admin.apiKeys': 'Klucze API',
'admin.apiKeysHint': 'Opcjonalne. Umożliwiają pobieranie większej ilości danych o miejscach, takich jak zdjęcia i pogoda.',
'admin.mapsKey': 'Klucz Google Maps API',
'admin.mapsKeyHint': 'Wymagany do wyszukiwania miejsc. Uzyskaj go na console.cloud.google.com',
'admin.mapsKeyHintLong': 'Bez klucza API, OpenStreetMap jest wykorzystywany do wyszukiwania miejsc. Z kluczem API Google, zdjęcia, oceny i godziny otwarcia również mogą być pobierane. Uzyskaj go na console.cloud.google.com.',
'admin.recommended': 'Polecane',
'admin.weatherKey': 'Klucz OpenWeatherMap API',
'admin.weatherKeyHint': 'Do danych pogodowych. Uzyskaj go bezpłatnie na openweathermap.org',
'admin.validateKey': 'Testuj',
'admin.keyValid': 'Połączono',
'admin.keyInvalid': 'Niepoprawny',
'admin.keySaved': 'Klucze API zostały zapisane',
'admin.oidcTitle': 'Logowanie jednokrotne (OIDC)',
'admin.oidcSubtitle': 'Zezwól na logowanie za pomocą zewnętrznych dostawców, takich jak Google, Apple, Authentik lub Keycloak.',
'admin.oidcDisplayName': 'Wyświetlana nazwa',
'admin.oidcIssuer': 'URL wystawcy',
'admin.oidcIssuerHint': 'Adres URL wystawcy OpenID Connect dostawcy, np. https://accounts.google.com',
'admin.oidcSaved': 'Konfiguracja OIDC została zapisana',
'admin.oidcOnlyMode': 'Wyłącz uwierzytelnianie hasłem',
'admin.oidcOnlyModeHint': 'Po włączeniu dozwolone jest tylko logowanie jednokrotne. Logowanie i rejestracja za pomocą hasła są zablokowane.',
// File Types
'admin.fileTypes': 'Dozwolone typy plików',
'admin.fileTypesHint': 'Ustaw, które typy plików mogą być przesyłane przez użytkowników.',
'admin.fileTypesFormat': 'Rozszerzenia oddzielone przecinkami (np. jpg,png,pdf,doc). Użyj * aby zezwolić na wszystkie typy.',
'admin.fileTypesSaved': 'Ustawienia typów plików zostały zapisane',
// Packing Templates & Bag Tracking
'admin.bagTracking.title': 'Kontrola bagażu',
'admin.bagTracking.subtitle': 'Włącz wagę i przypisywanie do toreb dla przedmiotów do pakowania',
'admin.collab.chat.title': 'Czat',
'admin.collab.chat.subtitle': 'Wiadomości w czasie rzeczywistym',
'admin.collab.notes.title': 'Notatki',
'admin.collab.notes.subtitle': 'Wspólne notatki i dokumenty',
'admin.collab.polls.title': 'Ankiety',
'admin.collab.polls.subtitle': 'Ankiety grupowe i głosowania',
'admin.collab.whatsnext.title': 'Co dalej',
'admin.collab.whatsnext.subtitle': 'Sugestie aktywności i następne kroki',
'admin.tabs.config': 'Personalizacja',
'admin.tabs.defaults': 'Domyślne ustawienia',
'admin.defaultSettings.title': 'Domyślne ustawienia użytkownika',
'admin.defaultSettings.description': 'Ustaw domyślne wartości dla całej instancji. Użytkownicy, którzy nie zmienili ustawienia, zobaczą te wartości. Ich własne zmiany zawsze mają pierwszeństwo.',
'admin.defaultSettings.saved': 'Domyślne zapisane',
'admin.defaultSettings.reset': 'Przywróć wbudowaną wartość domyślną',
'admin.defaultSettings.resetToBuiltIn': 'przywróć',
'admin.tabs.templates': 'Szablony pakowania',
'admin.packingTemplates.title': 'Szablony pakowania',
'admin.packingTemplates.subtitle': 'Twórz szablony list pakowania do wielokrotnego użycia dla swoich podróży',
'admin.packingTemplates.create': 'Nowy szablon',
'admin.packingTemplates.namePlaceholder': 'Nazwa szablonu (np. Wakacje na plaży)',
'admin.packingTemplates.empty': 'Nie utworzono jeszcze żadnych szablonów',
'admin.packingTemplates.items': 'przedmiotów',
'admin.packingTemplates.categories': 'kategorie',
'admin.packingTemplates.itemName': 'Nazwa przedmiotu',
'admin.packingTemplates.itemCategory': 'Kategoria',
'admin.packingTemplates.categoryName': 'Nazwa kategorii (np. Ubrania)',
'admin.packingTemplates.addCategory': 'Dodaj kategorię',
'admin.packingTemplates.created': 'Szablon został utworzony',
'admin.packingTemplates.deleted': 'Szablon został usunięty',
'admin.packingTemplates.loadError': 'Nie udało się załadować szablonów',
'admin.packingTemplates.createError': 'Nie udało się utworzyć szablonu',
'admin.packingTemplates.deleteError': 'Nie udało się usunąć szablonu',
'admin.packingTemplates.saveError': 'Nie udało się zapisać szablonu',
// Addons
'admin.tabs.addons': 'Dodatki',
'admin.addons.title': 'Dodatki',
'admin.addons.subtitle': 'Włączaj lub wyłączaj funkcje, aby dostosować swoje doświadczenie w TREK.',
'admin.addons.catalog.packing.name': 'Listy',
'admin.addons.catalog.packing.description': 'Listy pakowania i zadania do wykonania dla Twoich podróży',
'admin.addons.catalog.budget.name': 'Budżet',
'admin.addons.catalog.budget.description': 'Śledź wydatki i planuj budżet podróży',
'admin.addons.catalog.documents.name': 'Dokumenty',
'admin.addons.catalog.documents.description': 'Przechowuj i zarządzaj dokumentami podróżnymi',
'admin.addons.catalog.vacay.name': 'Urlopy',
'admin.addons.catalog.vacay.description': 'Osobisty planer urlopu z widokiem kalendarza',
'admin.addons.catalog.atlas.name': 'Atlas',
'admin.addons.catalog.atlas.description': 'Mapa świata z odwiedzonymi krajami i statystykami podróży',
'admin.addons.catalog.collab.name': 'Współpraca',
'admin.addons.catalog.collab.description': 'Notatki w czasie rzeczywistym, ankiety i czat do planowania podróży',
'admin.addons.catalog.memories.name': 'Zdjęcia (Immich)',
'admin.addons.catalog.memories.description': 'Udostępniaj zdjęcia z podróży za pośrednictwem swojej instancji Immich',
'admin.addons.catalog.mcp.name': 'MCP',
'admin.addons.catalog.mcp.description': 'Model Context Protocol dla integracji asystenta AI',
'admin.addons.subtitleBefore': 'Włączaj lub wyłączaj funkcje, aby dostosować swoje doświadczenie w ',
'admin.addons.subtitleAfter': '.',
'admin.addons.enabled': 'Włączone',
'admin.addons.disabled': 'Wyłączone',
'admin.addons.type.trip': 'Podróż',
'admin.addons.type.global': 'Globalne',
'admin.addons.type.integration': 'Integracja',
'admin.addons.tripHint': 'Dostępne jako zakładka w każdej podróży',
'admin.addons.globalHint': 'Dostępne jako osobna sekcja w menu głównym',
'admin.addons.integrationHint': 'Usługi backendowe i integracje API bez dedykowanej strony',
'admin.addons.toast.updated': 'Dodatek został zaktualizowany',
'admin.addons.toast.error': 'Nie udało się zaktualizować dodatku',
'admin.addons.noAddons': 'Brak dostępnych dodatków',
// Weather info
'admin.weather.title': 'Dane pogodowe',
'admin.weather.badge': 'Od 24 marca 2026',
'admin.weather.description': 'TREK korzysta z Open-Meteo jako źródła danych pogodowych. Open-Meteo to darmowy, otwartoźródłowy serwis pogodowy — klucz API nie jest wymagany.',
'admin.weather.forecast': '16-dniowa prognoza',
'admin.weather.forecastDesc': 'Wcześniej 5 dni (OpenWeatherMap)',
'admin.weather.climate': 'Historyczne dane klimatyczne',
'admin.weather.climateDesc': 'Średnie z ostatnich 85 lat dla dni poza 16-dniową prognozą',
'admin.weather.requests': '10,000 zapytań / dzień',
'admin.weather.requestsDesc': 'Bezpłatnie, bez klucza API',
'admin.weather.locationHint': 'Pogoda jest określana na podstawie pierwszego miejsca z przypisanymi współrzędnymi w danym dniu. Jeśli do dnia nie przypisano żadnego miejsca, jako punkt odniesienia używane jest dowolne miejsce z listy.',
// GitHub
'admin.tabs.mcpTokens': 'Dostęp MCP',
'admin.mcpTokens.title': 'Dostęp MCP',
'admin.mcpTokens.subtitle': 'Zarządzaj sesjami OAuth i tokenami API dla wszystkich użytkowników',
'admin.mcpTokens.sectionTitle': 'Tokeny API',
'admin.mcpTokens.owner': 'Właściciel',
'admin.mcpTokens.tokenName': 'Nazwa tokenu',
'admin.mcpTokens.created': 'Utworzono',
'admin.mcpTokens.lastUsed': 'Ostatnio użyto',
'admin.mcpTokens.never': 'Nigdy',
'admin.mcpTokens.empty': 'Nie utworzono jeszcze żadnych tokenów MCP',
'admin.mcpTokens.deleteTitle': 'Usuń token',
'admin.mcpTokens.deleteMessage': 'Spowoduje to natychmiastowe unieważnienie tokenu. Użytkownik straci dostęp MCP przez ten token.',
'admin.mcpTokens.deleteSuccess': 'Token został usunięty',
'admin.mcpTokens.deleteError': 'Nie udało się usunąć tokenu',
'admin.mcpTokens.loadError': 'Nie udało się załadować tokenów',
'admin.oauthSessions.sectionTitle': 'Sesje OAuth',
'admin.oauthSessions.clientName': 'Klient',
'admin.oauthSessions.owner': 'Właściciel',
'admin.oauthSessions.scopes': 'Uprawnienia',
'admin.oauthSessions.created': 'Utworzono',
'admin.oauthSessions.empty': 'Brak aktywnych sesji OAuth',
'admin.oauthSessions.revokeTitle': 'Unieważnij sesję',
'admin.oauthSessions.revokeMessage': 'Ta sesja OAuth zostanie natychmiast unieważniona. Klient straci dostęp do MCP.',
'admin.oauthSessions.revokeSuccess': 'Sesja unieważniona',
'admin.oauthSessions.revokeError': 'Nie udało się unieważnić sesji',
'admin.oauthSessions.loadError': 'Nie udało się załadować sesji OAuth',
'admin.tabs.github': 'GitHub',
'admin.audit.subtitle': 'Zdarzenia związane z bezpieczeństwem i administracją (kopie zapasowe, użytkownicy, MFA, ustawienia).',
'admin.audit.empty': 'Brak zapisów w historii aktywności.',
'admin.audit.refresh': 'Odśwież',
'admin.audit.loadMore': 'Załaduj więcej',
'admin.audit.showing': '{count} załadowanych · {total} łącznie',
'admin.audit.col.time': 'Czas',
'admin.audit.col.user': 'Użytkownik',
'admin.audit.col.action': 'Akcja',
'admin.audit.col.resource': 'Zasób',
'admin.audit.col.ip': 'IP',
'admin.audit.col.details': 'Szczegóły',
'admin.github.title': 'Historia wydań',
'admin.github.subtitle': 'Najnowsze aktualizacje z {repo}',
'admin.github.latest': 'Najnowsze',
'admin.github.prerelease': 'Wersja testowa',
'admin.github.showDetails': 'Pokaż szczegóły',
'admin.github.hideDetails': 'Ukryj szczegóły',
'admin.github.loadMore': 'Załaduj więcej',
'admin.github.loading': 'Ładowanie...',
'admin.github.error': 'Nie udało się załadować wydań',
'admin.github.by': 'przez',
'admin.github.support': 'Pomóż mi rozwijać TREK',
'admin.update.available': 'Dostępna aktualizacja',
'admin.update.text': 'Dostępna jest wersja TREK {version}. Używasz {current}.',
'admin.update.button': 'Zobacz na GitHubie',
'admin.update.install': 'Zainstaluj aktualizację',
'admin.update.confirmTitle': 'Zainstalować aktualizację?',
'admin.update.confirmText': 'TREK zostanie zaktualizowany z {current} do {version}. Serwer zostanie automatycznie zrestartowany po zakończeniu.',
'admin.update.dataInfo': 'Wszystkie twoje dane (podróże, użytkownicy, klucze API, przesłane pliki, urlopy, Atlas, budżety) zostaną zachowane.',
'admin.update.warning': 'Aplikacja będzie niedostępna przez krótki czas podczas restartu.',
'admin.update.confirm': 'Zaktualizuj',
'admin.update.installing': 'Aktualizowanie...',
'admin.update.success': 'Aktualizacja zakończona! Serwer restartuje się...',
'admin.update.failed': 'Aktualizacja nie powiodła się',
'admin.update.backupHint': 'Zalecamy utworzenie kopii zapasowej przed aktualizacją.',
'admin.update.backupLink': 'Zrób kopię zapasową',
'admin.update.howTo': 'Jak zaktualizować',
'admin.update.dockerText': 'Twoja instancja TREK działa w Dockerze. Aby zaktualizować do {version}, uruchom następujące polecenia na swoim serwerze:',
'admin.update.reloadHint': 'Proszę odświeżyć stronę za kilka sekund.',
// Vacay addon
'vacay.subtitle': 'Planuj i zarządzaj dniami urlopu',
'vacay.settings': 'Ustawienia',
'vacay.year': 'Rok',
'vacay.addYear': 'Dodaj następny rok',
'vacay.addPrevYear': 'Dodaj poprzedni rok',
'vacay.removeYear': 'Usuń rok',
'vacay.removeYearConfirm': 'Usunąć {year}?',
'vacay.removeYearHint': 'Wszystkie wpisy dotyczące urlopów oraz dni wolnych w tym roku zostaną trwale usunięte.',
'vacay.remove': 'Usuń',
'vacay.persons': 'Osoby',
'vacay.noPersons': 'Nie dodano osób',
'vacay.addPerson': 'Dodaj osobę',
'vacay.editPerson': 'Edytuj osobę',
'vacay.removePerson': 'Usuń osobę',
'vacay.removePersonConfirm': 'Usunąć {name}?',
'vacay.removePersonHint': 'Wszystkie wpisy dotyczące urlopów dla tej osoby zostaną trwale usunięte.',
'vacay.personName': 'Imię',
'vacay.personNamePlaceholder': 'Podaj imię',
'vacay.color': 'Kolor',
'vacay.add': 'Dodaj',
'vacay.legend': 'Legenda',
'vacay.publicHoliday': 'Święto państwowe',
'vacay.companyHoliday': 'Urlop firmowy',
'vacay.weekend': 'Weekendowy',
'vacay.modeVacation': 'Urlop',
'vacay.modeCompany': 'Urlop firmowy',
'vacay.entitlement': 'Wymiar',
'vacay.entitlementDays': 'Dni',
'vacay.used': 'Wykorzystane',
'vacay.remaining': 'Pozostało',
'vacay.carriedOver': 'z {year}',
'vacay.blockWeekends': 'Blokuj weekendy',
'vacay.blockWeekendsHint': 'Zapobiegaj wpisywaniu urlopów w weekendy',
'vacay.weekendDays': 'Dni weekendowe',
'vacay.mon': 'Pon',
'vacay.tue': 'Wt',
'vacay.wed': 'Śr',
'vacay.thu': 'Czw',
'vacay.fri': 'Pt',
'vacay.sat': 'Sob',
'vacay.sun': 'Nd',
'vacay.publicHolidays': 'Święta państwowe',
'vacay.publicHolidaysHint': 'Oznacz święta państwowe w kalendarzu',
'vacay.selectCountry': 'Wybierz kraj',
'vacay.selectRegion': 'Wybierz region (opcjonalnie)',
'vacay.addCalendar': 'Dodaj kalendarz',
'vacay.calendarLabel': 'Etykieta (opcjonalnie)',
'vacay.calendarColor': 'Kolor',
'vacay.noCalendars': 'Nie dodano jeszcze kalendarzy świąt',
'vacay.companyHolidays': 'Urlopy firmowe',
'vacay.companyHolidaysHint': 'Pozwala oznaczać dni wolne od pracy w kalendarzu',
'vacay.companyHolidaysNoDeduct': 'Urlopy firmowe nie są odejmowane od puli dni urlopowych.',
'vacay.weekStart': 'Tydzień zaczyna się w',
'vacay.weekStartHint': 'Wybierz czy tydzień zaczyna się w poniedziałek czy niedzielę',
'vacay.carryOver': 'Przeniesienie na kolejny rok',
'vacay.carryOverHint': 'Automatycznie przenosi pozostałe dni urlopowe na kolejny rok',
'vacay.sharing': 'Udostępnianie',
'vacay.sharingHint': 'Udostępnij swój plan urlopów innym użytkownikom TREK',
'vacay.owner': 'Właściciel',
'vacay.shareEmailPlaceholder': 'E-mail użytkownika TREK',
'vacay.shareSuccess': 'Plan został udostępniony pomyślnie',
'vacay.shareError': 'Nie udało się udostępnić planu',
'vacay.dissolve': 'Rozłącz kalendarze',
'vacay.dissolveHint': 'Rozłącz kalendarze ponownie. Twoje wpisy zostaną zachowane.',
'vacay.dissolveAction': 'Rozłącz',
'vacay.dissolved': 'Kalendarz został rozłączony',
'vacay.fusedWith': 'Połączono z',
'vacay.you': 'ty',
'vacay.noData': 'Brak danych',
'vacay.changeColor': 'Zmień kolor',
'vacay.inviteUser': 'Zaproś użytkownika',
'vacay.inviteHint': 'Zaproś innego użytkownika TREK do wspólnego kalendarza urlopów.',
'vacay.selectUser': 'Wybierz użytkownika',
'vacay.sendInvite': 'Wyślij zaproszenie',
'vacay.inviteSent': 'Zaproszenie zostało wysłane',
'vacay.inviteError': 'Nie udało się wysłać zaproszenia',
'vacay.pending': 'oczekujące',
'vacay.noUsersAvailable': 'Brak dostępnych użytkowników',
'vacay.accept': 'Akceptuj',
'vacay.decline': 'Odrzuć',
'vacay.acceptFusion': 'Akceptuj i połącz',
'vacay.inviteTitle': 'Zaproszenie do połączenia',
'vacay.inviteWantsToFuse': 'chce udostępnić kalendarz urlopów.',
'vacay.fuseInfo1': 'Obie strony będą widzieć wszystkie wpisy urlopowe w jednym wspólnym kalendarzu.',
'vacay.fuseInfo2': 'Obie strony mogą tworzyć i edytować wpisy dla drugiej strony.',
'vacay.fuseInfo3': 'Obie strony mogą usuwać wpisy i zmieniać pulę dni urlopowych.',
'vacay.fuseInfo4': 'Ustawienia, takie jak święta państwowe i urlopy firmowe, są współdzielone.',
'vacay.fuseInfo5': 'Połączenie może zostać rozwiązane w dowolnym momencie przez każdą ze stron. Twoje wpisy zostaną zachowane.',
'nav.myTrips': 'Moje podróże',
// Atlas addon
'atlas.subtitle': 'Twój ślad podróżniczy po świecie',
'atlas.countries': 'Kraje',
'atlas.trips': 'Podróże',
'atlas.places': 'Miejsca',
'atlas.unmark': 'Usuń',
'atlas.confirmMark': 'Oznaczyć ten kraj jako odwiedzony?',
'atlas.confirmUnmark': 'Usunąć ten kraj z listy odwiedzonych?',
'atlas.confirmUnmarkRegion': 'Usunąć ten region z listy odwiedzonych?',
'atlas.markVisited': 'Oznacz jako odwiedzony',
'atlas.markVisitedHint': 'Dodaj ten kraj do listy odwiedzonych',
'atlas.markRegionVisitedHint': 'Dodaj ten region do listy odwiedzonych',
'atlas.addToBucket': 'Dodaj do listy marzeń',
'atlas.addPoi': 'Dodaj miejsce',
'atlas.bucketNamePlaceholder': 'Nazwa (kraj, miasto, miejsce...)',
'atlas.month': 'Miesiąc',
'atlas.year': 'Rok',
'atlas.addToBucketHint': 'Zapisz jako miejsce, które chcesz odwiedzić',
'atlas.bucketWhen': 'Kiedy planujesz je odwiedzić?',
'atlas.statsTab': 'Statystyki',
'atlas.bucketTab': 'Lista marzeń',
'atlas.addBucket': 'Dodaj do listy marzeń',
'atlas.bucketNotesPlaceholder': 'Notatki (opcjonalnie)',
'atlas.bucketEmpty': 'Twoja lista marzeń jest pusta',
'atlas.bucketEmptyHint': 'Dodaj miejsca, które chcesz odwiedzić',
'atlas.days': 'Dni',
'atlas.visitedCountries': 'Odwiedzone kraje',
'atlas.cities': 'Miasta',
'atlas.noData': 'Brak danych o podróżach',
'atlas.noDataHint': 'Utwórz podróż i dodaj miejsca, aby zobaczyć swoją mapę świata',
'atlas.lastTrip': 'Ostatnia podróż',
'atlas.nextTrip': 'Następna podróż',
'atlas.daysLeft': 'dni do wyjazdu',
'atlas.streak': 'Seria',
'atlas.years': 'lata',
'atlas.yearInRow': 'rok z rzędu',
'atlas.yearsInRow': 'lat z rzędu',
'atlas.tripIn': 'podróż w',
'atlas.tripsIn': 'podróży w',
'atlas.since': 'od',
'atlas.europe': 'Europa',
'atlas.asia': 'Azja',
'atlas.northAmerica': 'Ameryka Pn.',
'atlas.southAmerica': 'Ameryka Pd.',
'atlas.africa': 'Afryka',
'atlas.oceania': 'Oceania',
'atlas.other': 'Inne',
'atlas.firstVisit': 'Pierwsza podróż',
'atlas.lastVisitLabel': 'Ostatnia podróż',
'atlas.tripSingular': 'Podróż',
'atlas.tripPlural': 'Podróże',
'atlas.placeVisited': 'Odwiedzone miejsce',
'atlas.placesVisited': 'Odwiedzone miejsca',
// Trip Planner
'trip.tabs.plan': 'Plan',
'trip.tabs.reservations': 'Rezerwacje',
'trip.tabs.reservationsShort': 'Rezerwacje',
'trip.tabs.packing': 'Lista pakowania',
'trip.tabs.packingShort': 'Pakowanie',
'trip.tabs.lists': 'Listy',
'trip.tabs.listsShort': 'Listy',
'trip.tabs.budget': 'Budżet',
'trip.tabs.files': 'Pliki',
'trip.loading': 'Ładowanie podróży...',
'trip.mobilePlan': 'Plan',
'trip.mobilePlaces': 'Miejsca',
'trip.toast.placeUpdated': 'Miejsce zostało zaktualizowane',
'trip.toast.placeAdded': 'Miejsce zostało dodane',
'trip.toast.placeDeleted': 'Miejsce zostało usunięte',
'trip.toast.selectDay': 'Proszę najpierw wybrać dzień',
'trip.toast.assignedToDay': 'Miejsce przypisane do dnia',
'trip.toast.reorderError': 'Nie udało się zmienić kolejności',
'trip.toast.reservationUpdated': 'Rezerwacja została zaktualizowana',
'trip.toast.reservationAdded': 'Rezerwacja została dodana',
'trip.toast.deleted': 'Usunięto',
'trip.confirm.deletePlace': 'Czy na pewno chcesz usunąć to miejsce?',
// Day Plan Sidebar
'dayplan.emptyDay': 'Brak miejsc zaplanowanych na ten dzień',
'dayplan.cannotReorderTransport': 'Nie można zmieniać kolejności dla rezerwacji z określoną godziną',
'dayplan.confirmRemoveTimeTitle': 'Usunąć godzinę?',
'dayplan.confirmRemoveTimeBody': 'To miejsce ma określoną godzinę ({time}). Przeniesienie go usunie godzinę i umożliwi swobodne sortowanie.',
'dayplan.confirmRemoveTimeAction': 'Usuń godzinę i przenieś',
'dayplan.cannotDropOnTimed': 'Nie można umieszczać elementów pomiędzy wpisami z określoną godziną',
'dayplan.cannotBreakChronology': 'Spowodowałoby to naruszenie chronologicznej kolejności elementów i rezerwacji z określoną godziną',
'dayplan.addNote': 'Dodaj notatkę',
'dayplan.editNote': 'Edytuj notatkę',
'dayplan.noteAdd': 'Dodaj notatkę',
'dayplan.noteEdit': 'Edytuj notatkę',
'dayplan.noteTitle': 'Notatka',
'dayplan.noteSubtitle': 'Notatka dnia',
'dayplan.totalCost': 'Łączny koszt',
'dayplan.days': 'Dni',
'dayplan.dayN': 'Dzień {n}',
'dayplan.calculating': 'Obliczanie...',
'dayplan.route': 'Trasa',
'dayplan.optimize': 'Optymalizuj',
'dayplan.optimized': 'Trasa została zoptymalizowana',
'dayplan.routeError': 'Nie udało się obliczyć trasy',
'dayplan.toast.needTwoPlaces': 'Potrzeba co najmniej dwóch miejsc, aby zoptymalizować trasę',
'dayplan.toast.routeOptimized': 'Trasa została zoptymalizowana',
'dayplan.toast.noGeoPlaces': 'Nie znaleziono miejsc ze współrzędnymi do obliczenia trasy',
'dayplan.confirmed': 'Potwierdzono',
'dayplan.pendingRes': 'Oczekujące',
'dayplan.pdf': 'PDF',
'dayplan.pdfTooltip': 'Eksportuj plan dnia jako PDF',
'dayplan.pdfError': 'Nie udało się wyeksportować pliku PDF',
// Places Sidebar
'places.addPlace': 'Dodaj miejsce/atrakcję',
'places.importFile': 'Importuj plik',
'places.sidebarDrop': 'Upuść, aby zaimportować',
'places.importFileHint': 'Importuj pliki .gpx, .kml lub .kmz z narzędzi takich jak Google My Maps, Google Earth lub tracker GPS.',
'places.importFileDropHere': 'Kliknij, aby wybrać plik lub przeciągnij i upuść tutaj',
'places.importFileDropActive': 'Upuść plik, aby go wybrać',
'places.importFileUnsupported': 'Nieobsługiwany typ pliku. Użyj .gpx, .kml lub .kmz.',
'places.importFileTooLarge': 'Plik jest za duży. Maksymalny rozmiar przesyłania to {maxMb} MB.',
'places.importFileError': 'Import nie powiódł się',
'places.importAllSkipped': 'Wszystkie miejsca były już w podróży.',
'places.gpxImported': '{count} miejsc zaimportowanych z GPX',
'places.kmlKmzImported': 'Zaimportowano {count} miejsc z KMZ/KML',
'places.urlResolved': 'Miejsce zaimportowane z URL',
'places.kmlKmzSummaryValues': 'Placemarks: {total} • Zaimportowano: {created} • Pominięto: {skipped}',
'places.importGoogleList': 'Lista Google',
'places.assignToDay': 'Do którego dnia dodać?',
'places.all': 'Wszystkie',
'places.unplanned': 'Niezaplanowane',
'places.search': 'Szukaj miejsc...',
'places.allCategories': 'Wszystkie kategorie',
'places.categoriesSelected': 'kategorii',
'places.clearFilter': 'Wyczyść filtr',
'places.count': '{count} miejsc',
'places.countSingular': '1 miejsce',
'places.allPlanned': 'Wszystkie miejsca są zaplanowane',
'places.noneFound': 'Nie znaleziono miejsc',
'places.editPlace': 'Edytuj miejsce',
'places.formName': 'Nazwa',
'places.formNamePlaceholder': 'np. Wieża Eiffla',
'places.formDescription': 'Opis',
'places.formDescriptionPlaceholder': 'Krótki opis...',
'places.formAddress': 'Adres',
'places.formAddressPlaceholder': 'Ulica, miasto, kraj',
'places.formLat': 'Szerokość (np. 48.8566)',
'places.formLng': 'Długość (np. 2.3522)',
'places.formCategory': 'Kategoria',
'places.noCategory': 'Brak kategorii',
'places.categoryNamePlaceholder': 'Nazwa kategorii',
'places.formTime': 'Godzina',
'places.startTime': 'Początek',
'places.endTime': 'Koniec',
'places.endTimeBeforeStart': 'Godzina zakończenia jest przed godziną rozpoczęcia',
'places.timeCollision': 'Nakładanie się godzin z:',
'places.formWebsite': 'Strona internetowa',
'places.formNotes': 'Notatki',
'places.formNotesPlaceholder': 'Osobiste notatki...',
'places.formReservation': 'Rezerwacja',
'places.reservationNotesPlaceholder': 'Notatki z rezerwacji, numer potwierdzenia...',
'places.mapsSearchPlaceholder': 'Szukaj miejsc...',
'places.mapsSearchError': 'Nie udało się wyszukać miejsca.',
'places.loadingDetails': 'Ładowanie szczegółów miejsca…',
'places.osmHint': 'Korzystając z OpenStreetMap (brak zdjęć, godzin otwarcia czy ocen). Dodaj klucz API Google w ustawieniach aby uzyskać pełne dane.',
'places.osmActive': 'Szukaj przez OpenStreetMap (brak zdjęć, ocen czy godzin otwarcia). Dodaj klucz API Google w ustawieniach aby uzyskać pełne dane.',
'places.categoryCreateError': 'Nie udało się utworzyć kategorii',
'places.nameRequired': 'Proszę podać nazwę',
'places.saveError': 'Nie udało się zapisać',
// Place Inspector
'inspector.opened': 'Otwarte',
'inspector.closed': 'Zamknięte',
'inspector.openingHours': 'Godziny otwarcia',
'inspector.showHours': 'Pokaż godziny otwarcia',
'inspector.files': 'Pliki',
'inspector.filesCount': '{count} plików',
'inspector.removeFromDay': 'Usuń z dnia',
'inspector.remove': 'Usuń',
'inspector.addToDay': 'Dodaj do dnia',
'inspector.confirmedRes': 'Potwierdzona rezerwacja',
'inspector.pendingRes': 'Oczekująca rezerwacja',
'inspector.google': 'Otwórz w Mapach Google',
'inspector.website': 'Otwórz stronę internetową',
'inspector.addRes': 'Rezerwacja',
'inspector.editRes': 'Edytuj rezerwację',
'inspector.participants': 'Uczestnicy',
// Reservations
'reservations.title': 'Rezerwacje',
'reservations.empty': 'Brak rezerwacji',
'reservations.emptyHint': 'Dodaj rezerwacje lotów, hoteli i innych',
'reservations.add': 'Dodaj rezerwację',
'reservations.addManual': 'Rezerwacja ręczna',
'reservations.placeHint': 'Wskazówka: Rezerwacje najlepiej tworzyć bezpośrednio z miejsca, aby powiązać je z planem dnia.',
'reservations.confirmed': 'Potwierdzona',
'reservations.pending': 'Oczekująca',
'reservations.summary': '{confirmed} potwierdzonych, {pending} oczekujących',
'reservations.fromPlan': 'Z planu',
'reservations.showFiles': 'Pokaż pliki',
'reservations.editTitle': 'Edytuj rezerwację',
'reservations.status': 'Status',
'reservations.datetime': 'Data i czas',
'reservations.startTime': 'Godzina rozpoczęcia',
'reservations.endTime': 'Godzina zakończenia',
'reservations.date': 'Data',
'reservations.time': 'Godzina',
'reservations.timeAlt': 'Godzina (alternatywna, np. 19:30)',
'reservations.notes': 'Notatki',
'reservations.notesPlaceholder': 'Dodatkowe notatki...',
'reservations.meta.airline': 'Linia lotnicza',
'reservations.meta.flightNumber': 'Numer lotu',
'reservations.meta.from': 'Skąd',
'reservations.meta.to': 'Dokąd',
'reservations.meta.trainNumber': 'Numer pociągu',
'reservations.meta.platform': 'Peron',
'reservations.meta.seat': 'Miejsce',
'reservations.meta.checkIn': 'Zameldowanie',
'reservations.meta.checkInUntil': 'Check-in do',
'reservations.meta.checkOut': 'Wymeldowanie',
'reservations.meta.linkAccommodation': 'Zakwaterowanie',
'reservations.meta.pickAccommodation': 'Link do zakwaterowania',
'reservations.meta.noAccommodation': 'Brak',
'reservations.meta.hotelPlace': 'Zakwaterowanie',
'reservations.meta.pickHotel': 'Wybierz zakwaterowanie',
'reservations.meta.fromDay': 'Od',
'reservations.meta.toDay': 'Do',
'reservations.meta.selectDay': 'Wybierz dzień',
'reservations.type.flight': 'Lot',
'reservations.type.hotel': 'Zakwaterowanie',
'reservations.type.restaurant': 'Restauracja',
'reservations.type.train': 'Pociąg',
'reservations.type.car': 'Samochód',
'reservations.type.cruise': 'Rejs',
'reservations.type.event': 'Wydarzenie',
'reservations.type.tour': 'Wycieczka',
'reservations.type.other': 'Inne',
'reservations.confirm.delete': 'Czy na pewno chcesz usunąć rezerwację "{name}"?',
'reservations.confirm.deleteTitle': 'Usunąć rezerwację?',
'reservations.confirm.deleteBody': 'Rezerwacja "{name}" zostanie trwale usunięta.',
'reservations.toast.updated': 'Rezerwacja została zaktualizowana',
'reservations.toast.removed': 'Rezerwacja została usunięta',
'reservations.toast.fileUploaded': 'Plik został przesłany',
'reservations.toast.uploadError': 'Nie udało się przesłać pliku',
'reservations.newTitle': 'Nowa rezerwacja',
'reservations.bookingType': 'Rodzaj rezerwacji',
'reservations.titleLabel': 'Tytuł',
'reservations.titlePlaceholder': 'np. Ryanair FR123, Hotel Dubaj, ...',
'reservations.locationAddress': 'Lokalizacja / Adres',
'reservations.locationPlaceholder': 'Adres, Lotnisko, Hotel...',
'reservations.confirmationCode': 'Kod rezerwacji',
'reservations.confirmationPlaceholder': 'np. ABC12345',
'reservations.day': 'Dzień',
'reservations.noDay': 'Brak dnia',
'reservations.place': 'Miejsce',
'reservations.noPlace': 'Brak miejsca',
'reservations.pendingSave': 'zostanie zapisane...',
'reservations.uploading': 'Przesyłanie...',
'reservations.attachFile': 'Załącz plik',
'reservations.linkExisting': 'Podlinkuj przesłany plik',
'reservations.toast.saveError': 'Nie udało się zapisać',
'reservations.toast.updateError': 'Nie udało się zaktualizować',
'reservations.toast.deleteError': 'Nie udało się usunąć',
'reservations.confirm.remove': 'Usunąć rezerwację "{name}"?',
'reservations.linkAssignment': 'Przypisz do miejsca',
'reservations.pickAssignment': 'Wybierz miejsce z planu...',
'reservations.noAssignment': 'Brak przypisania (samodzielna)',
'reservations.price': 'Cena',
'reservations.budgetCategory': 'Kategoria budżetu',
'reservations.budgetCategoryPlaceholder': 'np. Transport, Zakwaterowanie',
'reservations.budgetCategoryAuto': 'Auto (na podstawie typu rezerwacji)',
'reservations.budgetHint': 'Wpis budżetowy zostanie automatycznie utworzony podczas zapisywania.',
'reservations.departureDate': 'Wylot',
'reservations.arrivalDate': 'Przylot',
'reservations.departureTime': 'Godz. wylotu',
'reservations.arrivalTime': 'Godz. przylotu',
'reservations.pickupDate': 'Odbiór',
'reservations.returnDate': 'Zwrot',
'reservations.pickupTime': 'Godz. odbioru',
'reservations.returnTime': 'Godz. zwrotu',
'reservations.endDate': 'Data końca',
'reservations.meta.departureTimezone': 'TZ wylotu',
'reservations.meta.arrivalTimezone': 'TZ przylotu',
'reservations.span.departure': 'Wylot',
'reservations.span.arrival': 'Przylot',
'reservations.span.inTransit': 'W tranzycie',
'reservations.span.pickup': 'Odbiór',
'reservations.span.return': 'Zwrot',
'reservations.span.active': 'Aktywny',
'reservations.span.start': 'Start',
'reservations.span.end': 'Koniec',
'reservations.span.ongoing': 'W trakcie',
'reservations.validation.endBeforeStart': 'Data/godzina zakończenia musi być późniejsza niż data/godzina rozpoczęcia',
// Budget
'budget.title': 'Budżet',
'budget.emptyTitle': 'Nie utworzono jeszcze budżetu',
'budget.emptyText': 'Utwórz kategorie i wpisy, aby zaplanować budżet podróży',
'budget.emptyPlaceholder': 'Podaj nazwę kategorii...',
'budget.createCategory': 'Utwórz kategorię',
'budget.category': 'Kategoria',
'budget.categoryName': 'Nazwa kategorii',
'budget.table.name': 'Nazwa',
'budget.table.total': 'Łącznie',
'budget.table.persons': 'Osoby',
'budget.table.days': 'Dni',
'budget.table.perPerson': 'Za osobę',
'budget.table.perDay': 'Za dzień',
'budget.table.perPersonDay': 'Za osobę/dzień',
'budget.table.note': 'Notatka',
'budget.newEntry': 'Nowy wpis',
'budget.defaultEntry': 'Nowy wpis',
'budget.defaultCategory': 'Nowa kategoria',
'budget.total': 'Łącznie',
'budget.totalBudget': 'Całkowity budżet',
'budget.byCategory': 'Według kategorii',
'budget.editTooltip': 'Kliknij, aby edytować',
'budget.linkedToReservation': 'Powiązano z rezerwacją — edytuj nazwę tam',
'budget.confirm.deleteCategory': 'Czy na pewno chcesz usunąć kategorię "{name}" z {count} wpisami?',
'budget.deleteCategory': 'Usuń kategorię',
'budget.perPerson': 'Za osobę',
'budget.paid': 'Zapłacone',
'budget.open': 'Otwarte',
'budget.noMembers': 'Brak przypisanych członków',
'budget.settlement': 'Rozliczenie',
'budget.settlementInfo': 'Kliknij avatar członka przy pozycji w budżecie, aby oznaczyć go na zielono — oznacza to, że zapłacił. Rozliczenie pokaże, kto komu i ile jest winien.',
'budget.netBalances': 'Bilans',
// Files
'files.title': 'Pliki',
'files.pageTitle': 'Pliki i dokumenty',
'files.subtitle': '{count} plików dla {trip}',
'files.downloadPdf': 'Pobierz PDF',
'files.count': '{count} plików',
'files.countSingular': '1 plik',
'files.uploaded': '{count} przesłanych',
'files.uploadError': 'Przesyłanie nie powiodło się',
'files.dropzone': 'Przeciągnij pliki tutaj',
'files.dropzoneHint': 'lub kliknij, aby przeglądać',
'files.allowedTypes': 'Obrazki, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Maks 50 MB',
'files.uploading': 'Przesyłanie...',
'files.filterAll': 'Wszystkie',
'files.filterPdf': 'PDF',
'files.filterImages': 'Obrazki',
'files.filterDocs': 'Dokumenty',
'files.filterCollab': 'Wspólne notatki',
'files.sourceCollab': 'Z wspólnych notatek',
'files.empty': 'Brak plików',
'files.emptyHint': 'Prześlij pliki, aby dodać je do swojej podróży',
'files.openTab': 'Otwórz w nowej karcie',
'files.confirm.delete': 'Czy na pewno chcesz usunąć ten plik?',
'files.toast.deleted': 'Plik został usunięty',
'files.toast.deleteError': 'Nie udało się usunąć pliku',
'files.sourcePlan': 'Plan dni',
'files.sourceBooking': 'Rezerwacje',
'files.attach': 'Załącz',
'files.pasteHint': 'Możesz również wkleić obrazki ze schowka (Ctrl+V)',
'files.trash': 'Kosz',
'files.trashEmpty': 'Kosz jest pusty',
'files.emptyTrash': 'Opróżnij kosz',
'files.restore': 'Przywróć',
'files.star': 'Oznacz',
'files.unstar': 'Usuń oznaczenie',
'files.assign': 'Przypisz',
'files.assignTitle': 'Przypisz plik',
'files.assignPlace': 'Miejsce',
'files.assignBooking': 'Rezerwacja',
'files.unassigned': 'Nieprzypisane',
'files.unlink': 'Usuń link',
'files.toast.trashed': 'Przeniesiono do kosza',
'files.toast.restored': 'Plik został przywrócony',
'files.toast.trashEmptied': 'Kosz został opróżniony',
'files.toast.assigned': 'Plik został przypisany',
'files.toast.assignError': 'Nie udało się przypisać',
'files.toast.restoreError': 'Nie udało się przywrócić',
'files.confirm.permanentDelete': 'Czy na pewno chcesz trwale usunąć ten plik? Tej operacji nie można cofnąć.',
'files.confirm.emptyTrash': 'Czy na pewno chcesz trwale usunąć wszystkie pliki z kosza? Tej operacji nie można cofnąć.',
'files.noteLabel': 'Notatka',
'files.notePlaceholder': 'Dodaj notatkę...',
// Packing
'packing.title': 'Lista pakowania',
'packing.empty': 'Lista pakowania jest pusta',
'packing.import': 'Importuj',
'packing.importTitle': 'Importuj listę pakowania',
'packing.importHint': 'Jedna pozycja w wierszu. Format: kategoria, nazwa, waga w gramach (opcjonalnie), Torba (opcjonalnie), checked/unchecked (opcjonalnie)',
'packing.importPlaceholder': 'Higiena, Szczoteczka do zębów\nOdzież, Koszulki, 200\nDokumenty, Paszport, , Podręczny\nElektronika, Ładowarka, 50, Walizka, checked',
'packing.importCsv': 'Załaduj CSV/TXT',
'packing.importAction': 'Importuj {count}',
'packing.importSuccess': '{count} pozycji zaimportowanych',
'packing.importError': 'Import nie powiódł się',
'packing.importEmpty': 'Brak pozycji do zaimportowania',
'packing.progress': '{packed} z {total} spakowanych ({percent}%)',
'packing.clearChecked': 'Usuń {count} spakowanych',
'packing.clearCheckedShort': 'Usuń {count}',
'packing.suggestions': 'Sugestie',
'packing.suggestionsTitle': 'Dodaj sugestie',
'packing.allSuggested': 'Dodano wszystkie sugestie',
'packing.allPacked': 'Wszystko spakowane!',
'packing.addPlaceholder': 'Dodaj nowy przedmiot...',
'packing.categoryPlaceholder': 'Kategoria...',
'packing.filterAll': 'Wszystkie',
'packing.filterOpen': 'Do spakowania',
'packing.filterDone': 'Spakowane',
'packing.emptyTitle': 'Lista pakowania jest pusta',
'packing.emptyHint': 'Dodaj przedmioty lub użyj sugestii',
'packing.emptyFiltered': 'Brak przedmiotów pasujących do filtra',
'packing.menuRename': 'Zmień nazwę',
'packing.menuCheckAll': 'Zaznacz wszystko',
'packing.menuUncheckAll': 'Odznacz wszystko',
'packing.menuDeleteCat': 'Usuń kategorię',
'packing.saveAsTemplate': 'Zapisz jako szablon',
'packing.templateName': 'Nazwa szablonu',
'packing.templateSaved': 'Lista pakowania zapisana jako szablon',
'packing.noMembers': 'Brak członków podróży',
'packing.addItem': 'Dodaj przedmiot',
'packing.addItemPlaceholder': 'Nazwa przedmiotu...',
'packing.addCategory': 'Dodaj kategorię',
'packing.newCategoryPlaceholder': 'Nazwa kategorii (np. Odzież)',
'packing.applyTemplate': 'Zastosuj szablon',
'packing.template': 'Szablon',
'packing.templateApplied': '{count} przedmiotów dodanych z szablonu',
'packing.templateError': 'Nie udało się zastosować szablonu',
'packing.bags': 'Torby',
'packing.noBag': 'Nieprzypisane',
'packing.totalWeight': 'Waga całkowita',
'packing.bagName': 'Nazwa torby...',
'packing.addBag': 'Dodaj torbę',
'packing.changeCategory': 'Zmień kategorię',
'packing.confirm.clearChecked': 'Czy na pewno chcesz usunąć {count} spakowanych przedmiotów?',
'packing.confirm.deleteCat': 'Czy na pewno chcesz usunąć kategorię "{name}" z {count} przedmiotami?',
'packing.defaultCategory': 'Inne',
'packing.toast.saveError': 'Nie udało się zapisać',
'packing.toast.deleteError': 'Nie udało się usunąć',
'packing.toast.renameError': 'Nie udało się zmienić nazwy',
'packing.toast.addError': 'Nie udało się dodać',
// Packing suggestions
'packing.suggestions.items': [
{ name: 'Paszport', category: 'Dokumenty' },
{ name: 'Dowód osobisty', category: 'Dokumenty' },
{ name: 'Ubezpieczenie turystyczne', category: 'Dokumenty' },
{ name: 'Bilety lotnicze', category: 'Dokumenty' },
{ name: 'Karta kredytowa', category: 'Finanse' },
{ name: 'Gotówka', category: 'Finanse' },
{ name: 'Wiza', category: 'Dokumenty' },
{ name: 'Koszulki', category: 'Odzież' },
{ name: 'Spodnie', category: 'Odzież' },
{ name: 'Bielizna', category: 'Odzież' },
{ name: 'Skarpetki', category: 'Odzież' },
{ name: 'Kurtka', category: 'Odzież' },
{ name: 'Piżama', category: 'Odzież' },
{ name: 'Strój kąpielowy', category: 'Odzież' },
{ name: 'Kurtka przeciwdeszczowa', category: 'Odzież' },
{ name: 'Wygodne buty', category: 'Obuwie' },
{ name: 'Szczoteczka do zębów', category: 'Higiena' },
{ name: 'Pasta do zębów', category: 'Higiena' },
{ name: 'Szampon', category: 'Higiena' },
{ name: 'Dezodorant', category: 'Higiena' },
{ name: 'Krem z filtrem', category: 'Higiena' },
{ name: 'Maszynka do golenia', category: 'Higiena' },
{ name: 'Ładowarka', category: 'Elektronika' },
{ name: 'Powerbank', category: 'Elektronika' },
{ name: 'Słuchawki', category: 'Elektronika' },
{ name: 'Adapter podróżny', category: 'Elektronika' },
{ name: 'Aparat', category: 'Elektronika' },
{ name: 'Leki', category: 'Zdrowie' },
{ name: 'Plastry', category: 'Zdrowie' },
{ name: 'Środek dezynfekujący', category: 'Zdrowie' },
],
// Members / Sharing
'members.shareTrip': 'Udostępnij podróż',
'members.inviteUser': 'Zaproś użytkownika',
'members.selectUser': 'Wybierz użytkownika...',
'members.invite': 'Zaproś',
'members.allHaveAccess': 'Wszyscy użytkownicy mają już dostęp.',
'members.access': 'Dostęp',
'members.person': 'osoba',
'members.persons': 'osoby',
'members.you': 'ty',
'members.owner': 'Właściciel',
'members.leaveTrip': 'Opuść podróż',
'members.removeAccess': 'Usuń dostęp',
'members.confirmLeave': 'Opuścić podróż? Stracisz dostęp.',
'members.confirmRemove': 'Usunąć dostęp dla tego użytkownika?',
'members.loadError': 'Nie udało się załadować członków',
'members.added': 'dodano',
'members.addError': 'Nie udało się dodać członka',
'members.removed': 'Usunięto członka',
'members.removeError': 'Nie udało się usunąć członka',
// Categories (Admin)
'categories.title': 'Kategorie',
'categories.subtitle': 'Zarządzaj kategoriami miejsc',
'categories.new': 'Nowa kategoria',
'categories.empty': 'Brak kategorii',
'categories.namePlaceholder': 'Nazwa kategorii',
'categories.icon': 'Ikona',
'categories.color': 'Kolor',
'categories.customColor': 'Wybierz własny kolor',
'categories.preview': 'Podgląd',
'categories.defaultName': 'Kategoria',
'categories.update': 'Aktualizuj',
'categories.create': 'Utwórz',
'categories.confirm.delete': 'Usunąć kategorię? Miejsca w tej kategorii nie zostaną usunięte.',
'categories.toast.loadError': 'Nie udało się załadować kategorii',
'categories.toast.nameRequired': 'Proszę podać nazwę',
'categories.toast.updated': 'Kategoria została zaktualizowana',
'categories.toast.created': 'Kategoria została utworzona',
'categories.toast.saveError': 'Nie udało się zapisać kategorii',
'categories.toast.deleted': 'Kategoria została usunięta',
'categories.toast.deleteError': 'Nie udało się usunąć kategorii',
// Backup (Admin)
'backup.title': 'Kopia zapasowa danych',
'backup.subtitle': 'Baza danych i wszystkie przesłane pliki',
'backup.refresh': 'Odśwież',
'backup.upload': 'Prześlij kopię zapasową',
'backup.uploading': 'Przesyłanie...',
'backup.create': 'Utwórz kopię zapasową',
'backup.creating': 'Tworzenie...',
'backup.empty': 'Brak kopii zapasowych',
'backup.createFirst': 'Utwórz pierwszą kopię zapasową',
'backup.download': 'Pobierz',
'backup.restore': 'Przywróć',
'backup.confirm.restore': 'Przywrócić kopię zapasową "{name}"?\n\nWszystkie obecne dane zostaną zastąpione danymi z kopii zapasowej.',
'backup.confirm.uploadRestore': 'Przesłać i przywrócić plik kopii zapasowej "{name}"?\n\nWszystkie obecne dane zostaną nadpisane.',
'backup.confirm.delete': 'Usunąć kopię zapasową "{name}"?',
'backup.toast.loadError': 'Nie udało się załadować kopii zapasowych',
'backup.toast.created': 'Kopia zapasowa została utworzona pomyślnie',
'backup.toast.createError': 'Nie udało się utworzyć kopii zapasowej',
'backup.toast.restored': 'Kopia zapasowa została przywrócona. Strona zostanie przeładowana...',
'backup.toast.restoreError': 'Nie udało się przywrócić kopii zapasowej',
'backup.toast.uploadError': 'Nie udało się przesłać kopii zapasowej',
'backup.toast.deleted': 'Kopia zapasowa została usunięta',
'backup.toast.deleteError': 'Nie udało się usunąć kopii zapasowej',
'backup.toast.downloadError': 'Nie udało się pobrać kopii zapasowej',
'backup.toast.settingsSaved': 'Ustawienia automatycznej kopii zapasowej zostały zapisane',
'backup.toast.settingsError': 'Nie udało się zapisać ustawień',
'backup.auto.title': 'Automatyczna kopia zapasowa',
'backup.auto.subtitle': 'Tworzenie automatycznej kopii zapasowej według harmonogramu',
'backup.auto.enable': 'Włącz automatyczną kopię zapasową',
'backup.auto.enableHint': 'Kopie zapasowe będą tworzone automatycznie zgodnie z wybranym harmonogramem',
'backup.auto.interval': 'Częstotliwość',
'backup.auto.hour': 'Uruchom o godzinie',
'backup.auto.hourHint': 'Czas lokalny serwera ({format} format)',
'backup.auto.dayOfWeek': 'Dzień tygodnia',
'backup.auto.dayOfMonth': 'Dzień miesiąca',
'backup.auto.dayOfMonthHint': 'Ograniczone do 128 dla kompatybilności ze wszystkimi miesiącami',
'backup.auto.scheduleSummary': 'Harmonogram',
'backup.auto.summaryDaily': 'Każdego dnia o {hour}:00',
'backup.auto.summaryWeekly': 'Co {day} o {hour}:00',
'backup.auto.summaryMonthly': '{day}. dnia każdego miesiąca o {hour}:00',
'backup.auto.envLocked': 'Docker',
'backup.auto.envLockedHint': 'Automatyczne kopie zapasowe są konfigurowane za pomocą zmiennych środowiskowych Dockera. Aby zmienić te ustawienia, zaktualizuj plik docker-compose.yml i uruchom ponownie kontener.',
'backup.auto.copyEnv': 'Kopiuj zmienne środowiskowe Dockera',
'backup.auto.envCopied': 'Zmienne środowiskowe Dockera zostały skopiowane do schowka',
'backup.auto.keepLabel': 'Usuń stare kopie zapasowe po',
'backup.dow.sunday': 'Nd',
'backup.dow.monday': 'Pon',
'backup.dow.tuesday': 'Wt',
'backup.dow.wednesday': 'Śr',
'backup.dow.thursday': 'Czw',
'backup.dow.friday': 'Pt',
'backup.dow.saturday': 'Sob',
'backup.interval.hourly': 'Co godzinę',
'backup.interval.daily': 'Co dzień',
'backup.interval.weekly': 'Co tydzień',
'backup.interval.monthly': 'Co miesiąc',
'backup.keep.1day': '1 dzień',
'backup.keep.3days': '3 dni',
'backup.keep.7days': '7 dni',
'backup.keep.14days': '14 dni',
'backup.keep.30days': '30 dni',
'backup.keep.forever': 'Przechowuj na zawsze',
// Photos
'photos.title': 'Zdjęcia',
'photos.subtitle': '{count} zdjęć dla {trip}',
'photos.dropHere': 'Przeciągnij zdjęcia tutaj...',
'photos.dropHereActive': 'Przeciągnij zdjęcia tutaj',
'photos.captionForAll': 'Podpis (dla wszystkich)',
'photos.captionPlaceholder': 'Opcjonalny podpis...',
'photos.addCaption': 'Dodaj podpis...',
'photos.allDays': 'Wszystkie dni',
'photos.noPhotos': 'Brak zdjęć',
'photos.uploadHint': 'Prześlij zdjęcia z podróży',
'photos.clickToSelect': 'lub kliknij, aby wybrać',
'photos.linkPlace': 'Połącz z miejscem',
'photos.noPlace': 'Brak miejsca',
'photos.uploadN': 'Prześlij {n} zdjęć',
'photos.linkDay': 'Połącz dzień',
'photos.noDay': 'Brak dnia',
'photos.dayLabel': 'Dzień {number}',
'photos.photoSelected': 'Zdjęcie wybrane',
'photos.photosSelected': 'Zdjęcia wybrane',
'photos.fileTypeHint': 'JPG, PNG, WebP · maks. 10 MB · do 30 zdjęć',
// Backup restore modal
'backup.restoreConfirmTitle': 'Przywrócić kopię zapasową?',
'backup.restoreWarning': 'Wszystkie obecne dane (podróże, miejsca, użytkownicy, przesłane pliki) zostaną trwale zastąpione danymi z kopii zapasowej. Tej operacji nie można cofnąć.',
'backup.restoreTip': 'Wskazówka: Przed przywróceniem utwórz kopię zapasową bieżącej instancji.',
'backup.restoreConfirm': 'Tak, przywróć',
// PDF
'pdf.travelPlan': 'Plan podróży',
'pdf.planned': 'Zaplanowane',
'pdf.costLabel': 'Koszt w EUR',
'pdf.preview': 'Podgląd PDF',
'pdf.saveAsPdf': 'Zapisz jako PDF',
// Planner
'planner.places': 'Miejsca',
'planner.bookings': 'Rezerwacje',
'planner.packingList': 'Lista pakowania',
'planner.documents': 'Dokumenty',
'planner.dayPlan': 'Plan',
'planner.reservations': 'Rezerwacje',
'planner.minTwoPlaces': 'Wymagane są przynajmniej dwa miejsca ze współrzędnymi',
'planner.noGeoPlaces': 'Brak miejsc ze współrzędnymi',
'planner.routeCalculated': 'Trasa została obliczona',
'planner.routeCalcFailed': 'Nie udało się obliczyć trasy',
'planner.routeError': 'Błąd obliczania trasy',
'planner.icsExportFailed': 'Eksport ICS nie powiódł się',
'planner.routeOptimized': 'Trasa została zoptymalizowana',
'planner.reservationUpdated': 'Rezerwacja została zaktualizowana',
'planner.reservationAdded': 'Rezerwacja została dodana',
'planner.confirmDeleteReservation': 'Usunąć rezerwację?',
'planner.reservationDeleted': 'Rezerwacja została usunięta',
'planner.days': 'Dni',
'planner.allPlaces': 'Wszystkie miejsca',
'planner.totalPlaces': '{n} miejsc ogółem',
'planner.noDaysPlanned': 'Nie zaplanowano jeszcze dni',
'planner.editTrip': 'Edytuj podróż \u2192',
'planner.placeOne': '1 miejsce',
'planner.placeN': '{n} miejsc',
'planner.addNote': 'Dodaj notatkę',
'planner.noEntries': 'Brak wpisów dla tego dnia',
'planner.addPlace': 'Dodaj miejsce/atrakcję',
'planner.addPlaceShort': '+ Dodaj miejsce/atrakcję',
'planner.resPending': 'Rezerwacja oczekująca · ',
'planner.resConfirmed': 'Rezerwacja potwierdzona · ',
'planner.notePlaceholder': 'Notatka\u2026',
'planner.noteTimePlaceholder': 'Godzina (opcjonalnie)',
'planner.noteExamplePlaceholder': 'np. S3 o 14:30 z dworca centralnego, prom z molo 7, przerwa na lunch\u2026',
'planner.totalCost': 'Całkowity koszt',
'planner.searchPlaces': 'Szukaj miejsc\u2026',
'planner.allCategories': 'Wszystkie kategorie',
'planner.noPlacesFound': 'Nie znaleziono miejsc',
'planner.addFirstPlace': 'Dodaj pierwsze miejsce',
'planner.noReservations': 'Brak rezerwacji',
'planner.addFirstReservation': 'Dodaj pierwszą rezerwację',
'planner.new': 'Nowy',
'planner.addToDay': '+ Dzień',
'planner.calculating': 'Obliczanie\u2026',
'planner.route': 'Trasa',
'planner.optimize': 'Optymalizuj',
'planner.openGoogleMaps': 'Otwórz w Google Maps',
'planner.selectDayHint': 'Wybierz dzień z listy po lewej, aby zobaczyć jego plan',
'planner.noPlacesForDay': 'Brak miejsc dla tego dnia',
'planner.addPlacesLink': 'Dodaj miejsca \u2192',
'planner.minTotal': 'min. łącznie',
'planner.noReservation': 'Brak rezerwacji',
'planner.removeFromDay': 'Usuń z dnia',
'planner.addToThisDay': 'Dodaj do dnia',
'planner.overview': 'Przegląd',
'planner.noDays': 'Brak dni',
'planner.editTripToAddDays': 'Edytuj podróż, aby dodać dni',
'planner.dayCount': '{n} dni',
'planner.clickToUnlock': 'Kliknij, aby odblokować',
'planner.keepPosition': 'Zachowaj pozycję podczas optymalizacji trasy',
'planner.dayDetails': 'Szczegóły dnia',
'planner.dayN': 'Dzień {n}',
// Dashboard Stats
'stats.countries': 'Kraje',
'stats.cities': 'Miasta',
'stats.trips': 'Podróże',
'stats.places': 'Miejsca',
'stats.worldProgress': 'Postęp',
'stats.visited': 'odwiedzone',
'stats.remaining': 'pozostałe',
'stats.visitedCountries': 'Odwiedzone kraje',
// Day Detail Panel
'day.precipProb': 'Prawdopodobieństwo opadów',
'day.precipitation': 'Opady',
'day.wind': 'Wiatr',
'day.sunrise': 'Wschód słońca',
'day.sunset': 'Zachód słońca',
'day.hourlyForecast': 'Prognoza godzinowa',
'day.climateHint': 'Historyczne średnie — rzeczywista prognoza dostępna na następne 16 dni od tej daty.',
'day.noWeather': 'Brak danych pogodowych. Dodaj miejsce ze współrzędnymi.',
'day.overview': 'Przegląd dnia',
'day.accommodation': 'Zakwaterowanie',
'day.addAccommodation': 'Dodaj zakwaterowanie',
'day.hotelDayRange': 'Zastosuj do dni',
'day.noPlacesForHotel': 'Najpierw dodaj miejsca do swojej podróży',
'day.allDays': 'Wszystkie',
'day.checkIn': 'Zameldowanie',
'day.checkInUntil': 'Do',
'day.checkOut': 'Wymeldowanie',
'day.confirmation': 'Potwierdzenie',
'day.editAccommodation': 'Edytuj zakwaterowanie',
'day.reservations': 'Rezerwacje',
// Photos / Immich
'memories.title': 'Zdjęcia',
'memories.notConnected': 'Immich nie jest połączony',
'memories.notConnectedHint': 'Połącz swoją instancję Immich w ustawieniach, aby przeglądać tutaj swoje zdjęcia z podróży.',
'memories.notConnectedMultipleHint': 'Połącz jednego z tych dostawców zdjęć: {provider_names} w Ustawieniach, aby móc dodawać zdjęcia do tej podróży.',
'memories.noDates': 'Dodaj daty do swojej podróży, aby załadować zdjęcia.',
'memories.noPhotos': 'Nie znaleziono zdjęć',
'memories.noPhotosHint': 'Nie znaleziono zdjęć w Immich dla tego zakresu dat podróży.',
'memories.photosFound': 'zdjęć',
'memories.fromOthers': 'od innych',
'memories.sharePhotos': 'Udostępnij zdjęcia',
'memories.sharing': 'Udostępnianie',
'memories.reviewTitle': 'Przejrzyj swoje zdjęcia',
'memories.reviewHint': 'Kliknij w zdjęcia, aby wykluczyć je z udostępnienia.',
'memories.shareCount': 'Udostępnij {count} zdjęć',
'memories.providerUrl': 'URL serwera',
'memories.providerApiKey': 'Klucz API',
'memories.providerUsername': 'Nazwa użytkownika',
'memories.providerPassword': 'Hasło',
'memories.providerOTP': 'Kod MFA (jeśli włączony)',
'memories.skipSSLVerification': 'Pomiń weryfikację certyfikatu SSL',
'memories.providerUrlHintSynology': 'Uwzględnij ścieżkę aplikacji Photos w URL, np. https://nas:5001/photo',
'memories.testConnection': 'Test',
'memories.connected': 'Połączono',
'memories.disconnected': 'Nie połączono',
'memories.connectionSuccess': 'Połączono z Immich',
'memories.connectionError': 'Nie udało się połączyć z Immich',
'memories.saved': 'Ustawienia {provider_name} zostały zapisane',
'memories.providerDisconnectedBanner': 'Połączenie z {provider_name} zostało utracone. Połącz ponownie w Ustawieniach, aby wyświetlać zdjęcia.',
'memories.saveError': 'Nie można zapisać ustawień {provider_name}',
'memories.addPhotos': 'Dodaj zdjęcia',
'memories.selectPhotos': 'Wybierz zdjęcia z Immich',
'memories.selectPhotosMultiple': 'Wybierz zdjęcia',
'memories.selectHint': 'Dotknij zdjęć, aby je zaznaczyć.',
'memories.selected': 'wybranych',
'memories.addSelected': 'Dodaj {count} zdjęć',
'memories.alreadyAdded': 'Dodano',
'memories.private': 'Prywatne',
'memories.stopSharing': 'Przestań udostępniać',
'memories.oldest': 'Od najstarszych',
'memories.newest': 'Od najnowszych',
'memories.allLocations': 'Wszystkie lokalizacje',
'memories.tripDates': 'Daty podróży',
'memories.allPhotos': 'Wszystkie zdjęcia',
'memories.confirmShareTitle': 'Udostępnić członkom podróży?',
'memories.confirmShareHint': '{count} zdjęć będzie widocznych dla wszystkich członków tej podróży. Możesz później ustawić poszczególne zdjęcia jako prywatne.',
'memories.confirmShareButton': 'Udostępnij zdjęcia',
// Collab Addon
'collab.tabs.chat': 'Czat',
'collab.tabs.notes': 'Notatki',
'collab.tabs.polls': 'Ankiety',
'collab.whatsNext.title': 'Co dalej',
'collab.whatsNext.today': 'Dzisiaj',
'collab.whatsNext.tomorrow': 'Jutro',
'collab.whatsNext.empty': 'Brak nadchodzących aktywności',
'collab.whatsNext.until': 'do',
'collab.whatsNext.emptyHint': 'Aktywności z godzinami pojawią się tutaj',
'collab.chat.send': 'Wyślij',
'collab.chat.placeholder': 'Napisz wiadomość...',
'collab.chat.empty': 'Rozpocznij konwersację',
'collab.chat.emptyHint': 'Wiadomości są widoczne dla wszystkich uczestników podróży',
'collab.chat.emptyDesc': 'Dziel się pomysłami, planami i aktualizacjami z uczestnikami podróży',
'collab.chat.today': 'Dzisiaj',
'collab.chat.yesterday': 'Wczoraj',
'collab.chat.deletedMessage': 'usunięto wiadomość',
'collab.chat.loadMore': 'Załaduj starsze wiadomości',
'collab.chat.justNow': 'teraz',
'collab.chat.minutesAgo': '{n}m temu',
'collab.chat.hoursAgo': '{n}h temu',
'collab.notes.title': 'Notatki',
'collab.notes.new': 'Nowa notatka',
'collab.notes.empty': 'Brak notatek',
'collab.notes.emptyHint': 'Zapisuj pomysły i plany',
'collab.notes.all': 'Wszystkie',
'collab.notes.titlePlaceholder': 'Tytuł notatki',
'collab.notes.contentPlaceholder': 'Napisz coś...',
'collab.notes.categoryPlaceholder': 'Kategoria',
'collab.notes.newCategory': 'Nowa kategoria...',
'collab.notes.category': 'Kategoria',
'collab.notes.noCategory': 'Brak kategorii',
'collab.notes.color': 'Kolor',
'collab.notes.save': 'Zapisz',
'collab.notes.cancel': 'Anuluj',
'collab.notes.edit': 'Edytuj',
'collab.notes.delete': 'Usuń',
'collab.notes.pin': 'Przypnij',
'collab.notes.unpin': 'Odepnij',
'collab.notes.daysAgo': '{n}d temu',
'collab.notes.categorySettings': 'Zarządzaj kategoriami',
'collab.notes.create': 'Utwórz',
'collab.notes.website': 'Strona internetowa',
'collab.notes.websitePlaceholder': 'https://...',
'collab.notes.attachFiles': 'Załącz pliki',
'collab.notes.noCategoriesYet': 'Brak kategorii',
'collab.notes.emptyDesc': 'Utwórz notatkę, aby rozpocząć',
'collab.polls.title': 'Ankiety',
'collab.polls.new': 'Nowa ankieta',
'collab.polls.empty': 'Brak ankiet',
'collab.polls.emptyHint': 'Zapytaj grupę i głosujcie razem',
'collab.polls.question': 'Pytanie',
'collab.polls.questionPlaceholder': 'Co powinniśmy zrobić?',
'collab.polls.addOption': '+ Dodaj opcję',
'collab.polls.optionPlaceholder': 'Opcja {n}',
'collab.polls.create': 'Utwórz ankietę',
'collab.polls.close': 'Zamknij',
'collab.polls.closed': 'Zamknięta',
'collab.polls.votes': '{n} głosów',
'collab.polls.vote': '{n} głos',
'collab.polls.multipleChoice': 'Wielokrotny wybór',
'collab.polls.multiChoice': 'Wielokrotny wybór',
'collab.polls.deadline': 'Koniec',
'collab.polls.option': 'Opcja',
'collab.polls.options': 'Opcje',
'collab.polls.delete': 'Usuń',
'collab.polls.closedSection': 'Zamknięte',
'common.import': 'Importuj',
'common.saved': 'Zapisano',
'trips.reminder': 'Przypomnienie',
'trips.reminderNone': 'Brak',
'trips.reminderDay': 'dzień',
'trips.reminderDays': 'dni',
'trips.reminderCustom': 'Niestandardowe',
'trips.reminderDaysBefore': 'dni przed wyjazdem',
'trips.reminderDisabledHint': 'Przypomnienia o podróżach są wyłączone.',
'dashboard.members': 'Towarzysze',
'dashboard.copyTrip': 'Kopiuj',
'dashboard.copySuffix': 'kopia',
'dashboard.toast.copied': 'Podróż skopiowana!',
'dashboard.toast.copyError': 'Nie udało się skopiować podróży',
'admin.notifications.title': 'Powiadomienia',
'admin.notifications.hint': 'Wybierz jeden kanał powiadomień.',
'admin.notifications.none': 'Wyłączone',
'admin.notifications.email': 'E-mail (SMTP)',
'admin.notifications.webhook': 'Webhook',
'admin.notifications.save': 'Zapisz ustawienia powiadomień',
'admin.notifications.saved': 'Ustawienia powiadomień zapisane',
'admin.notifications.testWebhook': 'Wyślij testowy webhook',
'admin.notifications.testWebhookSuccess': 'Testowy webhook wysłany pomyślnie',
'admin.notifications.testWebhookFailed': 'Testowy webhook nie powiódł się',
'admin.notifications.emailPanel.title': 'Email (SMTP)',
'admin.notifications.webhookPanel.title': 'Webhook',
'admin.notifications.inappPanel.title': 'In-App',
'admin.notifications.inappPanel.hint': 'Powiadomienia w aplikacji są zawsze aktywne i nie można ich globalnie wyłączyć.',
'admin.notifications.adminWebhookPanel.title': 'Webhook admina',
'admin.notifications.adminWebhookPanel.hint': 'Ten webhook służy wyłącznie do powiadomień admina (np. alertów o nowych wersjach). Jest niezależny od webhooków użytkowników i wysyła automatycznie, gdy URL jest skonfigurowany.',
'admin.notifications.adminWebhookPanel.saved': 'URL webhooka admina zapisany',
'admin.notifications.adminWebhookPanel.testSuccess': 'Testowy webhook wysłany pomyślnie',
'admin.notifications.adminWebhookPanel.testFailed': 'Wysyłanie testowego webhooka nie powiodło się',
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Webhook admina wysyła automatycznie, gdy URL jest skonfigurowany',
'admin.notifications.ntfy': 'Ntfy',
'admin.ntfy.hint': 'Pozwala użytkownikom skonfigurować własne tematy ntfy dla powiadomień push. Ustaw domyślny serwer poniżej, aby wstępnie wypełnić ustawienia użytkownika.',
'admin.notifications.testNtfy': 'Wyślij testowe Ntfy',
'admin.notifications.testNtfySuccess': 'Testowe Ntfy wysłane pomyślnie',
'admin.notifications.testNtfyFailed': 'Wysyłanie testowego Ntfy nie powiodło się',
'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy',
'admin.notifications.adminNtfyPanel.hint': 'Ten temat Ntfy jest używany wyłącznie do powiadomień admina (np. alertów o wersjach). Jest niezależny od tematów użytkowników i zawsze wysyła po skonfigurowaniu.',
'admin.notifications.adminNtfyPanel.serverLabel': 'URL serwera Ntfy',
'admin.notifications.adminNtfyPanel.serverHint': 'Używany również jako domyślny serwer dla powiadomień ntfy użytkowników. Pozostaw puste, aby użyć ntfy.sh. Użytkownicy mogą to nadpisać w swoich ustawieniach.',
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
'admin.notifications.adminNtfyPanel.topicLabel': 'Temat admina',
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
'admin.notifications.adminNtfyPanel.tokenLabel': 'Token dostępu (opcjonalne)',
'admin.notifications.adminNtfyPanel.tokenCleared': 'Token dostępu admina wyczyszczony',
'admin.notifications.adminNtfyPanel.saved': 'Ustawienia admin Ntfy zapisane',
'admin.notifications.adminNtfyPanel.test': 'Wyślij testowe Ntfy',
'admin.notifications.adminNtfyPanel.testSuccess': 'Testowe Ntfy wysłane pomyślnie',
'admin.notifications.adminNtfyPanel.testFailed': 'Wysyłanie testowego Ntfy nie powiodło się',
'admin.notifications.adminNtfyPanel.alwaysOnHint': 'Admin Ntfy zawsze wysyła po skonfigurowaniu tematu',
'admin.notifications.adminNotificationsHint': 'Skonfiguruj, które kanały dostarczają powiadomienia admina (np. alerty o wersjach). Webhook wysyła automatycznie, gdy ustawiony jest URL webhooka admina.',
'admin.notifications.tripReminders.title': 'Przypomnienia o podróżach',
'admin.notifications.tripReminders.hint': 'Wysyła powiadomienie z przypomnieniem przed rozpoczęciem podróży (wymaga ustawienia dni przypomnienia dla podróży).',
'admin.notifications.tripReminders.enabled': 'Przypomnienia o podróżach włączone',
'admin.notifications.tripReminders.disabled': 'Przypomnienia o podróżach wyłączone',
'admin.webhook.hint': 'Pozwól użytkownikom konfigurować własne adresy URL webhooka dla powiadomień (Discord, Slack itp.).',
'settings.notificationsDisabled': 'Powiadomienia nie są skonfigurowane.',
'settings.notificationPreferences.noChannels': 'Brak skonfigurowanych kanałów powiadomień. Poproś administratora o skonfigurowanie powiadomień e-mail lub webhook.',
'settings.webhookUrl.label': 'URL webhooka',
'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...',
'settings.webhookUrl.hint': 'Wprowadź adres URL webhooka Discord, Slack lub własnego, aby otrzymywać powiadomienia.',
'settings.webhookUrl.saved': 'URL webhooka zapisany',
'settings.webhookUrl.test': 'Testuj',
'settings.webhookUrl.testSuccess': 'Testowy webhook wysłany pomyślnie',
'settings.webhookUrl.testFailed': 'Wysyłanie testowego webhooka nie powiodło się',
'settings.ntfyUrl.topicLabel': 'Temat Ntfy',
'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts',
'settings.ntfyUrl.serverLabel': 'URL serwera Ntfy (opcjonalne)',
'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh',
'settings.ntfyUrl.hint': 'Wprowadź swój temat Ntfy, aby otrzymywać powiadomienia push. Pozostaw pole serwera puste, aby użyć domyślnego ustawienia skonfigurowanego przez administratora.',
'settings.ntfyUrl.tokenLabel': 'Token dostępu (opcjonalne)',
'settings.ntfyUrl.tokenHint': 'Wymagane dla tematów chronionych hasłem.',
'settings.ntfyUrl.saved': 'Ustawienia Ntfy zapisane',
'settings.ntfyUrl.test': 'Testuj',
'settings.ntfyUrl.testSuccess': 'Testowe powiadomienie Ntfy wysłane pomyślnie',
'settings.ntfyUrl.testFailed': 'Testowe powiadomienie Ntfy nie powiodło się',
'settings.ntfyUrl.tokenCleared': 'Token dostępu wyczyszczony',
'settings.notificationPreferences.inapp': 'In-App',
'settings.notificationPreferences.webhook': 'Webhook',
'settings.notificationPreferences.email': 'Email',
'settings.notificationPreferences.ntfy': 'Ntfy',
'settings.notificationsActive': 'Aktywny kanał',
'settings.notificationsManagedByAdmin': 'Zdarzenia konfigurowane przez administratora.',
'settings.mustChangePassword': 'Musisz zmienić hasło przed kontynuowaniem.',
'login.setNewPassword': 'Ustaw nowe hasło',
'login.setNewPasswordHint': 'Musisz zmienić hasło.',
'atlas.searchCountry': 'Szukaj kraju...',
'trip.loadingPhotos': 'Ładowanie zdjęć...',
'places.importNaverList': 'Lista Naver',
'places.importList': 'Import listy',
'places.googleListHint': 'Wklej link do listy Google Maps.',
'places.googleListImported': 'Zaimportowano {count} miejsc',
'places.googleListError': 'Nie udało się zaimportować listy',
'places.naverListHint': 'Wklej link do udostępnionej listy Naver Maps, aby zaimportować wszystkie miejsca.',
'places.naverListImported': 'Zaimportowano {count} miejsc z "{list}"',
'places.naverListError': 'Nie udało się zaimportować listy Naver Maps',
'places.viewDetails': 'Zobacz szczegóły',
'inspector.trackStats': 'Statystyki trasy',
'budget.exportCsv': 'Eksportuj CSV',
'budget.table.date': 'Data',
'memories.testFirst': 'Najpierw przetestuj połączenie',
'memories.linkAlbum': 'Połącz album',
'memories.selectAlbum': 'Wybierz album Immich',
'memories.selectAlbumMultiple': 'Wybierz album',
'memories.noAlbums': 'Nie znaleziono albumów',
'memories.syncAlbum': 'Synchronizuj album',
'memories.unlinkAlbum': 'Odłącz album',
'memories.photos': 'zdjęcia',
'memories.error.loadAlbums': 'Nie udało się załadować albumów',
'memories.error.linkAlbum': 'Nie udało się połączyć albumu',
'memories.error.unlinkAlbum': 'Nie udało się odłączyć albumu',
'memories.error.syncAlbum': 'Nie udało się zsynchronizować albumu',
'memories.error.loadPhotos': 'Nie udało się załadować zdjęć',
'memories.error.addPhotos': 'Nie udało się dodać zdjęć',
'memories.error.removePhoto': 'Nie udało się usunąć zdjęcia',
'memories.error.toggleSharing': 'Nie udało się zaktualizować udostępniania',
'collab.chat.reply': 'Odpowiedz',
'admin.tabs.permissions': 'Uprawnienia',
'perm.title': 'Ustawienia uprawnień',
'perm.subtitle': 'Kontroluj uprawnienia w aplikacji',
'perm.saved': 'Ustawienia uprawnień zapisane',
'perm.resetDefaults': 'Przywróć domyślne',
'perm.customized': 'dostosowane',
'perm.level.admin': 'Tylko admin',
'perm.level.tripOwner': 'Właściciel podróży',
'perm.level.tripMember': 'Członkowie podróży',
'perm.level.everybody': 'Wszyscy',
'perm.cat.trip': 'Zarządzanie podróżami',
'perm.cat.members': 'Zarządzanie członkami',
'perm.cat.files': 'Pliki',
'perm.cat.content': 'Treść i harmonogram',
'perm.cat.extras': 'Budżet, pakowanie i współpraca',
'perm.action.trip_create': 'Tworzenie podróży',
'perm.action.trip_edit': 'Edytowanie podróży',
'perm.action.trip_delete': 'Usuwanie podróży',
'perm.action.trip_archive': 'Archiwizacja podróży',
'perm.action.trip_cover_upload': 'Przesyłanie okładki',
'perm.action.member_manage': 'Zarządzanie członkami',
'perm.action.file_upload': 'Przesyłanie plików',
'perm.action.file_edit': 'Edytowanie plików',
'perm.action.file_delete': 'Usuwanie plików',
'perm.action.place_edit': 'Zarządzanie miejscami',
'perm.action.day_edit': 'Edytowanie dni',
'perm.action.reservation_edit': 'Zarządzanie rezerwacjami',
'perm.action.budget_edit': 'Zarządzanie budżetem',
'perm.action.packing_edit': 'Zarządzanie pakowaniem',
'perm.action.collab_edit': 'Współpraca',
'perm.action.share_manage': 'Zarządzanie udostępnianiem',
'perm.actionHint.trip_create': 'Kto może tworzyć nowe podróże',
'perm.actionHint.trip_edit': 'Kto może edytować szczegóły podróży',
'perm.actionHint.trip_delete': 'Kto może usunąć podróż',
'perm.actionHint.trip_archive': 'Kto może archiwizować podróż',
'perm.actionHint.trip_cover_upload': 'Kto może zmieniać okładkę',
'perm.actionHint.member_manage': 'Kto może zapraszać lub usuwać członków',
'perm.actionHint.file_upload': 'Kto może przesyłać pliki',
'perm.actionHint.file_edit': 'Kto może edytować pliki',
'perm.actionHint.file_delete': 'Kto może usuwać pliki',
'perm.actionHint.place_edit': 'Kto może zarządzać miejscami',
'perm.actionHint.day_edit': 'Kto może edytować dni i przypisania',
'perm.actionHint.reservation_edit': 'Kto może zarządzać rezerwacjami',
'perm.actionHint.budget_edit': 'Kto może zarządzać budżetem',
'perm.actionHint.packing_edit': 'Kto może zarządzać pakowaniem',
'perm.actionHint.collab_edit': 'Kto może korzystać ze współpracy',
'perm.actionHint.share_manage': 'Kto może zarządzać linkami',
'undo.button': 'Cofnij',
'undo.tooltip': 'Cofnij: {action}',
'undo.assignPlace': 'Miejsce przypisane do dnia',
'undo.removeAssignment': 'Miejsce usunięte z dnia',
'undo.reorder': 'Kolejność zmieniona',
'undo.optimize': 'Trasa zoptymalizowana',
'undo.deletePlace': 'Miejsce usunięte',
'undo.moveDay': 'Miejsce przeniesione',
'undo.lock': 'Blokada przełączona',
'undo.importGpx': 'Import GPX',
'undo.importKeyholeMarkup': 'Import KMZ/KML',
'undo.importGoogleList': 'Import Google Maps',
'undo.importNaverList': 'Import Naver Maps',
'undo.addPlace': 'Miejsce dodane',
'undo.done': 'Cofnięto: {action}',
'notifications.title': 'Powiadomienia',
'notifications.markAllRead': 'Oznacz wszystkie jako przeczytane',
'notifications.deleteAll': 'Usuń wszystkie',
'notifications.showAll': 'Pokaż wszystkie',
'notifications.empty': 'Brak powiadomień',
'notifications.emptyDescription': 'Jesteś na bieżąco!',
'notifications.all': 'Wszystkie',
'notifications.unreadOnly': 'Nieprzeczytane',
'notifications.markRead': 'Oznacz jako przeczytane',
'notifications.markUnread': 'Oznacz jako nieprzeczytane',
'notifications.delete': 'Usuń',
'notifications.system': 'System',
'notifications.synologySessionCleared.title': 'Synology Photos rozłączone',
'notifications.synologySessionCleared.text': 'Twój serwer lub konto zostało zmienione — przejdź do Ustawień, aby ponownie przetestować połączenie.',
'notifications.versionAvailable.title': 'Dostępna aktualizacja',
'notifications.versionAvailable.text': 'TREK {version} jest już dostępny.',
'notifications.versionAvailable.button': 'Zobacz szczegóły',
'notifications.test.title': 'Testowe powiadomienie od {actor}',
'notifications.test.text': 'To jest powiadomienie testowe.',
'notifications.test.booleanTitle': '{actor} prosi o akceptację',
'notifications.test.booleanText': 'Testowe powiadomienie z wyborem.',
'notifications.test.accept': 'Zatwierdź',
'notifications.test.decline': 'Odrzuć',
'notifications.test.navigateTitle': 'Sprawdź coś',
'notifications.test.navigateText': 'Testowe powiadomienie nawigacyjne.',
'notifications.test.goThere': 'Przejdź tam',
'notifications.test.adminTitle': 'Komunikat administracyjny',
'notifications.test.adminText': '{actor} wysłał testowe powiadomienie.',
'notifications.test.tripTitle': '{actor} opublikował w Twojej podróży',
'notifications.test.tripText': 'Testowe powiadomienie dla podróży "{trip}".',
// Todo
'todo.subtab.packing': 'Lista pakowania',
'todo.subtab.todo': 'Do zrobienia',
'todo.completed': 'ukończono',
'todo.filter.all': 'Wszystkie',
'todo.filter.open': 'Otwarte',
'todo.filter.done': 'Gotowe',
'todo.uncategorized': 'Bez kategorii',
'todo.namePlaceholder': 'Nazwa zadania',
'todo.descriptionPlaceholder': 'Opis (opcjonalnie)',
'todo.unassigned': 'Nieprzypisane',
'todo.noCategory': 'Brak kategorii',
'todo.hasDescription': 'Ma opis',
'todo.addItem': 'Dodaj nowe zadanie...',
'todo.newCategory': 'Nazwa kategorii',
'todo.addCategory': 'Dodaj kategorię',
'todo.newItem': 'Nowe zadanie',
'todo.empty': 'Brak zadań. Dodaj zadanie, aby zacząć!',
'todo.filter.my': 'Moje zadania',
'todo.filter.overdue': 'Przeterminowane',
'todo.sidebar.tasks': 'Zadania',
'todo.sidebar.categories': 'Kategorie',
'todo.detail.title': 'Zadanie',
'todo.detail.description': 'Opis',
'todo.detail.category': 'Kategoria',
'todo.detail.dueDate': 'Termin',
'todo.detail.assignedTo': 'Przypisano do',
'todo.detail.delete': 'Usuń',
'todo.detail.save': 'Zapisz zmiany',
'todo.detail.create': 'Utwórz zadanie',
'todo.detail.priority': 'Priorytet',
'todo.detail.noPriority': 'Brak',
'todo.sortByPrio': 'Priorytet',
// Notifications — dev test events
'notif.test.title': '[Test] Powiadomienie',
'notif.test.simple.text': 'To jest proste powiadomienie testowe.',
'notif.test.boolean.text': 'Czy akceptujesz to powiadomienie testowe?',
'notif.test.navigate.text': 'Kliknij poniżej, aby przejść do pulpitu.',
// Notifications
'notif.trip_invite.title': 'Zaproszenie do podróży',
'notif.trip_invite.text': '{actor} zaprosił Cię do {trip}',
'notif.booking_change.title': 'Rezerwacja zaktualizowana',
'notif.booking_change.text': '{actor} zaktualizował rezerwację w {trip}',
'notif.trip_reminder.title': 'Przypomnienie o podróży',
'notif.trip_reminder.text': 'Twoja podróż {trip} zbliża się!',
'notif.vacay_invite.title': 'Zaproszenie Vacay Fusion',
'notif.vacay_invite.text': '{actor} zaprosił Cię do połączenia planów urlopowych',
'notif.photos_shared.title': 'Zdjęcia udostępnione',
'notif.photos_shared.text': '{actor} udostępnił {count} zdjęcie/zdjęcia w {trip}',
'notif.collab_message.title': 'Nowa wiadomość',
'notif.collab_message.text': '{actor} wysłał wiadomość w {trip}',
'notif.packing_tagged.title': 'Zadanie pakowania',
'notif.packing_tagged.text': '{actor} przypisał Cię do {category} w {trip}',
'notif.version_available.title': 'Nowa wersja dostępna',
'notif.version_available.text': 'TREK {version} jest teraz dostępny',
'notif.action.view_trip': 'Zobacz podróż',
'notif.action.view_collab': 'Zobacz wiadomości',
'notif.action.view_packing': 'Zobacz pakowanie',
'notif.action.view_photos': 'Zobacz zdjęcia',
'notif.action.view_vacay': 'Zobacz Vacay',
'notif.action.view_admin': 'Przejdź do admina',
'notif.action.view': 'Zobacz',
'notif.action.accept': 'Akceptuj',
'notif.action.decline': 'Odrzuć',
'notif.generic.title': 'Powiadomienie',
'notif.generic.text': 'Masz nowe powiadomienie',
'notif.dev.unknown_event.title': '[DEV] Nieznane zdarzenie',
'notif.dev.unknown_event.text': 'Typ zdarzenia "{event}" nie jest zarejestrowany w EVENT_NOTIFICATION_CONFIG',
// Journey, Dashboard, Nav, DayPlan
'common.justNow': 'przed chwilą',
'common.hoursAgo': '{count} godz. temu',
'common.daysAgo': '{count} dn. temu',
'memories.saveRouteNotConfigured': 'Trasa zapisu nie jest skonfigurowana dla tego dostawcy',
'memories.testRouteNotConfigured': 'Trasa testowa nie jest skonfigurowana dla tego dostawcy',
'memories.fillRequiredFields': 'Proszę wypełnić wszystkie wymagane pola',
'journey.search.placeholder': 'Szukaj podróży…',
'journey.search.noResults': 'Brak podróży pasujących do „{query}"',
'journey.title': 'Dziennik podróży',
'journey.subtitle': 'Dokumentuj swoje podróże na bieżąco',
'journey.new': 'Nowy dziennik podróży',
'journey.create': 'Utwórz',
'journey.titlePlaceholder': 'Dokąd jedziesz?',
'journey.empty': 'Brak dzienników podróży',
'journey.emptyHint': 'Zacznij dokumentować swoją następną podróż',
'journey.deleted': 'Dziennik podróży usunięty',
'journey.createError': 'Nie udało się utworzyć dziennika podróży',
'journey.deleteError': 'Nie udało się usunąć dziennika podróży',
'journey.deleteConfirmTitle': 'Usuń',
'journey.deleteConfirmMessage': 'Usunąć „{title}"? Tej operacji nie można cofnąć.',
'journey.deleteConfirmGeneric': 'Czy na pewno chcesz to usunąć?',
'journey.notFound': 'Nie znaleziono dziennika podróży',
'journey.photos': 'Zdjęcia',
'journey.timelineEmpty': 'Brak przystanków',
'journey.timelineEmptyHint': 'Dodaj zameldowanie lub napisz wpis w dzienniku, aby rozpocząć',
'journey.status.draft': 'Szkic',
'journey.status.active': 'Aktywny',
'journey.status.completed': 'Zakończony',
'journey.status.upcoming': 'Nadchodzący',
'journey.status.archived': 'Zarchiwizowano',
'journey.checkin.add': 'Zamelduj się',
'journey.checkin.namePlaceholder': 'Nazwa miejsca',
'journey.checkin.notesPlaceholder': 'Notatki (opcjonalnie)',
'journey.checkin.save': 'Zapisz',
'journey.checkin.error': 'Nie udało się zapisać zameldowania',
'journey.entry.add': 'Dziennik',
'journey.entry.edit': 'Edytuj wpis',
'journey.entry.titlePlaceholder': 'Tytuł (opcjonalnie)',
'journey.entry.bodyPlaceholder': 'Co się dziś wydarzyło?',
'journey.entry.save': 'Zapisz',
'journey.entry.error': 'Nie udało się zapisać wpisu',
'journey.photo.add': 'Zdjęcie',
'journey.photo.uploadError': 'Przesyłanie nie powiodło się',
'journey.share.share': 'Udostępnij',
'journey.share.public': 'Publiczny',
'journey.share.linkCopied': 'Publiczny link skopiowany',
'journey.share.disabled': 'Udostępnianie publiczne wyłączone',
'journey.editor.titlePlaceholder': 'Nadaj temu momentowi nazwę...',
'journey.editor.bodyPlaceholder': 'Opowiedz historię tego dnia...',
'journey.editor.placePlaceholder': 'Lokalizacja (opcjonalnie)',
'journey.editor.tagsPlaceholder': 'Tagi: ukryty skarb, najlepszy posiłek, warto wrócić...',
'journey.visibility.private': 'Prywatny',
'journey.visibility.shared': 'Udostępniony',
'journey.visibility.public': 'Publiczny',
'journey.emptyState.title': 'Twoja historia zaczyna się tutaj',
'journey.emptyState.subtitle': 'Zamelduj się w miejscu lub napisz swój pierwszy wpis w dzienniku',
'journey.frontpage.subtitle': 'Zamień swoje podróże w historie, których nigdy nie zapomnisz',
'journey.frontpage.createJourney': 'Utwórz dziennik podróży',
'journey.frontpage.activeJourney': 'Aktywny dziennik podróży',
'journey.frontpage.allJourneys': 'Wszystkie dzienniki podróży',
'journey.frontpage.journeys': 'dzienniki podróży',
'journey.frontpage.createNew': 'Utwórz nowy dziennik podróży',
'journey.frontpage.createNewSub': 'Wybierz podróże, pisz historie, dziel się przygodami',
'journey.frontpage.live': 'Na żywo',
'journey.frontpage.synced': 'Zsynchronizowany',
'journey.frontpage.continueWriting': 'Kontynuuj pisanie',
'journey.frontpage.updated': 'Zaktualizowano {time}',
'journey.frontpage.suggestionLabel': 'Podróż właśnie się zakończyła',
'journey.frontpage.suggestionText': 'Zamień <strong>{title}</strong> w dziennik podróży',
'journey.frontpage.dismiss': 'Odrzuć',
'journey.frontpage.journeyName': 'Nazwa dziennika podróży',
'journey.frontpage.namePlaceholder': 'np. Azja Południowo-Wschodnia 2026',
'journey.frontpage.selectTrips': 'Wybierz podróże',
'journey.frontpage.tripsSelected': 'podróży wybranych',
'journey.frontpage.trips': 'podróże',
'journey.frontpage.placesImported': 'miejsc zostanie zaimportowanych',
'journey.frontpage.places': 'miejsca',
'journey.detail.backToJourney': 'Powrót do dziennika podróży',
'journey.detail.syncedWithTrips': 'Zsynchronizowany z podróżami',
'journey.detail.addEntry': 'Dodaj wpis',
'journey.detail.newEntry': 'Nowy wpis',
'journey.detail.editEntry': 'Edytuj wpis',
'journey.detail.noEntries': 'Brak wpisów',
'journey.detail.noEntriesHint': 'Dodaj podróż, aby rozpocząć ze szkieletowymi wpisami',
'journey.detail.noPhotos': 'Brak zdjęć',
'journey.detail.noPhotosHint': 'Prześlij zdjęcia do wpisów lub przeglądaj bibliotekę Immich/Synology',
'journey.detail.journeyStats': 'Statystyki podróży',
'journey.detail.syncedTrips': 'Zsynchronizowane podróże',
'journey.detail.noTripsLinked': 'Brak powiązanych podróży',
'journey.detail.contributors': 'Współtwórcy',
'journey.detail.readMore': 'Czytaj dalej',
'journey.detail.prosCons': 'Zalety i wady',
'journey.detail.photos': 'zdjęć',
'journey.detail.day': 'Dzień {number}',
'journey.detail.places': 'miejsc',
'journey.stats.days': 'Dni',
'journey.stats.cities': 'Miasta',
'journey.stats.entries': 'Wpisy',
'journey.stats.photos': 'Zdjęcia',
'journey.stats.places': 'Miejsca',
'journey.skeletons.show': 'Pokaż sugestie',
'journey.skeletons.hide': 'Ukryj sugestie',
'journey.verdict.lovedIt': 'Świetne',
'journey.verdict.couldBeBetter': 'Mogłoby być lepiej',
'journey.synced.places': 'miejsca',
'journey.synced.synced': 'zsynchronizowane',
'journey.editor.uploadPhotos': 'Prześlij zdjęcia',
'journey.editor.uploading': 'Przesyłanie...',
'journey.editor.fromGallery': 'Z galerii',
'journey.editor.allPhotosAdded': 'Wszystkie zdjęcia już dodane',
'journey.editor.writeStory': 'Napisz swoją historię...',
'journey.editor.prosCons': 'Zalety i wady',
'journey.editor.pros': 'Zalety',
'journey.editor.cons': 'Wady',
'journey.editor.proPlaceholder': 'Coś świetnego...',
'journey.editor.conPlaceholder': 'Nie tak świetne...',
'journey.editor.addAnother': 'Dodaj kolejny',
'journey.editor.date': 'Data',
'journey.editor.location': 'Lokalizacja',
'journey.editor.searchLocation': 'Szukaj lokalizacji...',
'journey.editor.mood': 'Nastrój',
'journey.editor.weather': 'Pogoda',
'journey.editor.photoFirst': '1.',
'journey.editor.makeFirst': 'Ustaw jako 1.',
'journey.editor.searching': 'Szukanie...',
'journey.mood.amazing': 'Niesamowity',
'journey.mood.good': 'Dobry',
'journey.mood.neutral': 'Neutralny',
'journey.mood.rough': 'Ciężki',
'journey.weather.sunny': 'Słonecznie',
'journey.weather.partly': 'Częściowe zachmurzenie',
'journey.weather.cloudy': 'Pochmurno',
'journey.weather.rainy': 'Deszczowo',
'journey.weather.stormy': 'Burzowo',
'journey.weather.cold': 'Śnieżnie',
'journey.trips.linkTrip': 'Powiąż podróż',
'journey.trips.searchTrip': 'Szukaj podróży',
'journey.trips.searchPlaceholder': 'Nazwa podróży lub cel...',
'journey.trips.noTripsAvailable': 'Brak dostępnych podróży',
'journey.trips.link': 'Powiąż',
'journey.trips.tripLinked': 'Podróż powiązana',
'journey.trips.linkFailed': 'Powiązanie podróży nie powiodło się',
'journey.trips.addTrip': 'Dodaj podróż',
'journey.trips.unlinkTrip': 'Odłącz podróż',
'journey.trips.unlinkMessage': 'Odłączyć „{title}"? Wszystkie zsynchronizowane wpisy i zdjęcia z tej podróży zostaną trwale usunięte. Tej operacji nie można cofnąć.',
'journey.trips.unlink': 'Odłącz',
'journey.trips.tripUnlinked': 'Podróż odłączona',
'journey.trips.unlinkFailed': 'Odłączenie podróży nie powiodło się',
'journey.trips.noTripsLinkedSettings': 'Brak powiązanych podróży',
'journey.contributors.invite': 'Zaproś współtwórcę',
'journey.contributors.searchUser': 'Szukaj użytkownika',
'journey.contributors.searchPlaceholder': 'Nazwa użytkownika lub e-mail...',
'journey.contributors.noUsers': 'Nie znaleziono użytkowników',
'journey.contributors.role': 'Rola',
'journey.contributors.added': 'Współtwórca dodany',
'journey.contributors.addFailed': 'Dodawanie współtwórcy nie powiodło się',
'journey.share.publicShare': 'Udostępnianie publiczne',
'journey.share.createLink': 'Utwórz link udostępniania',
'journey.share.linkCreated': 'Link udostępniania utworzony',
'journey.share.createFailed': 'Tworzenie linku nie powiodło się',
'journey.share.copy': 'Kopiuj',
'journey.share.copied': 'Skopiowano!',
'journey.share.timeline': 'Oś czasu',
'journey.share.gallery': 'Galeria',
'journey.share.map': 'Mapa',
'journey.share.removeLink': 'Usuń link udostępniania',
'journey.share.linkDeleted': 'Link udostępniania usunięty',
'journey.share.deleteFailed': 'Usunięcie nie powiodło się',
'journey.share.updateFailed': 'Aktualizacja nie powiodła się',
// Journey — Invite
'journey.invite.role': 'Rola',
'journey.invite.viewer': 'Obserwator',
'journey.invite.editor': 'Redaktor',
'journey.invite.invite': 'Zaproś',
'journey.invite.inviting': 'Zapraszanie...',
'journey.settings.title': 'Ustawienia dziennika podróży',
'journey.settings.coverImage': 'Zdjęcie okładkowe',
'journey.settings.changeCover': 'Zmień okładkę',
'journey.settings.addCover': 'Dodaj zdjęcie okładkowe',
'journey.settings.name': 'Nazwa',
'journey.settings.subtitle': 'Podtytuł',
'journey.settings.subtitlePlaceholder': 'np. Tajlandia, Wietnam i Kambodża',
'journey.settings.endJourney': 'Archiwizuj podróż',
'journey.settings.reopenJourney': 'Przywróć podróż',
'journey.settings.archived': 'Podróż zarchiwizowana',
'journey.settings.reopened': 'Podróż wznowiona',
'journey.settings.endDescription': 'Ukrywa odznakę Na żywo. Możesz wznowić w dowolnym momencie.',
'journey.settings.delete': 'Usuń',
'journey.settings.deleteJourney': 'Usuń dziennik podróży',
'journey.settings.deleteMessage': 'Usunąć „{title}"? Wszystkie wpisy i zdjęcia zostaną utracone.',
'journey.settings.saved': 'Ustawienia zapisane',
'journey.settings.saveFailed': 'Zapisywanie nie powiodło się',
'journey.settings.coverUpdated': 'Okładka zaktualizowana',
'journey.settings.coverFailed': 'Przesyłanie nie powiodło się',
'journey.settings.failedToDelete': 'Nie udało się usunąć',
'journey.entries.deleteTitle': 'Usuń wpis',
'journey.photosUploaded': '{count} zdjęć przesłanych',
'journey.photosAdded': '{count} zdjęć dodanych',
'journey.public.notFound': 'Nie znaleziono',
'journey.public.notFoundMessage': 'Ten dziennik podróży nie istnieje lub link wygasł.',
'journey.public.readOnly': 'Tylko do odczytu · Publiczny dziennik podróży',
'journey.public.tagline': 'Travel Resource & Exploration Kit',
'journey.public.sharedVia': 'Udostępnione przez',
'journey.public.madeWith': 'Stworzone z',
'journey.pdf.journeyBook': 'Książka podróży',
'journey.pdf.madeWith': 'Stworzone z TREK',
'journey.pdf.day': 'Dzień',
'journey.pdf.theEnd': 'Koniec',
'journey.pdf.saveAsPdf': 'Zapisz jako PDF',
'journey.pdf.pages': 'stron',
'journey.picker.tripPeriod': 'Okres podróży',
'journey.picker.dateRange': 'Zakres dat',
'journey.picker.allPhotos': 'Wszystkie zdjęcia',
'journey.picker.albums': 'Albumy',
'journey.picker.selected': 'wybranych',
'journey.picker.addTo': 'Dodaj do',
'journey.picker.newGallery': 'Nowa galeria',
'journey.picker.selectAll': 'Zaznacz wszystko',
'journey.picker.deselectAll': 'Odznacz wszystko',
'journey.picker.noAlbums': 'Nie znaleziono albumów',
'journey.picker.selectDate': 'Wybierz datę',
'journey.picker.search': 'Szukaj',
'dashboard.greeting.morning': 'Dzień dobry,',
'dashboard.greeting.afternoon': 'Dzień dobry,',
'dashboard.greeting.evening': 'Dobry wieczór,',
'dashboard.mobile.liveNow': 'Na żywo',
'dashboard.mobile.tripProgress': 'Postęp podróży',
'dashboard.mobile.daysLeft': 'Pozostało {count} dni',
'dashboard.mobile.places': 'Miejsca',
'dashboard.mobile.buddies': 'Towarzysze',
'dashboard.mobile.newTrip': 'Nowa podróż',
'dashboard.mobile.currency': 'Waluta',
'dashboard.mobile.timezone': 'Strefa czasowa',
'dashboard.mobile.upcomingTrips': 'Nadchodzące podróże',
'dashboard.mobile.yourTrips': 'Twoje podróże',
'dashboard.mobile.trips': 'podróże',
'dashboard.mobile.starts': 'Początek',
'dashboard.mobile.duration': 'Czas trwania',
'dashboard.mobile.day': 'dzień',
'dashboard.mobile.days': 'dni',
'dashboard.mobile.ongoing': 'W trakcie',
'dashboard.mobile.startsToday': 'Zaczyna się dziś',
'dashboard.mobile.tomorrow': 'Jutro',
'dashboard.mobile.inDays': 'Za {count} dni',
'dashboard.mobile.inMonths': 'Za {count} miesięcy',
'dashboard.mobile.completed': 'Zakończone',
'dashboard.mobile.currencyConverter': 'Przelicznik walut',
'nav.profile': 'Profil',
'nav.bottomSettings': 'Ustawienia',
'nav.bottomAdmin': 'Ustawienia administratora',
'nav.bottomLogout': 'Wyloguj się',
'nav.bottomAdminBadge': 'Administrator',
'dayplan.mobile.addPlace': 'Dodaj miejsce',
'dayplan.mobile.searchPlaces': 'Szukaj miejsc...',
'dayplan.mobile.allAssigned': 'Wszystkie miejsca przypisane',
'dayplan.mobile.noMatch': 'Brak wyników',
'dayplan.mobile.createNew': 'Utwórz nowe miejsce',
'admin.addons.catalog.journey.name': 'Dziennik podróży',
'admin.addons.catalog.journey.description': 'Śledzenie podróży i dziennik z zameldowaniami, zdjęciami i codziennymi historiami',
// OAuth scope groups
'oauth.scope.group.trips': 'Podróże',
'oauth.scope.group.places': 'Miejsca',
'oauth.scope.group.atlas': 'Atlas',
'oauth.scope.group.packing': 'Pakowanie',
'oauth.scope.group.todos': 'Zadania',
'oauth.scope.group.budget': 'Budżet',
'oauth.scope.group.reservations': 'Rezerwacje',
'oauth.scope.group.collab': 'Współpraca',
'oauth.scope.group.notifications': 'Powiadomienia',
'oauth.scope.group.vacay': 'Urlop',
'oauth.scope.group.geo': 'Geo',
'oauth.scope.group.weather': 'Pogoda',
// OAuth scope labels & descriptions
'oauth.scope.trips:read.label': 'Przeglądaj podróże i itineraria',
'oauth.scope.trips:read.description': 'Odczytuj podróże, dni, notatki i członków',
'oauth.scope.trips:write.label': 'Edytuj podróże i itineraria',
'oauth.scope.trips:write.description': 'Twórz i aktualizuj podróże, dni, notatki oraz zarządzaj członkami',
'oauth.scope.trips:delete.label': 'Usuń podróże',
'oauth.scope.trips:delete.description': 'Trwale usuń całe podróże — ta akcja jest nieodwracalna',
'oauth.scope.trips:share.label': 'Zarządzaj linkami udostępniania',
'oauth.scope.trips:share.description': 'Twórz, aktualizuj i unieważniaj publiczne linki udostępniania',
'oauth.scope.places:read.label': 'Przeglądaj miejsca i dane mapy',
'oauth.scope.places:read.description': 'Odczytuj miejsca, przypisania dni, tagi i kategorie',
'oauth.scope.places:write.label': 'Zarządzaj miejscami',
'oauth.scope.places:write.description': 'Twórz, aktualizuj i usuń miejsca, przypisania i tagi',
'oauth.scope.atlas:read.label': 'Przeglądaj Atlas',
'oauth.scope.atlas:read.description': 'Odczytuj odwiedzone kraje, regiony i listę marzeń',
'oauth.scope.atlas:write.label': 'Zarządzaj Atlasem',
'oauth.scope.atlas:write.description': 'Oznaczaj kraje i regiony jako odwiedzone, zarządzaj listą marzeń',
'oauth.scope.packing:read.label': 'Przeglądaj listy pakowania',
'oauth.scope.packing:read.description': 'Odczytuj przedmioty, torby i przypisania kategorii',
'oauth.scope.packing:write.label': 'Zarządzaj listami pakowania',
'oauth.scope.packing:write.description': 'Dodawaj, aktualizuj, usuwaj, zaznaczaj i porządkuj przedmioty i torby',
'oauth.scope.todos:read.label': 'Przeglądaj listy zadań',
'oauth.scope.todos:read.description': 'Odczytuj zadania podróży i przypisania kategorii',
'oauth.scope.todos:write.label': 'Zarządzaj listami zadań',
'oauth.scope.todos:write.description': 'Twórz, aktualizuj, zaznaczaj, usuwaj i porządkuj zadania',
'oauth.scope.budget:read.label': 'Przeglądaj budżet',
'oauth.scope.budget:read.description': 'Odczytuj pozycje budżetu i zestawienie wydatków',
'oauth.scope.budget:write.label': 'Zarządzaj budżetem',
'oauth.scope.budget:write.description': 'Twórz, aktualizuj i usuń pozycje budżetu',
'oauth.scope.reservations:read.label': 'Przeglądaj rezerwacje',
'oauth.scope.reservations:read.description': 'Odczytuj rezerwacje i szczegóły zakwaterowania',
'oauth.scope.reservations:write.label': 'Zarządzaj rezerwacjami',
'oauth.scope.reservations:write.description': 'Twórz, aktualizuj, usuwaj i porządkuj rezerwacje',
'oauth.scope.collab:read.label': 'Przeglądaj współpracę',
'oauth.scope.collab:read.description': 'Odczytuj notatki, ankiety i wiadomości',
'oauth.scope.collab:write.label': 'Zarządzaj współpracą',
'oauth.scope.collab:write.description': 'Twórz, aktualizuj i usuń notatki, ankiety i wiadomości',
'oauth.scope.notifications:read.label': 'Przeglądaj powiadomienia',
'oauth.scope.notifications:read.description': 'Odczytuj powiadomienia i liczby nieprzeczytanych',
'oauth.scope.notifications:write.label': 'Zarządzaj powiadomieniami',
'oauth.scope.notifications:write.description': 'Oznaczaj powiadomienia jako przeczytane i odpowiadaj na nie',
'oauth.scope.vacay:read.label': 'Przeglądaj plany urlopowe',
'oauth.scope.vacay:read.description': 'Odczytuj dane planowania urlopu, wpisy i statystyki',
'oauth.scope.vacay:write.label': 'Zarządzaj planami urlopowymi',
'oauth.scope.vacay:write.description': 'Twórz i zarządzaj wpisami urlopowymi, świętami i planami zespołu',
'oauth.scope.geo:read.label': 'Mapy i geokodowanie',
'oauth.scope.geo:read.description': 'Wyszukuj miejsca, rozwiązuj adresy URL map i odwrotnie geokoduj współrzędne',
'oauth.scope.weather:read.label': 'Prognozy pogody',
'oauth.scope.weather:read.description': 'Pobieraj prognozy pogody dla miejsc i dat podróży',
// System notices
'system_notice.welcome_v1.title': 'Witaj w TREK',
'system_notice.welcome_v1.body': 'Twój kompleksowy planer podróży. Twórz trasy, dziel się wycieczkami ze znajomymi i bądź zorganizowany — online i offline.',
'system_notice.welcome_v1.cta_label': 'Zaplanuj podróż',
'system_notice.welcome_v1.hero_alt': 'Malownicze miejsce z interfejsem planowania TREK',
'system_notice.welcome_v1.highlight_plan': 'Trasy dzień po dniu',
'system_notice.welcome_v1.highlight_share': 'Współpraca z partnerami podróży',
'system_notice.welcome_v1.highlight_offline': 'Działa offline na telefonie',
'system_notice.dev_test_modal.title': '[Dev] Test notice',
'system_notice.dev_test_modal.body': 'This is a dev-only test notice.',
'system_notice.pager.prev': 'Poprzednie powiadomienie',
'system_notice.pager.next': 'Następne powiadomienie',
'system_notice.pager.counter': '{current} / {total}',
'system_notice.pager.goto': 'Przejdź do powiadomienia {n}',
'system_notice.pager.position': 'Powiadomienie {current} z {total}',
// System notices — 3.0.0 upgrade
'system_notice.v3_photos.title': 'Zdjęcia zostały przeniesione w 3.0',
'system_notice.v3_photos.body': '**Zdjęcia** w Planerze Podróży zostały usunięte. Twoje zdjęcia są bezpieczne — TREK nigdy nie modyfikował Twojej biblioteki Immich lub Synology.\n\nZdjęcia są teraz dostępne w dodatku **Journey**. Journey jest opcjonalny — jeśli jeszcze nie jest dostępny, poproś administratora o jego włączenie w Admin → Dodatki.',
'system_notice.v3_journey.title': 'Poznaj Journey — dziennik podróży',
'system_notice.v3_journey.body': 'Dokumentuj swoje podróże jako bogatrze opowieści z osami czasu, galeriami i mapami interaktywnymi.',
'system_notice.v3_journey.cta_label': 'Otwórz Journey',
'system_notice.v3_journey.highlight_timeline': 'Dzienna oś czasu i galeria',
'system_notice.v3_journey.highlight_photos': 'Import z Immich lub Synology',
'system_notice.v3_journey.highlight_share': 'Udostępnij publicznie — bez logowania',
'system_notice.v3_journey.highlight_export': 'Eksportuj jako książkę fotograficzną PDF',
'system_notice.v3_features.title': 'Więcej nowości w 3.0',
'system_notice.v3_features.body': 'Kilka innych rzeczy wartych uwagi w tym wydaniu.',
'system_notice.v3_features.highlight_dashboard': 'Przeprojektowany pulpit mobile-first',
'system_notice.v3_features.highlight_offline': 'Pełny tryb offline jako PWA',
'system_notice.v3_features.highlight_search': 'Autouzupełnianie wyszukiwania miejsc',
'system_notice.v3_features.highlight_import': 'Import miejsc z plików KMZ/KML',
// System notices — MCP OAuth 2.1 upgrade
'system_notice.v3_mcp.title': 'MCP: aktualizacja OAuth 2.1',
'system_notice.v3_mcp.body': 'Integracja MCP została całkowicie przeprojektowana. OAuth 2.1 jest teraz zalecaną metodą uwierzytelniania. Statyczne tokeny (trek_…) są przestarzałe i zostaną usunięte w przyszłej wersji.',
'system_notice.v3_mcp.highlight_oauth': 'OAuth 2.1 zalecany (mcp-remote)',
'system_notice.v3_mcp.highlight_scopes': '24 szczegółowe zakresy uprawnień',
'system_notice.v3_mcp.highlight_deprecated': 'Statyczne tokeny trek_ przestarzałe',
'system_notice.v3_mcp.highlight_tools': 'Rozszerzony zestaw narzędzi i promptów',
// System notices — personal thank you
'system_notice.v3_thankyou.title': 'Osobiste słowo ode mnie',
'system_notice.v3_thankyou.body': 'Zanim pójdziesz dalej — chcę się na chwilę zatrzymać.\n\nTREK zaczął się jako poboczny projekt, który zbudowałem na własne podróże. Nigdy nie wyobrażałem sobie, że wyrośnie na coś, czemu 4000 z was ufa przy planowaniu swoich przygód. Każda gwiazdka, każdy issue, każda prośba o funkcję — czytam je wszystkie i to one trzymają mnie na nogach podczas późnych nocy między pracą na pełny etat a uczelnią.\n\nChcę, żebyście wiedzieli: TREK zawsze będzie open source, zawsze self-hosted, zawsze wasz. Bez śledzenia, bez subskrypcji, bez haczyków. Po prostu narzędzie zbudowane przez kogoś, kto kocha podróżowanie tak samo jak wy.\n\nSzczególne podziękowania dla [jubnl](https://github.com/jubnl) — stałeś się niesamowitym współpracownikiem. Tak wiele z tego, co czyni wersję 3.0 wspaniałą, nosi twój ślad. Dziękuję, że uwierzyłeś w ten projekt, gdy był jeszcze surowy.\n\nI każdemu z was, kto zgłosił błąd, przetłumaczył tekst, podzielił się TREK z przyjacielem lub po prostu użył go do zaplanowania podróży — **dziękuję**. To wy jesteście powodem, dla którego to istnieje.\n\nZa wiele kolejnych wspólnych przygód.\n\n— Maurice\n\n---\n\n[Dołącz do społeczności na Discordzie](https://discord.gg/7Q6M6jDwzf)\n\nJeśli TREK sprawia, że Twoje podróże są lepsze, [mała kawa](https://ko-fi.com/mauriceboe) zawsze pomaga utrzymać światła włączone.',
}
export default pl