diff --git a/client/src/components/Files/FileManager.constants.ts b/client/src/components/Files/FileManager.constants.ts index e597c35f..266d17a8 100644 --- a/client/src/components/Files/FileManager.constants.ts +++ b/client/src/components/Files/FileManager.constants.ts @@ -1 +1 @@ -export const TRANSPORT_TYPES = new Set(['flight', 'train', 'car', 'cruise']) +export const TRANSPORT_TYPES = new Set(['flight', 'train', 'bus', 'car', 'taxi', 'bicycle', 'cruise', 'ferry', 'transport_other']) diff --git a/client/src/components/Files/FileManager.helpers.ts b/client/src/components/Files/FileManager.helpers.ts index 23f3df2f..d238045e 100644 --- a/client/src/components/Files/FileManager.helpers.ts +++ b/client/src/components/Files/FileManager.helpers.ts @@ -1,4 +1,4 @@ -import { FileText, FileImage, File, Plane, Train, Car, Ship } from 'lucide-react' +import { FileText, FileImage, File, Plane, Train, Car, Ship, Bus, Sailboat, Bike, CarTaxiFront, Route } from 'lucide-react' import { downloadFile } from '../../utils/fileDownload' export function isImage(mimeType?: string | null) { @@ -33,7 +33,12 @@ export function formatDateWithLocale(dateStr?: string | null, locale?: string) { export function transportIcon(type: string) { if (type === 'train') return Train + if (type === 'bus') return Bus if (type === 'car') return Car + if (type === 'taxi') return CarTaxiFront + if (type === 'bicycle') return Bike if (type === 'cruise') return Ship + if (type === 'ferry') return Sailboat + if (type === 'transport_other') return Route return Plane } diff --git a/client/src/components/Map/ReservationOverlay.tsx b/client/src/components/Map/ReservationOverlay.tsx index 38fae454..6f47d4db 100644 --- a/client/src/components/Map/ReservationOverlay.tsx +++ b/client/src/components/Map/ReservationOverlay.tsx @@ -2,7 +2,7 @@ import { createElement, useEffect, useMemo, useRef, useState } from 'react' import { renderToStaticMarkup } from 'react-dom/server' import { Marker, Polyline, Tooltip, useMap, useMapEvents } from 'react-leaflet' import L from 'leaflet' -import { Plane, Train, Ship, Car } from 'lucide-react' +import { Plane, Train, Ship, Car, Bus, Sailboat, Bike, CarTaxiFront, Route } from 'lucide-react' import { useSettingsStore } from '../../store/settingsStore' import type { Reservation, ReservationEndpoint } from '../../types' @@ -10,8 +10,8 @@ const ENDPOINT_PANE = 'reservation-endpoints' const AIRPORT_BADGE_HALF_PX = 16 const BADGE_GAP_PX = 5 -type TransportType = 'flight' | 'train' | 'cruise' | 'car' -const TRANSPORT_TYPES: TransportType[] = ['flight', 'train', 'cruise', 'car'] +type TransportType = 'flight' | 'train' | 'cruise' | 'car' | 'bus' | 'taxi' | 'bicycle' | 'ferry' | 'transport_other' +const TRANSPORT_TYPES: TransportType[] = ['flight', 'train', 'cruise', 'car', 'bus', 'taxi', 'bicycle', 'ferry', 'transport_other'] const TRANSPORT_COLOR = '#3b82f6' @@ -20,6 +20,11 @@ const TYPE_META: Record = { @@ -24,6 +24,11 @@ const TYPE_META: Record )} {canEditDays && (() => { - const isTransport = ['flight','train','car','cruise','bus'].includes(res.type) + const isTransport = TRANSPORT_TYPES.has(res.type) const handler = isTransport ? onEditTransport : onEditReservation if (!handler) return null return ( diff --git a/client/src/components/Planner/ReservationsPanel.tsx b/client/src/components/Planner/ReservationsPanel.tsx index 29953eee..5a7b980c 100644 --- a/client/src/components/Planner/ReservationsPanel.tsx +++ b/client/src/components/Planner/ReservationsPanel.tsx @@ -6,7 +6,7 @@ import { useSettingsStore } from '../../store/settingsStore' import { useToast } from '../shared/Toast' import { useTranslation } from '../../i18n' import { - Plane, Hotel, Utensils, Train, Car, Ship, Ticket, FileText, MapPin, + Plane, Hotel, Utensils, Train, Car, Ship, Bus, Sailboat, Bike, CarTaxiFront, Route, Ticket, FileText, MapPin, Calendar, Hash, CheckCircle2, Circle, Pencil, Trash2, Plus, ChevronDown, ChevronRight, Users, ExternalLink, BookMarked, Lightbulb, Link2, Clock, ArrowRight, AlertCircle, } from 'lucide-react' @@ -31,8 +31,13 @@ const TYPE_OPTIONS = [ { value: 'hotel', labelKey: 'reservations.type.hotel', Icon: Hotel, color: '#8b5cf6' }, { value: 'restaurant', labelKey: 'reservations.type.restaurant', Icon: Utensils, color: '#ef4444' }, { value: 'train', labelKey: 'reservations.type.train', Icon: Train, color: '#06b6d4' }, + { value: 'bus', labelKey: 'reservations.type.bus', Icon: Bus, color: '#059669' }, { value: 'car', labelKey: 'reservations.type.car', Icon: Car, color: '#6b7280' }, + { value: 'taxi', labelKey: 'reservations.type.taxi', Icon: CarTaxiFront, color: '#ca8a04' }, + { value: 'bicycle', labelKey: 'reservations.type.bicycle', Icon: Bike, color: '#84cc16' }, { value: 'cruise', labelKey: 'reservations.type.cruise', Icon: Ship, color: '#0ea5e9' }, + { value: 'ferry', labelKey: 'reservations.type.ferry', Icon: Sailboat, color: '#0d9488' }, + { value: 'transport_other', labelKey: 'reservations.type.transport_other', Icon: Route, color: '#6b7280' }, { value: 'event', labelKey: 'reservations.type.event', Icon: Ticket, color: '#f59e0b' }, { value: 'tour', labelKey: 'reservations.type.tour', Icon: Users, color: '#10b981' }, { value: 'other', labelKey: 'reservations.type.other', Icon: FileText, color: '#6b7280' }, @@ -104,7 +109,7 @@ function ReservationCard({ r, tripId, onEdit, onDelete, files = [], onNavigateTo const hasCode = !!r.confirmation_number const dateCols = [hasDate, hasTime, hasCode].filter(Boolean).length - const TRANSPORT_TYPES_SET = new Set(['flight', 'train', 'bus', 'car', 'cruise']) + const TRANSPORT_TYPES_SET = new Set(['flight', 'train', 'bus', 'car', 'taxi', 'bicycle', 'cruise', 'ferry', 'transport_other']) const isTransportType = TRANSPORT_TYPES_SET.has(r.type) const isHotel = r.type === 'hotel' const startDay = r.day_id ? days.find(d => d.id === r.day_id) diff --git a/client/src/components/Planner/TransportModal.tsx b/client/src/components/Planner/TransportModal.tsx index 4c7e0437..bb5e5f9b 100644 --- a/client/src/components/Planner/TransportModal.tsx +++ b/client/src/components/Planner/TransportModal.tsx @@ -1,6 +1,6 @@ import { useState, useEffect, useMemo, useRef } from 'react' import { useParams } from 'react-router-dom' -import { Plane, Train, Car, Ship, Paperclip, FileText, X, ExternalLink, Link2 } from 'lucide-react' +import { Plane, Train, Car, Ship, Bus, Sailboat, Bike, CarTaxiFront, Route, Paperclip, FileText, X, ExternalLink, Link2 } from 'lucide-react' import Modal from '../shared/Modal' import CustomSelect from '../shared/CustomSelect' import CustomTimePicker from '../shared/CustomTimePicker' @@ -15,7 +15,7 @@ import { openFile } from '../../utils/fileDownload' import apiClient from '../../api/client' import type { Day, Reservation, ReservationEndpoint, TripFile } from '../../types' -const TRANSPORT_TYPES = ['flight', 'train', 'car', 'cruise'] as const +const TRANSPORT_TYPES = ['flight', 'train', 'bus', 'car', 'taxi', 'bicycle', 'cruise', 'ferry', 'transport_other'] as const type TransportType = typeof TRANSPORT_TYPES[number] interface EndpointPick { @@ -64,10 +64,15 @@ function locationFromEndpoint(e: ReservationEndpoint | undefined): LocationPoint } const TYPE_OPTIONS = [ - { value: 'flight', labelKey: 'reservations.type.flight', Icon: Plane }, - { value: 'train', labelKey: 'reservations.type.train', Icon: Train }, - { value: 'car', labelKey: 'reservations.type.car', Icon: Car }, - { value: 'cruise', labelKey: 'reservations.type.cruise', Icon: Ship }, + { value: 'flight', labelKey: 'reservations.type.flight', Icon: Plane }, + { value: 'train', labelKey: 'reservations.type.train', Icon: Train }, + { value: 'bus', labelKey: 'reservations.type.bus', Icon: Bus }, + { value: 'car', labelKey: 'reservations.type.car', Icon: Car }, + { value: 'taxi', labelKey: 'reservations.type.taxi', Icon: CarTaxiFront }, + { value: 'bicycle', labelKey: 'reservations.type.bicycle', Icon: Bike }, + { value: 'cruise', labelKey: 'reservations.type.cruise', Icon: Ship }, + { value: 'ferry', labelKey: 'reservations.type.ferry', Icon: Sailboat }, + { value: 'transport_other', labelKey: 'reservations.type.transport_other', Icon: Route }, ] const defaultForm = { diff --git a/client/src/hooks/useRouteCalculation.ts b/client/src/hooks/useRouteCalculation.ts index 142b8168..391cbb6c 100644 --- a/client/src/hooks/useRouteCalculation.ts +++ b/client/src/hooks/useRouteCalculation.ts @@ -4,7 +4,7 @@ import { calculateRouteWithLegs } from '../components/Map/RouteCalculator' import type { TripStoreState } from '../store/tripStore' import type { RouteSegment, RouteResult } from '../types' -const TRANSPORT_TYPES = ['flight', 'train', 'bus', 'car', 'cruise'] +const TRANSPORT_TYPES = ['flight', 'train', 'bus', 'car', 'taxi', 'bicycle', 'cruise', 'ferry', 'transport_other'] /** * Manages route calculation state for a selected day. Extracts geo-coded waypoints from diff --git a/client/src/pages/tripPlanner/useTripPlanner.ts b/client/src/pages/tripPlanner/useTripPlanner.ts index 50111571..e1a6c5b0 100644 --- a/client/src/pages/tripPlanner/useTripPlanner.ts +++ b/client/src/pages/tripPlanner/useTripPlanner.ts @@ -86,7 +86,7 @@ export function useTripPlanner() { }).catch(() => {}) }, []) - const TRANSPORT_TYPES = new Set(['flight', 'train', 'car', 'cruise', 'bus']) + const TRANSPORT_TYPES = new Set(['flight', 'train', 'bus', 'car', 'taxi', 'bicycle', 'cruise', 'ferry', 'transport_other']) const TRIP_TABS = [ { id: 'plan', label: t('trip.tabs.plan'), icon: Map }, diff --git a/client/src/utils/dayMerge.ts b/client/src/utils/dayMerge.ts index d465139c..e664772f 100644 --- a/client/src/utils/dayMerge.ts +++ b/client/src/utils/dayMerge.ts @@ -1,4 +1,4 @@ -export const TRANSPORT_TYPES = new Set(['flight', 'train', 'bus', 'car', 'cruise']) +export const TRANSPORT_TYPES = new Set(['flight', 'train', 'bus', 'car', 'taxi', 'bicycle', 'cruise', 'ferry', 'transport_other']) export interface MergedItem { type: 'place' | 'note' | 'transport' diff --git a/shared/src/i18n/ar/reservations.ts b/shared/src/i18n/ar/reservations.ts index cecb9f5f..88437682 100644 --- a/shared/src/i18n/ar/reservations.ts +++ b/shared/src/i18n/ar/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'فعالية', 'reservations.type.tour': 'جولة', 'reservations.type.other': 'أخرى', + 'reservations.type.bus': 'حافلة', + 'reservations.type.ferry': 'عبّارة', + 'reservations.type.bicycle': 'دراجة', + 'reservations.type.taxi': 'سيارة أجرة', + 'reservations.type.transport_other': 'أخرى', 'reservations.confirm.delete': 'هل تريد حذف الحجز "{name}"؟', 'reservations.confirm.deleteTitle': 'حذف الحجز؟', 'reservations.confirm.deleteBody': 'سيتم حذف "{name}" نهائيًا.', diff --git a/shared/src/i18n/br/reservations.ts b/shared/src/i18n/br/reservations.ts index f47325b3..d51d4658 100644 --- a/shared/src/i18n/br/reservations.ts +++ b/shared/src/i18n/br/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Evento', 'reservations.type.tour': 'Passeio', 'reservations.type.other': 'Outro', + 'reservations.type.bus': 'Ônibus', + 'reservations.type.ferry': 'Balsa', + 'reservations.type.bicycle': 'Bicicleta', + 'reservations.type.taxi': 'Táxi', + 'reservations.type.transport_other': 'Outro', 'reservations.confirm.delete': 'Tem certeza de que deseja excluir a reserva "{name}"?', 'reservations.confirm.deleteTitle': 'Excluir reserva?', diff --git a/shared/src/i18n/cs/reservations.ts b/shared/src/i18n/cs/reservations.ts index b4cf36a7..2a5aa5bc 100644 --- a/shared/src/i18n/cs/reservations.ts +++ b/shared/src/i18n/cs/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Událost', 'reservations.type.tour': 'Prohlídka', 'reservations.type.other': 'Jiné', + 'reservations.type.bus': 'Autobus', + 'reservations.type.ferry': 'Trajekt', + 'reservations.type.bicycle': 'Kolo', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Ostatní', 'reservations.confirm.delete': 'Opravdu chcete smazat rezervaci „{name}”?', 'reservations.confirm.deleteTitle': 'Smazat rezervaci?', 'reservations.confirm.deleteBody': '„{name}” bude trvale smazána.', diff --git a/shared/src/i18n/de/reservations.ts b/shared/src/i18n/de/reservations.ts index 4ef1fcb3..b236343b 100644 --- a/shared/src/i18n/de/reservations.ts +++ b/shared/src/i18n/de/reservations.ts @@ -55,6 +55,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Veranstaltung', 'reservations.type.tour': 'Tour', 'reservations.type.other': 'Sonstiges', + 'reservations.type.bus': 'Bus', + 'reservations.type.ferry': 'Fähre', + 'reservations.type.bicycle': 'Fahrrad', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Sonstiges', 'reservations.confirm.delete': 'Möchtest du die Reservierung "{name}" wirklich löschen?', 'reservations.confirm.deleteTitle': 'Buchung löschen?', diff --git a/shared/src/i18n/en/reservations.ts b/shared/src/i18n/en/reservations.ts index be51e44e..f4c40f80 100644 --- a/shared/src/i18n/en/reservations.ts +++ b/shared/src/i18n/en/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Event', 'reservations.type.tour': 'Tour', 'reservations.type.other': 'Other', + 'reservations.type.bus': 'Bus', + 'reservations.type.ferry': 'Ferry', + 'reservations.type.bicycle': 'Bicycle', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Other', 'reservations.confirm.delete': 'Are you sure you want to delete the reservation "{name}"?', 'reservations.confirm.deleteTitle': 'Delete booking?', diff --git a/shared/src/i18n/es/reservations.ts b/shared/src/i18n/es/reservations.ts index ea5ef92b..6ac8a96e 100644 --- a/shared/src/i18n/es/reservations.ts +++ b/shared/src/i18n/es/reservations.ts @@ -32,6 +32,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Evento', 'reservations.type.tour': 'Excursión', 'reservations.type.other': 'Otro', + 'reservations.type.bus': 'Autobús', + 'reservations.type.ferry': 'Ferry', + 'reservations.type.bicycle': 'Bicicleta', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Otro', 'reservations.confirm.delete': '¿Seguro que quieres eliminar la reserva "{name}"?', 'reservations.confirm.deleteTitle': '¿Eliminar reserva?', diff --git a/shared/src/i18n/fr/reservations.ts b/shared/src/i18n/fr/reservations.ts index 9b1a6b3b..d4ec6d01 100644 --- a/shared/src/i18n/fr/reservations.ts +++ b/shared/src/i18n/fr/reservations.ts @@ -55,6 +55,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Événement', 'reservations.type.tour': 'Visite', 'reservations.type.other': 'Autre', + 'reservations.type.bus': 'Bus', + 'reservations.type.ferry': 'Ferry', + 'reservations.type.bicycle': 'Vélo', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Autre', 'reservations.confirm.delete': 'Voulez-vous vraiment supprimer la réservation « {name} » ?', 'reservations.confirm.deleteTitle': 'Supprimer la réservation ?', diff --git a/shared/src/i18n/gr/reservations.ts b/shared/src/i18n/gr/reservations.ts index 7ead5320..79d30fca 100644 --- a/shared/src/i18n/gr/reservations.ts +++ b/shared/src/i18n/gr/reservations.ts @@ -55,6 +55,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Εκδήλωση', 'reservations.type.tour': 'Περιήγηση', 'reservations.type.other': 'Άλλο', + 'reservations.type.bus': 'Λεωφορείο', + 'reservations.type.ferry': 'Φέρι', + 'reservations.type.bicycle': 'Ποδήλατο', + 'reservations.type.taxi': 'Ταξί', + 'reservations.type.transport_other': 'Άλλο', 'reservations.confirm.delete': 'Είστε σίγουροι ότι θέλετε να διαγράψετε την κράτηση "{name}";', 'reservations.confirm.deleteTitle': 'Διαγραφή κράτησης;', diff --git a/shared/src/i18n/hu/reservations.ts b/shared/src/i18n/hu/reservations.ts index 5ae8373f..b531d0eb 100644 --- a/shared/src/i18n/hu/reservations.ts +++ b/shared/src/i18n/hu/reservations.ts @@ -56,6 +56,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Esemény', 'reservations.type.tour': 'Túra', 'reservations.type.other': 'Egyéb', + 'reservations.type.bus': 'Busz', + 'reservations.type.ferry': 'Komp', + 'reservations.type.bicycle': 'Kerékpár', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Egyéb', 'reservations.confirm.delete': 'Biztosan törölni szeretnéd a(z) "{name}" foglalást?', 'reservations.confirm.deleteTitle': 'Foglalás törlése?', diff --git a/shared/src/i18n/id/reservations.ts b/shared/src/i18n/id/reservations.ts index 2279e3bc..4ab00854 100644 --- a/shared/src/i18n/id/reservations.ts +++ b/shared/src/i18n/id/reservations.ts @@ -55,6 +55,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Acara', 'reservations.type.tour': 'Tur', 'reservations.type.other': 'Lainnya', + 'reservations.type.bus': 'Bus', + 'reservations.type.ferry': 'Feri', + 'reservations.type.bicycle': 'Sepeda', + 'reservations.type.taxi': 'Taksi', + 'reservations.type.transport_other': 'Lainnya', 'reservations.confirm.delete': 'Yakin ingin menghapus reservasi "{name}"?', 'reservations.confirm.deleteTitle': 'Hapus pemesanan?', 'reservations.confirm.deleteBody': '"{name}" akan dihapus permanen.', diff --git a/shared/src/i18n/it/reservations.ts b/shared/src/i18n/it/reservations.ts index 876ef4f5..0d87baae 100644 --- a/shared/src/i18n/it/reservations.ts +++ b/shared/src/i18n/it/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Evento', 'reservations.type.tour': 'Tour', 'reservations.type.other': 'Altro', + 'reservations.type.bus': 'Autobus', + 'reservations.type.ferry': 'Traghetto', + 'reservations.type.bicycle': 'Bicicletta', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Altro', 'reservations.confirm.delete': 'Sei sicuro di voler eliminare la prenotazione "{name}"?', 'reservations.confirm.deleteTitle': 'Eliminare la prenotazione?', diff --git a/shared/src/i18n/ja/reservations.ts b/shared/src/i18n/ja/reservations.ts index 67e9cfc7..d7f3869f 100644 --- a/shared/src/i18n/ja/reservations.ts +++ b/shared/src/i18n/ja/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'イベント', 'reservations.type.tour': 'ツアー', 'reservations.type.other': 'その他', + 'reservations.type.bus': 'バス', + 'reservations.type.ferry': 'フェリー', + 'reservations.type.bicycle': '自転車', + 'reservations.type.taxi': 'タクシー', + 'reservations.type.transport_other': 'その他', 'reservations.confirm.delete': '予約「{name}」を削除しますか?', 'reservations.confirm.deleteTitle': '予約を削除しますか?', 'reservations.confirm.deleteBody': '「{name}」は完全に削除されます。', diff --git a/shared/src/i18n/ko/reservations.ts b/shared/src/i18n/ko/reservations.ts index 5af4cbaa..bf99aff3 100644 --- a/shared/src/i18n/ko/reservations.ts +++ b/shared/src/i18n/ko/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': '이벤트', 'reservations.type.tour': '투어', 'reservations.type.other': '기타', + 'reservations.type.bus': '버스', + 'reservations.type.ferry': '페리', + 'reservations.type.bicycle': '자전거', + 'reservations.type.taxi': '택시', + 'reservations.type.transport_other': '기타', 'reservations.confirm.delete': '예약 "{name}"을(를) 삭제할까요?', 'reservations.confirm.deleteTitle': '예약을 삭제할까요?', 'reservations.confirm.deleteBody': '"{name}"이(가) 영구 삭제됩니다.', diff --git a/shared/src/i18n/nl/reservations.ts b/shared/src/i18n/nl/reservations.ts index d370e780..4d4fcf49 100644 --- a/shared/src/i18n/nl/reservations.ts +++ b/shared/src/i18n/nl/reservations.ts @@ -55,6 +55,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Evenement', 'reservations.type.tour': 'Rondleiding', 'reservations.type.other': 'Overig', + 'reservations.type.bus': 'Bus', + 'reservations.type.ferry': 'Veerboot', + 'reservations.type.bicycle': 'Fiets', + 'reservations.type.taxi': 'Taxi', + 'reservations.type.transport_other': 'Overig', 'reservations.confirm.delete': 'Weet je zeker dat je de reservering "{name}" wilt verwijderen?', 'reservations.confirm.deleteTitle': 'Boeking verwijderen?', diff --git a/shared/src/i18n/pl/reservations.ts b/shared/src/i18n/pl/reservations.ts index 063db250..d2df7f9b 100644 --- a/shared/src/i18n/pl/reservations.ts +++ b/shared/src/i18n/pl/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Wydarzenie', 'reservations.type.tour': 'Wycieczka', 'reservations.type.other': 'Inne', + 'reservations.type.bus': 'Autobus', + 'reservations.type.ferry': 'Prom', + 'reservations.type.bicycle': 'Rower', + 'reservations.type.taxi': 'Taksówka', + 'reservations.type.transport_other': 'Inne', 'reservations.confirm.delete': 'Czy na pewno chcesz usunąć rezerwację "{name}"?', 'reservations.confirm.deleteTitle': 'Usunąć rezerwację?', diff --git a/shared/src/i18n/ru/reservations.ts b/shared/src/i18n/ru/reservations.ts index ebec10b1..f4f09b5c 100644 --- a/shared/src/i18n/ru/reservations.ts +++ b/shared/src/i18n/ru/reservations.ts @@ -55,6 +55,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Мероприятие', 'reservations.type.tour': 'Экскурсия', 'reservations.type.other': 'Другое', + 'reservations.type.bus': 'Автобус', + 'reservations.type.ferry': 'Паром', + 'reservations.type.bicycle': 'Велосипед', + 'reservations.type.taxi': 'Такси', + 'reservations.type.transport_other': 'Другое', 'reservations.confirm.delete': 'Вы уверены, что хотите удалить бронирование «{name}»?', 'reservations.confirm.deleteTitle': 'Удалить бронирование?', diff --git a/shared/src/i18n/tr/reservations.ts b/shared/src/i18n/tr/reservations.ts index b643e820..98346b5b 100644 --- a/shared/src/i18n/tr/reservations.ts +++ b/shared/src/i18n/tr/reservations.ts @@ -55,6 +55,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Etkinlik', 'reservations.type.tour': 'Tur', 'reservations.type.other': 'Diğer', + 'reservations.type.bus': 'Otobüs', + 'reservations.type.ferry': 'Feribot', + 'reservations.type.bicycle': 'Bisiklet', + 'reservations.type.taxi': 'Taksi', + 'reservations.type.transport_other': 'Diğer', 'reservations.confirm.delete': '"{name}" rezervasyonunu silmek istediğinizden emin misiniz?', 'reservations.confirm.deleteTitle': 'Rezervasyon silinsin mi?', diff --git a/shared/src/i18n/uk/reservations.ts b/shared/src/i18n/uk/reservations.ts index a71a878b..ce1ce60f 100644 --- a/shared/src/i18n/uk/reservations.ts +++ b/shared/src/i18n/uk/reservations.ts @@ -54,6 +54,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': 'Заходи', 'reservations.type.tour': 'Екскурсія', 'reservations.type.other': 'Інше', + 'reservations.type.bus': 'Автобус', + 'reservations.type.ferry': 'Пором', + 'reservations.type.bicycle': 'Велосипед', + 'reservations.type.taxi': 'Таксі', + 'reservations.type.transport_other': 'Інше', 'reservations.confirm.delete': 'Ви впевнені, що хочете видалити бронювання «{name}»?', 'reservations.confirm.deleteTitle': 'Видалити бронювання?', diff --git a/shared/src/i18n/zh-TW/reservations.ts b/shared/src/i18n/zh-TW/reservations.ts index 2a2ea440..753354a8 100644 --- a/shared/src/i18n/zh-TW/reservations.ts +++ b/shared/src/i18n/zh-TW/reservations.ts @@ -53,6 +53,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': '活動', 'reservations.type.tour': '旅遊團', 'reservations.type.other': '其他', + 'reservations.type.bus': '公車', + 'reservations.type.ferry': '渡輪', + 'reservations.type.bicycle': '自行車', + 'reservations.type.taxi': '計程車', + 'reservations.type.transport_other': '其他', 'reservations.confirm.delete': '確定要刪除預訂「{name}」嗎?', 'reservations.confirm.deleteTitle': '刪除預訂?', 'reservations.confirm.deleteBody': '"{name}" 將被永久刪除。', diff --git a/shared/src/i18n/zh/reservations.ts b/shared/src/i18n/zh/reservations.ts index 6a2f246d..b3a5b4c6 100644 --- a/shared/src/i18n/zh/reservations.ts +++ b/shared/src/i18n/zh/reservations.ts @@ -53,6 +53,11 @@ const reservations: TranslationStrings = { 'reservations.type.event': '活动', 'reservations.type.tour': '旅游团', 'reservations.type.other': '其他', + 'reservations.type.bus': '公交车', + 'reservations.type.ferry': '渡轮', + 'reservations.type.bicycle': '自行车', + 'reservations.type.taxi': '出租车', + 'reservations.type.transport_other': '其他', 'reservations.confirm.delete': '确定要删除预订「{name}」吗?', 'reservations.confirm.deleteTitle': '删除预订?', 'reservations.confirm.deleteBody': '"{name}" 将被永久删除。',