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/web/i18n.md (or send Accept: text/markdown).
Sprachen und Texte
Das Dictionary-Gerüst mit vier Sprachen für App-Chrome, Settings-Labels, Mail und Notification-Events nutzen.
Einrichtung und Konfiguration
Lesen Sie vor jedem Schritt Bevor Sie beginnen und Terminal-Grundlagen. Bei diesen Anweisungen wird davon ausgegangen, dass Sie das vollständige Supastack-Monorepo in VS Code geöffnet haben. Sein Stamm package.json markiert den Repository-Stamm. In pnpm-Befehlen ist ein Arbeitsbereichspaket eine App oder ein Ordner mit gemeinsam genutztem Code. Im Produkt ist ein Arbeitsbereich der Datencontainer und die Sicherheitsgrenze eines Teams. corepack pnpm --filter ... wählt ein Paket aus dem Monorepo aus, während Befehle von seinem Stammverzeichnis aus ausgeführt werden. Wenn Sie nur einen synchronisierten Mobil- oder Desktop-Ordner geöffnet haben, enthält dieser weder das Web-Backend, Docker-Setup noch Root-Skripte: Führen Sie das Backend von diesem Monorepo oder einem erreichbaren gehosteten Server aus und verwenden Sie die eigenen Skripte des Plattformordners. Eine Umgebungsvariable ist eine benannte Einstellung, die in einer lokalen .env-Datei oder Ihrem Hosting-Dashboard gespeichert ist; Starten Sie die entsprechende App neu, nachdem Sie sie geändert haben, und halten Sie Servergeheimnisse von den Werten NEXT_PUBLIC_ und EXPO_PUBLIC_ fern.
1. Öffnen Sie packages/i18n/src/index.ts in VS Code, um die unterstützten Sprachnamen und Gebietsschema-Helfer anzuzeigen. Suchen Sie die passenden Wörterbuchdateien, bevor Sie die Produktkopie ändern.
2. Fügen Sie den gleichen neuen Schlüssel und die gleiche Übersetzung zu den englischen, deutschen, spanischen und französischen Wörterbüchern hinzu.
3. Führen Sie im Repository-Stammverzeichnis corepack pnpm test -- packages/i18n/src/index.test.ts aus und starten Sie Web mit corepack pnpm --filter @supastack/web dev. Erwartet: Der Sprachumschalter ändert den sichtbaren Text und behält dabei den aktuellen Seitenpfad bei.
Die Sprachen liegen in @supastack/i18n mit SUPPORTED_LOCALES, LOCALE_COOKIE, resolveLocale, getDictionary und localePath. Der Proxy setzt x-supastack-locale und behandelt kanonische Weiterleitungen für Englisch; der LanguageSwitcher aktualisiert das Cookie und behält den aktiven Unterpfad bei. Wichtige App-Routen (/dashboard, /settings, /billing, /chat) funktionieren direkt unter /[locale] neben der Marketing-Startseite unter /{locale}.
Wörterbücher enthalten Marketing-Navigation, Bezeichnungen für Einstellungsbereiche, Organisations-Einstellungen, transaktionale E-Mails (Einladung/OTP/Magic Link/AI/Abrechnung), Bezeichnungen für Benachrichtigungseinstellungen und Texte für In-App-Benachrichtigungsereignisse.
import { getDictionary, resolveLocale, LOCALE_COOKIE } from "@supastack/i18n";
const locale = resolveLocale([
cookieStore.get(LOCALE_COOKIE)?.value,
headers.get("x-supastack-locale"),
headers.get("accept-language"),
]);
const copy = getDictionary(locale);Befehle zum Kopieren
Befolgen Sie die Kommentare, um zu sehen, in welchem Ordner ein Befehl ausgeführt wird. Wenn zwei Terminals gekennzeichnet sind, öffnen Sie zwei Terminalfenster und lassen Sie den ersten Befehl laufen, während Sie den zweiten verwenden.
corepack pnpm test -- packages/i18n/src/index.test.ts
corepack pnpm --filter @supastack/web devImplementierungsablauf
Übergib die Sprache an serverseitig gerenderte Einstellungs- und Organisationsseiten sowie, sofern verfügbar, an notificationCopyForEvent und die Optionen zur Zustellung von Auth-E-Mails. Lass Englisch die DEFAULT_LOCALE bleiben und erfinde keine Marketingaussagen, die nicht durch Wörterbuchschlüssel gedeckt sind.
Transaktionale E-Mails bleiben von Outreach getrennt. Erweitere Wörterbücher, bevor du alle Marketing-Routen unter [locale] verschachtelst.
Überprüfung und Fehlerbehebung
Erscheint eine Formulierung auf Englisch, prüfen Sie, ob der Schlüssel in allen vier Wörterbüchern steht und die Seite genau diesen Schlüssel abfragt. Führt der Sprachwechsel zurück zur Homepage, behalten Sie beim Erstellen des Locale-Links den aktuellen Pfad bei. E-Mail-Texte bleiben im Transaktionsmail-Pfad und werden nicht für Massenwerbung wiederverwendet.
Führe Vitest in packages/i18n sowie Proxy- und Locale-App-Route-Tests aus. Prüfe LanguageSwitcher stichprobenartig auf / und die lokalisierten Überschriften in Einstellungen, Organisation, Dashboard, Abrechnung und Chat, wenn das Sprachpräfix de/es/fr ist.