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
- Kopiere
de.ts→fr.ts(oder andere Sprache) - Übersetze alle Strings
- 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: '🇫🇷' },
];
- 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