mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
fix(roadtrip): other ways come from the router that draws the leg, and a choice is saved once it holds
The picker of other ways asked OSRM with nothing avoided while the rail drives a trip that avoids a road class through Valhalla, so the list had no current road, called a road the rail was not on the fastest, and choosing it changed nothing. A choice was stored as one via where the offer strayed furthest, without asking whether the router then drove it: a point on a ferry was pulled to the pier and the drive went overland, and a way weighed away from motorways kept the motorway after its one point. An OSRM answer standing in for a Valhalla that did not respond was cached as the avoided road, unmarked. The rail now hands out a router per leg with the leg's own mode, avoided classes and engine, and its days carry the line of every leg. Offers come from that engine, and the rail's own leg always heads the list as Current. A choice is pinned and proven against that router with at most three pins before anything is written; a way it will not follow is not saved and says why, with a hint when it crosses by ferry, and a leg that changed meanwhile or a device offline writes nothing. The OSRM stand-in is filed under the plain key only and flags the day as not avoided.
This commit is contained in:
@@ -217,6 +217,10 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': 'أبطأ بـ {time}',
|
||||
'roadtrip.alt.quicker': 'أسرع بـ {time}',
|
||||
'roadtrip.alt.otherEngine': 'الزمن محسوب بمحرك التجنب، لا بالمحرك الرئيسي.',
|
||||
'roadtrip.alt.notHeld': 'خادم المسارات للرحلة البرية لا يتبع هذا الطريق، لذلك لم يُحفظ.',
|
||||
'roadtrip.alt.ferryNotHeld': 'يعبر هذا الطريق بالعبّارة. أضف العبّارة كحجز نقل وستتبعها الرحلة.',
|
||||
'roadtrip.alt.legChanged': 'تغيّرت هذه المرحلة أثناء التحقق، لذلك لم يُحفظ أي شيء.',
|
||||
'roadtrip.alt.offline': 'تُحفظ الطرق الأخرى عبر الإنترنت فقط. أعد الاتصال لاختيار هذا الطريق.',
|
||||
'roadtrip.day': 'اليوم {number}',
|
||||
'roadtrip.quietDay.empty': 'لا توجد محطات بعد — أفلِت واحدة هنا',
|
||||
'roadtrip.quietDay.one': 'حتى الآن {name} فقط — أفلِت محطة هنا',
|
||||
|
||||
@@ -222,6 +222,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} mais lenta',
|
||||
'roadtrip.alt.quicker': '{time} mais rápida',
|
||||
'roadtrip.alt.otherEngine': 'Tempo do roteador de desvios, não do principal.',
|
||||
'roadtrip.alt.notHeld': 'O roteador da viagem não segue este caminho, então ele não foi salvo.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Este caminho atravessa de balsa. Adicione a balsa como reserva de transporte e o trajeto passa a segui-la.',
|
||||
'roadtrip.alt.legChanged': 'Este trecho mudou enquanto o caminho era verificado, então nada foi salvo.',
|
||||
'roadtrip.alt.offline': 'Outros caminhos só são salvos online. Reconecte-se para escolher este.',
|
||||
'roadtrip.day': 'Dia {number}',
|
||||
'roadtrip.quietDay.empty': 'Ainda sem paradas — solte uma aqui',
|
||||
'roadtrip.quietDay.one': 'Até agora só {name} — solte uma parada aqui',
|
||||
|
||||
@@ -224,6 +224,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} més lenta',
|
||||
'roadtrip.alt.quicker': '{time} més ràpida',
|
||||
'roadtrip.alt.otherEngine': 'Temps de l’encaminador d’evitació, no del principal.',
|
||||
'roadtrip.alt.notHeld': 'L’encaminador del viatge no segueix aquest camí, així que no s’ha desat.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Aquest camí creua en transbordador. Afegeix el transbordador com a reserva de transport i el trajecte el seguirà.',
|
||||
'roadtrip.alt.legChanged': 'Aquest tram ha canviat mentre es comprovava el camí, així que no s’ha desat res.',
|
||||
'roadtrip.alt.offline': 'Els altres camins només es desen amb connexió. Torna a connectar-te per triar aquest.',
|
||||
'roadtrip.day': 'Dia {number}',
|
||||
'roadtrip.quietDay.empty': 'Encara sense parades: deixa’n una aquí',
|
||||
'roadtrip.quietDay.one': 'De moment només {name}: deixa una parada aquí',
|
||||
|
||||
@@ -220,6 +220,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': 'o {time} déle',
|
||||
'roadtrip.alt.quicker': 'o {time} rychleji',
|
||||
'roadtrip.alt.otherEngine': 'Čas spočítal server pro objížďky, ne ten hlavní.',
|
||||
'roadtrip.alt.notHeld': 'Směrovací server cesty touto trasou nepovede, proto nebyla uložena.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Tato trasa vede přes trajekt. Přidej trajekt jako rezervaci dopravy a jízda ho bude následovat.',
|
||||
'roadtrip.alt.legChanged': 'Úsek se během kontroly změnil, proto se nic neuložilo.',
|
||||
'roadtrip.alt.offline': 'Jiné trasy se ukládají jen online. Pro výběr této trasy se znovu připoj.',
|
||||
'roadtrip.day': 'Den {number}',
|
||||
'roadtrip.quietDay.empty': 'Zatím žádné zastávky — přetáhněte sem',
|
||||
'roadtrip.quietDay.one': 'Zatím jen {name} — přetáhněte sem zastávku',
|
||||
|
||||
@@ -219,6 +219,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} länger',
|
||||
'roadtrip.alt.quicker': '{time} kürzer',
|
||||
'roadtrip.alt.otherEngine': 'Zeit vom Ausweich-Router, nicht vom Haupt-Router.',
|
||||
'roadtrip.alt.notHeld': 'Der Router des Roadtrips fährt diesen Weg nicht nach, deshalb wurde er nicht gespeichert.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Dieser Weg führt über eine Fähre. Trag die Fähre als Transportbuchung ein, dann folgt ihr die Fahrt.',
|
||||
'roadtrip.alt.legChanged': 'Die Etappe hat sich während der Prüfung geändert, deshalb wurde nichts gespeichert.',
|
||||
'roadtrip.alt.offline': 'Andere Wege werden nur online gespeichert. Verbinde dich wieder, um diesen zu nehmen.',
|
||||
'roadtrip.day': 'Tag {number}',
|
||||
'roadtrip.quietDay.empty': 'Noch keine Stopps — hier ablegen',
|
||||
'roadtrip.quietDay.one': 'Bisher nur {name} — hier einen Stopp ablegen',
|
||||
|
||||
@@ -217,6 +217,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} slower',
|
||||
'roadtrip.alt.quicker': '{time} quicker',
|
||||
'roadtrip.alt.otherEngine': 'Timed by the avoidance router, not the main one.',
|
||||
'roadtrip.alt.notHeld': 'The road trip’s router won’t follow this way, so it was not saved.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'This way crosses by ferry. Add the ferry as a transport booking and the drive follows it.',
|
||||
'roadtrip.alt.legChanged': 'This leg changed while the way was being checked, so nothing was saved.',
|
||||
'roadtrip.alt.offline': 'Other ways are saved online only. Reconnect to take this one.',
|
||||
'roadtrip.day': 'Day {number}',
|
||||
'roadtrip.quietDay.empty': 'No stops yet — drop one here',
|
||||
'roadtrip.quietDay.one': 'Only {name} so far — drop a stop here',
|
||||
|
||||
@@ -223,6 +223,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} más',
|
||||
'roadtrip.alt.quicker': '{time} menos',
|
||||
'roadtrip.alt.otherEngine': 'Tiempo del enrutador de evitación, no del principal.',
|
||||
'roadtrip.alt.notHeld': 'El enrutador del viaje no sigue esta ruta, así que no se ha guardado.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Esta ruta cruza en ferri. Añade el ferri como reserva de transporte y el trayecto lo seguirá.',
|
||||
'roadtrip.alt.legChanged': 'Este tramo cambió mientras se comprobaba la ruta, así que no se ha guardado nada.',
|
||||
'roadtrip.alt.offline': 'Las otras rutas solo se guardan con conexión. Vuelve a conectarte para elegir esta.',
|
||||
'roadtrip.day': 'Día {number}',
|
||||
'roadtrip.quietDay.empty': 'Sin paradas todavía: suelta una aquí',
|
||||
'roadtrip.quietDay.one': 'Por ahora solo {name}: suelta una parada aquí',
|
||||
|
||||
@@ -223,6 +223,12 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} de plus',
|
||||
'roadtrip.alt.quicker': '{time} de moins',
|
||||
'roadtrip.alt.otherEngine': 'Temps du routeur de contournement, pas du principal.',
|
||||
'roadtrip.alt.notHeld': 'Le routeur du road trip ne suit pas cet itinéraire, il n’a donc pas été enregistré.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Cet itinéraire traverse en ferry. Ajoutez le ferry comme réservation de transport et le trajet le suivra.',
|
||||
'roadtrip.alt.legChanged': 'Cette étape a changé pendant la vérification, rien n’a donc été enregistré.',
|
||||
'roadtrip.alt.offline':
|
||||
'Les autres itinéraires ne s’enregistrent qu’en ligne. Reconnectez-vous pour choisir celui-ci.',
|
||||
'roadtrip.day': 'Jour {number}',
|
||||
'roadtrip.quietDay.empty': 'Aucun arrêt — déposez-en un ici',
|
||||
'roadtrip.quietDay.one': 'Seulement {name} pour l’instant — déposez un arrêt ici',
|
||||
|
||||
@@ -225,6 +225,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} πιο αργή',
|
||||
'roadtrip.alt.quicker': '{time} πιο γρήγορη',
|
||||
'roadtrip.alt.otherEngine': 'Χρόνος από τον δρομολογητή αποφυγής, όχι τον κύριο.',
|
||||
'roadtrip.alt.notHeld': 'Ο δρομολογητής του ταξιδιού δεν ακολουθεί αυτή τη διαδρομή, οπότε δεν αποθηκεύτηκε.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Αυτή η διαδρομή περνά με πλοίο. Πρόσθεσε το πλοίο ως κράτηση μεταφοράς και η οδήγηση θα το ακολουθήσει.',
|
||||
'roadtrip.alt.legChanged': 'Το σκέλος άλλαξε κατά τον έλεγχο, οπότε δεν αποθηκεύτηκε τίποτα.',
|
||||
'roadtrip.alt.offline': 'Οι άλλες διαδρομές αποθηκεύονται μόνο online. Συνδέσου ξανά για να επιλέξεις αυτή.',
|
||||
'roadtrip.day': 'Ημέρα {number}',
|
||||
'roadtrip.quietDay.empty': 'Καμία στάση ακόμη — αφήστε μία εδώ',
|
||||
'roadtrip.quietDay.one': 'Μέχρι στιγμής μόνο {name} — αφήστε μια στάση εδώ',
|
||||
|
||||
@@ -221,6 +221,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time}-cel lassabb',
|
||||
'roadtrip.alt.quicker': '{time}-cel gyorsabb',
|
||||
'roadtrip.alt.otherEngine': 'Az időt a kerülő útvonaltervező számolta, nem a fő.',
|
||||
'roadtrip.alt.notHeld': 'Az autós út útvonaltervezője nem követi ezt az utat, ezért nem mentettük el.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Ez az út komppal kel át. Add hozzá a kompot közlekedési foglalásként, és az út követni fogja.',
|
||||
'roadtrip.alt.legChanged': 'A szakasz az ellenőrzés közben megváltozott, ezért semmi sem lett mentve.',
|
||||
'roadtrip.alt.offline': 'A többi utat csak online lehet menteni. Csatlakozz újra, hogy ezt válaszd.',
|
||||
'roadtrip.day': '{number}. nap',
|
||||
'roadtrip.quietDay.empty': 'Még nincs megálló — húzzon ide egyet',
|
||||
'roadtrip.quietDay.one': 'Egyelőre csak {name} — húzzon ide egy megállót',
|
||||
|
||||
@@ -223,6 +223,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} lebih lama',
|
||||
'roadtrip.alt.quicker': '{time} lebih cepat',
|
||||
'roadtrip.alt.otherEngine': 'Waktu dihitung mesin penghindaran, bukan mesin utama.',
|
||||
'roadtrip.alt.notHeld': 'Server rute perjalanan tidak mengikuti jalan ini, jadi jalan ini tidak disimpan.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Jalan ini menyeberang dengan feri. Tambahkan feri sebagai pemesanan transportasi dan perjalanan akan mengikutinya.',
|
||||
'roadtrip.alt.legChanged': 'Ruas ini berubah saat jalannya diperiksa, jadi tidak ada yang disimpan.',
|
||||
'roadtrip.alt.offline': 'Jalan lain hanya disimpan saat online. Sambungkan kembali untuk memilih yang ini.',
|
||||
'roadtrip.day': 'Hari {number}',
|
||||
'roadtrip.quietDay.empty': 'Belum ada perhentian — jatuhkan di sini',
|
||||
'roadtrip.quietDay.one': 'Sejauh ini hanya {name} — jatuhkan perhentian di sini',
|
||||
|
||||
@@ -223,6 +223,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} in più',
|
||||
'roadtrip.alt.quicker': '{time} in meno',
|
||||
'roadtrip.alt.otherEngine': 'Tempo dal router delle esclusioni, non dal principale.',
|
||||
'roadtrip.alt.notHeld': 'Il router del viaggio non segue questo percorso, quindi non è stato salvato.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Questo percorso attraversa in traghetto. Aggiungi il traghetto come prenotazione di trasporto e il tragitto lo seguirà.',
|
||||
'roadtrip.alt.legChanged': 'La tratta è cambiata durante la verifica, quindi non è stato salvato nulla.',
|
||||
'roadtrip.alt.offline': 'Gli altri percorsi si salvano solo online. Riconnettiti per scegliere questo.',
|
||||
'roadtrip.day': 'Giorno {number}',
|
||||
'roadtrip.quietDay.empty': 'Ancora nessuna sosta: trascinane una qui',
|
||||
'roadtrip.quietDay.one': 'Finora solo {name}: trascina qui una sosta',
|
||||
|
||||
@@ -219,6 +219,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} 遅い',
|
||||
'roadtrip.alt.quicker': '{time} 速い',
|
||||
'roadtrip.alt.otherEngine': '所要時間は主エンジンではなく回避用エンジンでの計算です。',
|
||||
'roadtrip.alt.notHeld': 'ロードトリップのルーティングサーバーがこの道をたどらないため、保存されませんでした。',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'この道はフェリーで渡ります。フェリーを交通手段の予約として追加すると、ルートがそれに沿います。',
|
||||
'roadtrip.alt.legChanged': '確認中にこの区間が変更されたため、何も保存されませんでした。',
|
||||
'roadtrip.alt.offline': 'ほかの道はオンラインでのみ保存できます。この道を選ぶには再接続してください。',
|
||||
'roadtrip.day': '{number} 日目',
|
||||
'roadtrip.quietDay.empty': 'まだ立ち寄り先がありません。ここにドロップ',
|
||||
'roadtrip.quietDay.one': '今のところ {name} だけです。立ち寄り先をここにドロップ',
|
||||
|
||||
@@ -217,6 +217,10 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} 더 걸림',
|
||||
'roadtrip.alt.quicker': '{time} 더 빠름',
|
||||
'roadtrip.alt.otherEngine': '기본 엔진이 아니라 회피 엔진이 계산한 시간입니다.',
|
||||
'roadtrip.alt.notHeld': '로드트립의 경로 서버가 이 길을 따르지 않아 저장하지 않았습니다.',
|
||||
'roadtrip.alt.ferryNotHeld': '이 길은 페리로 건넙니다. 페리를 교통편 예약으로 추가하면 경로가 그대로 따라갑니다.',
|
||||
'roadtrip.alt.legChanged': '확인하는 동안 이 구간이 바뀌어 아무것도 저장하지 않았습니다.',
|
||||
'roadtrip.alt.offline': '다른 길은 온라인에서만 저장됩니다. 이 길을 고르려면 다시 연결하세요.',
|
||||
'roadtrip.day': '{number}일차',
|
||||
'roadtrip.quietDay.empty': '아직 경유지가 없습니다. 여기에 놓으세요',
|
||||
'roadtrip.quietDay.one': '지금은 {name}뿐입니다. 경유지를 여기에 놓으세요',
|
||||
|
||||
@@ -223,6 +223,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} langzamer',
|
||||
'roadtrip.alt.quicker': '{time} sneller',
|
||||
'roadtrip.alt.otherEngine': 'Tijd van de vermijdingsrouter, niet van de hoofdrouter.',
|
||||
'roadtrip.alt.notHeld': 'De routeserver van de roadtrip volgt deze route niet, dus die is niet opgeslagen.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Deze route gaat met de veerboot. Voeg de veerboot toe als vervoersboeking en de rit volgt hem.',
|
||||
'roadtrip.alt.legChanged': 'Dit traject veranderde tijdens de controle, dus er is niets opgeslagen.',
|
||||
'roadtrip.alt.offline': 'Andere routes worden alleen online opgeslagen. Maak opnieuw verbinding om deze te kiezen.',
|
||||
'roadtrip.day': 'Dag {number}',
|
||||
'roadtrip.quietDay.empty': 'Nog geen stops — laat er hier een vallen',
|
||||
'roadtrip.quietDay.one': 'Voorlopig alleen {name} — laat hier een stop vallen',
|
||||
|
||||
@@ -221,6 +221,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} dłużej',
|
||||
'roadtrip.alt.quicker': '{time} krócej',
|
||||
'roadtrip.alt.otherEngine': 'Czas policzony silnikiem omijania, nie głównym.',
|
||||
'roadtrip.alt.notHeld': 'Serwer tras podróży nie poprowadzi tą drogą, więc nie została zapisana.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Ta droga prowadzi promem. Dodaj prom jako rezerwację transportu, a trasa za nim pójdzie.',
|
||||
'roadtrip.alt.legChanged': 'Ten odcinek zmienił się podczas sprawdzania, więc nic nie zostało zapisane.',
|
||||
'roadtrip.alt.offline': 'Inne drogi zapisują się tylko online. Połącz się ponownie, aby wybrać tę.',
|
||||
'roadtrip.day': 'Dzień {number}',
|
||||
'roadtrip.quietDay.empty': 'Brak przystanków — upuść tutaj',
|
||||
'roadtrip.quietDay.one': 'Na razie tylko {name} — upuść tutaj przystanek',
|
||||
|
||||
@@ -223,6 +223,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': 'на {time} дольше',
|
||||
'roadtrip.alt.quicker': 'на {time} быстрее',
|
||||
'roadtrip.alt.otherEngine': 'Время посчитал маршрутизатор обхода, не основной.',
|
||||
'roadtrip.alt.notHeld': 'Маршрутизатор поездки не поведёт по этому пути, поэтому он не сохранён.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Этот путь проходит на пароме. Добавьте паром как бронирование транспорта, и маршрут пойдёт по нему.',
|
||||
'roadtrip.alt.legChanged': 'Участок изменился во время проверки, поэтому ничего не сохранено.',
|
||||
'roadtrip.alt.offline': 'Другие пути сохраняются только онлайн. Подключитесь снова, чтобы выбрать этот.',
|
||||
'roadtrip.day': 'День {number}',
|
||||
'roadtrip.quietDay.empty': 'Остановок пока нет — перетащите сюда',
|
||||
'roadtrip.quietDay.one': 'Пока только {name} — перетащите сюда остановку',
|
||||
|
||||
@@ -220,6 +220,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} långsammare',
|
||||
'roadtrip.alt.quicker': '{time} snabbare',
|
||||
'roadtrip.alt.otherEngine': 'Tid från undvikandemotorn, inte huvudmotorn.',
|
||||
'roadtrip.alt.notHeld': 'Bilresans ruttserver följer inte den här vägen, så den sparades inte.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Den här vägen går med färja. Lägg till färjan som transportbokning så följer resan den.',
|
||||
'roadtrip.alt.legChanged': 'Sträckan ändrades medan vägen kontrollerades, så inget sparades.',
|
||||
'roadtrip.alt.offline': 'Andra vägar sparas bara online. Anslut igen för att välja den här.',
|
||||
'roadtrip.day': 'Dag {number}',
|
||||
'roadtrip.quietDay.empty': 'Inga stopp än – släpp ett här',
|
||||
'roadtrip.quietDay.one': 'Hittills bara {name} – släpp ett stopp här',
|
||||
|
||||
@@ -222,6 +222,10 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '{time} daha uzun',
|
||||
'roadtrip.alt.quicker': '{time} daha kısa',
|
||||
'roadtrip.alt.otherEngine': 'Süre, ana motorla değil kaçınma motoruyla hesaplandı.',
|
||||
'roadtrip.alt.notHeld': 'Yolculuğun rota sunucusu bu yolu izlemiyor, bu yüzden kaydedilmedi.',
|
||||
'roadtrip.alt.ferryNotHeld': 'Bu yol feribotla geçiyor. Feribotu ulaşım rezervasyonu olarak ekle, sürüş onu izlesin.',
|
||||
'roadtrip.alt.legChanged': 'Bu etap kontrol sırasında değişti, bu yüzden hiçbir şey kaydedilmedi.',
|
||||
'roadtrip.alt.offline': 'Diğer yollar yalnızca çevrimiçiyken kaydedilir. Bunu seçmek için yeniden bağlan.',
|
||||
'roadtrip.day': '{number}. gün',
|
||||
'roadtrip.quietDay.empty': 'Henüz mola yok — buraya bırakın',
|
||||
'roadtrip.quietDay.one': 'Şimdilik yalnızca {name} — buraya bir mola bırakın',
|
||||
|
||||
@@ -222,6 +222,11 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': 'на {time} довше',
|
||||
'roadtrip.alt.quicker': 'на {time} швидше',
|
||||
'roadtrip.alt.otherEngine': 'Час порахував маршрутизатор обходів, а не основний.',
|
||||
'roadtrip.alt.notHeld': 'Маршрутизатор подорожі не поведе цим шляхом, тому його не збережено.',
|
||||
'roadtrip.alt.ferryNotHeld':
|
||||
'Цей шлях проходить поромом. Додайте пором як бронювання транспорту, і маршрут піде ним.',
|
||||
'roadtrip.alt.legChanged': 'Відрізок змінився під час перевірки, тому нічого не збережено.',
|
||||
'roadtrip.alt.offline': 'Інші шляхи зберігаються лише онлайн. Під’єднайтеся знову, щоб вибрати цей.',
|
||||
'roadtrip.day': 'День {number}',
|
||||
'roadtrip.quietDay.empty': 'Зупинок ще немає — перетягніть сюди',
|
||||
'roadtrip.quietDay.one': 'Поки лише {name} — перетягніть сюди зупинку',
|
||||
|
||||
@@ -221,6 +221,10 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': 'chậm hơn {time}',
|
||||
'roadtrip.alt.quicker': 'nhanh hơn {time}',
|
||||
'roadtrip.alt.otherEngine': 'Giờ do máy chủ định tuyến tránh đường tính, không phải máy chính.',
|
||||
'roadtrip.alt.notHeld': 'Máy chủ định tuyến của chuyến đi không đi theo đường này, nên đường này chưa được lưu.',
|
||||
'roadtrip.alt.ferryNotHeld': 'Đường này đi qua phà. Hãy thêm phà làm đặt chỗ phương tiện và lộ trình sẽ đi theo nó.',
|
||||
'roadtrip.alt.legChanged': 'Chặng này đã thay đổi trong lúc kiểm tra, nên chưa có gì được lưu.',
|
||||
'roadtrip.alt.offline': 'Các đường khác chỉ được lưu khi trực tuyến. Hãy kết nối lại để chọn đường này.',
|
||||
'roadtrip.day': 'Ngày {number}',
|
||||
'roadtrip.quietDay.empty': 'Chưa có điểm dừng — thả vào đây',
|
||||
'roadtrip.quietDay.one': 'Hiện chỉ có {name} — thả một điểm dừng vào đây',
|
||||
|
||||
@@ -208,6 +208,10 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '慢 {time}',
|
||||
'roadtrip.alt.quicker': '快 {time}',
|
||||
'roadtrip.alt.otherEngine': '駕駛時間由避開專用的路徑服務計算,無法與其他項比較。',
|
||||
'roadtrip.alt.notHeld': '公路旅行的路徑服務不會走這條路,因此未儲存。',
|
||||
'roadtrip.alt.ferryNotHeld': '這條路需要搭渡輪。將渡輪新增為交通預訂,路線就會隨之調整。',
|
||||
'roadtrip.alt.legChanged': '檢查期間這一段有所變更,因此沒有儲存任何內容。',
|
||||
'roadtrip.alt.offline': '其他走法只能在連線時儲存。重新連線後即可選擇這條。',
|
||||
'roadtrip.day': '第 {number} 天',
|
||||
'roadtrip.quietDay.empty': '尚無停靠點 — 拖到這裡',
|
||||
'roadtrip.quietDay.one': '目前只有 {name} — 把停靠點拖到這裡',
|
||||
|
||||
@@ -209,6 +209,10 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.alt.slower': '慢 {time}',
|
||||
'roadtrip.alt.quicker': '快 {time}',
|
||||
'roadtrip.alt.otherEngine': '用时由避开引擎计算,而非主引擎。',
|
||||
'roadtrip.alt.notHeld': '公路旅行的路径服务不会走这条路,因此未保存。',
|
||||
'roadtrip.alt.ferryNotHeld': '这条路需要乘渡轮。把渡轮添加为交通预订,路线就会随之调整。',
|
||||
'roadtrip.alt.legChanged': '检查期间这一段发生了变化,因此没有保存任何内容。',
|
||||
'roadtrip.alt.offline': '其他走法只能在联网时保存。重新连接后即可选择这条。',
|
||||
'roadtrip.day': '第 {number} 天',
|
||||
'roadtrip.quietDay.empty': '暂无停靠点 — 拖到这里',
|
||||
'roadtrip.quietDay.one': '目前只有 {name} — 把停靠点拖到这里',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* ROADTRIP-ASSEMBLE-001..005: what the assembler does with the model's warnings, and
|
||||
* ROADTRIP-ASSEMBLE-001..016: what the assembler does with the model's warnings, and
|
||||
* what it tells a surface about the drive between connected days.
|
||||
*
|
||||
* The model itself is pinned by roadtripModel.spec.ts. This file pins the
|
||||
@@ -257,6 +257,47 @@ describe('assembleRoadtrip connected days', () => {
|
||||
expect(routes.lineDays).toEqual([1, 1, 2, 2]);
|
||||
expect(routes.lineJoins).toEqual([false, false, true, false]);
|
||||
});
|
||||
|
||||
it('ROADTRIP-ASSEMBLE-015: every leg carries the road it is drawn on, beside its figures', () => {
|
||||
// The picker of other ways lists the rail's own road as the current one, and it can only
|
||||
// do that with the line of THAT leg. The card's geometry is every leg in one line, and
|
||||
// cutting it back apart would be a second measurement that can disagree with the first.
|
||||
const routes = assembleTwoDays(false);
|
||||
const [first, second] = routes.days;
|
||||
|
||||
expect(first!.legLines).toHaveLength(first!.legs.length);
|
||||
expect(first!.legLines).toEqual([
|
||||
[
|
||||
[50, 10],
|
||||
[51, 10],
|
||||
],
|
||||
[
|
||||
[51, 10],
|
||||
[52, 10],
|
||||
],
|
||||
]);
|
||||
expect(second!.legLines).toEqual([
|
||||
[
|
||||
[60, 10],
|
||||
[61, 10],
|
||||
],
|
||||
]);
|
||||
});
|
||||
|
||||
it('ROADTRIP-ASSEMBLE-016: the drive into a connected day carries its line exactly when it carries its band', () => {
|
||||
const joined = assembleTwoDays(true).days[1]!;
|
||||
expect(joined.arrivingLeg).toBeDefined();
|
||||
expect(joined.arrivingLine).toEqual([
|
||||
[52, 10],
|
||||
[60, 10],
|
||||
]);
|
||||
// It is not one of the card's own legs, so it stays out of theirs.
|
||||
expect(joined.legLines).toHaveLength(1);
|
||||
|
||||
const apart = assembleTwoDays(false).days[1]!;
|
||||
expect(apart.arrivingLeg).toBeUndefined();
|
||||
expect(apart.arrivingLine).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('assembleRoadtrip leave times', () => {
|
||||
|
||||
@@ -115,6 +115,7 @@ export function assembleRoadtrip({
|
||||
|
||||
const inboundAt = new Map<number, { seg: RouteSegment | undefined; line: [number, number][]; drawnAs: number }>();
|
||||
let arrivingLeg: RouteSegment | undefined;
|
||||
let arrivingLine: [number, number][] | undefined;
|
||||
let arrivingFrom: RoadtripStop | undefined;
|
||||
if (connectDays && !automaticSchedule) {
|
||||
for (const spill of chain.spills) {
|
||||
@@ -125,6 +126,7 @@ export function assembleRoadtrip({
|
||||
if (joined) {
|
||||
inboundAt.set(0, { seg: joined.seg, line: joined.line, drawnAs: previousDayNumber ?? chain.dayNumber });
|
||||
arrivingLeg = joined.seg;
|
||||
arrivingLine = joined.line;
|
||||
arrivingFrom = previousStop;
|
||||
}
|
||||
}
|
||||
@@ -172,6 +174,7 @@ export function assembleRoadtrip({
|
||||
geometry.push(...(routed[i]?.line ?? []));
|
||||
}
|
||||
const legs = routed.map((l) => l?.seg);
|
||||
const legLines = routed.map((l) => l?.line);
|
||||
const inbound = [...inboundAt.values()].map((l) => l.seg);
|
||||
// The day's figures are the drive's: a ride's hours belong to the booking, not to the
|
||||
// wheel, and its distance was never measured (`carrierLeg` stores none).
|
||||
@@ -282,9 +285,13 @@ export function assembleRoadtrip({
|
||||
// Only where no stop actually crossed over: a crossing already draws its own band,
|
||||
// with this same road under it, and a second one would be the drive twice.
|
||||
arrivingLeg: chain.spills.length ? undefined : arrivingLeg,
|
||||
// Withheld with the band it belongs to, so a surface never holds a line for a leg the
|
||||
// card does not show.
|
||||
arrivingLine: chain.spills.length ? undefined : arrivingLine,
|
||||
arrivingFrom,
|
||||
stops,
|
||||
legs,
|
||||
legLines,
|
||||
legVias,
|
||||
schedule,
|
||||
geometry,
|
||||
|
||||
@@ -134,6 +134,17 @@ export interface RoadtripDay {
|
||||
|
||||
legs: (RouteSegment | undefined)[];
|
||||
|
||||
/**
|
||||
* The road each of `legs` is drawn on, parallel to it: the very line the map shows for
|
||||
* that leg, vias included.
|
||||
*
|
||||
* Kept per leg because a surface that talks about ONE leg has to show the road the rail
|
||||
* actually drives there. `geometry` is the whole card in one line and cannot be cut back
|
||||
* into its legs without measuring it again, which is how the picker of other ways once
|
||||
* offered a road the rail was not on as the one it was.
|
||||
*/
|
||||
legLines?: ([number, number][] | undefined)[];
|
||||
|
||||
/**
|
||||
* The drive from where the day before ended to where this one starts.
|
||||
*
|
||||
@@ -145,6 +156,9 @@ export interface RoadtripDay {
|
||||
*/
|
||||
arrivingLeg?: RouteSegment;
|
||||
|
||||
/** The road `arrivingLeg` is drawn on. Present exactly when `arrivingLeg` is. */
|
||||
arrivingLine?: [number, number][];
|
||||
|
||||
/**
|
||||
* The stop the drive at the head of this card's `geometry` sets off from, when the
|
||||
* days are connected.
|
||||
|
||||
Reference in New Issue
Block a user