🌍 Internationalisierung (i18n) in Angular – Übersetzungsstrategie, die skaliert
Mehrsprachigkeit ist mehr als nur translate('HELLO')
.
Im Enterprise braucht dein i18n-System Klarheit, Struktur und Wartbarkeit.
In diesem Beitrag zeige ich dir:
- Wie du Angular i18n professionell aufsetzt
- Welche Strategien sich bewährt haben
- Wie du Teams, Sprachen und Features organisierst
🛠 Die zwei Haupt-Ansätze
1. 🧩 Angular Built-in i18n (Compiler-basiert)
- statisch (mit XLIF oder XMB Dateien)
- Übersetzungen via
i18n="..."
im Template - Compile-Zeit-Sprachvarianten
✅ Performance
✅ SEO
❌ Kein Runtime-Switch
❌ Aufwändig bei dynamischen Texten
2. 🔌 ngx-translate (oder Transloco)
- JSON-basiert, zur Laufzeit ladbar
{{ 'WELCOME' | translate }}
- Sprachwechsel on the fly
✅ Flexibel
✅ Runtime Switch
✅ Lazy Load Support
❌ Weniger stark im SEO
💡 Best Practice Struktur
assets/i18n/
├── de.json
├── en.json
├── fr.json
Nutze Namespaces pro Feature:
// en.json
{
"login": {
"title": "Welcome Back",
"button": "Sign in"
},
"profile": {
"greeting": "Hello {{name}}"
}
}
🌍 Dynamische Sprache setzen
translateService.use('en');
Oder per LocalStorage & Browser-Language automatisch initialisieren:
const browserLang = translate.getBrowserLang();
translate.use(browserLang.match(/en|de|fr/) ? browserLang : 'en');
📦 Lazy Load mit Feature-Modulen
TranslateModule.forChild({
extend: true
})
➡ Du kannst Sprachen on demand laden & modular halten.
🧪 Testbarkeit von Übersetzungen
TestBed.configureTestingModule({
imports: [
TranslateModule.forRoot(),
],
providers: [
{ provide: TranslateLoader, useClass: FakeTranslateLoader }
]
});
➡ Trenne View-Logik & Sprache = besser testbar!
✅ Fazit
Angular i18n wird erst dann stark, wenn du es architektonisch ernst nimmst:
- Nutze Namespaces
- Organisiere Sprachdateien pro Feature
- Entscheide klar zwischen Build-Time vs Runtime
📍 Bald im Blog: 🧱 Angular Forms: Reactive vs. Signals – Was du wann brauchst
Hast du Fragen oder ein Projekt im Kopf?
Ich freue mich auf deine Nachricht. Lass uns gemeinsam deine Vision verwirklichen!
Jetzt Kontakt aufnehmen