From 552bd61d1178be65a583e33bcd37d04c5956ca2d Mon Sep 17 00:00:00 2001 From: Maurice Date: Fri, 28 Aug 2026 22:46:52 +0200 Subject: [PATCH] fix(roadtrip): search along the roads driven, not the lines between stops MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The corridor was built from the day's stops, so it followed straight lines across country the car never drives. Between two cities that line runs through open fields while the motorway swings wide of it, which is why every hit came back sitting on a stop rather than on the way. The days now carry the routed geometry, and the corridor is cut from that. Same trip, same search: 192 hits spread over the whole 482 km — first fifty, middle, and the last stretch — where before all of them reported kilometre zero. Following real roads takes more boxes to cover the same drive, so they go out three at a time instead of strictly one after another, and the budget rises from ten to sixteen. The panel head loses the sentence explaining what the sections below already say, and the day's distance and driving time, which the day list has been showing all along. --- .../Roadtrip/RoadtripCorridorPanel.tsx | 13 +------ .../components/Roadtrip/useCorridorPois.ts | 34 +++++++++++++------ .../Roadtrip/useRoadtripCorridor.ts | 15 ++++---- .../components/Roadtrip/useRoadtripRoutes.ts | 13 ++++++- shared/src/i18n/ar/roadtrip.ts | 1 - shared/src/i18n/br/roadtrip.ts | 1 - shared/src/i18n/ca/roadtrip.ts | 1 - shared/src/i18n/cs/roadtrip.ts | 1 - shared/src/i18n/de/roadtrip.ts | 1 - shared/src/i18n/en/roadtrip.ts | 1 - shared/src/i18n/es/roadtrip.ts | 1 - shared/src/i18n/fr/roadtrip.ts | 1 - shared/src/i18n/gr/roadtrip.ts | 1 - shared/src/i18n/hu/roadtrip.ts | 1 - shared/src/i18n/id/roadtrip.ts | 1 - shared/src/i18n/it/roadtrip.ts | 1 - shared/src/i18n/ja/roadtrip.ts | 1 - shared/src/i18n/ko/roadtrip.ts | 1 - shared/src/i18n/nl/roadtrip.ts | 1 - shared/src/i18n/pl/roadtrip.ts | 1 - shared/src/i18n/ru/roadtrip.ts | 1 - shared/src/i18n/sv/roadtrip.ts | 1 - shared/src/i18n/tr/roadtrip.ts | 1 - shared/src/i18n/uk/roadtrip.ts | 1 - shared/src/i18n/vi/roadtrip.ts | 1 - shared/src/i18n/zh-TW/roadtrip.ts | 1 - shared/src/i18n/zh/roadtrip.ts | 1 - 27 files changed, 46 insertions(+), 52 deletions(-) diff --git a/client/src/components/Roadtrip/RoadtripCorridorPanel.tsx b/client/src/components/Roadtrip/RoadtripCorridorPanel.tsx index 3e8ed056c..255cc7c9c 100644 --- a/client/src/components/Roadtrip/RoadtripCorridorPanel.tsx +++ b/client/src/components/Roadtrip/RoadtripCorridorPanel.tsx @@ -7,7 +7,6 @@ import { useTranslation } from '../../i18n/TranslationContext' import { useSettingsStore } from '../../store/settingsStore' import { formatDistance } from '../../utils/units' import CustomSelect from '../shared/CustomSelect' -import { formatDurationShort } from './roadtripModel' import { CORRIDOR_CATEGORY_KEYS, CORRIDOR_WIDTHS_KM, type RoadtripCorridor } from './useRoadtripCorridor' import type { CorridorPoi } from './useCorridorPois' import type { RoadtripRoutes } from './useRoadtripRoutes' @@ -119,18 +118,8 @@ export default function RoadtripCorridorPanel({ corridor, routes, onAddPoi }: Ro return (
{/* Header — the rhythm of the places sidebar this replaces. */} -
+

{t('roadtrip.poi.title')}

-

{t('roadtrip.poi.hint')}

- {corridor.day ? ( - // Under the title rather than beside it: the rail is narrow enough that a - // second element on the heading line pushes the heading into two. -

- {formatDistance(corridor.day.distance / 1000, distanceUnit)} - · - {formatDurationShort(corridor.day.duration)} -

- ) : null}
{/* Search controls */} diff --git a/client/src/components/Roadtrip/useCorridorPois.ts b/client/src/components/Roadtrip/useCorridorPois.ts index 16b60a7bd..51e96ed4f 100644 --- a/client/src/components/Roadtrip/useCorridorPois.ts +++ b/client/src/components/Roadtrip/useCorridorPois.ts @@ -1,7 +1,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { mapsApi } from '../../api/client' import { useTranslation } from '../../i18n' -import { corridorTiles, projectOntoRoute, simplifyLine, type LatLng } from './corridor' +import { corridorTiles, projectOntoRoute, simplifyLine, type Bbox, type LatLng } from './corridor' import type { Poi } from '../Map/poiCategories' /** A POI that is actually on the way, with the two numbers that make it one. */ @@ -27,9 +27,11 @@ export interface CorridorSearch { * would otherwise be dozens of requests against a shared public mirror; past this the * search stops and says so rather than quietly covering half the route. */ -const MAX_TILES = 10 -/** Gap between Overpass requests — the public mirrors are a shared resource. */ -const REQUEST_SPACING_MS = 700 +const MAX_TILES = 16 +/** Gap after a request before the same worker starts the next — the mirrors are shared. */ +const REQUEST_SPACING_MS = 400 +/** How many boxes are in flight at once. */ +const CONCURRENT_REQUESTS = 3 const sleep = (ms: number, signal: AbortSignal): Promise => new Promise(resolve => { @@ -93,13 +95,23 @@ export function useCorridorPois(line: LatLng[], categories: string[], widthKm: n setLoading(true) setProgress({ done: 0, total: tiles.length * categories.length }) + const jobs: { tile: Bbox; category: string }[] = [] + for (const tile of tiles) for (const category of categories) jobs.push({ tile, category }) + void (async () => { const seen = new Map() let failures = 0 let done = 0 - for (const tile of tiles) { - for (const category of categories) { + let next = 0 + + // A few at a time, staggered. Following the real road rather than the line between + // stops means more boxes to cover the same drive, and asking for them strictly one + // after another turned a search into half a minute of waiting. The server races + // several Overpass mirrors and caches what comes back, so a small pool is fair use. + const worker = async (): Promise => { + while (next < jobs.length) { if (controller.signal.aborted || runId !== runIdRef.current) return + const { tile, category } = jobs[next++] try { const data = await mapsApi.pois(category, tile, locale, controller.signal) for (const poi of data.pois) { @@ -109,19 +121,21 @@ export function useCorridorPois(line: LatLng[], categories: string[], widthKm: n seen.set(poi.osm_id, { ...poi, offRouteKm: hit.offRouteKm, alongKm: hit.alongKm }) } } catch { - // One dead mirror or one clamped box must not empty the whole search; the - // run is only called a failure if every request failed. + // One dead mirror or one clamped box must not empty the whole search; the run + // is only called a failure if every request failed. failures++ } done++ if (controller.signal.aborted || runId !== runIdRef.current) return - setProgress({ done, total: tiles.length * categories.length }) + setProgress({ done, total: jobs.length }) setResults([...seen.values()].sort((a, b) => a.alongKm - b.alongKm)) await sleep(REQUEST_SPACING_MS, controller.signal) } } + + await Promise.all(Array.from({ length: Math.min(CONCURRENT_REQUESTS, jobs.length) }, worker)) if (controller.signal.aborted || runId !== runIdRef.current) return - setError(failures === tiles.length * categories.length && failures > 0) + setError(failures === jobs.length && failures > 0) setLoading(false) })() }, [line, categories, widthKm, locale]) diff --git a/client/src/components/Roadtrip/useRoadtripCorridor.ts b/client/src/components/Roadtrip/useRoadtripCorridor.ts index 7c3debb70..082427533 100644 --- a/client/src/components/Roadtrip/useRoadtripCorridor.ts +++ b/client/src/components/Roadtrip/useRoadtripCorridor.ts @@ -37,12 +37,15 @@ export function useRoadtripCorridor(routes: RoadtripRoutes): RoadtripCorridor { // has picked anything — and follows along when that day disappears. const day = routes.days.find(d => String(d.dayId) === dayId) ?? routes.days[0] - const line = useMemo( - // The stops are spine enough: the corridor is kilometres wide, and the routed - // geometry per leg is not kept once its numbers have been read. - () => (day ? day.stops.map(s => ({ lat: s.lat, lng: s.lng })) : []), - [day], - ) + const line = useMemo(() => { + if (!day) return [] + // The roads driven, not the straight lines between stops. A corridor built from the + // stops searches beside a line the car never takes — between two cities that is open + // country, which is why everything it found sat at the stops themselves. + if (day.geometry.length > 1) return day.geometry.map(([lat, lng]) => ({ lat, lng })) + // Until the day has routed there is nothing else to go on. + return day.stops.map(s => ({ lat: s.lat, lng: s.lng })) + }, [day]) const search = useCorridorPois(line, categories, widthKm) diff --git a/client/src/components/Roadtrip/useRoadtripRoutes.ts b/client/src/components/Roadtrip/useRoadtripRoutes.ts index 9a5924b53..410ee4aa6 100644 --- a/client/src/components/Roadtrip/useRoadtripRoutes.ts +++ b/client/src/components/Roadtrip/useRoadtripRoutes.ts @@ -31,6 +31,13 @@ export interface RoadtripDay { legs: (RouteSegment | undefined)[] /** Arrival and departure per stop, walked forward from the day's first pinned time. */ schedule: Schedule + /** + * The roads actually driven that day, as [lat, lng] — not the straight lines between + * stops. Anything asking "what is along this day" has to use this: between Hamburg and + * Berlin the straight line runs across open country while the motorway swings north of + * it, so a corridor built from the stops finds the wrong side of the map. + */ + geometry: [number, number][] distance: number duration: number } @@ -136,6 +143,7 @@ export function useRoadtripRoutes( stops, legs: [], schedule: { entries: [], warnings: [] }, + geometry: [], distance: 0, duration: 0, } @@ -244,6 +252,9 @@ export function useRoadtripRoutes( if (leg.line.length > 1) lines.push(leg.line) segments.push(leg.seg) } + // The run polylines end to end: leg 0 of a run carries its whole geometry, the + // rest carry none, so concatenating what is there gives the day as driven. + const geometry = routed.flatMap(l => l?.line ?? []) const legs = routed.map(l => l?.seg) const distance = legs.reduce((sum, l) => sum + (l?.distance ?? 0), 0) const duration = legs.reduce((sum, l) => sum + (l?.duration ?? 0), 0) @@ -251,7 +262,7 @@ export function useRoadtripRoutes( day.stops.map(s => ({ anchor: s.time, dwellMinutes: s.dwellMinutes })), legs.map(l => l?.duration), ) - return { ...day, legs, schedule, distance, duration } + return { ...day, legs, schedule, geometry, distance, duration } }) return { days: out, diff --git a/shared/src/i18n/ar/roadtrip.ts b/shared/src/i18n/ar/roadtrip.ts index 809b0c9df..0727553f1 100644 --- a/shared/src/i18n/ar/roadtrip.ts +++ b/shared/src/i18n/ar/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'محطات على الطريق', 'roadtrip.stops.remove': 'إزالة المحطة', 'roadtrip.poi.title': 'على طول المسار', - 'roadtrip.poi.hint': 'ابحث على طول مسار اليوم عمّا تحتاجه في الطريق.', 'roadtrip.poi.scope': 'اليوم', 'roadtrip.poi.looking': 'المطلوب', 'roadtrip.poi.searchingHint': 'جارٍ البحث على طول المسار…', diff --git a/shared/src/i18n/br/roadtrip.ts b/shared/src/i18n/br/roadtrip.ts index cc70bb216..0eed8f675 100644 --- a/shared/src/i18n/br/roadtrip.ts +++ b/shared/src/i18n/br/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Paradas pelo caminho', 'roadtrip.stops.remove': 'Remover parada', 'roadtrip.poi.title': 'Ao longo da rota', - 'roadtrip.poi.hint': 'Pesquise ao longo do trajeto de um dia o que precisa no caminho.', 'roadtrip.poi.scope': 'Dia', 'roadtrip.poi.looking': 'Procurando por', 'roadtrip.poi.searchingHint': 'Pesquisando a rota…', diff --git a/shared/src/i18n/ca/roadtrip.ts b/shared/src/i18n/ca/roadtrip.ts index 68dd741eb..ee2f12015 100644 --- a/shared/src/i18n/ca/roadtrip.ts +++ b/shared/src/i18n/ca/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Parades pel camí', 'roadtrip.stops.remove': 'Elimina la parada', 'roadtrip.poi.title': 'Al llarg de la ruta', - 'roadtrip.poi.hint': 'Cerca al llarg del trajecte d’un dia el que necessitis.', 'roadtrip.poi.scope': 'Dia', 'roadtrip.poi.looking': 'Es busca', 'roadtrip.poi.searchingHint': 'S’està cercant la ruta…', diff --git a/shared/src/i18n/cs/roadtrip.ts b/shared/src/i18n/cs/roadtrip.ts index e9d0220c9..0bef1442c 100644 --- a/shared/src/i18n/cs/roadtrip.ts +++ b/shared/src/i18n/cs/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Zastávky po cestě', 'roadtrip.stops.remove': 'Odebrat zastávku', 'roadtrip.poi.title': 'Podél trasy', - 'roadtrip.poi.hint': 'Prohledejte denní jízdu podle toho, co po cestě potřebujete.', 'roadtrip.poi.scope': 'Den', 'roadtrip.poi.looking': 'Hledá se', 'roadtrip.poi.searchingHint': 'Prohledávám trasu…', diff --git a/shared/src/i18n/de/roadtrip.ts b/shared/src/i18n/de/roadtrip.ts index 406c410f6..0cfdf5c38 100644 --- a/shared/src/i18n/de/roadtrip.ts +++ b/shared/src/i18n/de/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Stopps unterwegs', 'roadtrip.stops.remove': 'Stopp entfernen', 'roadtrip.poi.title': 'Entlang der Route', - 'roadtrip.poi.hint': 'Durchsuche die Fahrt eines Tages nach dem, was du unterwegs brauchst.', 'roadtrip.poi.scope': 'Tag', 'roadtrip.poi.looking': 'Gesucht wird', 'roadtrip.poi.searchingHint': 'Die Route wird durchsucht…', diff --git a/shared/src/i18n/en/roadtrip.ts b/shared/src/i18n/en/roadtrip.ts index 06fd3d964..78ed29112 100644 --- a/shared/src/i18n/en/roadtrip.ts +++ b/shared/src/i18n/en/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Stops along the way', 'roadtrip.stops.remove': 'Remove stop', 'roadtrip.poi.title': 'Along the route', - 'roadtrip.poi.hint': 'Search a day’s drive for what you need along it.', 'roadtrip.poi.scope': 'Day', 'roadtrip.poi.looking': 'Looking for', 'roadtrip.poi.searchingHint': 'Searching the route…', diff --git a/shared/src/i18n/es/roadtrip.ts b/shared/src/i18n/es/roadtrip.ts index ba8a9a948..201971ec5 100644 --- a/shared/src/i18n/es/roadtrip.ts +++ b/shared/src/i18n/es/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Paradas por el camino', 'roadtrip.stops.remove': 'Eliminar parada', 'roadtrip.poi.title': 'A lo largo de la ruta', - 'roadtrip.poi.hint': 'Busca a lo largo del trayecto de un día lo que necesites.', 'roadtrip.poi.scope': 'Día', 'roadtrip.poi.looking': 'Se busca', 'roadtrip.poi.searchingHint': 'Buscando por la ruta…', diff --git a/shared/src/i18n/fr/roadtrip.ts b/shared/src/i18n/fr/roadtrip.ts index 91d2e861c..8f1f80f2d 100644 --- a/shared/src/i18n/fr/roadtrip.ts +++ b/shared/src/i18n/fr/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Étapes en chemin', 'roadtrip.stops.remove': 'Supprimer l’étape', 'roadtrip.poi.title': 'Le long de l’itinéraire', - 'roadtrip.poi.hint': 'Cherchez le long du trajet d’une journée ce dont vous avez besoin.', 'roadtrip.poi.scope': 'Jour', 'roadtrip.poi.looking': 'Recherche de', 'roadtrip.poi.searchingHint': 'Recherche le long de l’itinéraire…', diff --git a/shared/src/i18n/gr/roadtrip.ts b/shared/src/i18n/gr/roadtrip.ts index c87eb7c1a..5151dfedb 100644 --- a/shared/src/i18n/gr/roadtrip.ts +++ b/shared/src/i18n/gr/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Στάσεις στη διαδρομή', 'roadtrip.stops.remove': 'Αφαίρεση στάσης', 'roadtrip.poi.title': 'Κατά μήκος της διαδρομής', - 'roadtrip.poi.hint': 'Αναζητήστε κατά μήκος της διαδρομής μιας ημέρας ό,τι χρειάζεστε.', 'roadtrip.poi.scope': 'Ημέρα', 'roadtrip.poi.looking': 'Αναζητείται', 'roadtrip.poi.searchingHint': 'Αναζήτηση κατά μήκος της διαδρομής…', diff --git a/shared/src/i18n/hu/roadtrip.ts b/shared/src/i18n/hu/roadtrip.ts index 9dd2d5555..ce636f310 100644 --- a/shared/src/i18n/hu/roadtrip.ts +++ b/shared/src/i18n/hu/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { '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.hint': 'Keresd meg egy nap útvonalán, amire útközben szükséged van.', 'roadtrip.poi.scope': 'Nap', 'roadtrip.poi.looking': 'Amit keresel', 'roadtrip.poi.searchingHint': 'Az útvonal keresése…', diff --git a/shared/src/i18n/id/roadtrip.ts b/shared/src/i18n/id/roadtrip.ts index 48a1f9792..4c38c9271 100644 --- a/shared/src/i18n/id/roadtrip.ts +++ b/shared/src/i18n/id/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Perhentian di sepanjang jalan', 'roadtrip.stops.remove': 'Hapus perhentian', 'roadtrip.poi.title': 'Sepanjang rute', - 'roadtrip.poi.hint': 'Cari di sepanjang perjalanan satu hari apa yang Anda butuhkan.', 'roadtrip.poi.scope': 'Hari', 'roadtrip.poi.looking': 'Mencari', 'roadtrip.poi.searchingHint': 'Mencari di sepanjang rute…', diff --git a/shared/src/i18n/it/roadtrip.ts b/shared/src/i18n/it/roadtrip.ts index fa71d952c..90c6fe88b 100644 --- a/shared/src/i18n/it/roadtrip.ts +++ b/shared/src/i18n/it/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Soste lungo il tragitto', 'roadtrip.stops.remove': 'Rimuovi sosta', 'roadtrip.poi.title': 'Lungo il percorso', - 'roadtrip.poi.hint': 'Cerca lungo il tragitto di una giornata ciò che ti serve.', 'roadtrip.poi.scope': 'Giorno', 'roadtrip.poi.looking': 'Sto cercando', 'roadtrip.poi.searchingHint': 'Ricerca lungo il percorso…', diff --git a/shared/src/i18n/ja/roadtrip.ts b/shared/src/i18n/ja/roadtrip.ts index 2f8038df1..024e4bf74 100644 --- a/shared/src/i18n/ja/roadtrip.ts +++ b/shared/src/i18n/ja/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': '途中の立ち寄り先', 'roadtrip.stops.remove': '立ち寄り先を削除', 'roadtrip.poi.title': 'ルート沿い', - 'roadtrip.poi.hint': 'その日のドライブ沿いに必要なものを探します。', 'roadtrip.poi.scope': '日', 'roadtrip.poi.looking': '探すもの', 'roadtrip.poi.searchingHint': 'ルートを検索しています…', diff --git a/shared/src/i18n/ko/roadtrip.ts b/shared/src/i18n/ko/roadtrip.ts index 1cc5fe61f..a204992b3 100644 --- a/shared/src/i18n/ko/roadtrip.ts +++ b/shared/src/i18n/ko/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': '가는 길의 경유지', 'roadtrip.stops.remove': '경유지 삭제', 'roadtrip.poi.title': '경로 주변', - 'roadtrip.poi.hint': '하루 주행 경로를 따라 필요한 것을 찾습니다.', 'roadtrip.poi.scope': '날짜', 'roadtrip.poi.looking': '찾는 항목', 'roadtrip.poi.searchingHint': '경로를 검색하는 중…', diff --git a/shared/src/i18n/nl/roadtrip.ts b/shared/src/i18n/nl/roadtrip.ts index f298d5be8..abdf4adfb 100644 --- a/shared/src/i18n/nl/roadtrip.ts +++ b/shared/src/i18n/nl/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Stops onderweg', 'roadtrip.stops.remove': 'Stop verwijderen', 'roadtrip.poi.title': 'Langs de route', - 'roadtrip.poi.hint': 'Doorzoek de rit van een dag op wat je onderweg nodig hebt.', 'roadtrip.poi.scope': 'Dag', 'roadtrip.poi.looking': 'Gezocht wordt', 'roadtrip.poi.searchingHint': 'De route wordt doorzocht…', diff --git a/shared/src/i18n/pl/roadtrip.ts b/shared/src/i18n/pl/roadtrip.ts index abc886531..8496ef677 100644 --- a/shared/src/i18n/pl/roadtrip.ts +++ b/shared/src/i18n/pl/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Przystanki po drodze', 'roadtrip.stops.remove': 'Usuń przystanek', 'roadtrip.poi.title': 'Wzdłuż trasy', - 'roadtrip.poi.hint': 'Przeszukaj przejazd danego dnia pod kątem tego, czego potrzebujesz.', 'roadtrip.poi.scope': 'Dzień', 'roadtrip.poi.looking': 'Szukam', 'roadtrip.poi.searchingHint': 'Przeszukiwanie trasy…', diff --git a/shared/src/i18n/ru/roadtrip.ts b/shared/src/i18n/ru/roadtrip.ts index 5ae312afe..7d008c70d 100644 --- a/shared/src/i18n/ru/roadtrip.ts +++ b/shared/src/i18n/ru/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Остановки в пути', 'roadtrip.stops.remove': 'Удалить остановку', 'roadtrip.poi.title': 'Вдоль маршрута', - 'roadtrip.poi.hint': 'Ищите вдоль дневного перегона то, что нужно в пути.', 'roadtrip.poi.scope': 'День', 'roadtrip.poi.looking': 'Ищем', 'roadtrip.poi.searchingHint': 'Идёт поиск вдоль маршрута…', diff --git a/shared/src/i18n/sv/roadtrip.ts b/shared/src/i18n/sv/roadtrip.ts index e3e49939b..f3d2f75ee 100644 --- a/shared/src/i18n/sv/roadtrip.ts +++ b/shared/src/i18n/sv/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Stopp längs vägen', 'roadtrip.stops.remove': 'Ta bort stopp', 'roadtrip.poi.title': 'Längs rutten', - 'roadtrip.poi.hint': 'Sök längs en dags körning efter det du behöver på vägen.', 'roadtrip.poi.scope': 'Dag', 'roadtrip.poi.looking': 'Söker efter', 'roadtrip.poi.searchingHint': 'Söker längs rutten…', diff --git a/shared/src/i18n/tr/roadtrip.ts b/shared/src/i18n/tr/roadtrip.ts index 2fcb4aa50..8dc6e363b 100644 --- a/shared/src/i18n/tr/roadtrip.ts +++ b/shared/src/i18n/tr/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Yol üzerindeki duraklar', 'roadtrip.stops.remove': 'Durağı kaldır', 'roadtrip.poi.title': 'Rota boyunca', - 'roadtrip.poi.hint': 'Bir günün sürüşü boyunca yolda ihtiyacın olanı ara.', 'roadtrip.poi.scope': 'Gün', 'roadtrip.poi.looking': 'Aranan', 'roadtrip.poi.searchingHint': 'Rota aranıyor…', diff --git a/shared/src/i18n/uk/roadtrip.ts b/shared/src/i18n/uk/roadtrip.ts index 23918c9f5..15da7e361 100644 --- a/shared/src/i18n/uk/roadtrip.ts +++ b/shared/src/i18n/uk/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': 'Зупинки в дорозі', 'roadtrip.stops.remove': 'Видалити зупинку', 'roadtrip.poi.title': 'Уздовж маршруту', - 'roadtrip.poi.hint': 'Шукайте вздовж денного перегону те, що потрібно в дорозі.', 'roadtrip.poi.scope': 'День', 'roadtrip.poi.looking': 'Шукаємо', 'roadtrip.poi.searchingHint': 'Триває пошук уздовж маршруту…', diff --git a/shared/src/i18n/vi/roadtrip.ts b/shared/src/i18n/vi/roadtrip.ts index 7ea51ccd3..ec69d5397 100644 --- a/shared/src/i18n/vi/roadtrip.ts +++ b/shared/src/i18n/vi/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { '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.hint': 'Tìm dọc chặng đường trong ngày những thứ bạn cần.', 'roadtrip.poi.scope': 'Ngày', 'roadtrip.poi.looking': 'Đang tìm', 'roadtrip.poi.searchingHint': 'Đang tìm dọc lộ trình…', diff --git a/shared/src/i18n/zh-TW/roadtrip.ts b/shared/src/i18n/zh-TW/roadtrip.ts index 6c56b5dee..5d98b1626 100644 --- a/shared/src/i18n/zh-TW/roadtrip.ts +++ b/shared/src/i18n/zh-TW/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': '沿途停靠點', 'roadtrip.stops.remove': '移除停靠點', 'roadtrip.poi.title': '沿線', - 'roadtrip.poi.hint': '沿某一天的行程搜尋路上需要的東西。', 'roadtrip.poi.scope': '日期', 'roadtrip.poi.looking': '尋找', 'roadtrip.poi.searchingHint': '正在沿路線搜尋…', diff --git a/shared/src/i18n/zh/roadtrip.ts b/shared/src/i18n/zh/roadtrip.ts index 4b8b110bb..0d1ef0afd 100644 --- a/shared/src/i18n/zh/roadtrip.ts +++ b/shared/src/i18n/zh/roadtrip.ts @@ -11,7 +11,6 @@ const roadtrip: TranslationStrings = { 'roadtrip.stops.label': '沿途停靠点', 'roadtrip.stops.remove': '移除停靠点', 'roadtrip.poi.title': '沿线', - 'roadtrip.poi.hint': '沿某一天的行程搜索路上需要的东西。', 'roadtrip.poi.scope': '日期', 'roadtrip.poi.looking': '查找', 'roadtrip.poi.searchingHint': '正在沿路线搜索…',