mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-23 23:46:35 +00:00
45f1ff7799
Each day header gets a transit button (replacing the rename pencil, which moved next to the day name in the day detail panel). It opens a route search backed by Transitous/MOTIS — free, open data, no paid provider: from/to stop search with the day's own places as quick picks, depart/arrive time, mode filters (train, subway, tram, bus, ferry, cable car) and ranking by best route, fewer transfers or less walking. Results show local times, duration, transfers, walking time and line badges in their official colors, with a stop-by-stop breakdown per connection. Adding a connection saves it as a regular transport reservation — typed by its dominant leg, timed from the itinerary's wall-clock departure/arrival converted to station-local time (tz-lookup), with the origin, transfer stops and destination as endpoints and the compact legs in metadata.transit. It slots into the day timeline by time and inherits editing, deletion and drag-reordering from the existing transport machinery; the transport detail view renders the full itinerary. Re-saving a transit transport through the edit modal preserves the stored itinerary while the route is unchanged. The server proxies the Transitous API (JWT-guarded, rate-limited, identifying User-Agent, short response cache, strict mode whitelist); TRANSIT_API_URL lets self-hosters use their own MOTIS instance. New i18n keys in every locale, wiki page updated. Discussion #1065
74 lines
3.3 KiB
TypeScript
74 lines
3.3 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const trip: TranslationStrings = {
|
|
'trip.tabs.plan': 'Plan',
|
|
'trip.tabs.transports': 'Transport',
|
|
'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': 'Costs',
|
|
'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?',
|
|
'trip.confirm.deletePlaces': 'Usunąć {count} miejsc?',
|
|
'trip.toast.placesDeleted': '{count} miejsc usunięto',
|
|
'trip.loadingPhotos': 'Ładowanie zdjęć...',
|
|
'trip.invite.linkTitle': 'Link zaproszenia do podróży',
|
|
'trip.invite.linkHint': 'Każda osoba z kontem TREK, która otworzy ten link, dołączy do podróży jako członek. Wygeneruj ponownie, aby unieważnić stary link.',
|
|
'trip.invite.create': 'Utwórz link zaproszenia',
|
|
'trip.invite.regenerate': 'Wygeneruj ponownie',
|
|
'trip.invite.disable': 'Wyłącz',
|
|
'trip.invite.joinHeading': 'Dołącz do tej podróży',
|
|
'trip.invite.joinPrompt': 'Zaproszono Cię do dołączenia do „{title}”.',
|
|
'trip.invite.joinCta': 'Dołącz do podróży',
|
|
'trip.invite.joining': 'Dołączanie…',
|
|
'trip.invite.invalidTitle': 'Zaproszenie niedostępne',
|
|
'trip.invite.invalid': 'Ten link zaproszenia jest nieprawidłowy lub wygasł.',
|
|
'trip.invite.backToDashboard': 'Powrót do panelu',
|
|
'transit.title': 'Transport publiczny',
|
|
'transit.from': 'Skąd',
|
|
'transit.to': 'Dokąd',
|
|
'transit.searchStop': 'Szukaj przystanku lub stacji…',
|
|
'transit.swap': 'Zamień',
|
|
'transit.depart': 'Odjazd',
|
|
'transit.arrive': 'Przyjazd',
|
|
'transit.mode.rail': 'Pociąg',
|
|
'transit.mode.subway': 'Metro',
|
|
'transit.mode.tram': 'Tramwaj',
|
|
'transit.mode.bus': 'Autobus',
|
|
'transit.mode.ferry': 'Prom',
|
|
'transit.mode.cable': 'Kolej linowa',
|
|
'transit.pref.best': 'Najlepsza trasa',
|
|
'transit.pref.transfers': 'Mniej przesiadek',
|
|
'transit.pref.walking': 'Mniej pieszo',
|
|
'transit.search': 'Szukaj',
|
|
'transit.searching': 'Wyszukiwanie…',
|
|
'transit.searchError': 'Wyszukiwanie trasy nie powiodło się. Spróbuj ponownie.',
|
|
'transit.noResults': 'Nie znaleziono połączeń. Zmień godzinę lub filtry.',
|
|
'transit.direct': 'Bezpośrednio',
|
|
'transit.transfers': 'Przesiadki: {count}',
|
|
'transit.min': '{count} min',
|
|
'transit.stops': 'Przystanki: {count}',
|
|
'transit.walkTo': 'Idź pieszo do {name}',
|
|
'transit.platform': 'Peron {track}',
|
|
'transit.adding': 'Dodawanie…',
|
|
'transit.addToDay': 'Dodaj do dnia',
|
|
'transit.itinerary': 'Plan podróży',
|
|
'transit.attribution': 'Dane tras z',
|
|
};
|
|
export default trip;
|