Zum Hauptinhalt springen

Internationalisierung (i18n)

StoreStash unterstützt Deutsch und Englisch, erweiterbar durch die Community.

Aufbau

frontend/src/lib/i18n/
├── de.ts # Deutsch (Standard, vollständig)
├── en.ts # English (vollständig)
└── index.ts # Store, Locale-Switching, t()-Helper

Verwendung im Code

<script>
import { t } from '$lib/i18n';
</script>

<h1>{$t('products.title')}</h1>
<p>{$t('products.count', { count: 42 })}</p>

Platzhalter

Translations unterstützen {param} Platzhalter:

// de.ts
'bulk.selected': '{count} ausgewählt',

// Aufruf
$t('bulk.selected', { count: 5 }) // → "5 ausgewählt"

Neue Sprache hinzufügen

  1. Kopiere de.tsfr.ts (oder andere Sprache)
  2. Übersetze alle Strings
  3. Registriere in index.ts:
import fr from './fr';

const TRANSLATIONS: Record<Locale, Translations> = { de, en, fr };

export const LOCALES = [
{ id: 'de', name: 'Deutsch', flag: '🇩🇪' },
{ id: 'en', name: 'English', flag: '🇬🇧' },
{ id: 'fr', name: 'Français', flag: '🇫🇷' },
];
  1. PR erstellen — fertig!

Konventionen

  • Keys sind hierarchisch: section.subsection.key
  • Deutsche Übersetzung ist die Referenz (alle Keys müssen dort existieren)
  • Fehlende Keys fallen auf Deutsch zurück