@voyant-travel/bookings-react 0.198.0 → 0.199.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/booking-detail-skeleton.js +1 -1
- package/dist/admin/bookings-list-skeleton.js +1 -1
- package/dist/admin/pages/booking-journey-page.js +1 -1
- package/dist/admin/pages/booking-new-page.js +1 -1
- package/dist/components/booking-billing-dialog.js +4 -4
- package/dist/components/booking-cancellation-dialog.js +2 -2
- package/dist/components/booking-create-page.js +1 -1
- package/dist/components/booking-detail-page.js +4 -4
- package/dist/components/booking-dialog.js +3 -3
- package/dist/components/booking-document-dialog.js +1 -1
- package/dist/components/booking-document-list.js +6 -3
- package/dist/components/booking-group-section.js +5 -2
- package/dist/components/booking-guarantee-dialog.js +5 -5
- package/dist/components/booking-item-dialog.js +5 -5
- package/dist/components/booking-item-travelers.js +6 -3
- package/dist/components/booking-payment-schedule-dialog.js +2 -2
- package/dist/components/booking-quick-view-sheet.js +2 -2
- package/dist/components/bookings-page.js +1 -1
- package/dist/components/payment-schedule-section.js +1 -1
- package/dist/components/supplier-status-dialog.js +1 -1
- package/dist/components/traveler-dialog.js +5 -5
- package/dist/extras/i18n/en.js +9 -7
- package/dist/extras/i18n/ro.js +9 -7
- package/dist/i18n/en-base.js +3 -3
- package/dist/i18n/en-create-list.js +14 -14
- package/dist/i18n/en-journey.js +15 -15
- package/dist/i18n/en-operations.js +11 -11
- package/dist/i18n/en-sections.js +3 -3
- package/dist/i18n/ro-base.js +3 -3
- package/dist/i18n/ro-create-list.js +13 -13
- package/dist/i18n/ro-journey.js +10 -10
- package/dist/i18n/ro-operations.js +11 -11
- package/dist/i18n/ro-sections.js +3 -3
- package/dist/requirements/i18n/en.js +8 -8
- package/dist/requirements/i18n/ro.js +7 -7
- package/package.json +38 -38
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { usePersonDocumentMutation, usePersonDocuments, usePersonMutation, usePersonTravelSnapshot, } from "@voyant-travel/relationships-react";
|
|
5
|
-
import { Button,
|
|
5
|
+
import { Button, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Sheet, SheetBody, SheetContent, SheetFooter, SheetHeader, SheetTitle, Textarea, } from "@voyant-travel/ui/components";
|
|
6
6
|
import { CountryCombobox } from "@voyant-travel/ui/components/country-combobox";
|
|
7
7
|
import { DatePicker } from "@voyant-travel/ui/components/date-picker";
|
|
8
8
|
import { PhoneInput } from "@voyant-travel/ui/components/phone-input";
|
|
@@ -247,12 +247,12 @@ export function TravelerDialog({ open, onOpenChange, bookingId, traveler, onSucc
|
|
|
247
247
|
const snapValue = snapshot[snapKey] ?? "";
|
|
248
248
|
return String(formValue ?? "").trim() !== String(snapValue ?? "").trim();
|
|
249
249
|
});
|
|
250
|
-
return (_jsx(
|
|
250
|
+
return (_jsx(Sheet, { open: open, onOpenChange: onOpenChange, children: _jsxs(SheetContent, { side: "right", size: "lg", children: [_jsx(SheetHeader, { children: _jsx(SheetTitle, { children: isEditing
|
|
251
251
|
? messages.travelerDialog.titles.edit
|
|
252
|
-
: messages.travelerDialog.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "flex flex-1 flex-col overflow-hidden", children: [_jsxs(
|
|
252
|
+
: messages.travelerDialog.titles.create }) }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "flex flex-1 flex-col overflow-hidden", children: [_jsxs(SheetBody, { className: "grid gap-4", children: [_jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.firstName }), _jsx(Input, { ...form.register("firstName"), placeholder: messages.travelerDialog.placeholders.firstName }), form.formState.errors.firstName && (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.firstName.message }))] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.lastName }), _jsx(Input, { ...form.register("lastName"), placeholder: messages.travelerDialog.placeholders.lastName }), form.formState.errors.lastName && (_jsx("p", { className: "text-xs text-destructive", children: form.formState.errors.lastName.message }))] })] }), _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.email }), _jsx(Input, { ...form.register("email"), type: "email", placeholder: messages.travelerDialog.placeholders.email })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.phone }), _jsx(PhoneInput, { value: form.watch("phone") ?? "", onChange: (next) => form.setValue("phone", next, { shouldDirty: true }) })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.travelerCategory }), _jsxs(Select, { value: form.watch("travelerCategory") ?? "adult", onValueChange: (nextValue) => form.setValue("travelerCategory", nextValue, {
|
|
253
253
|
shouldDirty: true,
|
|
254
254
|
shouldValidate: true,
|
|
255
|
-
}), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: travelerCategories.map((category) => (_jsx(SelectItem, { value: category, children: messages.travelerDialog.travelerCategoryLabels[category] }, category))) })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.specialRequests }), _jsx(Textarea, { ...form.register("specialRequests"), placeholder: messages.travelerDialog.placeholders.specialRequests })] }), _jsxs("div", { className: "flex flex-col gap-3 border-t pt-4", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("h3", { className: "text-sm font-semibold", children: messages.travelerDialog.fields.travelDetailsHeading }), personId ? (_jsxs(Button, { type: "button", variant: "ghost", size: "sm", disabled: !snapshot || snapshotQuery.isLoading, onClick: prefillFromProfile, children: [_jsx(Sparkles, { className: "mr-2 h-3.5 w-3.5" }), messages.travelerDialog.actions.prefillFromProfile] })) : null] }), prefilledNotice ? (_jsx("p", { className: "text-xs text-muted-foreground", children: messages.travelerDialog.hints.prefilledFromProfile })) : null, _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.documentType }), _jsxs(Select, { value: form.watch("documentType") ?? "passport", onValueChange: (nextValue) => form.setValue("documentType", nextValue, {
|
|
255
|
+
}), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: travelerCategories.map((category) => (_jsx(SelectItem, { value: category, children: messages.travelerDialog.travelerCategoryLabels[category] }, category))) })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.specialRequests }), _jsx(Textarea, { ...form.register("specialRequests"), placeholder: messages.travelerDialog.placeholders.specialRequests })] }), _jsxs("div", { className: "flex flex-col gap-3 border-t pt-4", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("h3", { className: "text-sm font-semibold", children: messages.travelerDialog.fields.travelDetailsHeading }), personId ? (_jsxs(Button, { type: "button", variant: "ghost", size: "sm", disabled: !snapshot || snapshotQuery.isLoading, onClick: prefillFromProfile, children: [_jsx(Sparkles, { className: "mr-2 h-3.5 w-3.5" }), messages.travelerDialog.actions.prefillFromProfile] })) : null] }), prefilledNotice ? (_jsx("p", { className: "text-xs text-muted-foreground", children: messages.travelerDialog.hints.prefilledFromProfile })) : null, _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.documentType }), _jsxs(Select, { value: form.watch("documentType") ?? "passport", onValueChange: (nextValue) => form.setValue("documentType", nextValue, {
|
|
256
256
|
shouldDirty: true,
|
|
257
257
|
shouldValidate: true,
|
|
258
258
|
}), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: identityDocumentTypes.map((type) => (_jsx(SelectItem, { value: type, children: messages.travelerDialog.documentTypeLabels[type] }, type))) })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.documentNumber }), _jsx(Input, { ...form.register("documentNumber"), placeholder: messages.travelerDialog.placeholders.documentNumber })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.documentExpiry }), _jsx(DatePicker, { value: form.watch("documentExpiry") || null, onChange: (nextValue) => form.setValue("documentExpiry", nextValue ?? "", {
|
|
@@ -264,7 +264,7 @@ export function TravelerDialog({ open, onOpenChange, bookingId, traveler, onSucc
|
|
|
264
264
|
}) })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.documentIssuingAuthority }), _jsx(Input, { ...form.register("documentIssuingAuthority"), placeholder: messages.travelerDialog.placeholders.documentIssuingAuthority })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.dateOfBirth }), _jsx(DatePicker, { value: form.watch("dateOfBirth") || null, onChange: (nextValue) => form.setValue("dateOfBirth", nextValue ?? "", {
|
|
265
265
|
shouldDirty: true,
|
|
266
266
|
shouldValidate: true,
|
|
267
|
-
}), placeholder: messages.travelerDialog.placeholders.dateOfBirth })] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.dietaryRequirements }), _jsx(Textarea, { ...form.register("dietaryRequirements"), placeholder: messages.travelerDialog.placeholders.dietaryRequirements })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.accessibilityNeeds }), _jsx(Textarea, { ...form.register("accessibilityNeeds"), placeholder: messages.travelerDialog.placeholders.accessibilityNeeds })] })] }), personId && hasDivergence ? (_jsxs("div", { className: "flex items-center justify-between gap-2 rounded-md border bg-muted/40 px-3 py-2", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: savedToProfileMessage ? messages.travelerDialog.hints.savedToProfile : null }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: isSavingProfile, onClick: saveBackToProfile, children: [isSavingProfile ? (_jsx(Loader2, { className: "mr-2 h-3.5 w-3.5 animate-spin" })) : (_jsx(Upload, { className: "mr-2 h-3.5 w-3.5" })), messages.travelerDialog.actions.saveToProfile] })] })) : null] })] }), _jsxs(
|
|
267
|
+
}), placeholder: messages.travelerDialog.placeholders.dateOfBirth })] }), _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.dietaryRequirements }), _jsx(Textarea, { ...form.register("dietaryRequirements"), placeholder: messages.travelerDialog.placeholders.dietaryRequirements })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { children: messages.travelerDialog.fields.accessibilityNeeds }), _jsx(Textarea, { ...form.register("accessibilityNeeds"), placeholder: messages.travelerDialog.placeholders.accessibilityNeeds })] })] }), personId && hasDivergence ? (_jsxs("div", { className: "flex items-center justify-between gap-2 rounded-md border bg-muted/40 px-3 py-2", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: savedToProfileMessage ? messages.travelerDialog.hints.savedToProfile : null }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: isSavingProfile, onClick: saveBackToProfile, children: [isSavingProfile ? (_jsx(Loader2, { className: "mr-2 h-3.5 w-3.5 animate-spin" })) : (_jsx(Upload, { className: "mr-2 h-3.5 w-3.5" })), messages.travelerDialog.actions.saveToProfile] })] })) : null] })] }), _jsxs(SheetFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => onOpenChange(false), children: messages.common.cancel }), _jsxs(Button, { type: "submit", size: "sm", disabled: isSubmitting, children: [isSubmitting && _jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }), isEditing
|
|
268
268
|
? messages.common.saveChanges
|
|
269
269
|
: messages.travelerDialog.actions.addTraveler] })] })] })] }) }));
|
|
270
270
|
}
|
package/dist/extras/i18n/en.js
CHANGED
|
@@ -12,20 +12,22 @@ export const extrasUiEn = {
|
|
|
12
12
|
active: "Active",
|
|
13
13
|
archived: "Archived",
|
|
14
14
|
},
|
|
15
|
+
// Short booking-mode labels, shared vocabulary with the products table and
|
|
16
|
+
// editor picker. Keep in sync with the operator catalog `bookingMode*` keys.
|
|
15
17
|
bookingModeLabels: {
|
|
16
|
-
date: "
|
|
17
|
-
date_time: "
|
|
18
|
-
open: "Open",
|
|
19
|
-
stay: "
|
|
18
|
+
date: "Day trip",
|
|
19
|
+
date_time: "Timed activity",
|
|
20
|
+
open: "Open-dated voucher",
|
|
21
|
+
stay: "Accommodation",
|
|
20
22
|
transfer: "Transfer",
|
|
21
|
-
itinerary: "
|
|
23
|
+
itinerary: "Multi-day tour",
|
|
22
24
|
other: "Other",
|
|
23
25
|
},
|
|
24
26
|
},
|
|
25
27
|
slotManifest: {
|
|
26
28
|
title: "Extras manifest",
|
|
27
|
-
emptyExtras: "No
|
|
28
|
-
emptyTravelers: "No active travelers are assigned to this
|
|
29
|
+
emptyExtras: "No extras are configured for this product.",
|
|
30
|
+
emptyTravelers: "No active travelers are assigned to this extra.",
|
|
29
31
|
travelerColumn: "Traveler",
|
|
30
32
|
bookingColumn: "Booking",
|
|
31
33
|
selectedLabel: "Selected",
|
package/dist/extras/i18n/ro.js
CHANGED
|
@@ -12,20 +12,22 @@ export const extrasUiRo = {
|
|
|
12
12
|
active: "Activ",
|
|
13
13
|
archived: "Arhivat",
|
|
14
14
|
},
|
|
15
|
+
// Etichete scurte, vocabular comun cu tabelul de produse si selectorul din
|
|
16
|
+
// editor. Sincronizeaza cu cheile `bookingMode*` din catalogul operatorului.
|
|
15
17
|
bookingModeLabels: {
|
|
16
|
-
date: "
|
|
17
|
-
date_time: "
|
|
18
|
-
open: "
|
|
19
|
-
stay: "
|
|
18
|
+
date: "Excursie de o zi",
|
|
19
|
+
date_time: "Activitate cu oră",
|
|
20
|
+
open: "Voucher cu dată deschisă",
|
|
21
|
+
stay: "Cazare",
|
|
20
22
|
transfer: "Transfer",
|
|
21
|
-
itinerary: "
|
|
23
|
+
itinerary: "Tur de mai multe zile",
|
|
22
24
|
other: "Altul",
|
|
23
25
|
},
|
|
24
26
|
},
|
|
25
27
|
slotManifest: {
|
|
26
28
|
title: "Manifest extra",
|
|
27
|
-
emptyExtras: "Nu exista extra configurate pentru
|
|
28
|
-
emptyTravelers: "Nu exista calatori activi alocati acestui
|
|
29
|
+
emptyExtras: "Nu exista extra configurate pentru acest produs.",
|
|
30
|
+
emptyTravelers: "Nu exista calatori activi alocati acestui extra.",
|
|
29
31
|
travelerColumn: "Calator",
|
|
30
32
|
bookingColumn: "Rezervare",
|
|
31
33
|
selectedLabel: "Selectat",
|
package/dist/i18n/en-base.js
CHANGED
|
@@ -37,7 +37,7 @@ export const bookingsUiEnBase = {
|
|
|
37
37
|
bookingQuickViewSheet: {
|
|
38
38
|
loadingTitle: "Booking",
|
|
39
39
|
viewFullAction: "View full booking",
|
|
40
|
-
paxSuffix: "
|
|
40
|
+
paxSuffix: "travelers",
|
|
41
41
|
travelerUnnamed: "Unnamed traveler",
|
|
42
42
|
sectionPayer: "Payer",
|
|
43
43
|
sectionTravelers: "Travelers",
|
|
@@ -151,7 +151,7 @@ export const bookingsUiEnBase = {
|
|
|
151
151
|
billingEmail: "Email",
|
|
152
152
|
billingPhone: "Phone",
|
|
153
153
|
billingAddress: "Address",
|
|
154
|
-
documentsSlotEmpty: "
|
|
154
|
+
documentsSlotEmpty: "No documents yet.",
|
|
155
155
|
},
|
|
156
156
|
travelerDialog: {
|
|
157
157
|
titles: {
|
|
@@ -174,7 +174,7 @@ export const bookingsUiEnBase = {
|
|
|
174
174
|
dateOfBirth: "Date of birth",
|
|
175
175
|
dietaryRequirements: "Dietary requirements",
|
|
176
176
|
accessibilityNeeds: "Accessibility needs",
|
|
177
|
-
linkedPerson: "Linked
|
|
177
|
+
linkedPerson: "Linked contact",
|
|
178
178
|
},
|
|
179
179
|
travelerCategoryLabels: {
|
|
180
180
|
adult: "Adult",
|
|
@@ -8,7 +8,7 @@ export const bookingsUiEnCreateList = {
|
|
|
8
8
|
travelDates: "Travel dates",
|
|
9
9
|
sellAmountCents: "Sell amount",
|
|
10
10
|
costAmountCents: "Cost amount",
|
|
11
|
-
pax: "Travelers
|
|
11
|
+
pax: "Travelers",
|
|
12
12
|
internalNotes: "Internal notes",
|
|
13
13
|
},
|
|
14
14
|
placeholders: {
|
|
@@ -30,9 +30,9 @@ export const bookingsUiEnCreateList = {
|
|
|
30
30
|
confirmAfterCreate: "Confirm booking after creating",
|
|
31
31
|
confirmAfterCreateHint: "Transitions the new booking to confirmed.",
|
|
32
32
|
createAsDraft: "Create as draft",
|
|
33
|
-
createAsDraftHint: "Otherwise the booking
|
|
33
|
+
createAsDraftHint: "Otherwise the booking goes live — confirmed if a payment is marked paid, or awaiting payment if not.",
|
|
34
34
|
notifyTraveler: "Notify traveler",
|
|
35
|
-
notifyTravelerHint: "
|
|
35
|
+
notifyTravelerHint: "Sends the customer their confirmation email and documents. Turn off to confirm silently.",
|
|
36
36
|
},
|
|
37
37
|
placeholders: {
|
|
38
38
|
departure: "Select a departure...",
|
|
@@ -55,9 +55,9 @@ export const bookingsUiEnCreateList = {
|
|
|
55
55
|
confirmFailedPrefix: "Booking created but confirm failed: {message}",
|
|
56
56
|
confirmFailed: "Booking created but confirm failed",
|
|
57
57
|
createFailed: "Failed to create booking",
|
|
58
|
-
payloadResolverMismatchDetails: "
|
|
59
|
-
payloadResolverMismatchFallback: "
|
|
60
|
-
payloadResolverMismatchLine: "{label}:
|
|
58
|
+
payloadResolverMismatchDetails: "Your selection changed while you were booking. Please recheck the highlighted options.",
|
|
59
|
+
payloadResolverMismatchFallback: "Your selection changed while you were booking. Please recheck the highlighted options.",
|
|
60
|
+
payloadResolverMismatchLine: "{label}: quantity changed",
|
|
61
61
|
paidPaymentDateRequired: "Payment date is required when Already paid is checked.",
|
|
62
62
|
},
|
|
63
63
|
actions: {
|
|
@@ -105,7 +105,7 @@ export const bookingsUiEnCreateList = {
|
|
|
105
105
|
sharedRoomJoinMode: "Join existing shared room",
|
|
106
106
|
sharedRoomSelectPlaceholder: "Search shared rooms...",
|
|
107
107
|
sharedRoomNoGroups: "No shared rooms found for this product.",
|
|
108
|
-
sharedRoomCreateHint: "A new shared room will be created with this booking as the
|
|
108
|
+
sharedRoomCreateHint: "A new shared room will be created with this booking as the lead booking.",
|
|
109
109
|
sharedRoomRemove: "Remove shared room",
|
|
110
110
|
sharedRoomGeneratedLabelPrefix: "Shared room",
|
|
111
111
|
travelCreditHeading: "Travel Credit (optional)",
|
|
@@ -133,7 +133,7 @@ export const bookingsUiEnCreateList = {
|
|
|
133
133
|
paymentFirstInstallment: "First installment",
|
|
134
134
|
paymentSecondInstallment: "Second installment",
|
|
135
135
|
paymentPreset5050: "50 / 50",
|
|
136
|
-
paymentUnpaidHint: "
|
|
136
|
+
paymentUnpaidHint: "You'll invoice this booking manually — no schedule is set up.",
|
|
137
137
|
paymentTotalDue: "Total due",
|
|
138
138
|
paymentScheduledTotal: "Scheduled",
|
|
139
139
|
paymentRemaining: "Remaining",
|
|
@@ -164,14 +164,14 @@ export const bookingsUiEnCreateList = {
|
|
|
164
164
|
},
|
|
165
165
|
},
|
|
166
166
|
bookingList: {
|
|
167
|
-
searchPlaceholder: "Search
|
|
167
|
+
searchPlaceholder: "Search bookings…",
|
|
168
168
|
newBooking: "New booking",
|
|
169
169
|
columns: {
|
|
170
170
|
bookingNumber: "Booking #",
|
|
171
171
|
whatBooked: "Items",
|
|
172
172
|
status: "Status",
|
|
173
173
|
sellAmount: "Total",
|
|
174
|
-
pax: "
|
|
174
|
+
pax: "Travelers",
|
|
175
175
|
startDate: "Dates",
|
|
176
176
|
endDate: "End date/time",
|
|
177
177
|
lead: "Payer",
|
|
@@ -206,7 +206,7 @@ export const bookingsUiEnCreateList = {
|
|
|
206
206
|
departureNeedsProduct: "Select a product first.",
|
|
207
207
|
dateRangeLabel: "Start date",
|
|
208
208
|
dateRange: "Any date",
|
|
209
|
-
paxLabel: "
|
|
209
|
+
paxLabel: "Travelers",
|
|
210
210
|
paxMin: "Min",
|
|
211
211
|
paxMax: "Max",
|
|
212
212
|
clear: "Clear",
|
|
@@ -310,9 +310,9 @@ export const bookingsUiEnCreateList = {
|
|
|
310
310
|
hold_expired: "Hold expired",
|
|
311
311
|
status_change: "Status changed",
|
|
312
312
|
item_update: "Item updated",
|
|
313
|
-
allocation_released: "
|
|
314
|
-
fulfillment_issued: "
|
|
315
|
-
fulfillment_updated: "
|
|
313
|
+
allocation_released: "Reserved spots released",
|
|
314
|
+
fulfillment_issued: "Voucher/ticket issued",
|
|
315
|
+
fulfillment_updated: "Voucher/ticket updated",
|
|
316
316
|
redemption_recorded: "Service Voucher redeemed",
|
|
317
317
|
supplier_update: "Supplier updated",
|
|
318
318
|
traveler_update: "Traveler updated",
|
package/dist/i18n/en-journey.js
CHANGED
|
@@ -48,11 +48,11 @@ export const bookingsUiEnJourney = {
|
|
|
48
48
|
},
|
|
49
49
|
warnings: {
|
|
50
50
|
phoneMissing: "Phone number not set — useful for last-minute supplier contact.",
|
|
51
|
-
billingCountryMissing: "
|
|
51
|
+
billingCountryMissing: "Add a billing country so taxes can be calculated.",
|
|
52
52
|
vatMissing: "Tax ID not set — needed for company (B2B) invoicing.",
|
|
53
53
|
travelerFieldRequired: "{traveler}: {field} is required.",
|
|
54
|
-
paymentIntentMissing: "
|
|
55
|
-
noTravelers: "
|
|
54
|
+
paymentIntentMissing: "No payment option chosen — this booking will be put on hold.",
|
|
55
|
+
noTravelers: "Add at least one traveler.",
|
|
56
56
|
},
|
|
57
57
|
configure: {
|
|
58
58
|
travelers: "Travelers",
|
|
@@ -118,25 +118,25 @@ export const bookingsUiEnJourney = {
|
|
|
118
118
|
accommodation: {
|
|
119
119
|
title: "Accommodation",
|
|
120
120
|
empty: "No accommodation options for this product.",
|
|
121
|
-
extensionsAvailable: "{count} extension option{plural} available
|
|
121
|
+
extensionsAvailable: "{count} extension option{plural} available",
|
|
122
122
|
ratePlan: "Rate plan",
|
|
123
123
|
cancellationPrefix: "Cancellation:",
|
|
124
124
|
includesPrefix: "Includes:",
|
|
125
125
|
},
|
|
126
126
|
addons: {
|
|
127
|
-
title: "
|
|
128
|
-
empty: "No
|
|
127
|
+
title: "Extras",
|
|
128
|
+
empty: "No extras available for this product.",
|
|
129
129
|
otherBucket: "Other",
|
|
130
130
|
},
|
|
131
131
|
payment: {
|
|
132
132
|
title: "Payment",
|
|
133
133
|
empty: "No payment methods are available for this booking.",
|
|
134
134
|
redirectedAfterConfirm: "You'll be redirected to our secure payment page after confirming the booking.",
|
|
135
|
-
linkSentAfterConfirm: "
|
|
135
|
+
linkSentAfterConfirm: "After you confirm, the customer gets a secure link to pay. Nothing is charged yet.",
|
|
136
136
|
cardOperatorLabel: "Online payment link",
|
|
137
137
|
cardOperatorDescription: "The customer pays online via a secure link after you confirm. Nothing is charged instantly; inventory is reserved on confirmation.",
|
|
138
138
|
generateLinkLabel: "Generate an online payment link",
|
|
139
|
-
generateLinkHint: "
|
|
139
|
+
generateLinkHint: "Sends a secure payment link after you confirm. Leave off to reserve now and collect later.",
|
|
140
140
|
inquiryNotice: "We'll send your details to the operator without locking inventory or taking payment. They'll get back to you with availability and a quote — typically within one business day.",
|
|
141
141
|
bankTransferInstructions: "Bank transfer instructions",
|
|
142
142
|
bankTransferDefaultNote: "After you submit, you'll receive an email with our bank details and a payment reference. Inventory is held pending payment.",
|
|
@@ -151,7 +151,7 @@ export const bookingsUiEnJourney = {
|
|
|
151
151
|
card: "Charged immediately. Inventory is reserved on confirmation.",
|
|
152
152
|
bank_transfer: "We'll send you bank details and a reference. Inventory is held while we wait for the transfer.",
|
|
153
153
|
hold: "Reserve inventory without paying. The operator follows up to collect payment.",
|
|
154
|
-
ticket_on_credit: "Charge
|
|
154
|
+
ticket_on_credit: "Charge to the agency's credit account.",
|
|
155
155
|
inquiry: "No payment, no inventory hold. The operator gets back to you with availability and a quote.",
|
|
156
156
|
},
|
|
157
157
|
},
|
|
@@ -192,13 +192,13 @@ export const bookingsUiEnJourney = {
|
|
|
192
192
|
total: "Total",
|
|
193
193
|
pricingHint: "Add travelers to see pricing.",
|
|
194
194
|
pricingHintRooms: "Select rooms to see pricing.",
|
|
195
|
-
guestSingular: "
|
|
196
|
-
guestPlural: "
|
|
195
|
+
guestSingular: "traveler",
|
|
196
|
+
guestPlural: "travelers",
|
|
197
197
|
filledOf: "{filled} of {total} filled",
|
|
198
198
|
roomSingular: "room",
|
|
199
199
|
roomPlural: "rooms",
|
|
200
|
-
addOnSingular: "
|
|
201
|
-
addOnPlural: "
|
|
200
|
+
addOnSingular: "extra",
|
|
201
|
+
addOnPlural: "extras",
|
|
202
202
|
card: "Card",
|
|
203
203
|
hold: "Hold",
|
|
204
204
|
onCredit: "On credit",
|
|
@@ -206,7 +206,7 @@ export const bookingsUiEnJourney = {
|
|
|
206
206
|
reviewDetails: "Review your details and confirm to book.",
|
|
207
207
|
noTravelersYet: "No travelers yet.",
|
|
208
208
|
notSelected: "Not selected.",
|
|
209
|
-
noAddonsSelected: "No
|
|
209
|
+
noAddonsSelected: "No extras selected.",
|
|
210
210
|
adults: "Adults",
|
|
211
211
|
children: "Children",
|
|
212
212
|
infants: "Infants",
|
|
@@ -221,7 +221,7 @@ export const bookingsUiEnJourney = {
|
|
|
221
221
|
buyer: "Buyer",
|
|
222
222
|
company: "Company",
|
|
223
223
|
individual: "Individual",
|
|
224
|
-
vat: "
|
|
224
|
+
vat: "Tax ID",
|
|
225
225
|
address: "Address",
|
|
226
226
|
travelerNumber: "Traveler {number}",
|
|
227
227
|
dob: "DOB",
|
|
@@ -149,15 +149,15 @@ export const bookingsUiEnOperations = {
|
|
|
149
149
|
title: "Payment reconciliation",
|
|
150
150
|
loading: "Checking payment sources...",
|
|
151
151
|
empty: "No invoices, payments, or schedule rows have been recorded yet.",
|
|
152
|
-
reconciledDescription: "
|
|
153
|
-
driftDescription: "
|
|
152
|
+
reconciledDescription: "Paid amounts match across invoices, payments, and the schedule.",
|
|
153
|
+
driftDescription: "Paid amounts don't match across invoices, payments, and the schedule. Check them before taking more payment.",
|
|
154
154
|
reconciledBadge: "Reconciled",
|
|
155
155
|
driftBadge: "Needs review",
|
|
156
156
|
billed: "Billed",
|
|
157
157
|
invoicePaid: "Paid on invoices",
|
|
158
158
|
recordedPayments: "Recorded payments",
|
|
159
159
|
schedulePaid: "Paid schedule rows",
|
|
160
|
-
drift: "
|
|
160
|
+
drift: "Mismatch",
|
|
161
161
|
emptyValue: "-",
|
|
162
162
|
},
|
|
163
163
|
supplierStatusList: {
|
|
@@ -208,7 +208,7 @@ export const bookingsUiEnOperations = {
|
|
|
208
208
|
},
|
|
209
209
|
paidSettlement: {
|
|
210
210
|
title: "Paid booking settlement required",
|
|
211
|
-
description: "
|
|
211
|
+
description: "Existing invoices and payments stay in place. Finance will be flagged to decide on a refund, credit note, or no refund.",
|
|
212
212
|
},
|
|
213
213
|
refundTypeLabels: {
|
|
214
214
|
cash: "Cash refund",
|
|
@@ -252,7 +252,7 @@ export const bookingsUiEnOperations = {
|
|
|
252
252
|
company: "Company",
|
|
253
253
|
},
|
|
254
254
|
crmPicker: {
|
|
255
|
-
label: "
|
|
255
|
+
label: "Contact source",
|
|
256
256
|
personSearchPlaceholder: "Search people...",
|
|
257
257
|
personEmpty: "No people found.",
|
|
258
258
|
organizationSearchPlaceholder: "Search organizations...",
|
|
@@ -260,8 +260,8 @@ export const bookingsUiEnOperations = {
|
|
|
260
260
|
},
|
|
261
261
|
actions: {
|
|
262
262
|
cancel: "Cancel",
|
|
263
|
-
selectFromCrm: "Select from
|
|
264
|
-
hideCrmPicker: "Hide
|
|
263
|
+
selectFromCrm: "Select from contacts",
|
|
264
|
+
hideCrmPicker: "Hide contact picker",
|
|
265
265
|
save: "Save changes",
|
|
266
266
|
},
|
|
267
267
|
},
|
|
@@ -354,7 +354,7 @@ export const bookingsUiEnOperations = {
|
|
|
354
354
|
},
|
|
355
355
|
hints: {
|
|
356
356
|
productFiltered: "Filtered to groups for the booking's product.",
|
|
357
|
-
primaryMember: "This booking will be
|
|
357
|
+
primaryMember: "This booking will be the lead booking for the room.",
|
|
358
358
|
},
|
|
359
359
|
validation: {
|
|
360
360
|
selectGroup: "Select a group to join",
|
|
@@ -370,10 +370,10 @@ export const bookingsUiEnOperations = {
|
|
|
370
370
|
},
|
|
371
371
|
bookingGroupSection: {
|
|
372
372
|
title: "Shared room",
|
|
373
|
-
empty: "This booking
|
|
373
|
+
empty: "This booking isn't sharing a room yet.",
|
|
374
374
|
group: "Group",
|
|
375
|
-
siblingBookings: "
|
|
376
|
-
noSiblingBookings: "No other bookings linked yet.
|
|
375
|
+
siblingBookings: "Other bookings in this room ({count})",
|
|
376
|
+
noSiblingBookings: "No other bookings linked yet. Link another booking to share this room.",
|
|
377
377
|
primaryBadge: "Primary",
|
|
378
378
|
sharedRoomKind: "Shared room",
|
|
379
379
|
actions: {
|
package/dist/i18n/en-sections.js
CHANGED
|
@@ -250,7 +250,7 @@ export const bookingsUiEnSections = {
|
|
|
250
250
|
firstInstallment: "First installment",
|
|
251
251
|
secondInstallment: "Second installment",
|
|
252
252
|
preset5050: "50 / 50",
|
|
253
|
-
unpaidHint: "
|
|
253
|
+
unpaidHint: "You'll invoice this booking manually — no schedule is set up.",
|
|
254
254
|
totalDue: "Total due",
|
|
255
255
|
scheduledTotal: "Scheduled",
|
|
256
256
|
remaining: "Remaining",
|
|
@@ -270,7 +270,7 @@ export const bookingsUiEnSections = {
|
|
|
270
270
|
noUnits: "This departure has no per-unit availability configured.",
|
|
271
271
|
remaining: "left",
|
|
272
272
|
unlimited: "unlimited",
|
|
273
|
-
fillsSlotCapacity: "
|
|
273
|
+
fillsSlotCapacity: "room is full",
|
|
274
274
|
decreaseUnitPrefix: "Decrease",
|
|
275
275
|
increaseUnitPrefix: "Increase",
|
|
276
276
|
reviewLine: "Review this line",
|
|
@@ -283,7 +283,7 @@ export const bookingsUiEnSections = {
|
|
|
283
283
|
joinMode: "Join existing shared room",
|
|
284
284
|
selectPlaceholder: "Search shared rooms...",
|
|
285
285
|
noGroups: "No shared rooms found for this product.",
|
|
286
|
-
createHint: "A new shared room will be created with this booking as the
|
|
286
|
+
createHint: "A new shared room will be created with this booking as the lead booking.",
|
|
287
287
|
createSheetTitle: "Create shared room",
|
|
288
288
|
groupLabel: "Shared room label",
|
|
289
289
|
groupLabelPlaceholder: "e.g. Smith + Jones, Room 204",
|
package/dist/i18n/ro-base.js
CHANGED
|
@@ -37,7 +37,7 @@ export const bookingsUiRoBase = {
|
|
|
37
37
|
bookingQuickViewSheet: {
|
|
38
38
|
loadingTitle: "Rezervare",
|
|
39
39
|
viewFullAction: "Vezi rezervarea completa",
|
|
40
|
-
paxSuffix: "
|
|
40
|
+
paxSuffix: "calatori",
|
|
41
41
|
travelerUnnamed: "Calator fara nume",
|
|
42
42
|
sectionPayer: "Platitor",
|
|
43
43
|
sectionTravelers: "Calatori",
|
|
@@ -151,7 +151,7 @@ export const bookingsUiRoBase = {
|
|
|
151
151
|
billingEmail: "Email",
|
|
152
152
|
billingPhone: "Telefon",
|
|
153
153
|
billingAddress: "Adresa",
|
|
154
|
-
documentsSlotEmpty: "
|
|
154
|
+
documentsSlotEmpty: "Inca nu exista documente.",
|
|
155
155
|
},
|
|
156
156
|
travelerDialog: {
|
|
157
157
|
titles: {
|
|
@@ -174,7 +174,7 @@ export const bookingsUiRoBase = {
|
|
|
174
174
|
dateOfBirth: "Data nasterii",
|
|
175
175
|
dietaryRequirements: "Cerinte alimentare",
|
|
176
176
|
accessibilityNeeds: "Cerinte de accesibilitate",
|
|
177
|
-
linkedPerson: "Contact
|
|
177
|
+
linkedPerson: "Contact asociat",
|
|
178
178
|
},
|
|
179
179
|
travelerCategoryLabels: {
|
|
180
180
|
adult: "Adult",
|
|
@@ -8,7 +8,7 @@ export const bookingsUiRoCreateList = {
|
|
|
8
8
|
travelDates: "Date calatorie",
|
|
9
9
|
sellAmountCents: "Pret vanzare",
|
|
10
10
|
costAmountCents: "Cost",
|
|
11
|
-
pax: "Calatori
|
|
11
|
+
pax: "Calatori",
|
|
12
12
|
internalNotes: "Note interne",
|
|
13
13
|
},
|
|
14
14
|
placeholders: {
|
|
@@ -30,7 +30,7 @@ export const bookingsUiRoCreateList = {
|
|
|
30
30
|
confirmAfterCreate: "Confirma rezervarea dupa creare",
|
|
31
31
|
confirmAfterCreateHint: "Dupa creare, rezervarea trece in status confirmat.",
|
|
32
32
|
createAsDraft: "Creeaza ca draft",
|
|
33
|
-
createAsDraftHint: "Altfel, rezervarea
|
|
33
|
+
createAsDraftHint: "Altfel, rezervarea devine activa — confirmata daca o plata este marcata ca achitata, sau in asteptarea platii daca nu.",
|
|
34
34
|
notifyTraveler: "Anunta calatorul",
|
|
35
35
|
notifyTravelerHint: "Cand este activ, trimite emailul de confirmare si documentele (daca auto-dispatch este configurat). Dezactiveaza pentru confirmare silentioasa.",
|
|
36
36
|
},
|
|
@@ -55,9 +55,9 @@ export const bookingsUiRoCreateList = {
|
|
|
55
55
|
confirmFailedPrefix: "Rezervarea a fost creata, dar confirmarea a esuat: {message}",
|
|
56
56
|
confirmFailed: "Rezervarea a fost creata, dar confirmarea a esuat",
|
|
57
57
|
createFailed: "Crearea rezervarii a esuat",
|
|
58
|
-
payloadResolverMismatchDetails: "
|
|
59
|
-
payloadResolverMismatchFallback: "
|
|
60
|
-
payloadResolverMismatchLine: "{label}:
|
|
58
|
+
payloadResolverMismatchDetails: "Selectia s-a schimbat in timpul rezervarii. Verifica din nou optiunile evidentiate.",
|
|
59
|
+
payloadResolverMismatchFallback: "Selectia s-a schimbat in timpul rezervarii. Verifica din nou optiunile evidentiate.",
|
|
60
|
+
payloadResolverMismatchLine: "{label}: cantitate modificata",
|
|
61
61
|
paidPaymentDateRequired: "Data platii este obligatorie cand plata este marcata ca deja achitata.",
|
|
62
62
|
},
|
|
63
63
|
actions: {
|
|
@@ -105,7 +105,7 @@ export const bookingsUiRoCreateList = {
|
|
|
105
105
|
sharedRoomJoinMode: "Alatura-te unui partaj",
|
|
106
106
|
sharedRoomSelectPlaceholder: "Cauta partaje...",
|
|
107
107
|
sharedRoomNoGroups: "Nu exista partaje pentru acest produs.",
|
|
108
|
-
sharedRoomCreateHint: "Va fi creat un partaj nou, iar aceasta rezervare va fi
|
|
108
|
+
sharedRoomCreateHint: "Va fi creat un partaj nou, iar aceasta rezervare va fi rezervarea principala.",
|
|
109
109
|
sharedRoomRemove: "Elimina partajul",
|
|
110
110
|
sharedRoomGeneratedLabelPrefix: "Partaj",
|
|
111
111
|
travelCreditHeading: "Credit de calatorie (optional)",
|
|
@@ -133,7 +133,7 @@ export const bookingsUiRoCreateList = {
|
|
|
133
133
|
paymentFirstInstallment: "Prima rata",
|
|
134
134
|
paymentSecondInstallment: "A doua rata",
|
|
135
135
|
paymentPreset5050: "50 / 50",
|
|
136
|
-
paymentUnpaidHint: "
|
|
136
|
+
paymentUnpaidHint: "Vei factura aceasta rezervare manual — nu se creeaza niciun scadentar.",
|
|
137
137
|
paymentTotalDue: "Total datorat",
|
|
138
138
|
paymentScheduledTotal: "Programat",
|
|
139
139
|
paymentRemaining: "Ramas",
|
|
@@ -164,14 +164,14 @@ export const bookingsUiRoCreateList = {
|
|
|
164
164
|
},
|
|
165
165
|
},
|
|
166
166
|
bookingList: {
|
|
167
|
-
searchPlaceholder: "Cauta
|
|
167
|
+
searchPlaceholder: "Cauta rezervari…",
|
|
168
168
|
newBooking: "Rezervare noua",
|
|
169
169
|
columns: {
|
|
170
170
|
bookingNumber: "Rezervare #",
|
|
171
171
|
whatBooked: "Articole",
|
|
172
172
|
status: "Status",
|
|
173
173
|
sellAmount: "Total",
|
|
174
|
-
pax: "
|
|
174
|
+
pax: "Calatori",
|
|
175
175
|
startDate: "Date",
|
|
176
176
|
endDate: "Data/ora final",
|
|
177
177
|
lead: "Platitor",
|
|
@@ -206,7 +206,7 @@ export const bookingsUiRoCreateList = {
|
|
|
206
206
|
departureNeedsProduct: "Alege mai intai un produs.",
|
|
207
207
|
dateRangeLabel: "Data start",
|
|
208
208
|
dateRange: "Orice data",
|
|
209
|
-
paxLabel: "
|
|
209
|
+
paxLabel: "Calatori",
|
|
210
210
|
paxMin: "Min",
|
|
211
211
|
paxMax: "Max",
|
|
212
212
|
clear: "Sterge filtre",
|
|
@@ -310,9 +310,9 @@ export const bookingsUiRoCreateList = {
|
|
|
310
310
|
hold_expired: "Hold expirat",
|
|
311
311
|
status_change: "Status schimbat",
|
|
312
312
|
item_update: "Articol actualizat",
|
|
313
|
-
allocation_released: "
|
|
314
|
-
fulfillment_issued: "
|
|
315
|
-
fulfillment_updated: "
|
|
313
|
+
allocation_released: "Locuri rezervate eliberate",
|
|
314
|
+
fulfillment_issued: "Voucher/bilet emis",
|
|
315
|
+
fulfillment_updated: "Voucher/bilet actualizat",
|
|
316
316
|
redemption_recorded: "Voucher de servicii folosit",
|
|
317
317
|
supplier_update: "Furnizor actualizat",
|
|
318
318
|
traveler_update: "Calator actualizat",
|
package/dist/i18n/ro-journey.js
CHANGED
|
@@ -48,11 +48,11 @@ export const bookingsUiRoJourney = {
|
|
|
48
48
|
},
|
|
49
49
|
warnings: {
|
|
50
50
|
phoneMissing: "Numarul de telefon lipseste - util pentru contact furnizor in ultimul moment.",
|
|
51
|
-
billingCountryMissing: "
|
|
51
|
+
billingCountryMissing: "Adauga o tara de facturare pentru ca taxele sa poata fi calculate.",
|
|
52
52
|
vatMissing: "Codul fiscal lipseste - necesar pentru facturarea catre companie (B2B).",
|
|
53
53
|
travelerFieldRequired: "{traveler}: {field} este obligatoriu.",
|
|
54
|
-
paymentIntentMissing: "
|
|
55
|
-
noTravelers: "
|
|
54
|
+
paymentIntentMissing: "Nu a fost aleasa nicio optiune de plata - aceasta rezervare va fi pusa in asteptare.",
|
|
55
|
+
noTravelers: "Adauga cel putin un calator.",
|
|
56
56
|
},
|
|
57
57
|
configure: {
|
|
58
58
|
travelers: "Calatori",
|
|
@@ -118,7 +118,7 @@ export const bookingsUiRoJourney = {
|
|
|
118
118
|
accommodation: {
|
|
119
119
|
title: "Cazare",
|
|
120
120
|
empty: "Nu exista optiuni de cazare pentru acest produs.",
|
|
121
|
-
extensionsAvailable: "{count} optiune{plural} de extensie disponibila
|
|
121
|
+
extensionsAvailable: "{count} optiune{plural} de extensie disponibila",
|
|
122
122
|
ratePlan: "Plan tarifar",
|
|
123
123
|
cancellationPrefix: "Anulare:",
|
|
124
124
|
includesPrefix: "Include:",
|
|
@@ -132,11 +132,11 @@ export const bookingsUiRoJourney = {
|
|
|
132
132
|
title: "Plata",
|
|
133
133
|
empty: "Nu exista metode de plata disponibile pentru aceasta rezervare.",
|
|
134
134
|
redirectedAfterConfirm: "Vei fi redirectionat catre pagina noastra securizata de plata dupa confirmarea rezervarii.",
|
|
135
|
-
linkSentAfterConfirm: "Dupa confirmare
|
|
135
|
+
linkSentAfterConfirm: "Dupa confirmare, clientul primeste un link securizat pentru plata. Nu se incaseaza inca nimic.",
|
|
136
136
|
cardOperatorLabel: "Link de plata online",
|
|
137
137
|
cardOperatorDescription: "Clientul plateste online printr-un link securizat dupa confirmare. Nu se incaseaza instant; inventarul este rezervat la confirmare.",
|
|
138
138
|
generateLinkLabel: "Genereaza un link de plata online",
|
|
139
|
-
generateLinkHint: "
|
|
139
|
+
generateLinkHint: "Trimite un link securizat de plata dupa confirmare. Lasa dezactivat pentru a rezerva acum si a incasa mai tarziu.",
|
|
140
140
|
inquiryNotice: "Vom trimite detaliile tale catre operator fara a bloca inventar sau a incasa plata. Operatorul va reveni cu disponibilitate si oferta - de obicei intr-o zi lucratoare.",
|
|
141
141
|
bankTransferInstructions: "Instructiuni transfer bancar",
|
|
142
142
|
bankTransferDefaultNote: "Dupa trimitere, vei primi un email cu detaliile bancare si o referinta de plata. Inventarul este pastrat in asteptarea platii.",
|
|
@@ -151,7 +151,7 @@ export const bookingsUiRoJourney = {
|
|
|
151
151
|
card: "Se incaseaza imediat. Inventarul este rezervat la confirmare.",
|
|
152
152
|
bank_transfer: "Iti trimitem detaliile bancare si o referinta. Inventarul este pastrat pana la transfer.",
|
|
153
153
|
hold: "Rezerva inventarul fara plata. Operatorul revine pentru incasare.",
|
|
154
|
-
ticket_on_credit: "Incaseaza din
|
|
154
|
+
ticket_on_credit: "Incaseaza din contul de credit al agentiei.",
|
|
155
155
|
inquiry: "Fara plata si fara blocare de inventar. Operatorul revine cu disponibilitate si oferta.",
|
|
156
156
|
},
|
|
157
157
|
},
|
|
@@ -192,8 +192,8 @@ export const bookingsUiRoJourney = {
|
|
|
192
192
|
total: "Total",
|
|
193
193
|
pricingHint: "Adauga calatori pentru a vedea pretul.",
|
|
194
194
|
pricingHintRooms: "Selecteaza camere pentru a vedea pretul.",
|
|
195
|
-
guestSingular: "
|
|
196
|
-
guestPlural: "
|
|
195
|
+
guestSingular: "calator",
|
|
196
|
+
guestPlural: "calatori",
|
|
197
197
|
filledOf: "{filled} din {total} completati",
|
|
198
198
|
roomSingular: "camera",
|
|
199
199
|
roomPlural: "camere",
|
|
@@ -221,7 +221,7 @@ export const bookingsUiRoJourney = {
|
|
|
221
221
|
buyer: "Cumparator",
|
|
222
222
|
company: "Companie",
|
|
223
223
|
individual: "Persoana fizica",
|
|
224
|
-
vat: "
|
|
224
|
+
vat: "Cod fiscal",
|
|
225
225
|
address: "Adresa",
|
|
226
226
|
travelerNumber: "Calator {number}",
|
|
227
227
|
dob: "Data nasterii",
|