Spaces:
Sleeping
Sleeping
| import type { TranslationStrings } from '../types'; | |
| const reservations: TranslationStrings = { | |
| 'reservations.title': 'Bookings', | |
| 'reservations.empty': 'No reservations yet', | |
| 'reservations.emptyHint': 'Add reservations for flights, hotels and more', | |
| 'reservations.add': 'Add Reservation', | |
| 'reservations.addManual': 'Manual Booking', | |
| 'reservations.placeHint': | |
| 'Tip: Reservations are best created directly from a place to link them with your day plan.', | |
| 'reservations.confirmed': 'Confirmed', | |
| 'reservations.pending': 'Pending', | |
| 'reservations.summary': '{confirmed} confirmed, {pending} pending', | |
| 'reservations.fromPlan': 'From Plan', | |
| 'reservations.showFiles': 'Show Files', | |
| 'reservations.editTitle': 'Edit Reservation', | |
| 'reservations.status': 'Status', | |
| 'reservations.datetime': 'Date & Time', | |
| 'reservations.startTime': 'Start time', | |
| 'reservations.endTime': 'End time', | |
| 'reservations.date': 'Date', | |
| 'reservations.time': 'Time', | |
| 'reservations.timeAlt': 'Time (alternative, e.g. 19:30)', | |
| 'reservations.notes': 'Notes', | |
| 'reservations.notesPlaceholder': 'Additional notes...', | |
| 'reservations.meta.airline': 'Airline', | |
| 'reservations.meta.flightNumber': 'Flight No.', | |
| 'reservations.meta.from': 'From', | |
| 'reservations.meta.to': 'To', | |
| 'reservations.layover.route': 'Route', | |
| 'reservations.layover.stop': 'Stop', | |
| 'reservations.layover.addStop': 'Add stop', | |
| 'reservations.layover.connection': 'Connection', | |
| 'reservations.layover.layover': 'Layover', | |
| 'reservations.needsReview': 'Review', | |
| 'reservations.needsReviewHint': | |
| 'Airport could not be matched automatically — please confirm the location.', | |
| 'reservations.searchLocation': 'Search station, port, address…', | |
| 'reservations.meta.trainNumber': 'Train No.', | |
| 'reservations.meta.platform': 'Platform', | |
| 'reservations.meta.seat': 'Seat', | |
| 'reservations.meta.checkIn': 'Check-in', | |
| 'reservations.meta.checkInUntil': 'Check-in until', | |
| 'reservations.meta.checkOut': 'Check-out', | |
| 'reservations.meta.linkAccommodation': 'Accommodation', | |
| 'reservations.meta.pickAccommodation': 'Link to accommodation', | |
| 'reservations.meta.noAccommodation': 'None', | |
| 'reservations.meta.hotelPlace': 'Accommodation', | |
| 'reservations.meta.pickHotel': 'Select accommodation', | |
| 'reservations.meta.fromDay': 'From', | |
| 'reservations.meta.toDay': 'To', | |
| 'reservations.meta.selectDay': 'Select day', | |
| 'reservations.type.flight': 'Flight', | |
| 'reservations.type.hotel': 'Accommodation', | |
| 'reservations.type.restaurant': 'Restaurant', | |
| 'reservations.type.train': 'Train', | |
| 'reservations.type.car': 'Car', | |
| 'reservations.type.cruise': 'Cruise', | |
| '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?', | |
| 'reservations.confirm.deleteBody': '"{name}" will be permanently deleted.', | |
| 'reservations.toast.updated': 'Reservation updated', | |
| 'reservations.toast.removed': 'Reservation deleted', | |
| 'reservations.toast.fileUploaded': 'File uploaded', | |
| 'reservations.toast.uploadError': 'Failed to upload', | |
| 'reservations.newTitle': 'New Reservation', | |
| 'reservations.bookingType': 'Booking Type', | |
| 'reservations.titleLabel': 'Title', | |
| 'reservations.titlePlaceholder': 'e.g. Lufthansa LH123, Hotel Adlon, ...', | |
| 'reservations.locationAddress': 'Location / Address', | |
| 'reservations.locationPlaceholder': 'Address, Airport, Hotel...', | |
| 'reservations.confirmationCode': 'Booking Code', | |
| 'reservations.confirmationPlaceholder': 'e.g. ABC12345', | |
| 'reservations.day': 'Day', | |
| 'reservations.noDay': 'No Day', | |
| 'reservations.place': 'Place', | |
| 'reservations.noPlace': 'No Place', | |
| 'reservations.pendingSave': 'will be saved…', | |
| 'reservations.uploading': 'Uploading...', | |
| 'reservations.attachFile': 'Attach file', | |
| 'reservations.linkExisting': 'Link existing file', | |
| 'reservations.toast.saveError': 'Failed to save', | |
| 'reservations.toast.updateError': 'Failed to update', | |
| 'reservations.toast.deleteError': 'Failed to delete', | |
| 'reservations.confirm.remove': 'Remove reservation for "{name}"?', | |
| 'reservations.linkAssignment': 'Link to day assignment', | |
| 'reservations.pickAssignment': 'Select an assignment from your plan...', | |
| 'reservations.noAssignment': 'No link (standalone)', | |
| 'reservations.price': 'Price', | |
| 'reservations.budgetCategory': 'Budget category', | |
| 'reservations.budgetCategoryPlaceholder': 'e.g. Transport, Accommodation', | |
| 'reservations.budgetCategoryAuto': 'Auto (from booking type)', | |
| 'reservations.budgetHint': | |
| 'A budget entry will be created automatically when saving.', | |
| 'reservations.departureDate': 'Departure', | |
| 'reservations.arrivalDate': 'Arrival', | |
| 'reservations.departureTime': 'Dep. time', | |
| 'reservations.arrivalTime': 'Arr. time', | |
| 'reservations.pickupDate': 'Pickup', | |
| 'reservations.returnDate': 'Return', | |
| 'reservations.pickupTime': 'Pickup time', | |
| 'reservations.returnTime': 'Return time', | |
| 'reservations.endDate': 'End date', | |
| 'reservations.meta.departureTimezone': 'Dep. TZ', | |
| 'reservations.meta.arrivalTimezone': 'Arr. TZ', | |
| 'reservations.span.departure': 'Departure', | |
| 'reservations.span.arrival': 'Arrival', | |
| 'reservations.span.inTransit': 'In transit', | |
| 'reservations.span.pickup': 'Pickup', | |
| 'reservations.span.return': 'Return', | |
| 'reservations.span.active': 'Active', | |
| 'reservations.span.start': 'Start', | |
| 'reservations.span.end': 'End', | |
| 'reservations.span.ongoing': 'Ongoing', | |
| 'reservations.validation.endBeforeStart': | |
| 'End date/time must be after start date/time', | |
| 'reservations.addBooking': 'Add booking', | |
| 'reservations.import.title': 'Import booking confirmations', | |
| 'reservations.import.cta': 'Import from file', | |
| 'reservations.import.dropHere': 'Drop booking confirmation files here, or click to select', | |
| 'reservations.import.dropActive': 'Drop files to import', | |
| 'reservations.import.acceptedFormats': 'Accepted: EML, PDF, PKPass, HTML, TXT (max 10 MB each, up to 5 files)', | |
| 'reservations.import.parsing': 'Parsing files…', | |
| 'reservations.import.previewHeading': '{count} reservation(s) found', | |
| 'reservations.import.previewEmpty': 'No reservations could be extracted from the uploaded files.', | |
| 'reservations.import.removeItem': 'Remove', | |
| 'reservations.import.confirm': 'Import {count} reservation(s)', | |
| 'reservations.import.back': 'Back', | |
| 'reservations.import.success': '{count} reservation(s) imported', | |
| 'reservations.import.partialFailure': '{created} imported, {failed} failed', | |
| 'reservations.import.error': 'Parsing failed. Make sure the file is a valid booking confirmation.', | |
| 'reservations.import.unavailable': 'Booking import is not available on this server.', | |
| 'reservations.import.unsupportedFormat': 'Unsupported file format. Use EML, PDF, PKPass, HTML, or TXT.', | |
| 'reservations.import.fileTooLarge': 'File "{name}" exceeds 10 MB limit.', | |
| 'reservations.airtrail.title': 'Import from AirTrail', | |
| 'reservations.airtrail.cta': 'AirTrail', | |
| 'reservations.airtrail.synced': 'AirTrail', | |
| 'reservations.airtrail.syncedHint': 'Synced from AirTrail — edits stay in sync both ways.', | |
| 'reservations.airtrail.notSynced': 'Not synced', | |
| 'reservations.airtrail.notSyncedHint': 'This flight was removed in AirTrail and no longer syncs.', | |
| 'reservations.airtrail.loadError': 'Could not load your AirTrail flights.', | |
| 'reservations.airtrail.imported': '{count} flight(s) imported', | |
| 'reservations.airtrail.skippedDuplicate': '{count} already in this trip, skipped', | |
| 'reservations.airtrail.nothingImported': 'Nothing to import.', | |
| 'reservations.airtrail.importError': 'Import failed. Please try again.', | |
| 'reservations.airtrail.undo': 'Import from AirTrail', | |
| 'reservations.airtrail.alreadyImported': 'Imported', | |
| 'reservations.airtrail.duringTrip': 'During this trip', | |
| 'reservations.airtrail.otherFlights': 'Other flights', | |
| 'reservations.airtrail.empty': 'No flights found in your AirTrail account.', | |
| 'reservations.airtrail.importCta': 'Import {count}', | |
| }; | |
| export default reservations; | |