> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 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](https://supastack.dev/de/docs/web/before-you-start.md) und [Terminal-Grundlagen](https://supastack.dev/de/docs/web/terminal-basics.md). 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 dev
```


## Implementierungsablauf

Ü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.


## Weiter

[Blogartikel schreiben](https://supastack.dev/de/docs/web/blog-content.md)
