> ## 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

# 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](https://supastack.dev/de/docs/web/before-you-start.md)

[Befehle, Dateien und Konfiguration lernen](https://supastack.dev/de/docs/web/terminal-basics.md)

[Schließen Sie das Web-Tutorial zur ersten Ausführung ab](https://supastack.dev/de/docs/web/ship-in-5-minutes.md)

```
corepack pnpm --filter @supastack/web dev
```


## Einrichtung 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.


## Weiter

[Workspaces](https://supastack.dev/de/docs/modules/workspaces.md)
