Files
TREK/shared/src/i18n/pl/dashboard.ts
T
Maurice 6d2dd37414 feat(dashboard): mobile layout, glass UI, context bottom nav + OIDC PKCE (#1079)
* feat(dashboard): mobile layout, glass tiles, plain-text countdown, place photos

- Rework the mobile dashboard: cover hero, separate boarding-pass card,
  trimmed atlas (trips + days only), stacked widgets
- New floating bottom tab bar with a centred context-aware + button
  (new trip / place / journey / entry depending on the page)
- Move profile + notifications into a small top strip on the dashboard
- Desktop: glassmorphic tiles (light + dark), neutral dark palette,
  plain-text countdown module, real place photos in the boarding pass

* i18n(dashboard): translate new dashboard keys across all locales

Fill the dashboard-rework keys (hero, atlas, fx, tz, upcoming, copy
dialog, aria labels, countdown) that were left as English placeholders,
plus the new startsIn/aria keys, for all 19 languages.

* feat(oidc): send PKCE (S256) in the OIDC login flow

The OIDC client now generates a code_verifier per login, sends the
S256 code_challenge on the authorize request and the code_verifier on
the token exchange. Works whether the provider has PKCE optional or
required (fixes login against providers that require PKCE, e.g. Pocket ID).
2026-05-27 23:19:03 +02:00

168 lines
8.5 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.
import type { TranslationStrings } from '../types';
const dashboard: TranslationStrings = {
'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.newTripSub': 'Zaplanuj nową podróż od zera',
'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',
'dashboard.members': 'Towarzysze',
'dashboard.copyTrip': 'Kopiuj',
'dashboard.copySuffix': 'kopia',
'dashboard.toast.copied': 'Podróż skopiowana!',
'dashboard.toast.copyError': 'Nie udało się skopiować podróży',
'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',
'dashboard.filter.planned': 'Zaplanowane',
'dashboard.hero.badgeLive': 'NA ŻYWO',
'dashboard.hero.badgeToday': 'ZACZYNA SIĘ DZIŚ',
'dashboard.hero.badgeTomorrow': 'JUTRO',
'dashboard.hero.badgeNext': 'NASTĘPNA',
'dashboard.hero.badgeRecent': 'NIEDAWNO',
'dashboard.hero.tripDates': 'Daty podróży',
'dashboard.hero.noDates': 'Brak ustawionych dat',
'dashboard.hero.travelerOne': '{count} podróżny',
'dashboard.hero.travelerMany': '{count} podróżnych',
'dashboard.hero.destinationOne': '{count} cel',
'dashboard.hero.destinationMany': '{count} celów',
'dashboard.hero.dayUnitOne': 'dzień',
'dashboard.hero.dayUnitMany': 'dni',
'dashboard.hero.dayLeft': 'Pozostał dzień',
'dashboard.hero.daysLeft': 'Pozostało dni',
'dashboard.hero.lastDay': 'Ostatni dzień',
'dashboard.hero.untilStart': 'Do startu',
'dashboard.hero.startsIn': 'Start za',
'dashboard.atlas.countriesVisited': 'Atlas · Odwiedzone kraje',
'dashboard.atlas.ofTotal': 'z {total}',
'dashboard.atlas.tripsTotal': 'Podróże łącznie',
'dashboard.atlas.placesMapped': '{count} miejsc na mapie',
'dashboard.atlas.daysTraveled': 'Dni w podróży',
'dashboard.atlas.daysUnit': 'dni',
'dashboard.atlas.acrossAllTrips': 'we wszystkich podróżach',
'dashboard.atlas.distanceFlown': 'Przebyty dystans',
'dashboard.atlas.kmUnit': 'km',
'dashboard.atlas.aroundEquator': '≈ {count}× dookoła równika',
'dashboard.card.idea': 'Pomysł',
'dashboard.card.buddyOne': 'Towarzysz',
'dashboard.fx.from': 'Z',
'dashboard.fx.to': 'Na',
'dashboard.fx.unavailable': 'Kurs niedostępny',
'dashboard.tz.searchPlaceholder': 'Szukaj strefy czasowej…',
'dashboard.tz.empty': 'Brak innych stref czasowych — dodaj jedną za pomocą +',
'dashboard.upcoming.title': 'Nadchodzące rezerwacje',
'dashboard.upcoming.empty': 'Nic jeszcze nie zarezerwowano.',
'dashboard.confirm.copy.title': 'Skopiować tę podróż?',
'dashboard.confirm.copy.willCopy': 'Zostanie skopiowane',
'dashboard.confirm.copy.will1': 'Dni, miejsca i przypisania do dni',
'dashboard.confirm.copy.will2': 'Noclegi i rezerwacje',
'dashboard.confirm.copy.will3': 'Pozycje budżetu i kolejność kategorii',
'dashboard.confirm.copy.will4': 'Listy pakowania (niezaznaczone)',
'dashboard.confirm.copy.will5': 'Zadania (nieprzypisane i niezaznaczone)',
'dashboard.confirm.copy.will6': 'Notatki dnia',
'dashboard.confirm.copy.wontCopy': 'Nie zostanie skopiowane',
'dashboard.confirm.copy.wont1': 'Współpracownicy i przypisania członków',
'dashboard.confirm.copy.wont2': 'Wspólne notatki, ankiety i wiadomości',
'dashboard.confirm.copy.wont3': 'Pliki i zdjęcia',
'dashboard.confirm.copy.wont4': 'Tokeny udostępniania',
'dashboard.confirm.copy.confirm': 'Kopiuj podróż',
'dashboard.aria.toggleView': 'Przełącz widok',
'dashboard.aria.filter': 'Filtruj',
'dashboard.aria.duplicate': 'Duplikuj',
'dashboard.aria.refreshRates': 'Odśwież kursy',
'dashboard.aria.swapCurrencies': 'Zamień waluty',
'dashboard.aria.addTimezone': 'Dodaj strefę czasową',
'dashboard.aria.removeTimezone': 'Usuń {city}',
};
export default dashboard;