mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-21 06:26:26 +00:00
fix: resolve a batch of reported bugs (planner, budget, atlas, bookings, mobile)
- #1394 planner: two transports on one day no longer draw a phantom airport→airport road route between them (a run is only a drive when it holds a real place); mirrored in the map hook and the sidebar's leg list, with a regression test. - #1392 planner: the per-day Route button now points the selection at the tapped day before toggling, so on mobile it computes that day's route instead of the previously selected one, and only the selected day's button reads as active. - #1372 planner: the "open in Google Maps" route now includes the day's hotel bookends, matching the drawn map route. - #1375 planner: a multi-day accommodation no longer thrashes the plan scroll — the auto-scroll lock keys on the selection identity, not the per-day row. - #1377 planner: the reset-orientation compass is now shown on small screens too. - #1382 budget: settlement nets in the trip's canonical currency and converts to the display currency once, so balances no longer drift with live FX and no phantom third-party micro-flows appear (identity, hence unchanged, when they're the same). - #1366 atlas: countries reached only by a transport booking (no lodging/place) now count as visited, on both the dashboard and the Atlas page. - #1383 bookings: a hotel linked to an accommodation shows only its day-range, not a duplicate stamped date row, and the range stays correct after an edit. - #1353 bookings: any non-hotel reservation can now link an existing trip place/activity. - #1390 i18n: fix the Polish word for "buddies" (Towarzysze → Współpodróżnicy). - #1265 planner: drag-and-drop of places now works on touch devices via a polyfill.
This commit is contained in:
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'ربط بالإقامة',
|
||||
'reservations.meta.noAccommodation': 'لا يوجد',
|
||||
'reservations.meta.hotelPlace': 'الإقامة',
|
||||
'reservations.meta.linkPlace': 'مكان / نشاط',
|
||||
'reservations.meta.pickPlace': 'اختر مكانًا / نشاطًا',
|
||||
'reservations.meta.pickHotel': 'اختر الإقامة',
|
||||
'reservations.meta.fromDay': 'من',
|
||||
'reservations.meta.toDay': 'إلى',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Vincular à hospedagem',
|
||||
'reservations.meta.noAccommodation': 'Nenhuma',
|
||||
'reservations.meta.hotelPlace': 'Hospedagem',
|
||||
'reservations.meta.linkPlace': 'Local / Atividade',
|
||||
'reservations.meta.pickPlace': 'Selecionar local / atividade',
|
||||
'reservations.meta.pickHotel': 'Selecionar hospedagem',
|
||||
'reservations.meta.fromDay': 'De',
|
||||
'reservations.meta.toDay': 'Até',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Propojit s ubytováním',
|
||||
'reservations.meta.noAccommodation': 'Nic',
|
||||
'reservations.meta.hotelPlace': 'Ubytování',
|
||||
'reservations.meta.linkPlace': 'Místo / Aktivita',
|
||||
'reservations.meta.pickPlace': 'Vybrat místo / aktivitu',
|
||||
'reservations.meta.pickHotel': 'Vybrat ubytování',
|
||||
'reservations.meta.fromDay': 'Od dne',
|
||||
'reservations.meta.toDay': 'Do dne',
|
||||
|
||||
@@ -47,6 +47,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Mit Unterkunft verknüpfen',
|
||||
'reservations.meta.noAccommodation': 'Keine',
|
||||
'reservations.meta.hotelPlace': 'Unterkunft',
|
||||
'reservations.meta.linkPlace': 'Ort / Aktivität',
|
||||
'reservations.meta.pickPlace': 'Ort / Aktivität wählen',
|
||||
'reservations.meta.pickHotel': 'Unterkunft auswählen',
|
||||
'reservations.meta.fromDay': 'Von',
|
||||
'reservations.meta.toDay': 'Bis',
|
||||
|
||||
@@ -46,6 +46,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Link to accommodation',
|
||||
'reservations.meta.noAccommodation': 'None',
|
||||
'reservations.meta.hotelPlace': 'Accommodation',
|
||||
'reservations.meta.linkPlace': 'Place / Activity',
|
||||
'reservations.meta.pickPlace': 'Select place / activity',
|
||||
'reservations.meta.pickHotel': 'Select accommodation',
|
||||
'reservations.meta.fromDay': 'From',
|
||||
'reservations.meta.toDay': 'To',
|
||||
|
||||
@@ -117,6 +117,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Vincular con alojamiento',
|
||||
'reservations.meta.noAccommodation': 'Ninguno',
|
||||
'reservations.meta.hotelPlace': 'Alojamiento',
|
||||
'reservations.meta.linkPlace': 'Lugar / Actividad',
|
||||
'reservations.meta.pickPlace': 'Seleccionar lugar / actividad',
|
||||
'reservations.meta.pickHotel': 'Seleccionar alojamiento',
|
||||
'reservations.meta.fromDay': 'Desde',
|
||||
'reservations.meta.toDay': 'Hasta',
|
||||
|
||||
@@ -46,6 +46,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Lier à un hébergement',
|
||||
'reservations.meta.noAccommodation': 'Aucun',
|
||||
'reservations.meta.hotelPlace': 'Hébergement',
|
||||
'reservations.meta.linkPlace': 'Lieu / Activité',
|
||||
'reservations.meta.pickPlace': 'Sélectionner un lieu / une activité',
|
||||
'reservations.meta.pickHotel': 'Sélectionner un hébergement',
|
||||
'reservations.meta.fromDay': 'Du',
|
||||
'reservations.meta.toDay': 'Au',
|
||||
|
||||
@@ -46,6 +46,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Σύνδεση με κατάλυμα',
|
||||
'reservations.meta.noAccommodation': 'Κανένα',
|
||||
'reservations.meta.hotelPlace': 'Κατάλυμα',
|
||||
'reservations.meta.linkPlace': 'Τοποθεσία / Δραστηριότητα',
|
||||
'reservations.meta.pickPlace': 'Επιλογή τοποθεσίας / δραστηριότητας',
|
||||
'reservations.meta.pickHotel': 'Επιλογή καταλύματος',
|
||||
'reservations.meta.fromDay': 'Από',
|
||||
'reservations.meta.toDay': 'Προς',
|
||||
|
||||
@@ -46,6 +46,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Szállás hozzárendelése',
|
||||
'reservations.meta.noAccommodation': 'Nincs',
|
||||
'reservations.meta.hotelPlace': 'Szálloda',
|
||||
'reservations.meta.linkPlace': 'Hely / Tevékenység',
|
||||
'reservations.meta.pickPlace': 'Hely / tevékenység kiválasztása',
|
||||
'reservations.meta.pickHotel': 'Szálloda kiválasztása',
|
||||
'reservations.meta.fromDay': 'Ettől',
|
||||
'reservations.meta.toDay': 'Eddig',
|
||||
|
||||
@@ -45,6 +45,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Hubungkan ke akomodasi',
|
||||
'reservations.meta.noAccommodation': 'Tidak ada',
|
||||
'reservations.meta.hotelPlace': 'Akomodasi',
|
||||
'reservations.meta.linkPlace': 'Tempat / Aktivitas',
|
||||
'reservations.meta.pickPlace': 'Pilih tempat / aktivitas',
|
||||
'reservations.meta.pickHotel': 'Pilih akomodasi',
|
||||
'reservations.meta.fromDay': 'Dari',
|
||||
'reservations.meta.toDay': 'Sampai',
|
||||
|
||||
@@ -45,6 +45,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Collega a un alloggio',
|
||||
'reservations.meta.noAccommodation': 'Nessuno',
|
||||
'reservations.meta.hotelPlace': 'Alloggio',
|
||||
'reservations.meta.linkPlace': 'Luogo / Attività',
|
||||
'reservations.meta.pickPlace': 'Seleziona luogo / attività',
|
||||
'reservations.meta.pickHotel': 'Seleziona alloggio',
|
||||
'reservations.meta.fromDay': 'Da',
|
||||
'reservations.meta.toDay': 'A',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': '宿泊先にリンク',
|
||||
'reservations.meta.noAccommodation': 'なし',
|
||||
'reservations.meta.hotelPlace': '宿泊先',
|
||||
'reservations.meta.linkPlace': '場所 / アクティビティ',
|
||||
'reservations.meta.pickPlace': '場所 / アクティビティを選択',
|
||||
'reservations.meta.pickHotel': '宿泊先を選択',
|
||||
'reservations.meta.fromDay': '開始',
|
||||
'reservations.meta.toDay': '終了',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': '숙박 연결',
|
||||
'reservations.meta.noAccommodation': '없음',
|
||||
'reservations.meta.hotelPlace': '숙박',
|
||||
'reservations.meta.linkPlace': '장소 / 활동',
|
||||
'reservations.meta.pickPlace': '장소 / 활동 선택',
|
||||
'reservations.meta.pickHotel': '숙박 선택',
|
||||
'reservations.meta.fromDay': '부터',
|
||||
'reservations.meta.toDay': '까지',
|
||||
|
||||
@@ -45,6 +45,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Koppel aan accommodatie',
|
||||
'reservations.meta.noAccommodation': 'Geen',
|
||||
'reservations.meta.hotelPlace': 'Accommodatie',
|
||||
'reservations.meta.linkPlace': 'Plaats / Activiteit',
|
||||
'reservations.meta.pickPlace': 'Kies plaats / activiteit',
|
||||
'reservations.meta.pickHotel': 'Selecteer accommodatie',
|
||||
'reservations.meta.fromDay': 'Van',
|
||||
'reservations.meta.toDay': 'Tot',
|
||||
|
||||
@@ -80,7 +80,7 @@ const dashboard: TranslationStrings = {
|
||||
'dashboard.useUnsplashPhoto': 'Użyj zdjęcia z Unsplash autorstwa {photographer}',
|
||||
'dashboard.titleRequired': 'Nazwa podróży jest wymagana',
|
||||
'dashboard.endDateError': 'Data zakończenia musi być po dacie rozpoczęcia',
|
||||
'dashboard.members': 'Towarzysze',
|
||||
'dashboard.members': 'Współpodróżnicy',
|
||||
'dashboard.copyTrip': 'Kopiuj',
|
||||
'dashboard.copySuffix': 'kopia',
|
||||
'dashboard.toast.copied': 'Podróż skopiowana!',
|
||||
@@ -92,7 +92,7 @@ const dashboard: TranslationStrings = {
|
||||
'dashboard.mobile.tripProgress': 'Postęp podróży',
|
||||
'dashboard.mobile.daysLeft': 'Pozostało {count} dni',
|
||||
'dashboard.mobile.places': 'Miejsca',
|
||||
'dashboard.mobile.buddies': 'Towarzysze',
|
||||
'dashboard.mobile.buddies': 'Współpodróżnicy',
|
||||
'dashboard.mobile.newTrip': 'Nowa podróż',
|
||||
'dashboard.mobile.currency': 'Waluta',
|
||||
'dashboard.mobile.timezone': 'Strefa czasowa',
|
||||
@@ -140,7 +140,7 @@ const dashboard: TranslationStrings = {
|
||||
'dashboard.atlas.kmUnit': 'km',
|
||||
'dashboard.atlas.aroundEquator': '≈ {count}× dookoła równika',
|
||||
'dashboard.card.idea': 'Pomysł',
|
||||
'dashboard.card.buddyOne': 'Towarzysz',
|
||||
'dashboard.card.buddyOne': 'Współpodróżnik',
|
||||
'dashboard.fx.from': 'Z',
|
||||
'dashboard.fx.to': 'Na',
|
||||
'dashboard.fx.unavailable': 'Kurs niedostępny',
|
||||
|
||||
@@ -42,6 +42,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Link do zakwaterowania',
|
||||
'reservations.meta.noAccommodation': 'Brak',
|
||||
'reservations.meta.hotelPlace': 'Zakwaterowanie',
|
||||
'reservations.meta.linkPlace': 'Miejsce / Aktywność',
|
||||
'reservations.meta.pickPlace': 'Wybierz miejsce / aktywność',
|
||||
'reservations.meta.pickHotel': 'Wybierz zakwaterowanie',
|
||||
'reservations.meta.fromDay': 'Od',
|
||||
'reservations.meta.toDay': 'Do',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Привязать к жилью',
|
||||
'reservations.meta.noAccommodation': 'Нет',
|
||||
'reservations.meta.hotelPlace': 'Жильё',
|
||||
'reservations.meta.linkPlace': 'Место / Активность',
|
||||
'reservations.meta.pickPlace': 'Выбрать место / активность',
|
||||
'reservations.meta.pickHotel': 'Выбрать жильё',
|
||||
'reservations.meta.fromDay': 'С',
|
||||
'reservations.meta.toDay': 'По',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Länk till boende',
|
||||
'reservations.meta.noAccommodation': 'Inget',
|
||||
'reservations.meta.hotelPlace': 'Boende',
|
||||
'reservations.meta.linkPlace': 'Plats / Aktivitet',
|
||||
'reservations.meta.pickPlace': 'Välj plats / aktivitet',
|
||||
'reservations.meta.pickHotel': 'Välj boende',
|
||||
'reservations.meta.fromDay': 'Från',
|
||||
'reservations.meta.toDay': 'Till',
|
||||
|
||||
@@ -45,6 +45,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Konaklama bağlantısı',
|
||||
'reservations.meta.noAccommodation': 'Hiçbiri',
|
||||
'reservations.meta.hotelPlace': 'Konaklama',
|
||||
'reservations.meta.linkPlace': 'Yer / Etkinlik',
|
||||
'reservations.meta.pickPlace': 'Yer / etkinlik seç',
|
||||
'reservations.meta.pickHotel': 'Konaklama seçin',
|
||||
'reservations.meta.fromDay': 'İtibaren',
|
||||
'reservations.meta.toDay': 'İle',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Прив’язати до житла',
|
||||
'reservations.meta.noAccommodation': 'Ні',
|
||||
'reservations.meta.hotelPlace': 'Житло',
|
||||
'reservations.meta.linkPlace': 'Місце / Активність',
|
||||
'reservations.meta.pickPlace': 'Вибрати місце / активність',
|
||||
'reservations.meta.pickHotel': 'Оберіть житло',
|
||||
'reservations.meta.fromDay': 'З',
|
||||
'reservations.meta.toDay': 'По',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': 'Liên kết chỗ ở',
|
||||
'reservations.meta.noAccommodation': 'Không có',
|
||||
'reservations.meta.hotelPlace': 'Chỗ ở',
|
||||
'reservations.meta.linkPlace': 'Địa điểm / Hoạt động',
|
||||
'reservations.meta.pickPlace': 'Chọn địa điểm / hoạt động',
|
||||
'reservations.meta.pickHotel': 'Chọn chỗ ở',
|
||||
'reservations.meta.fromDay': 'Từ',
|
||||
'reservations.meta.toDay': 'ĐẾN',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': '關聯住宿',
|
||||
'reservations.meta.noAccommodation': '無',
|
||||
'reservations.meta.hotelPlace': '住宿',
|
||||
'reservations.meta.linkPlace': '地點 / 活動',
|
||||
'reservations.meta.pickPlace': '選擇地點 / 活動',
|
||||
'reservations.meta.pickHotel': '選擇住宿',
|
||||
'reservations.meta.fromDay': '從',
|
||||
'reservations.meta.toDay': '到',
|
||||
|
||||
@@ -44,6 +44,8 @@ const reservations: TranslationStrings = {
|
||||
'reservations.meta.pickAccommodation': '关联住宿',
|
||||
'reservations.meta.noAccommodation': '无',
|
||||
'reservations.meta.hotelPlace': '住宿',
|
||||
'reservations.meta.linkPlace': '地点 / 活动',
|
||||
'reservations.meta.pickPlace': '选择地点 / 活动',
|
||||
'reservations.meta.pickHotel': '选择住宿',
|
||||
'reservations.meta.fromDay': '从',
|
||||
'reservations.meta.toDay': '到',
|
||||
|
||||
Reference in New Issue
Block a user