initial booking
This commit is contained in:
290
messages/en.json
Normal file
290
messages/en.json
Normal file
@@ -0,0 +1,290 @@
|
||||
{
|
||||
"common": {
|
||||
"siteName": "Gasol247 Booking",
|
||||
"eventName": "Jamboree 2027",
|
||||
"languageSwedish": "Svenska",
|
||||
"languageEnglish": "English",
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"loading": "Loading…",
|
||||
"submit": "Submit",
|
||||
"currency": "SEK",
|
||||
"vat": "VAT",
|
||||
"ofWhichVat": "of which VAT",
|
||||
"inclVat": "incl. VAT",
|
||||
"exclVat": "excl. VAT",
|
||||
"total": "Total",
|
||||
"subtotal": "Subtotal",
|
||||
"quantity": "Qty",
|
||||
"price": "Price",
|
||||
"search": "Search"
|
||||
},
|
||||
"header": {
|
||||
"tagline": "Book LPG cylinders for the Jamboree camp",
|
||||
"switchLanguage": "Switch language"
|
||||
},
|
||||
"booking": {
|
||||
"title": "LPG cylinder order",
|
||||
"intro": "Reserve LPG cylinders for your contingent at the camp. A confirmation will be sent to the email you provide.",
|
||||
"stepProducts": "Choose products",
|
||||
"stepDetails": "Your details",
|
||||
"stepPickup": "Pickup",
|
||||
"stepReview": "Review",
|
||||
"stepProductsShort": "Products",
|
||||
"stepDetailsShort": "Details",
|
||||
"stepPickupShort": "Pickup",
|
||||
"stepReviewShort": "Review",
|
||||
"stepOf": "Step {current} of {total}",
|
||||
"products": {
|
||||
"title": "Choose products",
|
||||
"subtitle": "Adjust the quantity for each cylinder size below.",
|
||||
"addToCart": "Add",
|
||||
"remove": "Remove",
|
||||
"perUnit": "/unit",
|
||||
"noneSelected": "Select at least one product to continue."
|
||||
},
|
||||
"details": {
|
||||
"title": "Your details",
|
||||
"organization": "Organization",
|
||||
"orgName": "Organization name",
|
||||
"orgNamePlaceholder": "Scout group, association, company …",
|
||||
"orgNumber": "Organization number",
|
||||
"orgNumberPlaceholder": "XXXXXX-XXXX",
|
||||
"contact": "Contact person",
|
||||
"contactName": "Name",
|
||||
"contactNamePlaceholder": "First and last name",
|
||||
"email": "Email",
|
||||
"emailPlaceholder": "example@group.org",
|
||||
"phone": "Phone",
|
||||
"phonePlaceholder": "+46 …",
|
||||
"invoiceAddress": "Invoice address",
|
||||
"address": "Street address",
|
||||
"postalCode": "Postal code",
|
||||
"city": "City",
|
||||
"country": "Country"
|
||||
},
|
||||
"pickup": {
|
||||
"title": "Choose a pickup time",
|
||||
"subtitle": "Pick a time when you can collect the cylinders at the camp site.",
|
||||
"noSlots": "No pickup times are configured yet.",
|
||||
"capacity": "{count} slots left"
|
||||
},
|
||||
"notes": {
|
||||
"label": "Additional notes (optional)",
|
||||
"placeholder": "Any preferences or information we should know."
|
||||
},
|
||||
"review": {
|
||||
"title": "Review your order",
|
||||
"confirm": "I confirm that the details are correct and accept that a booking is created.",
|
||||
"submitting": "Submitting booking…"
|
||||
},
|
||||
"errors": {
|
||||
"required": "This field is required",
|
||||
"invalidEmail": "Enter a valid email address",
|
||||
"invalidOrgNumber": "Enter a valid organization number (XXXXXX-XXXX)",
|
||||
"selectProduct": "Select at least one product",
|
||||
"submitFailed": "Something went wrong. Try again or contact us."
|
||||
},
|
||||
"success": {
|
||||
"title": "Thank you! Your booking has been received.",
|
||||
"subtitle": "A confirmation has been sent to {email}.",
|
||||
"bookingNumber": "Booking number: {number}",
|
||||
"newOrder": "Make another booking"
|
||||
},
|
||||
"next": "Next",
|
||||
"previous": "Previous"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Administration",
|
||||
"login": {
|
||||
"title": "Sign in",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"submit": "Sign in",
|
||||
"error": "Invalid email or password."
|
||||
},
|
||||
"nav": {
|
||||
"bookings": "Bookings",
|
||||
"products": "Products",
|
||||
"pickupSlots": "Pickup slots",
|
||||
"settings": "Settings",
|
||||
"users": "Users",
|
||||
"admins": "Admins",
|
||||
"signOut": "Sign out"
|
||||
},
|
||||
"users": {
|
||||
"title": "Administrators",
|
||||
"empty": "No administrators.",
|
||||
"new": "New administrator",
|
||||
"edit": "Edit",
|
||||
"create": "Create",
|
||||
"save": "Save",
|
||||
"delete": "Delete",
|
||||
"deleteConfirm": "Are you sure you want to delete this administrator?",
|
||||
"cannotDeleteSelf": "You can't delete your own account.",
|
||||
"cannotDeleteLast": "There must be at least one administrator.",
|
||||
"emailInUse": "Email is already used by another administrator.",
|
||||
"passwordMismatch": "Passwords don't match.",
|
||||
"passwordTooShort": "Password must be at least 8 characters.",
|
||||
"passwordChanged": "Password updated.",
|
||||
"you": "(you)",
|
||||
"columns": {
|
||||
"name": "Name",
|
||||
"email": "Email",
|
||||
"created": "Created",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"passwordConfirm": "Confirm password",
|
||||
"newPassword": "New password",
|
||||
"newPasswordHint": "Leave empty to keep the current password",
|
||||
"passwordHint": "Minimum 8 characters"
|
||||
},
|
||||
"changePassword": "Change password"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
"saved": "Settings saved.",
|
||||
"save": "Save",
|
||||
"pickupEnabled": "Show pickup step in the booking form",
|
||||
"pickupEnabledHint": "When off, the entire step is removed from the form and no pickup slot is selected. Existing bookings and pickup slots are not affected."
|
||||
},
|
||||
"products": {
|
||||
"title": "Products",
|
||||
"empty": "No products yet.",
|
||||
"new": "New product",
|
||||
"edit": "Edit",
|
||||
"create": "Create",
|
||||
"save": "Save",
|
||||
"delete": "Delete",
|
||||
"deleteConfirm": "Are you sure you want to delete this product?",
|
||||
"cannotDelete": "Cannot delete — used in {count} booking(s). Deactivate it instead.",
|
||||
"activate": "Activate",
|
||||
"deactivate": "Deactivate",
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"columns": {
|
||||
"sku": "SKU",
|
||||
"name": "Name",
|
||||
"price": "Price",
|
||||
"vat": "VAT",
|
||||
"active": "Active",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"fields": {
|
||||
"sku": "SKU",
|
||||
"skuHint": "Unique code, e.g. P11",
|
||||
"nameSv": "Name (Swedish)",
|
||||
"nameEn": "Name (English)",
|
||||
"descriptionSv": "Description (Swedish)",
|
||||
"descriptionEn": "Description (English)",
|
||||
"priceSek": "Price (SEK ex VAT)",
|
||||
"vatPct": "VAT (%)",
|
||||
"sortOrder": "Sort order",
|
||||
"sortOrderHint": "Lower values appear first",
|
||||
"active": "Active (shown in booking form)"
|
||||
}
|
||||
},
|
||||
"pickupSlots": {
|
||||
"title": "Pickup slots",
|
||||
"empty": "No pickup slots yet.",
|
||||
"new": "New slot",
|
||||
"edit": "Edit",
|
||||
"create": "Create",
|
||||
"save": "Save",
|
||||
"delete": "Delete",
|
||||
"deleteConfirm": "Are you sure you want to delete this slot?",
|
||||
"cannotDelete": "Cannot delete — chosen by {count} booking(s). Deactivate it instead.",
|
||||
"activate": "Activate",
|
||||
"deactivate": "Deactivate",
|
||||
"columns": {
|
||||
"label": "Label",
|
||||
"when": "When",
|
||||
"capacity": "Capacity",
|
||||
"bookings": "Bookings",
|
||||
"active": "Active",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"fields": {
|
||||
"labelSv": "Label (Swedish)",
|
||||
"labelEn": "Label (English)",
|
||||
"labelHint": "e.g. \"Day 1 — Morning\"",
|
||||
"startsAt": "Starts",
|
||||
"endsAt": "Ends",
|
||||
"capacity": "Capacity",
|
||||
"capacityHint": "Maximum bookings that can choose this slot",
|
||||
"active": "Active (shown in booking form)"
|
||||
},
|
||||
"invalidTime": "End time must be after start time."
|
||||
},
|
||||
"bookings": {
|
||||
"title": "Bookings",
|
||||
"empty": "No bookings yet.",
|
||||
"columns": {
|
||||
"number": "Booking #",
|
||||
"date": "Date",
|
||||
"org": "Organization",
|
||||
"contact": "Contact",
|
||||
"total": "Amount",
|
||||
"status": "Status",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All",
|
||||
"search": "Search booking #, org or email"
|
||||
},
|
||||
"export": "Export CSV",
|
||||
"view": "View",
|
||||
"detail": {
|
||||
"title": "Booking {number}",
|
||||
"items": "Products",
|
||||
"customer": "Customer",
|
||||
"pickup": "Pickup",
|
||||
"totals": "Totals",
|
||||
"markInvoiced": "Mark invoiced",
|
||||
"markDelivered": "Mark delivered",
|
||||
"markCancelled": "Cancel booking",
|
||||
"resendEmail": "Resend confirmation"
|
||||
},
|
||||
"status": {
|
||||
"PENDING": "Pending",
|
||||
"CONFIRMED": "Confirmed",
|
||||
"DELIVERED_PARTIAL": "Partly handed out",
|
||||
"DELIVERED": "Handed out",
|
||||
"RETURNED_PARTIAL": "Partly returned",
|
||||
"RETURNED": "Returned",
|
||||
"INVOICED": "Invoiced",
|
||||
"CANCELLED": "Cancelled"
|
||||
},
|
||||
"fulfillment": {
|
||||
"title": "Handout & return",
|
||||
"ordered": "Ordered",
|
||||
"delivered": "Handed out",
|
||||
"returned": "Returned",
|
||||
"outstanding": "Out",
|
||||
"deliverAll": "Hand out all",
|
||||
"returnAll": "Return all",
|
||||
"save": "Save",
|
||||
"saved": "Saved",
|
||||
"deliveredHint": "Cylinders the customer has collected",
|
||||
"returnedHint": "Cylinders that have come back",
|
||||
"invalidValue": "Value out of allowed range"
|
||||
}
|
||||
}
|
||||
},
|
||||
"email": {
|
||||
"subject": "Booking confirmation {number} — {event}",
|
||||
"greeting": "Hi {name},",
|
||||
"intro": "Thank you for ordering LPG cylinders for {event}. Here is your booking confirmation.",
|
||||
"bookingNumber": "Booking number",
|
||||
"orderSummary": "Order",
|
||||
"pickup": "Pickup",
|
||||
"invoiceInfo": "An invoice will be sent to your organization after the event.",
|
||||
"questions": "Questions? Reply to this email and we will help you.",
|
||||
"footer": "This is an automated confirmation from Gasol247."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user