import type { TranslationStrings } from '../types'; const settings: TranslationStrings = { '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.mapProvider': 'Dostawca mapy', 'settings.mapProviderHint': 'Dotyczy map Trip Planner i Journey. Atlas zawsze używa Leaflet.', 'settings.mapLeafletSubtitle': 'Klasyczne 2D, dowolne kafelki rastrowe', 'settings.mapMapboxSubtitle': 'Kafelki wektorowe, budynki 3D i teren', 'settings.mapExperimental': 'Eksperymentalne', 'settings.mapMapboxToken': 'Token dostępu Mapbox', 'settings.mapMapboxTokenHint': 'Token publiczny (pk.*) z', 'settings.mapMapboxTokenLink': 'mapbox.com → Tokeny dostępu', 'settings.mapStyle': 'Styl mapy', 'settings.mapStylePlaceholder': 'Wybierz styl Mapbox', 'settings.mapStyleHint': 'Preset lub własny URL mapbox://styles/USER/ID', 'settings.map3dBuildings': 'Budynki 3D i teren', 'settings.map3dHint': 'Nachylenie + prawdziwe wytłaczanie budynków 3D — działa w każdym stylu, także satelitarnym.', 'settings.mapHighQuality': 'Tryb wysokiej jakości', 'settings.mapHighQualityHint': 'Antialiasing + projekcja globusa dla ostrzejszych krawędzi i realistycznego widoku świata.', 'settings.mapHighQualityWarning': 'Może wpływać na wydajność na słabszych urządzeniach.', 'settings.mapTipLabel': 'Wskazówka:', 'settings.mapTip': 'Kliknij prawym przyciskiem i przeciągnij, aby obrócić/pochylić mapę. Środkowy przycisk dodaje miejsce (prawy jest zarezerwowany dla obrotu).', '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.blurBookingCodes': 'Rozmyj kody rezerwacji', 'settings.optimizeFromAccommodation': 'Optymalizuj trasę od zakwaterowania', 'settings.optimizeFromAccommodationHint': 'Przy optymalizacji dnia rozpocznij trasę w hotelu, w którym się budzisz, a zakończ ją w tym, do którego się zameldujesz tego wieczoru.', 'settings.notifications': 'Powiadomienia', 'settings.notifyTripInvite': 'Zaproszenia do podróży', 'settings.notifyBookingChange': 'Zmiany w rezerwacjach', 'settings.notifyTripReminder': 'Przypomnienia o podróżach', 'settings.notifyTodoDue': 'Zadanie z terminem', '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', '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 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 i 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.oauth.modal.machineClient': 'Klient maszynowy (bez logowania przez przeglądarkę)', 'settings.oauth.modal.machineClientHint': 'Używa grantu client_credentials — nie są potrzebne URI przekierowania. Token jest wystawiany bezpośrednio przez client_id + client_secret i działa w Twoim imieniu w ramach wybranych zakresów.', 'settings.oauth.modal.machineClientUsage': 'Pobierz token: POST /oauth/token z grant_type=client_credentials, client_id i client_secret. Bez przeglądarki, bez tokenu odświeżania.', 'settings.oauth.badge.machine': 'maszynowy', '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.supporters.badge': 'Miesięczni Patroni', 'settings.about.supporters.title': 'Towarzystwo podróży dla TREK', 'settings.about.supporters.subtitle': 'Gdy planujesz kolejną trasę, te osoby planują razem ze mną przyszłość TREK. Ich comiesięczny wkład idzie bezpośrednio na rozwój i realnie przepracowane godziny — aby TREK pozostał Open Source.', 'settings.about.supporters.since': 'patron od {date}', 'settings.about.supporters.tierEmpty': 'Bądź pierwszy', 'settings.about.supporter.tier.noReturnTicket': 'No Return Ticket', 'settings.about.supporter.tier.lostLuggageVip': 'Lost Luggage VIP', 'settings.about.supporter.tier.businessClassDreamer': 'Business Class Dreamer', 'settings.about.supporter.tier.budgetTraveller': 'Budget Traveller', 'settings.about.supporter.tier.hostelBunkmate': 'Hostel Bunkmate', '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', 'settings.bookingLabels': 'Etykiety tras rezerwacji', 'settings.bookingLabelsHint': 'Pokazuje nazwy stacji / lotnisk na mapie. Gdy wyłączone, wyświetlana jest tylko ikona.', '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.', "settings.currency": "Currency", "settings.currencyHint": "All amounts in Costs are converted to and shown in this currency.", 'settings.passkey.title': 'Klucze dostępu', 'settings.passkey.description': 'Loguj się szybciej i z odpornością na phishing za pomocą klucza dostępu — odcisku palca, twarzy, kodu PIN lub klucza sprzętowego. Twoje hasło pozostaje jako zapasowa opcja.', 'settings.passkey.notConfigured': 'Klucze dostępu są włączone, ale nie zostały jeszcze w pełni skonfigurowane na tym serwerze. Poproś administratora o ustawienie domeny WebAuthn.', 'settings.passkey.add': 'Dodaj klucz dostępu', 'settings.passkey.addTitle': 'Dodaj klucz dostępu', 'settings.passkey.passwordPrompt': 'Potwierdź swoje aktualne hasło, a następnie postępuj zgodnie z komunikatem na urządzeniu.', 'settings.passkey.passwordRequired': 'Twoje aktualne hasło jest wymagane.', 'settings.passkey.namePlaceholder': 'Nazwa (opcjonalnie, np. "iPhone")', 'settings.passkey.addedToast': 'Klucz dostępu został dodany', 'settings.passkey.added': 'Dodano', 'settings.passkey.addError': 'Nie udało się dodać klucza dostępu', 'settings.passkey.cancelled': 'Konfiguracja klucza dostępu anulowana', 'settings.passkey.deleted': 'Klucz dostępu został usunięty', 'settings.passkey.deleteConfirm': 'Usunąć ten klucz dostępu? Potwierdź swoim hasłem.', 'settings.passkey.rename': 'Zmień nazwę', 'settings.passkey.defaultName': 'Klucz dostępu', 'settings.passkey.synced': 'Zsynchronizowany', 'settings.passkey.deviceBound': 'To urządzenie', 'settings.passkey.lastUsed': 'Ostatnio użyty', 'settings.passkey.neverUsed': 'Nigdy nieużywany', 'settings.mapPoiPill': 'Odkrywaj miejsca na mapie', 'settings.mapPoiPillHint': 'Pokaż na mapie wyprawy pasek z kategoriami, aby znaleźć pobliskie restauracje, hotele i więcej z OpenStreetMap.', 'settings.airtrail.title': 'AirTrail', 'settings.airtrail.hint': 'Połącz swój własny AirTrail, aby importować i synchronizować loty. Utwórz klucz API w AirTrail w sekcji Ustawienia → Bezpieczeństwo.', 'settings.airtrail.url': 'Adres URL instancji', 'settings.airtrail.apiKey': 'Klucz API', 'settings.airtrail.apiKeyPlaceholder': 'Klucz API typu Bearer', 'settings.airtrail.apiKeyHint': 'Wygenerowany w AirTrail w sekcji Ustawienia → Bezpieczeństwo. Przechowywany w postaci zaszyfrowanej.', 'settings.airtrail.allowInsecureTls': 'Zezwalaj na certyfikaty samopodpisane', 'settings.airtrail.allowInsecureTlsHint': 'Włącz tylko dla zaufanej instancji we własnej sieci.', 'settings.airtrail.connected': 'Połączono', 'settings.airtrail.notConnected': 'Nie połączono', 'settings.airtrail.toast.saved': 'Zapisano połączenie z AirTrail', 'settings.airtrail.toast.saveError': 'Nie udało się zapisać połączenia', 'settings.airtrail.test.button': 'Testuj połączenie', 'settings.airtrail.test.success': 'Połączono — znaleziono {count} lot(y/ów)', 'settings.airtrail.test.failed': 'Połączenie nieudane', }; export default settings;