feat(roadtrip): find fuel, rest areas and sights along the drive

The road trip mode could show the route but not what sits beside it, which is
half of what planning a drive is about (#1797).

The right column becomes a corridor search: pick what you need, pick how far off
the route you will go for it, and the day's drive is searched box by box. The
boxes come from the route itself rather than the viewport, so the answer is
"on the way", not "on screen"; each hit reports how far off the route it lies
and how far into the drive it comes, and adding one opens the normal place form
so it lands on the day like any other stop.

Overpass is asked in plain bounding boxes rather than with a polyline filter,
because that is what the existing /api/maps/pois route accepts and what the
mirrors can answer; the geometry work is pure and tested. Long routes stop at ten
boxes and say so instead of quietly searching half the drive.

Fuel, charging, rest areas and campsites join the server's POI categories, so the
explore pill and the MCP search_pois tool gain them too. A car booking's stops now
also reach the PDF, which printed pick-up and return with everything in between
missing.
This commit is contained in:
Maurice
2026-08-28 22:04:15 +02:00
committed by Maurice
parent 3902e77991
commit 07a4447bbd
31 changed files with 1061 additions and 1 deletions
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'أضف أماكن إلى يوم أو حجز سيارة مع محطات توقف، وسيظهر المسار هنا.',
'roadtrip.stops.label': 'محطات على الطريق',
'roadtrip.stops.remove': 'إزالة المحطة',
'roadtrip.poi.title': 'على طول المسار',
'roadtrip.poi.fuel': 'وقود',
'roadtrip.poi.charging': 'شحن',
'roadtrip.poi.rest': 'استراحة',
'roadtrip.poi.campsite': 'مخيم',
'roadtrip.poi.food': 'طعام',
'roadtrip.poi.sights': 'معالم',
'roadtrip.poi.within': 'ضمن',
'roadtrip.poi.search': 'ابحث على طول المسار',
'roadtrip.poi.searching': 'جارٍ البحث {done} من {total}',
'roadtrip.poi.capped': 'المسار طويل — تم البحث في الجزء الأول فقط.',
'roadtrip.poi.failed': 'البحث عن الأماكن لا يستجيب حاليًا.',
'roadtrip.poi.empty': 'اختر ما تحتاجه ثم ابحث.',
'roadtrip.poi.add': 'إضافة',
'roadtrip.poi.offRoute': '{distance} عن المسار',
'roadtrip.poi.atStart': 'قرب نقطة البداية',
'roadtrip.poi.alongRoute': 'بعد {distance}',
'roadtrip.summary.distance': 'المسافة',
'roadtrip.summary.driving': 'مدة القيادة',
'roadtrip.day': 'اليوم {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Adicione locais a um dia ou uma reserva de carro com paradas e a rota aparecerá aqui.',
'roadtrip.stops.label': 'Paradas pelo caminho',
'roadtrip.stops.remove': 'Remover parada',
'roadtrip.poi.title': 'Ao longo da rota',
'roadtrip.poi.fuel': 'Combustível',
'roadtrip.poi.charging': 'Carregamento',
'roadtrip.poi.rest': 'Área de descanso',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Comida',
'roadtrip.poi.sights': 'Pontos turísticos',
'roadtrip.poi.within': 'Num raio de',
'roadtrip.poi.search': 'Buscar ao longo da rota',
'roadtrip.poi.searching': 'Buscando {done} de {total}',
'roadtrip.poi.capped': 'A rota é longa — apenas o primeiro trecho foi pesquisado.',
'roadtrip.poi.failed': 'A busca de locais não está respondendo agora.',
'roadtrip.poi.empty': 'Escolha o que precisa e pesquise.',
'roadtrip.poi.add': 'Adicionar',
'roadtrip.poi.offRoute': '{distance} fora da rota',
'roadtrip.poi.atStart': 'perto do início',
'roadtrip.poi.alongRoute': 'após {distance}',
'roadtrip.summary.distance': 'Distância',
'roadtrip.summary.driving': 'Tempo de direção',
'roadtrip.day': 'Dia {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Afegeix llocs a un dia o una reserva de cotxe amb parades i la ruta apareixerà aquí.',
'roadtrip.stops.label': 'Parades pel camí',
'roadtrip.stops.remove': 'Elimina la parada',
'roadtrip.poi.title': 'Al llarg de la ruta',
'roadtrip.poi.fuel': 'Combustible',
'roadtrip.poi.charging': 'Càrrega',
'roadtrip.poi.rest': 'Àrea de descans',
'roadtrip.poi.campsite': 'Càmping',
'roadtrip.poi.food': 'Menjar',
'roadtrip.poi.sights': 'Llocs d’interès',
'roadtrip.poi.within': 'En un radi de',
'roadtrip.poi.search': 'Cerca al llarg de la ruta',
'roadtrip.poi.searching': 'Cercant {done} de {total}',
'roadtrip.poi.capped': 'La ruta és llarga: només s’ha cercat el primer tram.',
'roadtrip.poi.failed': 'La cerca de llocs no respon ara mateix.',
'roadtrip.poi.empty': 'Tria què necessites i cerca.',
'roadtrip.poi.add': 'Afegeix',
'roadtrip.poi.offRoute': '{distance} fora de la ruta',
'roadtrip.poi.atStart': 'a prop de l’inici',
'roadtrip.poi.alongRoute': 'després de {distance}',
'roadtrip.summary.distance': 'Distància',
'roadtrip.summary.driving': 'Temps de conducció',
'roadtrip.day': 'Dia {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Přidejte místa ke dni nebo rezervaci auta se zastávkami a trasa se zobrazí zde.',
'roadtrip.stops.label': 'Zastávky po cestě',
'roadtrip.stops.remove': 'Odebrat zastávku',
'roadtrip.poi.title': 'Podél trasy',
'roadtrip.poi.fuel': 'Palivo',
'roadtrip.poi.charging': 'Nabíjení',
'roadtrip.poi.rest': 'Odpočívadlo',
'roadtrip.poi.campsite': 'Kemp',
'roadtrip.poi.food': 'Jídlo',
'roadtrip.poi.sights': 'Zajímavosti',
'roadtrip.poi.within': 'Do',
'roadtrip.poi.search': 'Hledat podél trasy',
'roadtrip.poi.searching': 'Hledání {done} z {total}',
'roadtrip.poi.capped': 'Trasa je dlouhá — prohledán byl jen první úsek.',
'roadtrip.poi.failed': 'Vyhledávání míst právě neodpovídá.',
'roadtrip.poi.empty': 'Vyberte, co potřebujete, a hledejte.',
'roadtrip.poi.add': 'Přidat',
'roadtrip.poi.offRoute': '{distance} od trasy',
'roadtrip.poi.atStart': 'blízko startu',
'roadtrip.poi.alongRoute': 'po {distance}',
'roadtrip.summary.distance': 'Vzdálenost',
'roadtrip.summary.driving': 'Doba jízdy',
'roadtrip.day': 'Den {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Ordne einem Tag Orte zu oder lege eine Autofahrt mit Stopps an — die Route erscheint dann hier.',
'roadtrip.stops.label': 'Stopps unterwegs',
'roadtrip.stops.remove': 'Stopp entfernen',
'roadtrip.poi.title': 'Entlang der Route',
'roadtrip.poi.fuel': 'Tanken',
'roadtrip.poi.charging': 'Laden',
'roadtrip.poi.rest': 'Rastplatz',
'roadtrip.poi.campsite': 'Campingplatz',
'roadtrip.poi.food': 'Essen',
'roadtrip.poi.sights': 'Sehenswertes',
'roadtrip.poi.within': 'Im Umkreis',
'roadtrip.poi.search': 'Entlang der Route suchen',
'roadtrip.poi.searching': 'Suche {done} von {total}',
'roadtrip.poi.capped': 'Die Route ist lang — nur der erste Abschnitt wurde durchsucht.',
'roadtrip.poi.failed': 'Die Ortssuche antwortet gerade nicht.',
'roadtrip.poi.empty': 'Wähle aus, was du brauchst, und suche.',
'roadtrip.poi.add': 'Übernehmen',
'roadtrip.poi.offRoute': '{distance} abseits der Route',
'roadtrip.poi.atStart': 'am Startpunkt',
'roadtrip.poi.alongRoute': 'nach {distance}',
'roadtrip.summary.distance': 'Strecke',
'roadtrip.summary.driving': 'Fahrzeit',
'roadtrip.day': 'Tag {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Add places to a day, or a car booking with stops, and the route appears here.',
'roadtrip.stops.label': 'Stops along the way',
'roadtrip.stops.remove': 'Remove stop',
'roadtrip.poi.title': 'Along the route',
'roadtrip.poi.fuel': 'Fuel',
'roadtrip.poi.charging': 'Charging',
'roadtrip.poi.rest': 'Rest area',
'roadtrip.poi.campsite': 'Campsite',
'roadtrip.poi.food': 'Food',
'roadtrip.poi.sights': 'Sights',
'roadtrip.poi.within': 'Within',
'roadtrip.poi.search': 'Search along the route',
'roadtrip.poi.searching': 'Searching {done} of {total}',
'roadtrip.poi.capped': 'The route is long — only the first stretch was searched.',
'roadtrip.poi.failed': 'The place search is not answering right now.',
'roadtrip.poi.empty': 'Pick what you need and search.',
'roadtrip.poi.add': 'Add',
'roadtrip.poi.offRoute': '{distance} off the route',
'roadtrip.poi.atStart': 'near the start',
'roadtrip.poi.alongRoute': 'after {distance}',
'roadtrip.summary.distance': 'Distance',
'roadtrip.summary.driving': 'Driving time',
'roadtrip.day': 'Day {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Añade lugares a un día o una reserva de coche con paradas y la ruta aparecerá aquí.',
'roadtrip.stops.label': 'Paradas por el camino',
'roadtrip.stops.remove': 'Eliminar parada',
'roadtrip.poi.title': 'A lo largo de la ruta',
'roadtrip.poi.fuel': 'Gasolina',
'roadtrip.poi.charging': 'Recarga',
'roadtrip.poi.rest': 'Área de descanso',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Comida',
'roadtrip.poi.sights': 'Lugares de interés',
'roadtrip.poi.within': 'En un radio de',
'roadtrip.poi.search': 'Buscar a lo largo de la ruta',
'roadtrip.poi.searching': 'Buscando {done} de {total}',
'roadtrip.poi.capped': 'La ruta es larga: solo se buscó en el primer tramo.',
'roadtrip.poi.failed': 'La búsqueda de lugares no responde ahora mismo.',
'roadtrip.poi.empty': 'Elige lo que necesitas y busca.',
'roadtrip.poi.add': 'Añadir',
'roadtrip.poi.offRoute': '{distance} fuera de la ruta',
'roadtrip.poi.atStart': 'cerca del inicio',
'roadtrip.poi.alongRoute': 'tras {distance}',
'roadtrip.summary.distance': 'Distancia',
'roadtrip.summary.driving': 'Tiempo de conducción',
'roadtrip.day': 'Día {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Ajoutez des lieux à une journée ou une location de voiture avec des étapes : l’itinéraire apparaîtra ici.',
'roadtrip.stops.label': 'Étapes en chemin',
'roadtrip.stops.remove': 'Supprimer l’étape',
'roadtrip.poi.title': 'Le long de l’itinéraire',
'roadtrip.poi.fuel': 'Carburant',
'roadtrip.poi.charging': 'Recharge',
'roadtrip.poi.rest': 'Aire de repos',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Restauration',
'roadtrip.poi.sights': 'À voir',
'roadtrip.poi.within': 'Dans un rayon de',
'roadtrip.poi.search': 'Chercher le long du trajet',
'roadtrip.poi.searching': 'Recherche {done} sur {total}',
'roadtrip.poi.capped': 'L’itinéraire est long : seule la première portion a été parcourue.',
'roadtrip.poi.failed': 'La recherche de lieux ne répond pas pour le moment.',
'roadtrip.poi.empty': 'Choisissez ce qu’il vous faut, puis lancez la recherche.',
'roadtrip.poi.add': 'Ajouter',
'roadtrip.poi.offRoute': '{distance} hors itinéraire',
'roadtrip.poi.atStart': 'près du départ',
'roadtrip.poi.alongRoute': 'après {distance}',
'roadtrip.summary.distance': 'Distance',
'roadtrip.summary.driving': 'Temps de conduite',
'roadtrip.day': 'Jour {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Προσθέστε τοποθεσίες σε μια ημέρα ή μια κράτηση αυτοκινήτου με στάσεις και η διαδρομή θα εμφανιστεί εδώ.',
'roadtrip.stops.label': 'Στάσεις στη διαδρομή',
'roadtrip.stops.remove': 'Αφαίρεση στάσης',
'roadtrip.poi.title': 'Κατά μήκος της διαδρομής',
'roadtrip.poi.fuel': 'Καύσιμα',
'roadtrip.poi.charging': 'Φόρτιση',
'roadtrip.poi.rest': 'Χώρος ανάπαυσης',
'roadtrip.poi.campsite': 'Κάμπινγκ',
'roadtrip.poi.food': 'Φαγητό',
'roadtrip.poi.sights': 'Αξιοθέατα',
'roadtrip.poi.within': 'Εντός',
'roadtrip.poi.search': 'Αναζήτηση κατά μήκος της διαδρομής',
'roadtrip.poi.searching': 'Αναζήτηση {done} από {total}',
'roadtrip.poi.capped': 'Η διαδρομή είναι μεγάλη — αναζητήθηκε μόνο το πρώτο τμήμα.',
'roadtrip.poi.failed': 'Η αναζήτηση τοποθεσιών δεν απαντά αυτή τη στιγμή.',
'roadtrip.poi.empty': 'Διαλέξτε τι χρειάζεστε και αναζητήστε.',
'roadtrip.poi.add': 'Προσθήκη',
'roadtrip.poi.offRoute': '{distance} από τη διαδρομή',
'roadtrip.poi.atStart': 'κοντά στην αφετηρία',
'roadtrip.poi.alongRoute': 'μετά από {distance}',
'roadtrip.summary.distance': 'Απόσταση',
'roadtrip.summary.driving': 'Χρόνος οδήγησης',
'roadtrip.day': 'Ημέρα {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Adj helyszíneket egy naphoz, vagy hozz létre megállókkal rendelkező autós foglalást – az útvonal itt jelenik meg.',
'roadtrip.stops.label': 'Megállók útközben',
'roadtrip.stops.remove': 'Megálló eltávolítása',
'roadtrip.poi.title': 'Az útvonal mentén',
'roadtrip.poi.fuel': 'Üzemanyag',
'roadtrip.poi.charging': 'Töltés',
'roadtrip.poi.rest': 'Pihenőhely',
'roadtrip.poi.campsite': 'Kemping',
'roadtrip.poi.food': 'Étkezés',
'roadtrip.poi.sights': 'Látnivalók',
'roadtrip.poi.within': 'Ezen belül',
'roadtrip.poi.search': 'Keresés az útvonal mentén',
'roadtrip.poi.searching': 'Keresés {done}/{total}',
'roadtrip.poi.capped': 'Az útvonal hosszú – csak az első szakaszon kerestünk.',
'roadtrip.poi.failed': 'A helykeresés most nem válaszol.',
'roadtrip.poi.empty': 'Válaszd ki, mire van szükséged, és keress.',
'roadtrip.poi.add': 'Hozzáadás',
'roadtrip.poi.offRoute': '{distance} az útvonaltól',
'roadtrip.poi.atStart': 'a kiindulás közelében',
'roadtrip.poi.alongRoute': '{distance} után',
'roadtrip.summary.distance': 'Távolság',
'roadtrip.summary.driving': 'Vezetési idő',
'roadtrip.day': '{number}. nap',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Tambahkan tempat ke sebuah hari, atau pemesanan mobil dengan perhentian, dan rute akan muncul di sini.',
'roadtrip.stops.label': 'Perhentian di sepanjang jalan',
'roadtrip.stops.remove': 'Hapus perhentian',
'roadtrip.poi.title': 'Sepanjang rute',
'roadtrip.poi.fuel': 'Bahan bakar',
'roadtrip.poi.charging': 'Pengisian daya',
'roadtrip.poi.rest': 'Tempat istirahat',
'roadtrip.poi.campsite': 'Perkemahan',
'roadtrip.poi.food': 'Makanan',
'roadtrip.poi.sights': 'Objek wisata',
'roadtrip.poi.within': 'Dalam',
'roadtrip.poi.search': 'Cari di sepanjang rute',
'roadtrip.poi.searching': 'Mencari {done} dari {total}',
'roadtrip.poi.capped': 'Rute panjang — hanya bagian pertama yang dicari.',
'roadtrip.poi.failed': 'Pencarian tempat sedang tidak merespons.',
'roadtrip.poi.empty': 'Pilih yang Anda butuhkan lalu cari.',
'roadtrip.poi.add': 'Tambah',
'roadtrip.poi.offRoute': '{distance} dari rute',
'roadtrip.poi.atStart': 'dekat titik awal',
'roadtrip.poi.alongRoute': 'setelah {distance}',
'roadtrip.summary.distance': 'Jarak',
'roadtrip.summary.driving': 'Waktu berkendara',
'roadtrip.day': 'Hari {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Aggiungi luoghi a un giorno o una prenotazione auto con soste: il percorso comparirà qui.',
'roadtrip.stops.label': 'Soste lungo il tragitto',
'roadtrip.stops.remove': 'Rimuovi sosta',
'roadtrip.poi.title': 'Lungo il percorso',
'roadtrip.poi.fuel': 'Carburante',
'roadtrip.poi.charging': 'Ricarica',
'roadtrip.poi.rest': 'Area di sosta',
'roadtrip.poi.campsite': 'Campeggio',
'roadtrip.poi.food': 'Ristoro',
'roadtrip.poi.sights': 'Da vedere',
'roadtrip.poi.within': 'Entro',
'roadtrip.poi.search': 'Cerca lungo il percorso',
'roadtrip.poi.searching': 'Ricerca {done} di {total}',
'roadtrip.poi.capped': 'Il percorso è lungo: è stato cercato solo il primo tratto.',
'roadtrip.poi.failed': 'La ricerca dei luoghi non risponde al momento.',
'roadtrip.poi.empty': 'Scegli cosa ti serve e cerca.',
'roadtrip.poi.add': 'Aggiungi',
'roadtrip.poi.offRoute': '{distance} fuori percorso',
'roadtrip.poi.atStart': 'vicino alla partenza',
'roadtrip.poi.alongRoute': 'dopo {distance}',
'roadtrip.summary.distance': 'Distanza',
'roadtrip.summary.driving': 'Tempo di guida',
'roadtrip.day': 'Giorno {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': '日に場所を追加するか、立ち寄り先付きの車の予約を作成すると、ここにルートが表示されます。',
'roadtrip.stops.label': '途中の立ち寄り先',
'roadtrip.stops.remove': '立ち寄り先を削除',
'roadtrip.poi.title': 'ルート沿い',
'roadtrip.poi.fuel': '給油',
'roadtrip.poi.charging': '充電',
'roadtrip.poi.rest': 'サービスエリア',
'roadtrip.poi.campsite': 'キャンプ場',
'roadtrip.poi.food': '食事',
'roadtrip.poi.sights': '見どころ',
'roadtrip.poi.within': '範囲',
'roadtrip.poi.search': 'ルート沿いを検索',
'roadtrip.poi.searching': '検索中 {done}/{total}',
'roadtrip.poi.capped': 'ルートが長いため、最初の区間のみ検索しました。',
'roadtrip.poi.failed': '場所の検索が現在応答していません。',
'roadtrip.poi.empty': '必要なものを選んで検索してください。',
'roadtrip.poi.add': '追加',
'roadtrip.poi.offRoute': 'ルートから {distance}',
'roadtrip.poi.atStart': '出発地の近く',
'roadtrip.poi.alongRoute': '{distance} 地点',
'roadtrip.summary.distance': '距離',
'roadtrip.summary.driving': '運転時間',
'roadtrip.day': '{number} 日目',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': '하루에 장소를 추가하거나 경유지가 있는 차량 예약을 만들면 여기에 경로가 표시됩니다.',
'roadtrip.stops.label': '가는 길의 경유지',
'roadtrip.stops.remove': '경유지 삭제',
'roadtrip.poi.title': '경로 주변',
'roadtrip.poi.fuel': '주유',
'roadtrip.poi.charging': '충전',
'roadtrip.poi.rest': '휴게소',
'roadtrip.poi.campsite': '캠핑장',
'roadtrip.poi.food': '식사',
'roadtrip.poi.sights': '볼거리',
'roadtrip.poi.within': '반경',
'roadtrip.poi.search': '경로 주변 검색',
'roadtrip.poi.searching': '검색 중 {done}/{total}',
'roadtrip.poi.capped': '경로가 길어 앞부분만 검색했습니다.',
'roadtrip.poi.failed': '장소 검색이 지금 응답하지 않습니다.',
'roadtrip.poi.empty': '필요한 항목을 고르고 검색하세요.',
'roadtrip.poi.add': '추가',
'roadtrip.poi.offRoute': '경로에서 {distance}',
'roadtrip.poi.atStart': '출발지 근처',
'roadtrip.poi.alongRoute': '{distance} 지점',
'roadtrip.summary.distance': '거리',
'roadtrip.summary.driving': '운전 시간',
'roadtrip.day': '{number}일차',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Voeg plaatsen toe aan een dag of een autoboeking met stops, dan verschijnt de route hier.',
'roadtrip.stops.label': 'Stops onderweg',
'roadtrip.stops.remove': 'Stop verwijderen',
'roadtrip.poi.title': 'Langs de route',
'roadtrip.poi.fuel': 'Tanken',
'roadtrip.poi.charging': 'Laden',
'roadtrip.poi.rest': 'Rustplaats',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Eten',
'roadtrip.poi.sights': 'Bezienswaardig',
'roadtrip.poi.within': 'Binnen',
'roadtrip.poi.search': 'Langs de route zoeken',
'roadtrip.poi.searching': 'Zoeken {done} van {total}',
'roadtrip.poi.capped': 'De route is lang — alleen het eerste deel is doorzocht.',
'roadtrip.poi.failed': 'De plaatszoekfunctie reageert nu niet.',
'roadtrip.poi.empty': 'Kies wat je nodig hebt en zoek.',
'roadtrip.poi.add': 'Toevoegen',
'roadtrip.poi.offRoute': '{distance} van de route',
'roadtrip.poi.atStart': 'bij het startpunt',
'roadtrip.poi.alongRoute': 'na {distance}',
'roadtrip.summary.distance': 'Afstand',
'roadtrip.summary.driving': 'Rijtijd',
'roadtrip.day': 'Dag {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Dodaj miejsca do dnia albo rezerwację samochodu z przystankami, a trasa pojawi się tutaj.',
'roadtrip.stops.label': 'Przystanki po drodze',
'roadtrip.stops.remove': 'Usuń przystanek',
'roadtrip.poi.title': 'Wzdłuż trasy',
'roadtrip.poi.fuel': 'Paliwo',
'roadtrip.poi.charging': 'Ładowanie',
'roadtrip.poi.rest': 'Miejsce odpoczynku',
'roadtrip.poi.campsite': 'Kemping',
'roadtrip.poi.food': 'Jedzenie',
'roadtrip.poi.sights': 'Atrakcje',
'roadtrip.poi.within': 'W promieniu',
'roadtrip.poi.search': 'Szukaj wzdłuż trasy',
'roadtrip.poi.searching': 'Szukanie {done} z {total}',
'roadtrip.poi.capped': 'Trasa jest długa — przeszukano tylko pierwszy odcinek.',
'roadtrip.poi.failed': 'Wyszukiwanie miejsc chwilowo nie odpowiada.',
'roadtrip.poi.empty': 'Wybierz, czego potrzebujesz, i szukaj.',
'roadtrip.poi.add': 'Dodaj',
'roadtrip.poi.offRoute': '{distance} od trasy',
'roadtrip.poi.atStart': 'blisko startu',
'roadtrip.poi.alongRoute': 'po {distance}',
'roadtrip.summary.distance': 'Dystans',
'roadtrip.summary.driving': 'Czas jazdy',
'roadtrip.day': 'Dzień {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Добавьте места в день или бронирование авто с остановками — маршрут появится здесь.',
'roadtrip.stops.label': 'Остановки в пути',
'roadtrip.stops.remove': 'Удалить остановку',
'roadtrip.poi.title': 'Вдоль маршрута',
'roadtrip.poi.fuel': 'Заправка',
'roadtrip.poi.charging': 'Зарядка',
'roadtrip.poi.rest': 'Зона отдыха',
'roadtrip.poi.campsite': 'Кемпинг',
'roadtrip.poi.food': 'Еда',
'roadtrip.poi.sights': 'Достопримечательности',
'roadtrip.poi.within': 'В радиусе',
'roadtrip.poi.search': 'Искать вдоль маршрута',
'roadtrip.poi.searching': 'Поиск {done} из {total}',
'roadtrip.poi.capped': 'Маршрут длинный — просмотрен только первый участок.',
'roadtrip.poi.failed': 'Поиск мест сейчас не отвечает.',
'roadtrip.poi.empty': 'Выберите нужное и запустите поиск.',
'roadtrip.poi.add': 'Добавить',
'roadtrip.poi.offRoute': '{distance} от маршрута',
'roadtrip.poi.atStart': 'у начала маршрута',
'roadtrip.poi.alongRoute': 'через {distance}',
'roadtrip.summary.distance': 'Расстояние',
'roadtrip.summary.driving': 'Время в пути',
'roadtrip.day': 'День {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Lägg till platser på en dag eller en bilbokning med stopp, så visas rutten här.',
'roadtrip.stops.label': 'Stopp längs vägen',
'roadtrip.stops.remove': 'Ta bort stopp',
'roadtrip.poi.title': 'Längs rutten',
'roadtrip.poi.fuel': 'Bensin',
'roadtrip.poi.charging': 'Laddning',
'roadtrip.poi.rest': 'Rastplats',
'roadtrip.poi.campsite': 'Campingplats',
'roadtrip.poi.food': 'Mat',
'roadtrip.poi.sights': 'Sevärt',
'roadtrip.poi.within': 'Inom',
'roadtrip.poi.search': 'Sök längs rutten',
'roadtrip.poi.searching': 'Söker {done} av {total}',
'roadtrip.poi.capped': 'Rutten är lång – bara första sträckan genomsöktes.',
'roadtrip.poi.failed': 'Platssökningen svarar inte just nu.',
'roadtrip.poi.empty': 'Välj vad du behöver och sök.',
'roadtrip.poi.add': 'Lägg till',
'roadtrip.poi.offRoute': '{distance} från rutten',
'roadtrip.poi.atStart': 'nära starten',
'roadtrip.poi.alongRoute': 'efter {distance}',
'roadtrip.summary.distance': 'Sträcka',
'roadtrip.summary.driving': 'Körtid',
'roadtrip.day': 'Dag {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Bir güne yer ekleyin ya da duraklı bir araç rezervasyonu oluşturun; rota burada görünür.',
'roadtrip.stops.label': 'Yol üzerindeki duraklar',
'roadtrip.stops.remove': 'Durağı kaldır',
'roadtrip.poi.title': 'Rota boyunca',
'roadtrip.poi.fuel': 'Yakıt',
'roadtrip.poi.charging': 'Şarj',
'roadtrip.poi.rest': 'Dinlenme alanı',
'roadtrip.poi.campsite': 'Kamp alanı',
'roadtrip.poi.food': 'Yemek',
'roadtrip.poi.sights': 'Görülecek yerler',
'roadtrip.poi.within': 'Mesafe',
'roadtrip.poi.search': 'Rota boyunca ara',
'roadtrip.poi.searching': 'Aranıyor {done}/{total}',
'roadtrip.poi.capped': 'Rota uzun — yalnızca ilk bölüm arandı.',
'roadtrip.poi.failed': 'Yer araması şu anda yanıt vermiyor.',
'roadtrip.poi.empty': 'Neye ihtiyacın olduğunu seç ve ara.',
'roadtrip.poi.add': 'Ekle',
'roadtrip.poi.offRoute': 'rotadan {distance}',
'roadtrip.poi.atStart': 'başlangıca yakın',
'roadtrip.poi.alongRoute': '{distance} sonra',
'roadtrip.summary.distance': 'Mesafe',
'roadtrip.summary.driving': 'Sürüş süresi',
'roadtrip.day': '{number}. gün',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Додайте місця до дня або бронювання авто із зупинками — маршрут з’явиться тут.',
'roadtrip.stops.label': 'Зупинки в дорозі',
'roadtrip.stops.remove': 'Видалити зупинку',
'roadtrip.poi.title': 'Уздовж маршруту',
'roadtrip.poi.fuel': 'Заправка',
'roadtrip.poi.charging': 'Зарядка',
'roadtrip.poi.rest': 'Зона відпочинку',
'roadtrip.poi.campsite': 'Кемпінг',
'roadtrip.poi.food': 'Їжа',
'roadtrip.poi.sights': 'Пам’ятки',
'roadtrip.poi.within': 'У радіусі',
'roadtrip.poi.search': 'Шукати вздовж маршруту',
'roadtrip.poi.searching': 'Пошук {done} з {total}',
'roadtrip.poi.capped': 'Маршрут довгий — переглянуто лише перший відрізок.',
'roadtrip.poi.failed': 'Пошук місць зараз не відповідає.',
'roadtrip.poi.empty': 'Оберіть потрібне й почніть пошук.',
'roadtrip.poi.add': 'Додати',
'roadtrip.poi.offRoute': '{distance} від маршруту',
'roadtrip.poi.atStart': 'біля початку',
'roadtrip.poi.alongRoute': 'через {distance}',
'roadtrip.summary.distance': 'Відстань',
'roadtrip.summary.driving': 'Час у дорозі',
'roadtrip.day': 'День {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': 'Thêm địa điểm vào một ngày hoặc đặt xe có điểm dừng, lộ trình sẽ hiện ở đây.',
'roadtrip.stops.label': 'Điểm dừng dọc đường',
'roadtrip.stops.remove': 'Xóa điểm dừng',
'roadtrip.poi.title': 'Dọc theo lộ trình',
'roadtrip.poi.fuel': 'Xăng dầu',
'roadtrip.poi.charging': 'Sạc điện',
'roadtrip.poi.rest': 'Trạm dừng nghỉ',
'roadtrip.poi.campsite': 'Khu cắm trại',
'roadtrip.poi.food': 'Đồ ăn',
'roadtrip.poi.sights': 'Điểm tham quan',
'roadtrip.poi.within': 'Trong vòng',
'roadtrip.poi.search': 'Tìm dọc lộ trình',
'roadtrip.poi.searching': 'Đang tìm {done}/{total}',
'roadtrip.poi.capped': 'Lộ trình dài — chỉ đoạn đầu được tìm kiếm.',
'roadtrip.poi.failed': 'Tìm kiếm địa điểm hiện không phản hồi.',
'roadtrip.poi.empty': 'Chọn thứ bạn cần rồi tìm.',
'roadtrip.poi.add': 'Thêm',
'roadtrip.poi.offRoute': 'cách lộ trình {distance}',
'roadtrip.poi.atStart': 'gần điểm xuất phát',
'roadtrip.poi.alongRoute': 'sau {distance}',
'roadtrip.summary.distance': 'Quãng đường',
'roadtrip.summary.driving': 'Thời gian lái xe',
'roadtrip.day': 'Ngày {number}',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': '為某一天新增地點,或建立含停靠點的租車預訂,路線就會顯示在這裡。',
'roadtrip.stops.label': '沿途停靠點',
'roadtrip.stops.remove': '移除停靠點',
'roadtrip.poi.title': '沿線',
'roadtrip.poi.fuel': '加油',
'roadtrip.poi.charging': '充電',
'roadtrip.poi.rest': '休息站',
'roadtrip.poi.campsite': '露營地',
'roadtrip.poi.food': '餐飲',
'roadtrip.poi.sights': '景點',
'roadtrip.poi.within': '範圍內',
'roadtrip.poi.search': '沿路線搜尋',
'roadtrip.poi.searching': '搜尋中 {done}/{total}',
'roadtrip.poi.capped': '路線較長,僅搜尋了前段。',
'roadtrip.poi.failed': '地點搜尋暫時沒有回應。',
'roadtrip.poi.empty': '選擇你需要的,然後搜尋。',
'roadtrip.poi.add': '新增',
'roadtrip.poi.offRoute': '偏離路線 {distance}',
'roadtrip.poi.atStart': '靠近起點',
'roadtrip.poi.alongRoute': '{distance} 處',
'roadtrip.summary.distance': '距離',
'roadtrip.summary.driving': '駕駛時間',
'roadtrip.day': '第 {number} 天',
+17
View File
@@ -10,6 +10,23 @@ const roadtrip: TranslationStrings = {
'roadtrip.empty.body': '为某一天添加地点,或创建带停靠点的租车预订,路线就会显示在这里。',
'roadtrip.stops.label': '沿途停靠点',
'roadtrip.stops.remove': '移除停靠点',
'roadtrip.poi.title': '沿线',
'roadtrip.poi.fuel': '加油',
'roadtrip.poi.charging': '充电',
'roadtrip.poi.rest': '服务区',
'roadtrip.poi.campsite': '露营地',
'roadtrip.poi.food': '餐饮',
'roadtrip.poi.sights': '景点',
'roadtrip.poi.within': '范围内',
'roadtrip.poi.search': '沿路线搜索',
'roadtrip.poi.searching': '搜索中 {done}/{total}',
'roadtrip.poi.capped': '路线较长,仅搜索了前段。',
'roadtrip.poi.failed': '地点搜索暂时没有响应。',
'roadtrip.poi.empty': '选择你需要的,然后搜索。',
'roadtrip.poi.add': '添加',
'roadtrip.poi.offRoute': '偏离路线 {distance}',
'roadtrip.poi.atStart': '靠近起点',
'roadtrip.poi.alongRoute': '{distance} 处',
'roadtrip.summary.distance': '距离',
'roadtrip.summary.driving': '驾驶时间',
'roadtrip.day': '第 {number} 天',