382 lines
13 KiB
JSON
382 lines
13 KiB
JSON
{
|
|
"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.",
|
|
"responsibility": {
|
|
"title": "Your responsibility",
|
|
"body": "As the orderer you are responsible for ensuring your village/contingent has permission for the quantity of LPG ordered. Guideline: 60 litres per 40 participants."
|
|
},
|
|
"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",
|
|
"openReplacementsTitle": "{count} open swap requests",
|
|
"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."
|
|
},
|
|
"customer": {
|
|
"navTitle": "My page",
|
|
"signOut": "Sign out",
|
|
"request": {
|
|
"title": "My page",
|
|
"intro": "Enter the email you used when booking and we will send you a sign-in link.",
|
|
"email": "Email",
|
|
"emailPlaceholder": "example@group.org",
|
|
"submit": "Send sign-in link",
|
|
"submitting": "Sending…",
|
|
"successTitle": "Check your email",
|
|
"successBody": "If the email matches a booking we have sent a sign-in link to {email}. The link is valid for 1 hour."
|
|
},
|
|
"verify": {
|
|
"invalidTitle": "Link is not valid",
|
|
"invalidBody": "The link may have expired, already been used, or is incorrect. Request a new sign-in link.",
|
|
"tryAgain": "Request new link"
|
|
},
|
|
"overview": {
|
|
"title": "My bookings",
|
|
"signedInAs": "Signed in as {email}",
|
|
"empty": "No bookings found for this email.",
|
|
"view": "View booking",
|
|
"requestReplacement": "Request cylinder swap",
|
|
"bookingNumber": "Booking #",
|
|
"items": "Items",
|
|
"pickup": "Pickup"
|
|
},
|
|
"replacement": {
|
|
"title": "Request cylinder swap",
|
|
"intro": "Choose product, quantity and preferred pickup time for the swap of empty cylinders.",
|
|
"selectItem": "Product",
|
|
"quantity": "Number of cylinders",
|
|
"pickupSlot": "Preferred pickup time",
|
|
"noPickup": "No time selected — admin will suggest a time",
|
|
"notes": "Additional notes",
|
|
"notesPlaceholder": "Any preferences or info",
|
|
"submit": "Send request",
|
|
"submitting": "Sending…",
|
|
"submitFailed": "Something went wrong. Try again.",
|
|
"successTitle": "Swap request received",
|
|
"successBody": "We have received your request and will get back to you with a confirmation by email.",
|
|
"back": "Back to my bookings",
|
|
"existing": "Previous swap requests",
|
|
"noExisting": "No previous swap requests for this booking.",
|
|
"status": {
|
|
"REQUESTED": "Received",
|
|
"SCHEDULED": "Scheduled",
|
|
"DELIVERED": "Swapped",
|
|
"CANCELLED": "Cancelled"
|
|
}
|
|
}
|
|
},
|
|
"adminReplacements": {
|
|
"navTitle": "Swap requests",
|
|
"title": "Swap requests",
|
|
"empty": "No swap requests yet.",
|
|
"filters": {
|
|
"all": "All"
|
|
},
|
|
"columns": {
|
|
"created": "Received",
|
|
"booking": "Booking",
|
|
"org": "Organization",
|
|
"item": "Item",
|
|
"quantity": "Qty",
|
|
"total": "Amount",
|
|
"pickup": "Preferred time",
|
|
"status": "Status"
|
|
},
|
|
"actions": {
|
|
"markScheduled": "Mark scheduled",
|
|
"markDelivered": "Mark swapped",
|
|
"markCancelled": "Cancel"
|
|
},
|
|
"status": {
|
|
"REQUESTED": "Received",
|
|
"SCHEDULED": "Scheduled",
|
|
"DELIVERED": "Swapped",
|
|
"CANCELLED": "Cancelled"
|
|
},
|
|
"bookingSection": {
|
|
"title": "Swap requests",
|
|
"empty": "No swap requests for this booking."
|
|
}
|
|
}
|
|
}
|