diff --git a/client/src/pages/tripPlanner/useTripPlanner.test.tsx b/client/src/pages/tripPlanner/useTripPlanner.test.tsx index ba28fe201..65a8a3956 100644 --- a/client/src/pages/tripPlanner/useTripPlanner.test.tsx +++ b/client/src/pages/tripPlanner/useTripPlanner.test.tsx @@ -1314,6 +1314,25 @@ describe('useTripPlanner — place CRUD', () => { expect(result.current.deletePlaceNote).toBeNull() }) + it('FE-TP-HOOK-140: a booking named after its hotel is not quoted a second time', async () => { + const hotel = buildPlace({ id: 1, name: 'Rostock', lat: 54.09, lng: 12.1 }) + seedTrip({ + places: [hotel], + reservations: [buildReservation({ id: 9, type: 'hotel', title: 'Rostock', accommodation_id: 7 })], + }) + vi.mocked(accommodationRepo.list).mockResolvedValue({ + accommodations: [{ id: 7, trip_id: 42, place_id: 1, start_day_id: 5, end_day_id: 6 }] as never, + }) + + const { result } = await renderPlanner() + await waitFor(() => expect(result.current.tripAccommodations).toHaveLength(1)) + const { result: i18n } = renderHook(() => useTranslation(), { wrapper }) + + act(() => { result.current.handleDeletePlace(1) }) + expect(result.current.deletePlaceNote).toBe(i18n.current.t('trip.confirm.deletePlaceBookedSame', { name: 'Rostock' })) + expect(result.current.deletePlaceNote).toBe('This also deletes the stay booked at “Rostock”, its booking and any expense linked to it.') + }) + it('FE-TP-HOOK-119: a bulk delete warns once any of the places carries a night, booking or not', async () => { const hotel = buildPlace({ id: 1, name: 'Hotel Fjord', lat: 60.39, lng: 5.32 }) const cafe = buildPlace({ id: 2, name: 'Cafe', lat: 1, lng: 2 }) diff --git a/client/src/pages/tripPlanner/useTripPlanner.ts b/client/src/pages/tripPlanner/useTripPlanner.ts index 0dfd67791..e6e0d6589 100644 --- a/client/src/pages/tripPlanner/useTripPlanner.ts +++ b/client/src/pages/tripPlanner/useTripPlanner.ts @@ -513,7 +513,8 @@ export function useTripPlanner() { * itself only names the place, and those are the rows the traveller least expects * to lose, so the dialog says so before the yes. The expense list is loaded with * the costs tab, not here, so the sentence speaks of any expense rather than - * counting them. Null when nothing beyond the place is at stake. + * counting them. A booking named after its hotel, which is how most are named, + * is not quoted a second time. Null when nothing beyond the place is at stake. */ const bookedNightsNote = useCallback((placeIds: number[]): string | null => { const stays = tripAccommodations.filter(stay => stay.place_id != null && placeIds.includes(stay.place_id)) @@ -525,9 +526,10 @@ export function useTripPlanner() { ?? stay.reservation_title ?? null) .filter((title): title is string => !!title) const name = names.join(', ') - return bookings.length > 0 - ? t('trip.confirm.deletePlaceBooked', { name, booking: bookings.join(', ') }) - : t('trip.confirm.deletePlaceNight', { name }) + if (bookings.length === 0) return t('trip.confirm.deletePlaceNight', { name }) + return bookings.every(title => names.includes(title)) + ? t('trip.confirm.deletePlaceBookedSame', { name }) + : t('trip.confirm.deletePlaceBooked', { name, booking: bookings.join(', ') }) }, [tripAccommodations, allPlaces, reservations, t]) const deletePlaceNote = useMemo( () => (deletePlaceId ? bookedNightsNote([deletePlaceId]) : null), diff --git a/shared/src/i18n/ar/trip.ts b/shared/src/i18n/ar/trip.ts index 2566f9e73..14e259a53 100644 --- a/shared/src/i18n/ar/trip.ts +++ b/shared/src/i18n/ar/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'التحويلات', 'transit.walkLabel': 'المشي', 'transit.searchHint': 'ابحث عن رحلات فعلية وأضفها مباشرة إلى اليوم — البيانات عبر Transitous.', - 'trip.confirm.deletePlaceNight': 'ستُحذف الليلة المحجوزة في "{name}" مع المكان.', - 'trip.confirm.deletePlaceBooked': 'ستُحذف الليلة المحجوزة في "{name}" مع المكان، ومعها الحجز "{booking}" وأي مصروف مرتبط به.', + 'trip.confirm.deletePlaceNight': 'سيؤدي ذلك أيضًا إلى حذف الإقامة المحجوزة في "{name}".', + 'trip.confirm.deletePlaceBooked': + 'سيؤدي ذلك أيضًا إلى حذف الإقامة المحجوزة في "{name}" والحجز "{booking}" وأي مصروف مرتبط به.', + 'trip.confirm.deletePlaceBookedSame': + 'سيؤدي ذلك أيضًا إلى حذف الإقامة المحجوزة في "{name}" وحجزها وأي مصروف مرتبط به.', }; export default trip; diff --git a/shared/src/i18n/br/trip.ts b/shared/src/i18n/br/trip.ts index 23aaf14f3..b0375ba75 100644 --- a/shared/src/i18n/br/trip.ts +++ b/shared/src/i18n/br/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Baldeações', 'transit.walkLabel': 'A pé', 'transit.searchHint': 'Busque conexões reais e adicione direto ao dia — dados via Transitous.', - 'trip.confirm.deletePlaceNight': 'A noite reservada em “{name}” desaparece com o local.', - 'trip.confirm.deletePlaceBooked': 'A noite reservada em “{name}” desaparece com o local, juntamente com a reserva “{booking}” e qualquer despesa associada.', + 'trip.confirm.deletePlaceNight': 'Isso também exclui a estadia reservada em “{name}”.', + 'trip.confirm.deletePlaceBooked': + 'Isso também exclui a estadia reservada em “{name}”, a reserva “{booking}” e qualquer despesa vinculada a ela.', + 'trip.confirm.deletePlaceBookedSame': + 'Isso também exclui a estadia reservada em “{name}”, a reserva dela e qualquer despesa vinculada.', }; export default trip; diff --git a/shared/src/i18n/ca/trip.ts b/shared/src/i18n/ca/trip.ts index e70656cc0..305fe75a9 100644 --- a/shared/src/i18n/ca/trip.ts +++ b/shared/src/i18n/ca/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'trip.loadingSteps.road': 'Sortint de camí...', 'trip.loadingSteps.arrive': 'Gairebé hi som...', 'trip.toast.tripUpdated': 'Viatge actualitzat', - 'trip.confirm.deletePlaceNight': 'La nit reservada a «{name}» es perd amb el lloc.', - 'trip.confirm.deletePlaceBooked': 'La nit reservada a «{name}» es perd amb el lloc, juntament amb la reserva «{booking}» i qualsevol despesa vinculada.', + 'trip.confirm.deletePlaceNight': 'També s’elimina l’estada reservada a «{name}».', + 'trip.confirm.deletePlaceBooked': + 'També s’eliminen l’estada reservada a «{name}», la reserva «{booking}» i qualsevol despesa vinculada.', + 'trip.confirm.deletePlaceBookedSame': + 'També s’eliminen l’estada reservada a «{name}», la seva reserva i qualsevol despesa vinculada.', }; export default trip; diff --git a/shared/src/i18n/cs/trip.ts b/shared/src/i18n/cs/trip.ts index 431802fc9..812c36dde 100644 --- a/shared/src/i18n/cs/trip.ts +++ b/shared/src/i18n/cs/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Přestupy', 'transit.walkLabel': 'Chůze', 'transit.searchHint': 'Vyhledejte reálná spojení a přidejte je rovnou do dne — data přes Transitous.', - 'trip.confirm.deletePlaceNight': 'Noc rezervovaná v „{name}“ zmizí spolu s místem.', - 'trip.confirm.deletePlaceBooked': 'Noc rezervovaná v „{name}“ zmizí spolu s místem, včetně rezervace „{booking}“ a všech navázaných výdajů.', + 'trip.confirm.deletePlaceNight': 'Tím se smaže i ubytování rezervované v „{name}“.', + 'trip.confirm.deletePlaceBooked': + 'Tím se smažou i ubytování rezervované v „{name}“, rezervace „{booking}“ a všechny navázané výdaje.', + 'trip.confirm.deletePlaceBookedSame': + 'Tím se smažou i ubytování rezervované v „{name}“, jeho rezervace a všechny navázané výdaje.', }; export default trip; diff --git a/shared/src/i18n/de/trip.ts b/shared/src/i18n/de/trip.ts index fe876de1f..fbd0d261b 100644 --- a/shared/src/i18n/de/trip.ts +++ b/shared/src/i18n/de/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Umstiege', 'transit.walkLabel': 'Fußweg', 'transit.searchHint': 'Echte Verbindungen suchen und direkt zum Tag hinzufügen — Daten via Transitous.', - 'trip.confirm.deletePlaceNight': 'Die in „{name}“ gebuchte Nacht geht mit dem Ort verloren.', - 'trip.confirm.deletePlaceBooked': 'Die in „{name}“ gebuchte Nacht geht mit dem Ort verloren, zusammen mit der Buchung „{booking}“ und jeder damit verknüpften Ausgabe.', + 'trip.confirm.deletePlaceNight': 'Damit wird auch die in „{name}“ gebuchte Unterkunft gelöscht.', + 'trip.confirm.deletePlaceBooked': + 'Damit werden auch die in „{name}“ gebuchte Unterkunft, die Buchung „{booking}“ und alle damit verknüpften Ausgaben gelöscht.', + 'trip.confirm.deletePlaceBookedSame': + 'Damit werden auch die in „{name}“ gebuchte Unterkunft, ihre Buchung und alle damit verknüpften Ausgaben gelöscht.', }; export default trip; diff --git a/shared/src/i18n/en/trip.ts b/shared/src/i18n/en/trip.ts index 7d137b450..3839481fa 100644 --- a/shared/src/i18n/en/trip.ts +++ b/shared/src/i18n/en/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Transfers', 'transit.walkLabel': 'Walking', 'transit.searchHint': 'Search real connections and add them straight to the day — data via Transitous.', - 'trip.confirm.deletePlaceNight': 'The night booked at “{name}” goes with the place.', - 'trip.confirm.deletePlaceBooked': 'The night booked at “{name}” goes with the place, together with the booking “{booking}” and any expense linked to it.', + 'trip.confirm.deletePlaceNight': 'This also deletes the stay booked at “{name}”.', + 'trip.confirm.deletePlaceBooked': + 'This also deletes the stay booked at “{name}”, the booking “{booking}” and any expense linked to it.', + 'trip.confirm.deletePlaceBookedSame': + 'This also deletes the stay booked at “{name}”, its booking and any expense linked to it.', }; export default trip; diff --git a/shared/src/i18n/es/trip.ts b/shared/src/i18n/es/trip.ts index c158090ff..821e9a288 100644 --- a/shared/src/i18n/es/trip.ts +++ b/shared/src/i18n/es/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Transbordos', 'transit.walkLabel': 'A pie', 'transit.searchHint': 'Busca conexiones reales y añádelas directamente al día — datos vía Transitous.', - 'trip.confirm.deletePlaceNight': 'La noche reservada en «{name}» se pierde con el lugar.', - 'trip.confirm.deletePlaceBooked': 'La noche reservada en «{name}» se pierde con el lugar, junto con la reserva «{booking}» y cualquier gasto vinculado.', + 'trip.confirm.deletePlaceNight': 'También se elimina la estancia reservada en «{name}».', + 'trip.confirm.deletePlaceBooked': + 'También se eliminan la estancia reservada en «{name}», la reserva «{booking}» y cualquier gasto vinculado.', + 'trip.confirm.deletePlaceBookedSame': + 'También se eliminan la estancia reservada en «{name}», su reserva y cualquier gasto vinculado.', }; export default trip; diff --git a/shared/src/i18n/fr/trip.ts b/shared/src/i18n/fr/trip.ts index 2a4420e0f..bf441115b 100644 --- a/shared/src/i18n/fr/trip.ts +++ b/shared/src/i18n/fr/trip.ts @@ -89,7 +89,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Correspondances', 'transit.walkLabel': 'Marche', 'transit.searchHint': 'Recherchez de vraies liaisons et ajoutez-les directement au jour — données via Transitous.', - 'trip.confirm.deletePlaceNight': 'La nuit réservée à « {name} » disparaît avec le lieu.', - 'trip.confirm.deletePlaceBooked': 'La nuit réservée à « {name} » disparaît avec le lieu, ainsi que la réservation « {booking} » et toute dépense qui y est liée.', + 'trip.confirm.deletePlaceNight': 'Le séjour réservé à « {name} » sera également supprimé.', + 'trip.confirm.deletePlaceBooked': + 'Le séjour réservé à « {name} », la réservation « {booking} » et toute dépense liée seront également supprimés.', + 'trip.confirm.deletePlaceBookedSame': + 'Le séjour réservé à « {name} », sa réservation et toute dépense liée seront également supprimés.', }; export default trip; diff --git a/shared/src/i18n/gr/trip.ts b/shared/src/i18n/gr/trip.ts index 6069ea0d4..121e8a27f 100644 --- a/shared/src/i18n/gr/trip.ts +++ b/shared/src/i18n/gr/trip.ts @@ -90,7 +90,10 @@ const trip: TranslationStrings = { 'transit.walkLabel': 'Περπάτημα', 'transit.searchHint': 'Αναζητήστε πραγματικές συνδέσεις και προσθέστε τις απευθείας στην ημέρα — δεδομένα μέσω Transitous.', - 'trip.confirm.deletePlaceNight': 'Η διανυκτέρευση που κρατήθηκε στο «{name}» χάνεται μαζί με το μέρος.', - 'trip.confirm.deletePlaceBooked': 'Η διανυκτέρευση που κρατήθηκε στο «{name}» χάνεται μαζί με το μέρος, μαζί με την κράτηση «{booking}» και κάθε συνδεδεμένο έξοδο.', + 'trip.confirm.deletePlaceNight': 'Θα διαγραφεί επίσης η διαμονή που κρατήθηκε στο «{name}».', + 'trip.confirm.deletePlaceBooked': + 'Θα διαγραφούν επίσης η διαμονή που κρατήθηκε στο «{name}», η κράτηση «{booking}» και κάθε συνδεδεμένο έξοδο.', + 'trip.confirm.deletePlaceBookedSame': + 'Θα διαγραφούν επίσης η διαμονή που κρατήθηκε στο «{name}», η κράτησή της και κάθε συνδεδεμένο έξοδο.', }; export default trip; diff --git a/shared/src/i18n/hu/trip.ts b/shared/src/i18n/hu/trip.ts index 3991d6409..73feab850 100644 --- a/shared/src/i18n/hu/trip.ts +++ b/shared/src/i18n/hu/trip.ts @@ -90,7 +90,10 @@ const trip: TranslationStrings = { 'transit.walkLabel': 'Gyaloglás', 'transit.searchHint': 'Keress valós összeköttetéseket, és add hozzá őket közvetlenül a naphoz – adatok a Transitous révén.', - 'trip.confirm.deletePlaceNight': 'A(z) „{name}” helyre foglalt éjszaka a hellyel együtt törlődik.', - 'trip.confirm.deletePlaceBooked': 'A(z) „{name}” helyre foglalt éjszaka a hellyel együtt törlődik, a(z) „{booking}” foglalással és a hozzá kapcsolt kiadásokkal.', + 'trip.confirm.deletePlaceNight': 'Ezzel a(z) „{name}” helyen foglalt szállás is törlődik.', + 'trip.confirm.deletePlaceBooked': + 'Ezzel a(z) „{name}” helyen foglalt szállás, a(z) „{booking}” foglalás és a hozzá kapcsolt kiadások is törlődnek.', + 'trip.confirm.deletePlaceBookedSame': + 'Ezzel a(z) „{name}” helyen foglalt szállás, a foglalása és a hozzá kapcsolt kiadások is törlődnek.', }; export default trip; diff --git a/shared/src/i18n/id/trip.ts b/shared/src/i18n/id/trip.ts index c8468cc75..7e8bdbed6 100644 --- a/shared/src/i18n/id/trip.ts +++ b/shared/src/i18n/id/trip.ts @@ -89,7 +89,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Transit', 'transit.walkLabel': 'Jalan kaki', 'transit.searchHint': 'Cari koneksi nyata dan tambahkan langsung ke hari itu — data melalui Transitous.', - 'trip.confirm.deletePlaceNight': 'Malam yang dipesan di “{name}” ikut hilang bersama tempat ini.', - 'trip.confirm.deletePlaceBooked': 'Malam yang dipesan di “{name}” ikut hilang bersama tempat ini, beserta pemesanan “{booking}” dan pengeluaran yang terkait.', + 'trip.confirm.deletePlaceNight': 'Ini juga menghapus penginapan yang dipesan di “{name}”.', + 'trip.confirm.deletePlaceBooked': + 'Ini juga menghapus penginapan yang dipesan di “{name}”, pemesanan “{booking}”, dan pengeluaran yang terkait.', + 'trip.confirm.deletePlaceBookedSame': + 'Ini juga menghapus penginapan yang dipesan di “{name}”, pemesanannya, dan pengeluaran yang terkait.', }; export default trip; diff --git a/shared/src/i18n/it/trip.ts b/shared/src/i18n/it/trip.ts index 674edcdcf..09dc9fa41 100644 --- a/shared/src/i18n/it/trip.ts +++ b/shared/src/i18n/it/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Cambi', 'transit.walkLabel': 'A piedi', 'transit.searchHint': 'Cerca collegamenti reali e aggiungili direttamente alla giornata — dati via Transitous.', - 'trip.confirm.deletePlaceNight': 'La notte prenotata a «{name}» va via con il luogo.', - 'trip.confirm.deletePlaceBooked': 'La notte prenotata a «{name}» va via con il luogo, insieme alla prenotazione «{booking}» e a ogni spesa collegata.', + 'trip.confirm.deletePlaceNight': 'Verrà eliminato anche il soggiorno prenotato a «{name}».', + 'trip.confirm.deletePlaceBooked': + 'Verranno eliminati anche il soggiorno prenotato a «{name}», la prenotazione «{booking}» e ogni spesa collegata.', + 'trip.confirm.deletePlaceBookedSame': + 'Verranno eliminati anche il soggiorno prenotato a «{name}», la sua prenotazione e ogni spesa collegata.', }; export default trip; diff --git a/shared/src/i18n/ja/trip.ts b/shared/src/i18n/ja/trip.ts index 80e6e78b2..3065a98ff 100644 --- a/shared/src/i18n/ja/trip.ts +++ b/shared/src/i18n/ja/trip.ts @@ -88,7 +88,8 @@ const trip: TranslationStrings = { 'transit.transfersLabel': '乗り換え', 'transit.walkLabel': '徒歩', 'transit.searchHint': '実際の経路を検索して、そのまま日程に追加できます — データは Transitous 提供。', - 'trip.confirm.deletePlaceNight': '「{name}」で予約した宿泊も場所と一緒に削除されます。', - 'trip.confirm.deletePlaceBooked': '「{name}」で予約した宿泊も場所と一緒に削除され、予約「{booking}」と関連する支出も失われます。', + 'trip.confirm.deletePlaceNight': '「{name}」で予約した宿泊も削除されます。', + 'trip.confirm.deletePlaceBooked': '「{name}」で予約した宿泊、予約「{booking}」、関連する支出も削除されます。', + 'trip.confirm.deletePlaceBookedSame': '「{name}」で予約した宿泊とその予約、関連する支出も削除されます。', }; export default trip; diff --git a/shared/src/i18n/ko/trip.ts b/shared/src/i18n/ko/trip.ts index 942133bdd..6b85c97ce 100644 --- a/shared/src/i18n/ko/trip.ts +++ b/shared/src/i18n/ko/trip.ts @@ -88,7 +88,8 @@ const trip: TranslationStrings = { 'transit.transfersLabel': '환승', 'transit.walkLabel': '도보', 'transit.searchHint': '실제 연결편을 검색하고 바로 일정에 추가하세요 — 데이터 제공: Transitous.', - 'trip.confirm.deletePlaceNight': '“{name}”에 예약된 숙박도 장소와 함께 삭제됩니다.', - 'trip.confirm.deletePlaceBooked': '“{name}”에 예약된 숙박이 장소와 함께 삭제되며, 예약 “{booking}” 및 연결된 지출도 함께 삭제됩니다.', + 'trip.confirm.deletePlaceNight': '“{name}”에 예약된 숙박도 함께 삭제됩니다.', + 'trip.confirm.deletePlaceBooked': '“{name}”에 예약된 숙박, 예약 “{booking}” 및 연결된 지출도 함께 삭제됩니다.', + 'trip.confirm.deletePlaceBookedSame': '“{name}”에 예약된 숙박과 그 예약, 연결된 지출도 함께 삭제됩니다.', }; export default trip; diff --git a/shared/src/i18n/nl/trip.ts b/shared/src/i18n/nl/trip.ts index cb71c8735..942983a5e 100644 --- a/shared/src/i18n/nl/trip.ts +++ b/shared/src/i18n/nl/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Overstappen', 'transit.walkLabel': 'Lopen', 'transit.searchHint': 'Zoek echte verbindingen en voeg ze direct toe aan de dag — gegevens via Transitous.', - 'trip.confirm.deletePlaceNight': 'De nacht geboekt bij ‘{name}’ verdwijnt met de plek.', - 'trip.confirm.deletePlaceBooked': 'De nacht geboekt bij ‘{name}’ verdwijnt met de plek, samen met de boeking ‘{booking}’ en elke gekoppelde uitgave.', + 'trip.confirm.deletePlaceNight': 'Hiermee wordt ook het verblijf geboekt bij ‘{name}’ verwijderd.', + 'trip.confirm.deletePlaceBooked': + 'Hiermee worden ook het verblijf geboekt bij ‘{name}’, de boeking ‘{booking}’ en elke gekoppelde uitgave verwijderd.', + 'trip.confirm.deletePlaceBookedSame': + 'Hiermee worden ook het verblijf geboekt bij ‘{name}’, de bijbehorende boeking en elke gekoppelde uitgave verwijderd.', }; export default trip; diff --git a/shared/src/i18n/pl/trip.ts b/shared/src/i18n/pl/trip.ts index 4410e93b6..3286692a3 100644 --- a/shared/src/i18n/pl/trip.ts +++ b/shared/src/i18n/pl/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Przesiadki', 'transit.walkLabel': 'Pieszo', 'transit.searchHint': 'Wyszukaj prawdziwe połączenia i dodaj je od razu do dnia — dane z Transitous.', - 'trip.confirm.deletePlaceNight': 'Nocleg zarezerwowany w „{name}” zniknie razem z miejscem.', - 'trip.confirm.deletePlaceBooked': 'Nocleg zarezerwowany w „{name}” zniknie razem z miejscem, wraz z rezerwacją „{booking}” i powiązanymi wydatkami.', + 'trip.confirm.deletePlaceNight': 'Zostanie też usunięty nocleg zarezerwowany w „{name}”.', + 'trip.confirm.deletePlaceBooked': + 'Zostaną też usunięte nocleg zarezerwowany w „{name}”, rezerwacja „{booking}” i powiązane wydatki.', + 'trip.confirm.deletePlaceBookedSame': + 'Zostaną też usunięte nocleg zarezerwowany w „{name}”, jego rezerwacja i powiązane wydatki.', }; export default trip; diff --git a/shared/src/i18n/ru/trip.ts b/shared/src/i18n/ru/trip.ts index deebcbb0b..bf9b294aa 100644 --- a/shared/src/i18n/ru/trip.ts +++ b/shared/src/i18n/ru/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Пересадки', 'transit.walkLabel': 'Пешком', 'transit.searchHint': 'Ищите реальные маршруты и добавляйте их прямо в день — данные от Transitous.', - 'trip.confirm.deletePlaceNight': 'Ночёвка, забронированная в «{name}», исчезнет вместе с местом.', - 'trip.confirm.deletePlaceBooked': 'Ночёвка, забронированная в «{name}», исчезнет вместе с местом, а с ней бронирование «{booking}» и связанные расходы.', + 'trip.confirm.deletePlaceNight': 'Также будет удалено проживание, забронированное в «{name}».', + 'trip.confirm.deletePlaceBooked': + 'Также будут удалены проживание, забронированное в «{name}», бронирование «{booking}» и связанные расходы.', + 'trip.confirm.deletePlaceBookedSame': + 'Также будут удалены проживание, забронированное в «{name}», его бронирование и связанные расходы.', }; export default trip; diff --git a/shared/src/i18n/sv/trip.ts b/shared/src/i18n/sv/trip.ts index 76fdc4c98..f76503f69 100644 --- a/shared/src/i18n/sv/trip.ts +++ b/shared/src/i18n/sv/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Byten', 'transit.walkLabel': 'Gång', 'transit.searchHint': 'Sök verkliga förbindelser och lägg till dem direkt i dagen – data via Transitous.', - 'trip.confirm.deletePlaceNight': 'Natten som är bokad på ”{name}” försvinner med platsen.', - 'trip.confirm.deletePlaceBooked': 'Natten som är bokad på ”{name}” försvinner med platsen, tillsammans med bokningen ”{booking}” och alla utgifter som hör till den.', + 'trip.confirm.deletePlaceNight': 'Då raderas även vistelsen som är bokad på ”{name}”.', + 'trip.confirm.deletePlaceBooked': + 'Då raderas även vistelsen som är bokad på ”{name}”, bokningen ”{booking}” och alla utgifter som hör till den.', + 'trip.confirm.deletePlaceBookedSame': + 'Då raderas även vistelsen som är bokad på ”{name}”, dess bokning och alla utgifter som hör till den.', }; export default trip; diff --git a/shared/src/i18n/tr/trip.ts b/shared/src/i18n/tr/trip.ts index cfad4b639..a2b039e97 100644 --- a/shared/src/i18n/tr/trip.ts +++ b/shared/src/i18n/tr/trip.ts @@ -89,7 +89,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Aktarma', 'transit.walkLabel': 'Yürüyüş', 'transit.searchHint': 'Gerçek bağlantıları ara ve doğrudan güne ekle — veriler Transitous üzerinden.', - 'trip.confirm.deletePlaceNight': '“{name}” için ayrılan gece yerle birlikte silinir.', - 'trip.confirm.deletePlaceBooked': '“{name}” için ayrılan gece, “{booking}” rezervasyonu ve ona bağlı tüm harcamalarla birlikte yerle beraber silinir.', + 'trip.confirm.deletePlaceNight': '“{name}” için ayrılan konaklama da silinir.', + 'trip.confirm.deletePlaceBooked': + '“{name}” için ayrılan konaklama, “{booking}” rezervasyonu ve ona bağlı tüm harcamalar da silinir.', + 'trip.confirm.deletePlaceBookedSame': + '“{name}” için ayrılan konaklama, rezervasyonu ve ona bağlı tüm harcamalar da silinir.', }; export default trip; diff --git a/shared/src/i18n/uk/trip.ts b/shared/src/i18n/uk/trip.ts index 8c0797a52..bc03a8fe8 100644 --- a/shared/src/i18n/uk/trip.ts +++ b/shared/src/i18n/uk/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Пересадки', 'transit.walkLabel': 'Пішки', 'transit.searchHint': 'Шукайте справжні маршрути та додавайте їх одразу до дня — дані від Transitous.', - 'trip.confirm.deletePlaceNight': 'Ночівля, заброньована в «{name}», зникне разом із місцем.', - 'trip.confirm.deletePlaceBooked': 'Ночівля, заброньована в «{name}», зникне разом із місцем, а з нею бронювання «{booking}» і пов’язані витрати.', + 'trip.confirm.deletePlaceNight': 'Також буде видалено проживання, заброньоване в «{name}».', + 'trip.confirm.deletePlaceBooked': + 'Також буде видалено проживання, заброньоване в «{name}», бронювання «{booking}» і пов’язані витрати.', + 'trip.confirm.deletePlaceBookedSame': + 'Також буде видалено проживання, заброньоване в «{name}», його бронювання і пов’язані витрати.', }; export default trip; diff --git a/shared/src/i18n/vi/trip.ts b/shared/src/i18n/vi/trip.ts index 006e757e2..d78cbb716 100644 --- a/shared/src/i18n/vi/trip.ts +++ b/shared/src/i18n/vi/trip.ts @@ -88,7 +88,10 @@ const trip: TranslationStrings = { 'transit.transfersLabel': 'Chuyển tuyến', 'transit.walkLabel': 'Đi bộ', 'transit.searchHint': 'Tìm các kết nối thực tế và thêm thẳng vào ngày — dữ liệu qua Transitous.', - 'trip.confirm.deletePlaceNight': 'Đêm đã đặt tại “{name}” sẽ mất cùng với địa điểm.', - 'trip.confirm.deletePlaceBooked': 'Đêm đã đặt tại “{name}” sẽ mất cùng với địa điểm, kèm theo đặt chỗ “{booking}” và mọi chi phí liên quan.', + 'trip.confirm.deletePlaceNight': 'Thao tác này cũng xóa chỗ lưu trú đã đặt tại “{name}”.', + 'trip.confirm.deletePlaceBooked': + 'Thao tác này cũng xóa chỗ lưu trú đã đặt tại “{name}”, đặt chỗ “{booking}” và mọi chi phí liên quan.', + 'trip.confirm.deletePlaceBookedSame': + 'Thao tác này cũng xóa chỗ lưu trú đã đặt tại “{name}”, đặt chỗ của nó và mọi chi phí liên quan.', }; export default trip; diff --git a/shared/src/i18n/zh-TW/trip.ts b/shared/src/i18n/zh-TW/trip.ts index 21cb59079..c9053fd69 100644 --- a/shared/src/i18n/zh-TW/trip.ts +++ b/shared/src/i18n/zh-TW/trip.ts @@ -87,7 +87,8 @@ const trip: TranslationStrings = { 'transit.transfersLabel': '轉乘次數', 'transit.walkLabel': '步行', 'transit.searchHint': '搜尋實際交通連線,並直接加入當天行程 — 資料由 Transitous 提供。', - 'trip.confirm.deletePlaceNight': '在「{name}」預訂的過夜會隨該地點一起刪除。', - 'trip.confirm.deletePlaceBooked': '在「{name}」預訂的過夜會隨該地點一起刪除,同時刪除預訂「{booking}」及其關聯的費用。', + 'trip.confirm.deletePlaceNight': '在「{name}」預訂的住宿也會一併刪除。', + 'trip.confirm.deletePlaceBooked': '在「{name}」預訂的住宿、預訂「{booking}」及其關聯的費用也會一併刪除。', + 'trip.confirm.deletePlaceBookedSame': '在「{name}」預訂的住宿及其預訂和關聯的費用也會一併刪除。', }; export default trip; diff --git a/shared/src/i18n/zh/trip.ts b/shared/src/i18n/zh/trip.ts index 85c6bd094..072a44c55 100644 --- a/shared/src/i18n/zh/trip.ts +++ b/shared/src/i18n/zh/trip.ts @@ -87,7 +87,8 @@ const trip: TranslationStrings = { 'transit.transfersLabel': '换乘', 'transit.walkLabel': '步行', 'transit.searchHint': '搜索真实班次并直接添加到当天行程 — 数据来自 Transitous。', - 'trip.confirm.deletePlaceNight': '在“{name}”预订的过夜会随该地点一起删除。', - 'trip.confirm.deletePlaceBooked': '在“{name}”预订的过夜会随该地点一起删除,同时删除预订“{booking}”及其关联的费用。', + 'trip.confirm.deletePlaceNight': '在“{name}”预订的住宿也会一并删除。', + 'trip.confirm.deletePlaceBooked': '在“{name}”预订的住宿、预订“{booking}”及其关联的费用也会一并删除。', + 'trip.confirm.deletePlaceBookedSame': '在“{name}”预订的住宿及其预订和关联的费用也会一并删除。', }; export default trip;