mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-07-09 15:05:59 +00:00
c15c89ca61
Replace the inline price + budget-category fields in the Transport and Reservation booking modals with a "Create expense" flow: the modal saves the booking, then opens the full Costs editor prefilled (name + category mapped from the booking type) and linked to the reservation. A booking with a linked expense shows it inline with edit / remove. Also fix the Costs editor so an expense with a recorded total but no payers (transport-derived or pre-rework items) opens with its amount, lets you set the currency, and saves - it previously showed 0 everywhere and could not be saved. Legacy / localized categories now map to the fixed keys, and changing a booking's type keeps its linked expense category in sync (unless it was manually set). - shared: reservation_id on budget create, typeToCostCategory helper, i18n keys - server: createBudgetItem stores reservation_id; keep total_price for payerless items; a booking update no longer wipes its linked expense and syncs the category on type change - client: shared BookingCostsSection, exported ExpenseModal with prefill and an editable total, page-level save-then-open wiring
183 lines
9.3 KiB
TypeScript
183 lines
9.3 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const reservations: TranslationStrings = {
|
|
'reservations.title': 'Foglalások',
|
|
'reservations.empty': 'Még nincsenek foglalások',
|
|
'reservations.emptyHint':
|
|
'Adj hozzá foglalásokat repülőkhöz, szállodákhoz és egyebekhez',
|
|
'reservations.add': 'Foglalás hozzáadása',
|
|
'reservations.addManual': 'Kézi foglalás',
|
|
'reservations.placeHint':
|
|
'Tipp: A foglalásokat legjobb közvetlenül egy helyről létrehozni, hogy összekapcsolódjon a napi tervvel.',
|
|
'reservations.confirmed': 'Megerősítve',
|
|
'reservations.pending': 'Függőben',
|
|
'reservations.summary': '{confirmed} megerősítve, {pending} függőben',
|
|
'reservations.fromPlan': 'Tervből',
|
|
'reservations.showFiles': 'Fájlok megjelenítése',
|
|
'reservations.editTitle': 'Foglalás szerkesztése',
|
|
'reservations.status': 'Állapot',
|
|
'reservations.datetime': 'Dátum és idő',
|
|
'reservations.startTime': 'Kezdési idő',
|
|
'reservations.endTime': 'Befejezési idő',
|
|
'reservations.date': 'Dátum',
|
|
'reservations.time': 'Időpont',
|
|
'reservations.timeAlt': 'Időpont (alternatív, pl. 19:30)',
|
|
'reservations.linkExisting': 'Meglévő fájl csatolása',
|
|
'reservations.notes': 'Jegyzetek',
|
|
'reservations.notesPlaceholder': 'További jegyzetek...',
|
|
'reservations.meta.airline': 'Légitársaság',
|
|
'reservations.meta.flightNumber': 'Járatszám',
|
|
'reservations.meta.from': 'Honnan',
|
|
'reservations.meta.to': 'Hová',
|
|
'reservations.layover.route': 'Útvonal',
|
|
'reservations.layover.stop': 'Megálló',
|
|
'reservations.layover.addStop': 'Megálló hozzáadása',
|
|
'reservations.layover.connection': 'Csatlakozás',
|
|
'reservations.layover.layover': 'Átszállás',
|
|
'reservations.needsReview': 'Ellenőrzés',
|
|
'reservations.needsReviewHint':
|
|
'A repülőteret nem sikerült automatikusan azonosítani — erősítsd meg a helyet.',
|
|
'reservations.searchLocation': 'Állomás, kikötő, cím keresése...',
|
|
'reservations.meta.trainNumber': 'Vonatszám',
|
|
'reservations.meta.platform': 'Vágány',
|
|
'reservations.meta.seat': 'Ülés',
|
|
'reservations.meta.checkIn': 'Bejelentkezés',
|
|
'reservations.meta.checkInUntil': 'Bejelentkezés eddig',
|
|
'reservations.meta.checkOut': 'Kijelentkezés',
|
|
'reservations.meta.linkAccommodation': 'Szállás',
|
|
'reservations.meta.pickAccommodation': 'Szállás hozzárendelése',
|
|
'reservations.meta.noAccommodation': 'Nincs',
|
|
'reservations.meta.hotelPlace': 'Szálloda',
|
|
'reservations.meta.pickHotel': 'Szálloda kiválasztása',
|
|
'reservations.meta.fromDay': 'Ettől',
|
|
'reservations.meta.toDay': 'Eddig',
|
|
'reservations.meta.selectDay': 'Nap kiválasztása',
|
|
'reservations.type.flight': 'Repülő',
|
|
'reservations.type.hotel': 'Szálloda',
|
|
'reservations.type.restaurant': 'Étterem',
|
|
'reservations.type.train': 'Vonat',
|
|
'reservations.type.car': 'Autó',
|
|
'reservations.type.cruise': 'Hajóút',
|
|
'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?',
|
|
'reservations.confirm.deleteBody': '"{name}" véglegesen törlődik.',
|
|
'reservations.toast.updated': 'Foglalás frissítve',
|
|
'reservations.toast.removed': 'Foglalás törölve',
|
|
'reservations.toast.fileUploaded': 'Fájl feltöltve',
|
|
'reservations.toast.uploadError': 'Feltöltés sikertelen',
|
|
'reservations.newTitle': 'Új foglalás',
|
|
'reservations.bookingType': 'Foglalás típusa',
|
|
'reservations.titleLabel': 'Cím',
|
|
'reservations.titlePlaceholder': 'pl. Lufthansa LH123, Hotel Adlon, ...',
|
|
'reservations.locationAddress': 'Helyszín / Cím',
|
|
'reservations.locationPlaceholder': 'Cím, Repülőtér, Szálloda...',
|
|
'reservations.confirmationCode': 'Foglalási kód',
|
|
'reservations.confirmationPlaceholder': 'pl. ABC12345',
|
|
'reservations.day': 'Nap',
|
|
'reservations.noDay': 'Nincs nap',
|
|
'reservations.place': 'Hely',
|
|
'reservations.noPlace': 'Nincs hely',
|
|
'reservations.pendingSave': 'mentés…',
|
|
'reservations.uploading': 'Feltöltés...',
|
|
'reservations.attachFile': 'Fájl csatolása',
|
|
'reservations.toast.saveError': 'Nem sikerült menteni',
|
|
'reservations.toast.updateError': 'Nem sikerült frissíteni',
|
|
'reservations.toast.deleteError': 'Nem sikerült törölni',
|
|
'reservations.confirm.remove': '"{name}" foglalás eltávolítása?',
|
|
'reservations.linkAssignment': 'Összekapcsolás napi tervvel',
|
|
'reservations.pickAssignment': 'Válassz hozzárendelést a tervedből...',
|
|
'reservations.noAssignment': 'Nincs összekapcsolás (önálló)',
|
|
'reservations.price': 'Ár',
|
|
'reservations.budgetCategory': 'Költségvetési kategória',
|
|
'reservations.budgetCategoryPlaceholder': 'pl. Közlekedés, Szállás',
|
|
'reservations.budgetCategoryAuto': 'Automatikus (foglalás típusa alapján)',
|
|
'reservations.budgetHint':
|
|
'Mentéskor automatikusan létrejön egy költségvetési tétel.',
|
|
'reservations.departureDate': 'Indulás',
|
|
'reservations.arrivalDate': 'Érkezés',
|
|
'reservations.departureTime': 'Indulási idő',
|
|
'reservations.arrivalTime': 'Érkezési idő',
|
|
'reservations.pickupDate': 'Felvétel',
|
|
'reservations.returnDate': 'Visszaadás',
|
|
'reservations.pickupTime': 'Felvétel ideje',
|
|
'reservations.returnTime': 'Visszaadás ideje',
|
|
'reservations.endDate': 'Befejezés dátuma',
|
|
'reservations.meta.departureTimezone': 'TZ indulás',
|
|
'reservations.meta.arrivalTimezone': 'TZ érkezés',
|
|
'reservations.span.departure': 'Indulás',
|
|
'reservations.span.arrival': 'Érkezés',
|
|
'reservations.span.inTransit': 'Úton',
|
|
'reservations.span.pickup': 'Felvétel',
|
|
'reservations.span.return': 'Visszaadás',
|
|
'reservations.span.active': 'Aktív',
|
|
'reservations.span.start': 'Kezdés',
|
|
'reservations.span.end': 'Vége',
|
|
'reservations.span.ongoing': 'Folyamatban',
|
|
'reservations.validation.endBeforeStart':
|
|
'A befejezés dátuma/időpontja a kezdés utáni kell legyen',
|
|
'reservations.addBooking': 'Foglalás hozzáadása',
|
|
'reservations.import.title': 'Foglalási visszaigazolások importálása',
|
|
'reservations.import.cta': 'Importálás fájlból',
|
|
'reservations.import.dropHere':
|
|
'Dobja ide a foglalási visszaigazolás fájlokat, vagy kattintson a kiválasztáshoz',
|
|
'reservations.import.dropActive': 'Dobja ide a fájlokat az importáláshoz',
|
|
'reservations.import.acceptedFormats':
|
|
'Elfogadott: EML, PDF, PKPass, HTML, TXT (max. 10 MB darabonként, legfeljebb 5 fájl)',
|
|
'reservations.import.parsing': 'Fájlok feldolgozása…',
|
|
'reservations.import.previewHeading': '{count} foglalás találva',
|
|
'reservations.import.previewEmpty':
|
|
'A feltöltött fájlokból nem sikerült foglalásokat kinyerni.',
|
|
'reservations.import.removeItem': 'Eltávolítás',
|
|
'reservations.import.confirm': '{count} foglalás importálása',
|
|
'reservations.import.back': 'Vissza',
|
|
'reservations.import.success': '{count} foglalás importálva',
|
|
'reservations.import.partialFailure':
|
|
'{created} importálva, {failed} sikertelen',
|
|
'reservations.import.error':
|
|
'A feldolgozás sikertelen. Győződjön meg arról, hogy a fájl érvényes foglalási visszaigazolás.',
|
|
'reservations.import.unavailable':
|
|
'A foglalásimportálás nem érhető el ezen a kiszolgálón.',
|
|
'reservations.import.unsupportedFormat':
|
|
'Nem támogatott fájlformátum. Használjon EML, PDF, PKPass, HTML vagy TXT formátumot.',
|
|
'reservations.import.fileTooLarge':
|
|
'A(z) „{name}" fájl meghaladja a 10 MB-os korlátot.',
|
|
'reservations.airtrail.title': 'Importálás az AirTrailből',
|
|
'reservations.airtrail.cta': 'AirTrail',
|
|
'reservations.airtrail.synced': 'AirTrail',
|
|
'reservations.airtrail.syncedHint':
|
|
'Az AirTrailből szinkronizálva — a módosítások mindkét irányban szinkronban maradnak.',
|
|
'reservations.airtrail.notSynced': 'Nincs szinkronizálva',
|
|
'reservations.airtrail.notSyncedHint':
|
|
'Ezt a járatot eltávolították az AirTrailből, és többé nem szinkronizálódik.',
|
|
'reservations.airtrail.loadError':
|
|
'Nem sikerült betölteni az AirTrail-járataidat.',
|
|
'reservations.airtrail.imported': '{count} járat importálva',
|
|
'reservations.airtrail.skippedDuplicate':
|
|
'{count} már szerepel ebben az utazásban, kihagyva',
|
|
'reservations.airtrail.nothingImported': 'Nincs mit importálni.',
|
|
'reservations.airtrail.importError':
|
|
'Az importálás sikertelen. Kérjük, próbáld újra.',
|
|
'reservations.airtrail.undo': 'Importálás az AirTrailből',
|
|
'reservations.airtrail.alreadyImported': 'Importálva',
|
|
'reservations.airtrail.duringTrip': 'Az utazás ideje alatt',
|
|
'reservations.airtrail.otherFlights': 'Egyéb járatok',
|
|
'reservations.airtrail.empty': 'Nem található járat az AirTrail-fiókodban.',
|
|
'reservations.airtrail.importCta': '{count} importálása',
|
|
'reservations.costsLabel': 'Costs',
|
|
'reservations.createExpense': 'Create expense',
|
|
'reservations.createExpenseHint':
|
|
'Saves the booking, then opens the Costs editor.',
|
|
'reservations.linkedExpense': 'Linked expense',
|
|
'reservations.removeExpense': 'Remove expense',
|
|
};
|
|
export default reservations;
|