Labels and copy overrides
The components display German by default. Booking accepts a partial BookingLabels object. Missing keys keep defaultBookingLabels, including function-valued labels. Hosts can keep the word "Tasting" while using the generic event API names.
"use client";
import { type BookingLabels, EventBooking } from "@shopvento/ui";
const labels = {
eventsLoading: "Tastings werden geladen…",
eventUnavailable: "Dieses Tasting ist gerade nicht buchbar.",
guestDisabled: "Bitte melde Dich für die Tasting-Buchung an.",
eventVoucherRequired:
"Bitte gib für jeden Platz einen Tasting-Gutschein ein.",
eventVoucherMissing: (count: number) =>
`${count} ${count === 1 ? "Platz braucht" : "Plätze brauchen"} noch einen Tasting-Gutschein.`,
eventVoucherDescription: "Tasting-Gutschein für 1 Person, deckt 1 Platz",
eventVoucherNotice:
"Jeder Platz braucht einen Tasting-Gutschein und ein Konto.",
eventDetails: "Mehr zum Tasting",
} satisfies Partial<BookingLabels>;
export function BrandedBookingExample() {
return (
<EventBooking
baseUrl="https://your-installation.shopvento.app"
eventId={123}
termsUrl="/terms"
privacyUrl="/privacy"
turnstileSiteKey="YOUR_PUBLIC_TURNSTILE_SITE_KEY"
labels={labels}
/>
);
}
Booking labels
| Key | Default | Purpose |
|---|---|---|
eventsLoading |
Veranstaltungen werden geladen… | Loading event variants |
eventUnavailable |
Diese Veranstaltung ist nicht verfügbar. | Unavailable event |
guestDisabled |
Onlinebuchungen ohne Anmeldung sind derzeit nicht verfügbar. Bitte kontaktiere uns, um diese Veranstaltung zu buchen. | Guest mode disabled |
eventVoucherRequired |
Bitte gib für jeden Platz einen gültigen Veranstaltungsgutschein ein. | Every seat needs a voucher |
eventVoucherMissing(count) |
1 Platz braucht / n Plätze brauchen noch einen Veranstaltungsgutschein. | Missing voucher count |
eventVoucherDescription |
Veranstaltungsgutschein für 1 Person, deckt 1 Platz | Voucher explanation |
eventVoucherNotice |
Jeder Platz braucht einen Veranstaltungsgutschein. Dafür meldest Du Dich mit Deinem Konto an. Ältere Codes prüfen wir verbindlich beim Buchen. | Voucher-only mode |
eventDetails |
Mehr zur Veranstaltung | Details link |
EventBooking, BookingFlow, DateSheet and BookingModeNotice accept these labels. guestDisabledMessage takes precedence over labels.guestDisabled in the compact form. Other fixed form and status texts remain German in this release; there is no complete locale dictionary for every component string.
Account and shop copy
Dashboard components require host-owned AccountLabels, AccountRoutes and AccountHelp. Use labels.events for the plural event noun, eventVoucher for plural vouchers and eventVoucherSingular for a singular event voucher. The optional singular fallback is Gutschein. Labels are domain nouns and hints; built-in authentication/validation copy still uses German.
Shop primitives receive their labels directly: search text, add/close actions, quantity labels, total label, tax/shipping copy and declarations. ShopSummary.isFrom currently uses the fixed German prefix ab. Hosts format prices through formatPrice.
Migration from 0.1
Deprecated aliases remain until 1.0: TastingBooking / TastingBookingProps become EventBooking / EventBookingProps; Tasting becomes ShopEvent; useTastings becomes useEvents; AccountTastingDetail becomes AccountEventDetail; TastingColors / tastingStyle become EventColors / eventStyle. Replace the old event identifier and collection prop spellings with eventId and events, client list/detail calls with listEvents / getEvent, and --sv-tasting, k-tasting and t-tasting with --sv-event, k-event and t-event. New props win when both spellings are supplied. Backend paths and wire field names are unchanged. The generated reference marks aliases as deprecated.