i18n
Kurz: Abkürzung für “Internationalization” (18 Buchstaben zwischen i und n) — die Vorbereitung von Software, damit sie in mehreren Sprachen und Regionen funktioniert.
Genauer: i18n umfasst z. B. das Auslagern von Texten in Übersetzungsdateien, das Formatieren von Datum/Zahl/Währung nach Locale und das Berücksichtigen von Textrichtung (LTR/RTL). Die eigentliche Übersetzung in eine konkrete Sprache heißt dagegen “Lokalisierung” (l10n). Bei Emzett wird i18n über next-intl umgesetzt.
Im Detail
Die Ziffernabkürzungen folgen alle demselben Muster: erster und letzter Buchstabe plus die Anzahl der Buchstaben dazwischen. Neben i18n (Internationalization) und l10n (Localization) gibt es z. B. a11y (Accessibility) oder k8s (Kubernetes) — eine Konvention aus den 1970er-Jahren, ursprünglich um lange Wörter auf Lochkarten/Terminals platzsparend zu notieren.
Typische i18n-Arbeitsschritte in einer Anwendung:
- Text-Extraktion: Alle fest im Code stehenden Texte werden in separate Übersetzungsdateien ausgelagert (z. B.
de.json,en.json), statt hartkodiert im Quellcode zu stehen. - Locale-Erkennung: Die Anwendung ermittelt, welche Sprache/Region der Nutzer bevorzugt — über Browser-Header, URL-Präfix (
/de/...,/en/...) oder eine gespeicherte Nutzereinstellung. - Formatierung: Zahlen, Daten und Währungen werden je nach Locale unterschiedlich dargestellt (z. B.
1.234,56 €in Deutschland vs.$1,234.56in den USA) — dafür gibt es dedizierte APIs wieIntl.NumberFormat, statt das selbst zu programmieren. - Pluralregeln: Verschiedene Sprachen haben unterschiedliche Pluralformen (Deutsch: Singular/Plural, manche Sprachen wie Polnisch kennen mehr Formen) — i18n-Bibliotheken bilden das über spezielle Pluralisierungs-Syntax ab, statt simples String-Concatenation.
Bei Emzett läuft die URL-Struktur selbst inzwischen komplett auf Englisch (z. B. /shop, /help statt /laden, /hilfe), die sichtbaren Texte bleiben aber über next-intl mehrsprachig steuerbar.
Siehe auch: next-intl