Zum Inhalt springen

Lokalisierung

Lokalisierung ist URL-first: Die Locale reist als Pfad-Präfix (/de/products/…) — Erkennung und Persistenz übernimmt das SDK.

Aus @kotao/storefront:

  • localeFromRequest(request) — die aktive Locale (Pfad-Präfix, dann Cookie, dann Accept-Language).
  • localizePath(path, locale) — einen Pfad für eine Ziel-Locale präfixen.
  • stripLocalePrefixFromRequest(request) — der Request, den dein Route-Matching sieht, Präfix entfernt (der Worker-Entry des Scaffolds wendet das an; auch aus /react-router re-exportiert).

Der Scaffold bringt eine Lokalisierungs-Action-Route mit — ein Formular-Post wechselt die Locale und setzt das Cookie:

app/routes/localization.tsx
import { handleLocalizationPost } from "@kotao/storefront";
export async function action({ request }: Route.ActionArgs) {
return handleLocalizationPost(request);
}

Richte das <Form method="post"> deines Sprachwählers mit der Ziel-Locale darauf; der Handler setzt LOCALIZATION_COOKIE und leitet auf den lokalisierten Pfad um.

Übersetzte Shop-Inhalte (Produkte, Seiten, Navigation) liefert die Storefront-API für die aktive Locale — deine Queries ändern sich nicht. Die eigenen UI-Strings deines Themes gehören dir; halte sie in einer Locale-Map, geschlüsselt über die aktive Locale aus dem Loader.