For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /de/docs/modules/i18n.md (or send Accept: text/markdown).
i18n-Modul
Der Locale-Vertrag, den alle Oberflächen teilen.
Bevor Sie beginnen
Öffnen Sie Ihr heruntergeladenes Supastack-Projekt in Visual Studio Code über Datei → Ordner öffnen und wählen Sie dann Terminal → Neues Terminal. Das Repository-Stammverzeichnis ist der Ordner, der package.json, Apps und Pakete enthält. Führen Sie dort den Befehl unten aus und lassen Sie das Terminal geöffnet. Wenn ein Befehl nicht erkannt wird, lesen Sie die Installationsanleitung für das Tool durch, bevor Sie fortfahren.
Lesen Sie zuerst das Plattform-Tutorial. Ein Server ist der App-Prozess, der Browser- oder Telefonanfragen beantwortet. Web liest apps/web/.env.local, Expo liest apps/mobile/.env.local und Datenbankmigrationsbefehle lesen root .env. Die Demonstration ohne Datenbank /Dashboard ist getrennt von echten /Auth-Konten, die migriert werden müssen Postgres. Für eine reine Telefon- oder Desktop-Kaufabwicklung ist ein separat ausgeführtes Web-Backend erforderlich.
- Installieren Sie die Tools und erhalten Sie den Code
- Befehle, Dateien und Konfiguration lernen
- Schließen Sie das Web-Tutorial zur ersten Ausführung ab
corepack pnpm --filter @supastack/web devEinrichtung und Konfiguration
packages/i18n besitzt das Locale-Set und den Auflösungsvertrag: SUPPORTED_LOCALES, DEFAULT_LOCALE, LOCALE_COOKIE, isAppLocale, resolveLocale, localePath und getDictionary. Web-Routen, Mobile-Strings und transaktionale Mail lesen alle aus demselben Paket.
Die Auflösungsreihenfolge ist Pfad-Präfix → Cookie → Accept-Language → Default. localePath(locale, path) erzeugt den kanonischen href — unpräfixiert für die Default-Locale, sonst /{locale}/… — und die Proxy-Schicht setzt ihn durch.
import { getDictionary, localePath, resolveLocale } from "@supastack/i18n";
const locale = resolveLocale([pathLocale, cookie, acceptLanguage]);
const copy = getDictionary(locale).marketing;Implementierungsablauf
Lege einen nutzersichtbaren String zuerst in den Dictionary-Typen an, dann in jeder Locale — die Translation-Completeness-Suite schlägt bei fehlenden Keys und bei unübersetztem Englisch fehl.
Branche Produktlogik niemals nach Locale; Dictionaries sind Präsentation. Formatiere Daten, Zahlen und Pluralformen über Intl-APIs mit der aufgelösten Locale statt über String-Templates.
Überprüfung und Fehlerbehebung
Führe nach dem Anfassen von Keys die i18n-Paket-Tests plus die Site-Content-Completeness-Suite aus. Spot-checke eine locale-präfixierte Route, den Sprach-Switcher und die Accept-Language-Erkennung mit gelöschtem Cookie.