payload-reserve 1.3.2 → 1.5.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/README.md +185 -4
- package/dist/collections/Reservations.js +47 -2
- package/dist/collections/Reservations.js.map +1 -1
- package/dist/collections/Resources.d.ts +16 -0
- package/dist/collections/Resources.js +35 -10
- package/dist/collections/Resources.js.map +1 -1
- package/dist/collections/Schedules.js +34 -0
- package/dist/collections/Schedules.js.map +1 -1
- package/dist/collections/Services.js +34 -1
- package/dist/collections/Services.js.map +1 -1
- package/dist/components/AvailabilityTimeField/AvailabilityTimeField.module.css +7 -0
- package/dist/components/AvailabilityTimeField/index.d.ts +2 -0
- package/dist/components/AvailabilityTimeField/index.js +109 -0
- package/dist/components/AvailabilityTimeField/index.js.map +1 -0
- package/dist/components/CalendarView/CalendarView.module.css +114 -0
- package/dist/components/CalendarView/LaneTimelineView.d.ts +12 -0
- package/dist/components/CalendarView/LaneTimelineView.js +116 -0
- package/dist/components/CalendarView/LaneTimelineView.js.map +1 -0
- package/dist/components/CalendarView/index.js +224 -22
- package/dist/components/CalendarView/index.js.map +1 -1
- package/dist/components/CalendarView/useResourceAvailability.d.ts +9 -0
- package/dist/components/CalendarView/useResourceAvailability.js +40 -0
- package/dist/components/CalendarView/useResourceAvailability.js.map +1 -0
- package/dist/defaults.d.ts +3 -0
- package/dist/defaults.js +53 -0
- package/dist/defaults.js.map +1 -1
- package/dist/endpoints/cancelBooking.js +34 -21
- package/dist/endpoints/cancelBooking.js.map +1 -1
- package/dist/endpoints/checkAvailability.js +16 -1
- package/dist/endpoints/checkAvailability.js.map +1 -1
- package/dist/endpoints/createBooking.js +4 -1
- package/dist/endpoints/createBooking.js.map +1 -1
- package/dist/endpoints/customerSearch.js +24 -5
- package/dist/endpoints/customerSearch.js.map +1 -1
- package/dist/endpoints/getSlots.js +16 -1
- package/dist/endpoints/getSlots.js.map +1 -1
- package/dist/endpoints/resourceAvailability.d.ts +43 -0
- package/dist/endpoints/resourceAvailability.js +214 -0
- package/dist/endpoints/resourceAvailability.js.map +1 -0
- package/dist/exports/client.d.ts +1 -0
- package/dist/exports/client.js +1 -0
- package/dist/exports/client.js.map +1 -1
- package/dist/hooks/reservations/calculateEndTime.js +21 -1
- package/dist/hooks/reservations/calculateEndTime.js.map +1 -1
- package/dist/hooks/reservations/expandRequiredResources.d.ts +9 -0
- package/dist/hooks/reservations/expandRequiredResources.js +81 -0
- package/dist/hooks/reservations/expandRequiredResources.js.map +1 -0
- package/dist/hooks/reservations/validateGuestBooking.d.ts +3 -0
- package/dist/hooks/reservations/validateGuestBooking.js +93 -0
- package/dist/hooks/reservations/validateGuestBooking.js.map +1 -0
- package/dist/hooks/reservations/validateStatusTransition.js +4 -2
- package/dist/hooks/reservations/validateStatusTransition.js.map +1 -1
- package/dist/hooks/users/provisionStaffResource.d.ts +15 -0
- package/dist/hooks/users/provisionStaffResource.js +88 -0
- package/dist/hooks/users/provisionStaffResource.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin.js +28 -3
- package/dist/plugin.js.map +1 -1
- package/dist/services/AvailabilityService.d.ts +7 -6
- package/dist/services/AvailabilityService.js +86 -60
- package/dist/services/AvailabilityService.js.map +1 -1
- package/dist/translations/ar.json +156 -0
- package/dist/translations/de.json +156 -0
- package/dist/translations/en.json +32 -1
- package/dist/translations/es.json +156 -0
- package/dist/translations/fa.json +156 -0
- package/dist/translations/fr.json +156 -0
- package/dist/translations/hi.json +156 -0
- package/dist/translations/id.json +156 -0
- package/dist/translations/index.js +44 -0
- package/dist/translations/index.js.map +1 -1
- package/dist/translations/pl.json +156 -0
- package/dist/translations/ru.json +156 -0
- package/dist/translations/tr.json +156 -0
- package/dist/translations/zh.json +156 -0
- package/dist/types.d.ts +46 -0
- package/dist/types.js.map +1 -1
- package/dist/utilities/computeSlotStates.d.ts +39 -0
- package/dist/utilities/computeSlotStates.js +49 -0
- package/dist/utilities/computeSlotStates.js.map +1 -0
- package/dist/utilities/guestBooking.d.ts +10 -0
- package/dist/utilities/guestBooking.js +16 -0
- package/dist/utilities/guestBooking.js.map +1 -0
- package/dist/utilities/resolveRequiredResources.d.ts +8 -0
- package/dist/utilities/resolveRequiredResources.js +27 -0
- package/dist/utilities/resolveRequiredResources.js.map +1 -0
- package/dist/utilities/resolveReservationItems.d.ts +3 -2
- package/dist/utilities/resolveReservationItems.js +19 -6
- package/dist/utilities/resolveReservationItems.js.map +1 -1
- package/dist/utilities/scheduleUtils.d.ts +3 -0
- package/dist/utilities/scheduleUtils.js +5 -3
- package/dist/utilities/scheduleUtils.js.map +1 -1
- package/dist/utilities/selectOptions.d.ts +8 -0
- package/dist/utilities/selectOptions.js +11 -0
- package/dist/utilities/selectOptions.js.map +1 -0
- package/dist/utilities/slotUtils.d.ts +19 -0
- package/dist/utilities/slotUtils.js +28 -0
- package/dist/utilities/slotUtils.js.map +1 -1
- package/dist/utilities/userRoles.d.ts +20 -0
- package/dist/utilities/userRoles.js +32 -0
- package/dist/utilities/userRoles.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"collectionServices": "Leistungen",
|
|
3
|
+
"collectionResources": "Ressourcen",
|
|
4
|
+
"collectionSchedules": "Dienstpläne",
|
|
5
|
+
"collectionReservations": "Reservierungen",
|
|
6
|
+
"collectionCustomers": "Kunden",
|
|
7
|
+
"collectionCustomer": "Kunde",
|
|
8
|
+
"fieldFirstName": "Vorname",
|
|
9
|
+
"fieldLastName": "Nachname",
|
|
10
|
+
"fieldName": "Name",
|
|
11
|
+
"fieldDescription": "Beschreibung",
|
|
12
|
+
"fieldImage": "Bild",
|
|
13
|
+
"fieldPrice": "Preis",
|
|
14
|
+
"fieldActive": "Aktiv",
|
|
15
|
+
"fieldServices": "Leistungen",
|
|
16
|
+
"fieldResource": "Ressource",
|
|
17
|
+
"fieldService": "Leistung",
|
|
18
|
+
"fieldCustomer": "Kunde",
|
|
19
|
+
"fieldStartTime": "Startzeit",
|
|
20
|
+
"fieldEndTime": "Endzeit",
|
|
21
|
+
"fieldCancellationReason": "Stornierungsgrund",
|
|
22
|
+
"fieldNotes": "Notizen",
|
|
23
|
+
"fieldStatus": "Status",
|
|
24
|
+
"fieldScheduleType": "Dienstplantyp",
|
|
25
|
+
"fieldRecurringSlots": "Wiederkehrende Zeitfenster",
|
|
26
|
+
"fieldDay": "Tag",
|
|
27
|
+
"fieldManualSlots": "Manuelle Zeitfenster",
|
|
28
|
+
"fieldDate": "Datum",
|
|
29
|
+
"fieldEndDate": "Enddatum",
|
|
30
|
+
"fieldExceptions": "Ausnahmen",
|
|
31
|
+
"fieldLeaveType": "Typ",
|
|
32
|
+
"fieldReason": "Grund",
|
|
33
|
+
"fieldDurationMinutes": "Dauer (Minuten)",
|
|
34
|
+
"fieldBufferTimeBefore": "Pufferzeit davor (Minuten)",
|
|
35
|
+
"fieldBufferTimeAfter": "Pufferzeit danach (Minuten)",
|
|
36
|
+
"fieldStartTimeHHmm": "Startzeit (HH:mm)",
|
|
37
|
+
"fieldEndTimeHHmm": "Endzeit (HH:mm)",
|
|
38
|
+
"scheduleTypeRecurring": "Wiederkehrend",
|
|
39
|
+
"scheduleTypeManual": "Manuell",
|
|
40
|
+
"dayMonday": "Montag",
|
|
41
|
+
"dayTuesday": "Dienstag",
|
|
42
|
+
"dayWednesday": "Mittwoch",
|
|
43
|
+
"dayThursday": "Donnerstag",
|
|
44
|
+
"dayFriday": "Freitag",
|
|
45
|
+
"daySaturday": "Samstag",
|
|
46
|
+
"daySunday": "Sonntag",
|
|
47
|
+
"dayShortSun": "So",
|
|
48
|
+
"dayShortMon": "Mo",
|
|
49
|
+
"dayShortTue": "Di",
|
|
50
|
+
"dayShortWed": "Mi",
|
|
51
|
+
"dayShortThu": "Do",
|
|
52
|
+
"dayShortFri": "Fr",
|
|
53
|
+
"dayShortSat": "Sa",
|
|
54
|
+
"statusPending": "Ausstehend",
|
|
55
|
+
"statusConfirmed": "Bestätigt",
|
|
56
|
+
"statusCompleted": "Abgeschlossen",
|
|
57
|
+
"statusCancelled": "Storniert",
|
|
58
|
+
"statusNoShow": "Nicht erschienen",
|
|
59
|
+
"statusNoShowLabel": "Nicht erschienen",
|
|
60
|
+
"errorInvalidCreateStatus": "Neue Reservierungen müssen mit dem Status {{allowed}} beginnen.",
|
|
61
|
+
"errorInvalidTransition": "Wechsel von \"{{from}}\" zu \"{{to}}\" nicht möglich.",
|
|
62
|
+
"errorCancellationNotice": "Stornierungen erfordern eine Vorlaufzeit von mindestens {{period}} Stunden. Nur noch {{hours}} Stunden bis zum Termin.",
|
|
63
|
+
"errorConflict": "Dieses Zeitfenster überschneidet sich mit einer bestehenden Reservierung für diese Ressource.",
|
|
64
|
+
"calendarLoading": "Reservierungen werden geladen...",
|
|
65
|
+
"calendarToday": "Heute",
|
|
66
|
+
"calendarCreateNew": "Neu erstellen",
|
|
67
|
+
"calendarMonth": "Monat",
|
|
68
|
+
"calendarWeek": "Woche",
|
|
69
|
+
"calendarDay": "Tag",
|
|
70
|
+
"calendarLanes": "Zeitstrahl",
|
|
71
|
+
"calendarUnknownService": "Unbekannte Leistung",
|
|
72
|
+
"calendarUnknownCustomer": "Unbekannter Kunde",
|
|
73
|
+
"calendarUnknownResource": "Unbekannte Ressource",
|
|
74
|
+
"tooltipCustomer": "Kunde:",
|
|
75
|
+
"tooltipResource": "Ressource:",
|
|
76
|
+
"tooltipStatus": "Status:",
|
|
77
|
+
"availabilityLoading": "Verfügbarkeit wird geladen...",
|
|
78
|
+
"availabilityTitle": "Verfügbarkeitsübersicht",
|
|
79
|
+
"availabilityThisWeek": "Diese Woche",
|
|
80
|
+
"availabilityNoResources": "Keine aktiven Ressourcen gefunden.",
|
|
81
|
+
"availabilityNotConfigured": "Reservierungs-Plugin nicht konfiguriert.",
|
|
82
|
+
"availabilityBooked": "Gebucht",
|
|
83
|
+
"availabilityXofYBooked": "{{booked}}/{{total}} gebucht",
|
|
84
|
+
"availabilityUnavailable": "Nicht verfügbar",
|
|
85
|
+
"availabilityResource": "Ressource",
|
|
86
|
+
"dashboardTitle": "Heutige Reservierungen",
|
|
87
|
+
"dashboardTotal": "Gesamt",
|
|
88
|
+
"dashboardActive": "Aktiv",
|
|
89
|
+
"dashboardUpcoming": "Bevorstehend",
|
|
90
|
+
"dashboardTerminal": "Abgeschlossen",
|
|
91
|
+
"dashboardCompleted": "Abgeschlossen",
|
|
92
|
+
"dashboardCancelled": "Storniert",
|
|
93
|
+
"dashboardNextAppointment": "Nächster Termin",
|
|
94
|
+
"dashboardTime": "Zeit:",
|
|
95
|
+
"dashboardStatus": "Status:",
|
|
96
|
+
"dashboardNoUpcoming": "Heute keine bevorstehenden Termine.",
|
|
97
|
+
"fieldCustomerSearch": "Kunden suchen...",
|
|
98
|
+
"fieldCustomerNoResults": "Keine Kunden gefunden",
|
|
99
|
+
"fieldCustomerCreateNew": "Neuen Kunden anlegen",
|
|
100
|
+
"fieldCustomerClear": "Auswahl aufheben",
|
|
101
|
+
"calendarPending": "Ausstehend",
|
|
102
|
+
"pendingDateTime": "Datum / Zeit",
|
|
103
|
+
"pendingActions": "Aktionen",
|
|
104
|
+
"pendingSelectAll": "Alle auswählen",
|
|
105
|
+
"pendingConfirmSelected": "Auswahl bestätigen ({{count}})",
|
|
106
|
+
"pendingConfirming": "Wird bestätigt...",
|
|
107
|
+
"pendingConfirm": "Bestätigen",
|
|
108
|
+
"pendingCancel": "Stornieren",
|
|
109
|
+
"pendingConfirmSuccess": "Reservierung bestätigt",
|
|
110
|
+
"pendingConfirmError": "Reservierung konnte nicht bestätigt werden",
|
|
111
|
+
"pendingCancelSuccess": "Reservierung storniert",
|
|
112
|
+
"pendingCancelError": "Reservierung konnte nicht storniert werden",
|
|
113
|
+
"pendingBulkConfirmSuccess": "{{succeeded}} bestätigt, {{failed}} fehlgeschlagen",
|
|
114
|
+
"pendingEmpty": "Keine ausstehenden Reservierungen",
|
|
115
|
+
"fieldQuantity": "Menge",
|
|
116
|
+
"fieldCapacityMode": "Kapazitätsmodus",
|
|
117
|
+
"fieldTimezone": "Zeitzone",
|
|
118
|
+
"fieldDurationType": "Dauertyp",
|
|
119
|
+
"capacityPerReservation": "Pro Reservierung",
|
|
120
|
+
"capacityPerGuest": "Pro Gast",
|
|
121
|
+
"durationFixed": "Fest",
|
|
122
|
+
"durationFlexible": "Flexibel",
|
|
123
|
+
"durationFullDay": "Ganztägig",
|
|
124
|
+
"fieldItems": "Positionen",
|
|
125
|
+
"fieldGuestCount": "Anzahl Gäste",
|
|
126
|
+
"filterAllResources": "Alle Ressourcen",
|
|
127
|
+
"filterByResource": "Nach Ressource filtern",
|
|
128
|
+
"fieldOwner": "Inhaber",
|
|
129
|
+
"fieldResourceType": "Ressourcentyp",
|
|
130
|
+
"fieldRequiredResources": "Erforderliche Ressourcen",
|
|
131
|
+
"fieldRequiredResourcesDesc": "Zusätzliche Ressourcenpools, die jede Buchung dieser Leistung belegt (z. B. ein Stuhl). Buchungen werden automatisch um diese erweitert und blockiert, wenn ein Pool ausgelastet ist.",
|
|
132
|
+
"fieldAllowGuestBooking": "Gastbuchung",
|
|
133
|
+
"fieldAllowGuestBookingDesc": "Buchungen ohne Kundenkonto zulassen. \"Übernehmen\" verwendet die Plugin-Standardeinstellung.",
|
|
134
|
+
"guestBookingInherit": "Plugin-Standard übernehmen",
|
|
135
|
+
"guestBookingEnabled": "Aktiviert",
|
|
136
|
+
"guestBookingDisabled": "Deaktiviert",
|
|
137
|
+
"fieldGuest": "Gast",
|
|
138
|
+
"fieldGuestDesc": "Kontaktdaten für eine Buchung ohne Kundenkonto. Leer lassen, wenn ein Kunde festgelegt ist.",
|
|
139
|
+
"fieldGuestName": "Name des Gastes",
|
|
140
|
+
"fieldGuestEmail": "E-Mail des Gastes",
|
|
141
|
+
"fieldGuestPhone": "Telefon des Gastes",
|
|
142
|
+
"fieldItemsDesc": "In dieser Buchung enthaltene Ressourcen. Für Buchungen mit einer einzelnen Ressource leer lassen.",
|
|
143
|
+
"errorGuestOrCustomerRequired": "Eine Reservierung erfordert entweder einen Kunden oder Gast-Kontaktdaten.",
|
|
144
|
+
"errorGuestAndCustomer": "Eine Reservierung kann nicht sowohl einen Kunden als auch Gast-Kontaktdaten haben.",
|
|
145
|
+
"errorGuestNameRequired": "Gastbuchungen erfordern einen Namen.",
|
|
146
|
+
"errorGuestContactRequired": "Gastbuchungen erfordern eine E-Mail-Adresse oder Telefonnummer.",
|
|
147
|
+
"errorGuestNotAllowed": "Gastbuchungen sind für diese Leistung nicht zulässig.",
|
|
148
|
+
"pickPrompt": "Wählen Sie eine Leistung und einen Mitarbeiter, um verfügbare Zeiten anzuzeigen.",
|
|
149
|
+
"pickLoading": "Verfügbare Zeiten werden geladen…",
|
|
150
|
+
"pickNone": "Keine verfügbaren Zeiten für diesen Tag.",
|
|
151
|
+
"laneNoResources": "Keine aktiven Ressourcen zum Anzeigen.",
|
|
152
|
+
"slotFree": "Frei",
|
|
153
|
+
"slotFull": "Ausgebucht",
|
|
154
|
+
"slotOffShift": "Außer Dienst",
|
|
155
|
+
"slotTimeOff": "Abwesend"
|
|
156
|
+
}
|
|
@@ -26,7 +26,9 @@
|
|
|
26
26
|
"fieldDay": "Day",
|
|
27
27
|
"fieldManualSlots": "Manual Slots",
|
|
28
28
|
"fieldDate": "Date",
|
|
29
|
+
"fieldEndDate": "End date",
|
|
29
30
|
"fieldExceptions": "Exceptions",
|
|
31
|
+
"fieldLeaveType": "Type",
|
|
30
32
|
"fieldReason": "Reason",
|
|
31
33
|
"fieldDurationMinutes": "Duration (minutes)",
|
|
32
34
|
"fieldBufferTimeBefore": "Buffer Time Before (minutes)",
|
|
@@ -65,6 +67,7 @@
|
|
|
65
67
|
"calendarMonth": "Month",
|
|
66
68
|
"calendarWeek": "Week",
|
|
67
69
|
"calendarDay": "Day",
|
|
70
|
+
"calendarLanes": "Lanes",
|
|
68
71
|
"calendarUnknownService": "Unknown service",
|
|
69
72
|
"calendarUnknownCustomer": "Unknown customer",
|
|
70
73
|
"calendarUnknownResource": "Unknown resource",
|
|
@@ -121,5 +124,33 @@
|
|
|
121
124
|
"fieldItems": "Items",
|
|
122
125
|
"fieldGuestCount": "Guest Count",
|
|
123
126
|
"filterAllResources": "All Resources",
|
|
124
|
-
"filterByResource": "Filter by resource"
|
|
127
|
+
"filterByResource": "Filter by resource",
|
|
128
|
+
"fieldOwner": "Owner",
|
|
129
|
+
"fieldResourceType": "Resource type",
|
|
130
|
+
"fieldRequiredResources": "Required resources",
|
|
131
|
+
"fieldRequiredResourcesDesc": "Additional resource pools every booking of this service occupies (e.g. a chair). Bookings are auto-expanded to include these and are blocked if any pool is full.",
|
|
132
|
+
"fieldAllowGuestBooking": "Guest booking",
|
|
133
|
+
"fieldAllowGuestBookingDesc": "Allow bookings without a customer account. \"Inherit\" uses the plugin-level default.",
|
|
134
|
+
"guestBookingInherit": "Inherit plugin default",
|
|
135
|
+
"guestBookingEnabled": "Enabled",
|
|
136
|
+
"guestBookingDisabled": "Disabled",
|
|
137
|
+
"fieldGuest": "Guest",
|
|
138
|
+
"fieldGuestDesc": "Contact details for a booking made without a customer account. Leave empty when a customer is set.",
|
|
139
|
+
"fieldGuestName": "Guest name",
|
|
140
|
+
"fieldGuestEmail": "Guest email",
|
|
141
|
+
"fieldGuestPhone": "Guest phone",
|
|
142
|
+
"fieldItemsDesc": "Resources included in this booking. Leave empty for single-resource bookings.",
|
|
143
|
+
"errorGuestOrCustomerRequired": "A reservation requires either a customer or guest contact information.",
|
|
144
|
+
"errorGuestAndCustomer": "A reservation cannot have both a customer and guest contact information.",
|
|
145
|
+
"errorGuestNameRequired": "Guest bookings require a name.",
|
|
146
|
+
"errorGuestContactRequired": "Guest bookings require an email or phone number.",
|
|
147
|
+
"errorGuestNotAllowed": "Guest bookings are not allowed for this service.",
|
|
148
|
+
"pickPrompt": "Select a service and staff to see available times.",
|
|
149
|
+
"pickLoading": "Loading available times…",
|
|
150
|
+
"pickNone": "No available times for this day.",
|
|
151
|
+
"laneNoResources": "No active resources to show.",
|
|
152
|
+
"slotFree": "Free",
|
|
153
|
+
"slotFull": "Full",
|
|
154
|
+
"slotOffShift": "Off shift",
|
|
155
|
+
"slotTimeOff": "Time off"
|
|
125
156
|
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"collectionServices": "Servicios",
|
|
3
|
+
"collectionResources": "Recursos",
|
|
4
|
+
"collectionSchedules": "Horarios",
|
|
5
|
+
"collectionReservations": "Reservas",
|
|
6
|
+
"collectionCustomers": "Clientes",
|
|
7
|
+
"collectionCustomer": "Cliente",
|
|
8
|
+
"fieldFirstName": "Nombre",
|
|
9
|
+
"fieldLastName": "Apellidos",
|
|
10
|
+
"fieldName": "Nombre",
|
|
11
|
+
"fieldDescription": "Descripción",
|
|
12
|
+
"fieldImage": "Imagen",
|
|
13
|
+
"fieldPrice": "Precio",
|
|
14
|
+
"fieldActive": "Activo",
|
|
15
|
+
"fieldServices": "Servicios",
|
|
16
|
+
"fieldResource": "Recurso",
|
|
17
|
+
"fieldService": "Servicio",
|
|
18
|
+
"fieldCustomer": "Cliente",
|
|
19
|
+
"fieldStartTime": "Hora de inicio",
|
|
20
|
+
"fieldEndTime": "Hora de fin",
|
|
21
|
+
"fieldCancellationReason": "Motivo de cancelación",
|
|
22
|
+
"fieldNotes": "Notas",
|
|
23
|
+
"fieldStatus": "Estado",
|
|
24
|
+
"fieldScheduleType": "Tipo de horario",
|
|
25
|
+
"fieldRecurringSlots": "Franjas recurrentes",
|
|
26
|
+
"fieldDay": "Día",
|
|
27
|
+
"fieldManualSlots": "Franjas manuales",
|
|
28
|
+
"fieldDate": "Fecha",
|
|
29
|
+
"fieldEndDate": "Fecha de fin",
|
|
30
|
+
"fieldExceptions": "Excepciones",
|
|
31
|
+
"fieldLeaveType": "Tipo",
|
|
32
|
+
"fieldReason": "Motivo",
|
|
33
|
+
"fieldDurationMinutes": "Duración (minutos)",
|
|
34
|
+
"fieldBufferTimeBefore": "Tiempo de margen antes (minutos)",
|
|
35
|
+
"fieldBufferTimeAfter": "Tiempo de margen después (minutos)",
|
|
36
|
+
"fieldStartTimeHHmm": "Hora de inicio (HH:mm)",
|
|
37
|
+
"fieldEndTimeHHmm": "Hora de fin (HH:mm)",
|
|
38
|
+
"scheduleTypeRecurring": "Recurrente",
|
|
39
|
+
"scheduleTypeManual": "Manual",
|
|
40
|
+
"dayMonday": "Lunes",
|
|
41
|
+
"dayTuesday": "Martes",
|
|
42
|
+
"dayWednesday": "Miércoles",
|
|
43
|
+
"dayThursday": "Jueves",
|
|
44
|
+
"dayFriday": "Viernes",
|
|
45
|
+
"daySaturday": "Sábado",
|
|
46
|
+
"daySunday": "Domingo",
|
|
47
|
+
"dayShortSun": "Dom",
|
|
48
|
+
"dayShortMon": "Lun",
|
|
49
|
+
"dayShortTue": "Mar",
|
|
50
|
+
"dayShortWed": "Mié",
|
|
51
|
+
"dayShortThu": "Jue",
|
|
52
|
+
"dayShortFri": "Vie",
|
|
53
|
+
"dayShortSat": "Sáb",
|
|
54
|
+
"statusPending": "Pendiente",
|
|
55
|
+
"statusConfirmed": "Confirmada",
|
|
56
|
+
"statusCompleted": "Completada",
|
|
57
|
+
"statusCancelled": "Cancelada",
|
|
58
|
+
"statusNoShow": "No se presentó",
|
|
59
|
+
"statusNoShowLabel": "No presentado",
|
|
60
|
+
"errorInvalidCreateStatus": "Las nuevas reservas deben comenzar con el estado {{allowed}}.",
|
|
61
|
+
"errorInvalidTransition": "No se puede cambiar de \"{{from}}\" a \"{{to}}\".",
|
|
62
|
+
"errorCancellationNotice": "Las cancelaciones requieren al menos {{period}} horas de antelación. Solo quedan {{hours}} horas hasta la cita.",
|
|
63
|
+
"errorConflict": "Esta franja horaria entra en conflicto con una reserva existente para este recurso.",
|
|
64
|
+
"calendarLoading": "Cargando reservas...",
|
|
65
|
+
"calendarToday": "Hoy",
|
|
66
|
+
"calendarCreateNew": "Crear nueva",
|
|
67
|
+
"calendarMonth": "Mes",
|
|
68
|
+
"calendarWeek": "Semana",
|
|
69
|
+
"calendarDay": "Día",
|
|
70
|
+
"calendarLanes": "Carriles",
|
|
71
|
+
"calendarUnknownService": "Servicio desconocido",
|
|
72
|
+
"calendarUnknownCustomer": "Cliente desconocido",
|
|
73
|
+
"calendarUnknownResource": "Recurso desconocido",
|
|
74
|
+
"tooltipCustomer": "Cliente:",
|
|
75
|
+
"tooltipResource": "Recurso:",
|
|
76
|
+
"tooltipStatus": "Estado:",
|
|
77
|
+
"availabilityLoading": "Cargando disponibilidad...",
|
|
78
|
+
"availabilityTitle": "Resumen de disponibilidad",
|
|
79
|
+
"availabilityThisWeek": "Esta semana",
|
|
80
|
+
"availabilityNoResources": "No se encontraron recursos activos.",
|
|
81
|
+
"availabilityNotConfigured": "El plugin de reservas no está configurado.",
|
|
82
|
+
"availabilityBooked": "Reservado",
|
|
83
|
+
"availabilityXofYBooked": "{{booked}}/{{total}} reservados",
|
|
84
|
+
"availabilityUnavailable": "No disponible",
|
|
85
|
+
"availabilityResource": "Recurso",
|
|
86
|
+
"dashboardTitle": "Reservas de hoy",
|
|
87
|
+
"dashboardTotal": "Total",
|
|
88
|
+
"dashboardActive": "Activas",
|
|
89
|
+
"dashboardUpcoming": "Próximas",
|
|
90
|
+
"dashboardTerminal": "Cerradas",
|
|
91
|
+
"dashboardCompleted": "Completadas",
|
|
92
|
+
"dashboardCancelled": "Canceladas",
|
|
93
|
+
"dashboardNextAppointment": "Próxima cita",
|
|
94
|
+
"dashboardTime": "Hora:",
|
|
95
|
+
"dashboardStatus": "Estado:",
|
|
96
|
+
"dashboardNoUpcoming": "No hay citas próximas para hoy.",
|
|
97
|
+
"fieldCustomerSearch": "Buscar clientes...",
|
|
98
|
+
"fieldCustomerNoResults": "No se encontraron clientes",
|
|
99
|
+
"fieldCustomerCreateNew": "Crear nuevo cliente",
|
|
100
|
+
"fieldCustomerClear": "Borrar selección",
|
|
101
|
+
"calendarPending": "Pendiente",
|
|
102
|
+
"pendingDateTime": "Fecha / Hora",
|
|
103
|
+
"pendingActions": "Acciones",
|
|
104
|
+
"pendingSelectAll": "Seleccionar todo",
|
|
105
|
+
"pendingConfirmSelected": "Confirmar seleccionadas ({{count}})",
|
|
106
|
+
"pendingConfirming": "Confirmando...",
|
|
107
|
+
"pendingConfirm": "Confirmar",
|
|
108
|
+
"pendingCancel": "Cancelar",
|
|
109
|
+
"pendingConfirmSuccess": "Reserva confirmada",
|
|
110
|
+
"pendingConfirmError": "No se pudo confirmar la reserva",
|
|
111
|
+
"pendingCancelSuccess": "Reserva cancelada",
|
|
112
|
+
"pendingCancelError": "No se pudo cancelar la reserva",
|
|
113
|
+
"pendingBulkConfirmSuccess": "{{succeeded}} confirmadas, {{failed}} fallidas",
|
|
114
|
+
"pendingEmpty": "No hay reservas pendientes",
|
|
115
|
+
"fieldQuantity": "Cantidad",
|
|
116
|
+
"fieldCapacityMode": "Modo de capacidad",
|
|
117
|
+
"fieldTimezone": "Zona horaria",
|
|
118
|
+
"fieldDurationType": "Tipo de duración",
|
|
119
|
+
"capacityPerReservation": "Por reserva",
|
|
120
|
+
"capacityPerGuest": "Por huésped",
|
|
121
|
+
"durationFixed": "Fija",
|
|
122
|
+
"durationFlexible": "Flexible",
|
|
123
|
+
"durationFullDay": "Día completo",
|
|
124
|
+
"fieldItems": "Elementos",
|
|
125
|
+
"fieldGuestCount": "Número de huéspedes",
|
|
126
|
+
"filterAllResources": "Todos los recursos",
|
|
127
|
+
"filterByResource": "Filtrar por recurso",
|
|
128
|
+
"fieldOwner": "Propietario",
|
|
129
|
+
"fieldResourceType": "Tipo de recurso",
|
|
130
|
+
"fieldRequiredResources": "Recursos necesarios",
|
|
131
|
+
"fieldRequiredResourcesDesc": "Grupos de recursos adicionales que ocupa cada reserva de este servicio (p. ej. una silla). Las reservas se amplían automáticamente para incluirlos y se bloquean si algún grupo está completo.",
|
|
132
|
+
"fieldAllowGuestBooking": "Reserva de invitado",
|
|
133
|
+
"fieldAllowGuestBookingDesc": "Permitir reservas sin una cuenta de cliente. \"Heredar\" usa el valor predeterminado del plugin.",
|
|
134
|
+
"guestBookingInherit": "Heredar valor predeterminado del plugin",
|
|
135
|
+
"guestBookingEnabled": "Habilitada",
|
|
136
|
+
"guestBookingDisabled": "Deshabilitada",
|
|
137
|
+
"fieldGuest": "Invitado",
|
|
138
|
+
"fieldGuestDesc": "Datos de contacto para una reserva realizada sin una cuenta de cliente. Déjelo vacío cuando se haya asignado un cliente.",
|
|
139
|
+
"fieldGuestName": "Nombre del invitado",
|
|
140
|
+
"fieldGuestEmail": "Correo electrónico del invitado",
|
|
141
|
+
"fieldGuestPhone": "Teléfono del invitado",
|
|
142
|
+
"fieldItemsDesc": "Recursos incluidos en esta reserva. Déjelo vacío para reservas de un solo recurso.",
|
|
143
|
+
"errorGuestOrCustomerRequired": "Una reserva requiere un cliente o los datos de contacto de un invitado.",
|
|
144
|
+
"errorGuestAndCustomer": "Una reserva no puede tener a la vez un cliente y los datos de contacto de un invitado.",
|
|
145
|
+
"errorGuestNameRequired": "Las reservas de invitado requieren un nombre.",
|
|
146
|
+
"errorGuestContactRequired": "Las reservas de invitado requieren un correo electrónico o un número de teléfono.",
|
|
147
|
+
"errorGuestNotAllowed": "Las reservas de invitado no están permitidas para este servicio.",
|
|
148
|
+
"pickPrompt": "Selecciona un servicio y personal para ver los horarios disponibles.",
|
|
149
|
+
"pickLoading": "Cargando horarios disponibles…",
|
|
150
|
+
"pickNone": "No hay horarios disponibles para este día.",
|
|
151
|
+
"laneNoResources": "No hay recursos activos que mostrar.",
|
|
152
|
+
"slotFree": "Libre",
|
|
153
|
+
"slotFull": "Completo",
|
|
154
|
+
"slotOffShift": "Fuera de turno",
|
|
155
|
+
"slotTimeOff": "Ausencia"
|
|
156
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"collectionServices": "خدمات",
|
|
3
|
+
"collectionResources": "منابع",
|
|
4
|
+
"collectionSchedules": "برنامهها",
|
|
5
|
+
"collectionReservations": "رزروها",
|
|
6
|
+
"collectionCustomers": "مشتریان",
|
|
7
|
+
"collectionCustomer": "مشتری",
|
|
8
|
+
"fieldFirstName": "نام",
|
|
9
|
+
"fieldLastName": "نام خانوادگی",
|
|
10
|
+
"fieldName": "نام",
|
|
11
|
+
"fieldDescription": "توضیحات",
|
|
12
|
+
"fieldImage": "تصویر",
|
|
13
|
+
"fieldPrice": "قیمت",
|
|
14
|
+
"fieldActive": "فعال",
|
|
15
|
+
"fieldServices": "خدمات",
|
|
16
|
+
"fieldResource": "منبع",
|
|
17
|
+
"fieldService": "خدمت",
|
|
18
|
+
"fieldCustomer": "مشتری",
|
|
19
|
+
"fieldStartTime": "زمان شروع",
|
|
20
|
+
"fieldEndTime": "زمان پایان",
|
|
21
|
+
"fieldCancellationReason": "دلیل لغو",
|
|
22
|
+
"fieldNotes": "یادداشتها",
|
|
23
|
+
"fieldStatus": "وضعیت",
|
|
24
|
+
"fieldScheduleType": "نوع برنامه",
|
|
25
|
+
"fieldRecurringSlots": "بازههای تکرارشونده",
|
|
26
|
+
"fieldDay": "روز",
|
|
27
|
+
"fieldManualSlots": "بازههای دستی",
|
|
28
|
+
"fieldDate": "تاریخ",
|
|
29
|
+
"fieldEndDate": "تاریخ پایان",
|
|
30
|
+
"fieldExceptions": "استثناها",
|
|
31
|
+
"fieldLeaveType": "نوع",
|
|
32
|
+
"fieldReason": "دلیل",
|
|
33
|
+
"fieldDurationMinutes": "مدت (دقیقه)",
|
|
34
|
+
"fieldBufferTimeBefore": "زمان فاصله پیش از رزرو (دقیقه)",
|
|
35
|
+
"fieldBufferTimeAfter": "زمان فاصله پس از رزرو (دقیقه)",
|
|
36
|
+
"fieldStartTimeHHmm": "زمان شروع (HH:mm)",
|
|
37
|
+
"fieldEndTimeHHmm": "زمان پایان (HH:mm)",
|
|
38
|
+
"scheduleTypeRecurring": "تکرارشونده",
|
|
39
|
+
"scheduleTypeManual": "دستی",
|
|
40
|
+
"dayMonday": "دوشنبه",
|
|
41
|
+
"dayTuesday": "سهشنبه",
|
|
42
|
+
"dayWednesday": "چهارشنبه",
|
|
43
|
+
"dayThursday": "پنجشنبه",
|
|
44
|
+
"dayFriday": "جمعه",
|
|
45
|
+
"daySaturday": "شنبه",
|
|
46
|
+
"daySunday": "یکشنبه",
|
|
47
|
+
"dayShortSun": "یک",
|
|
48
|
+
"dayShortMon": "دو",
|
|
49
|
+
"dayShortTue": "سه",
|
|
50
|
+
"dayShortWed": "چهار",
|
|
51
|
+
"dayShortThu": "پنج",
|
|
52
|
+
"dayShortFri": "جمعه",
|
|
53
|
+
"dayShortSat": "شنبه",
|
|
54
|
+
"statusPending": "در انتظار",
|
|
55
|
+
"statusConfirmed": "تأیید شده",
|
|
56
|
+
"statusCompleted": "تکمیل شده",
|
|
57
|
+
"statusCancelled": "لغو شده",
|
|
58
|
+
"statusNoShow": "عدم حضور",
|
|
59
|
+
"statusNoShowLabel": "عدم حضور",
|
|
60
|
+
"errorInvalidCreateStatus": "رزروهای جدید باید با وضعیت {{allowed}} آغاز شوند.",
|
|
61
|
+
"errorInvalidTransition": "امکان تغییر از «{{from}}» به «{{to}}» وجود ندارد.",
|
|
62
|
+
"errorCancellationNotice": "لغو رزرو به حداقل {{period}} ساعت اطلاعرسانی پیش نیاز دارد. تنها {{hours}} ساعت تا زمان قرار باقی مانده است.",
|
|
63
|
+
"errorConflict": "این بازه زمانی با یک رزرو موجود برای این منبع تداخل دارد.",
|
|
64
|
+
"calendarLoading": "در حال بارگذاری رزروها...",
|
|
65
|
+
"calendarToday": "امروز",
|
|
66
|
+
"calendarCreateNew": "ایجاد جدید",
|
|
67
|
+
"calendarMonth": "ماه",
|
|
68
|
+
"calendarWeek": "هفته",
|
|
69
|
+
"calendarDay": "روز",
|
|
70
|
+
"calendarLanes": "خطوط زمانی",
|
|
71
|
+
"calendarUnknownService": "خدمت نامشخص",
|
|
72
|
+
"calendarUnknownCustomer": "مشتری نامشخص",
|
|
73
|
+
"calendarUnknownResource": "منبع نامشخص",
|
|
74
|
+
"tooltipCustomer": "مشتری:",
|
|
75
|
+
"tooltipResource": "منبع:",
|
|
76
|
+
"tooltipStatus": "وضعیت:",
|
|
77
|
+
"availabilityLoading": "در حال بارگذاری در دسترس بودن...",
|
|
78
|
+
"availabilityTitle": "نمای کلی در دسترس بودن",
|
|
79
|
+
"availabilityThisWeek": "این هفته",
|
|
80
|
+
"availabilityNoResources": "هیچ منبع فعالی یافت نشد.",
|
|
81
|
+
"availabilityNotConfigured": "افزونه رزرو پیکربندی نشده است.",
|
|
82
|
+
"availabilityBooked": "رزرو شده",
|
|
83
|
+
"availabilityXofYBooked": "{{booked}}/{{total}} رزرو شده",
|
|
84
|
+
"availabilityUnavailable": "در دسترس نیست",
|
|
85
|
+
"availabilityResource": "منبع",
|
|
86
|
+
"dashboardTitle": "رزروهای امروز",
|
|
87
|
+
"dashboardTotal": "کل",
|
|
88
|
+
"dashboardActive": "فعال",
|
|
89
|
+
"dashboardUpcoming": "پیشرو",
|
|
90
|
+
"dashboardTerminal": "بسته شده",
|
|
91
|
+
"dashboardCompleted": "تکمیل شده",
|
|
92
|
+
"dashboardCancelled": "لغو شده",
|
|
93
|
+
"dashboardNextAppointment": "قرار بعدی",
|
|
94
|
+
"dashboardTime": "زمان:",
|
|
95
|
+
"dashboardStatus": "وضعیت:",
|
|
96
|
+
"dashboardNoUpcoming": "امروز هیچ قرار پیشرویی وجود ندارد.",
|
|
97
|
+
"fieldCustomerSearch": "جستجوی مشتریان...",
|
|
98
|
+
"fieldCustomerNoResults": "هیچ مشتریای یافت نشد",
|
|
99
|
+
"fieldCustomerCreateNew": "ایجاد مشتری جدید",
|
|
100
|
+
"fieldCustomerClear": "پاک کردن انتخاب",
|
|
101
|
+
"calendarPending": "در انتظار",
|
|
102
|
+
"pendingDateTime": "تاریخ / زمان",
|
|
103
|
+
"pendingActions": "اقدامات",
|
|
104
|
+
"pendingSelectAll": "انتخاب همه",
|
|
105
|
+
"pendingConfirmSelected": "تأیید موارد انتخابشده ({{count}})",
|
|
106
|
+
"pendingConfirming": "در حال تأیید...",
|
|
107
|
+
"pendingConfirm": "تأیید",
|
|
108
|
+
"pendingCancel": "لغو",
|
|
109
|
+
"pendingConfirmSuccess": "رزرو تأیید شد",
|
|
110
|
+
"pendingConfirmError": "تأیید رزرو ناموفق بود",
|
|
111
|
+
"pendingCancelSuccess": "رزرو لغو شد",
|
|
112
|
+
"pendingCancelError": "لغو رزرو ناموفق بود",
|
|
113
|
+
"pendingBulkConfirmSuccess": "{{succeeded}} مورد تأیید شد، {{failed}} مورد ناموفق بود",
|
|
114
|
+
"pendingEmpty": "هیچ رزرو در انتظاری وجود ندارد",
|
|
115
|
+
"fieldQuantity": "تعداد",
|
|
116
|
+
"fieldCapacityMode": "حالت ظرفیت",
|
|
117
|
+
"fieldTimezone": "منطقه زمانی",
|
|
118
|
+
"fieldDurationType": "نوع مدت زمان",
|
|
119
|
+
"capacityPerReservation": "به ازای هر رزرو",
|
|
120
|
+
"capacityPerGuest": "به ازای هر مهمان",
|
|
121
|
+
"durationFixed": "ثابت",
|
|
122
|
+
"durationFlexible": "انعطافپذیر",
|
|
123
|
+
"durationFullDay": "تمام روز",
|
|
124
|
+
"fieldItems": "موارد",
|
|
125
|
+
"fieldGuestCount": "تعداد مهمانان",
|
|
126
|
+
"filterAllResources": "همه منابع",
|
|
127
|
+
"filterByResource": "فیلتر بر اساس منبع",
|
|
128
|
+
"fieldOwner": "مالک",
|
|
129
|
+
"fieldResourceType": "نوع منبع",
|
|
130
|
+
"fieldRequiredResources": "منابع موردنیاز",
|
|
131
|
+
"fieldRequiredResourcesDesc": "مخازن منابع اضافی که هر رزرو این خدمت آنها را اشغال میکند (مثلاً یک صندلی). رزروها بهطور خودکار برای دربرگرفتن این موارد گسترش مییابند و در صورت پر بودن هر مخزن مسدود میشوند.",
|
|
132
|
+
"fieldAllowGuestBooking": "رزرو مهمان",
|
|
133
|
+
"fieldAllowGuestBookingDesc": "اجازه رزرو بدون حساب مشتری. «ارثبری» از پیشفرض سطح افزونه استفاده میکند.",
|
|
134
|
+
"guestBookingInherit": "ارثبری از پیشفرض افزونه",
|
|
135
|
+
"guestBookingEnabled": "فعال",
|
|
136
|
+
"guestBookingDisabled": "غیرفعال",
|
|
137
|
+
"fieldGuest": "مهمان",
|
|
138
|
+
"fieldGuestDesc": "اطلاعات تماس برای رزروی که بدون حساب مشتری انجام شده است. در صورت تعیین مشتری، این بخش را خالی بگذارید.",
|
|
139
|
+
"fieldGuestName": "نام مهمان",
|
|
140
|
+
"fieldGuestEmail": "ایمیل مهمان",
|
|
141
|
+
"fieldGuestPhone": "تلفن مهمان",
|
|
142
|
+
"fieldItemsDesc": "منابع گنجاندهشده در این رزرو. برای رزروهای تکمنبعی، این بخش را خالی بگذارید.",
|
|
143
|
+
"errorGuestOrCustomerRequired": "یک رزرو به اطلاعات تماس مشتری یا مهمان نیاز دارد.",
|
|
144
|
+
"errorGuestAndCustomer": "یک رزرو نمیتواند همزمان اطلاعات تماس مشتری و مهمان داشته باشد.",
|
|
145
|
+
"errorGuestNameRequired": "رزروهای مهمان به نام نیاز دارند.",
|
|
146
|
+
"errorGuestContactRequired": "رزروهای مهمان به ایمیل یا شماره تلفن نیاز دارند.",
|
|
147
|
+
"errorGuestNotAllowed": "رزرو مهمان برای این خدمت مجاز نیست.",
|
|
148
|
+
"pickPrompt": "برای مشاهده زمانهای در دسترس، یک خدمت و کارمند را انتخاب کنید.",
|
|
149
|
+
"pickLoading": "در حال بارگذاری زمانهای در دسترس…",
|
|
150
|
+
"pickNone": "هیچ زمان در دسترسی برای این روز وجود ندارد.",
|
|
151
|
+
"laneNoResources": "هیچ منبع فعالی برای نمایش وجود ندارد.",
|
|
152
|
+
"slotFree": "آزاد",
|
|
153
|
+
"slotFull": "پر",
|
|
154
|
+
"slotOffShift": "خارج از شیفت",
|
|
155
|
+
"slotTimeOff": "مرخصی"
|
|
156
|
+
}
|