Zum Hauptinhalt springen

Grundlegende Internationalisierungsprinzipien

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Was ist Internationalisierung und warum ist sie wichtig?

Internationalisierte Software unterstützt die Sprachen und kulturellen Gepflogenheiten von Menschen weltweit. Das Web erreicht alle Teile der Erde. Internationalisierte Web-Apps bieten eine hervorragende Nutzererfahrung für Menschen überall.

Lokalisierte Software passt sich einer bestimmten Sprache und Kultur an, indem Texte in die Sprache des Nutzers übersetzt und Daten gemäß dessen Erwartungen formatiert werden. Eine App wird typischerweise für eine begrenzte Anzahl von Locales lokalisiert.

Die ECMA-402 JavaScript-Internationalisierungsspezifikation bietet einen ausgezeichneten Überblick.

Locales: Sprache und Region

Ein "Locale" bezieht sich auf die sprachlichen und kulturellen Erwartungen einer Region. Es wird durch einen "Locale-Code" repräsentiert, der in UTS LDML definiert ist.

Dieser Code besteht aus mehreren Teilen, die durch Bindestriche (-) getrennt sind. Der erste Teil ist eine kurze Zeichenkette, die die Sprache repräsentiert. Der zweite, optionale Teil ist eine kurze Zeichenkette für die Region. Zusätzlich können verschiedene Erweiterungen und Varianten angegeben werden.

Anleitungen zur Auswahl der richtigen Locale-Komponenten finden Sie im W3C-Artikel zur Auswahl von Sprach-Tags.

Typischerweise werden Web-Apps nur für die Sprache oder die Kombination aus Sprache und Region lokalisiert. Beispiele für solche Locale-Codes sind:

  • en für Englisch

  • en-US für Englisch (USA)

  • en-GB für Englisch (Großbritannien)

  • es-AR für Spanisch (Argentinien)

  • ar-001 für Arabisch (weltweit)

  • ar-AE für Arabisch (Vereinigte Arabische Emirate)

Die meisten internationalisierten Apps unterstützen nur eine kleine Liste von Locales.

Übersetzen von Strings

Ihre Anwendung enthält wahrscheinlich Texte in natürlichen Sprachen wie Englisch oder Japanisch. Um andere Locales zu unterstützen, müssen Sie diese Strings übersetzen.

FormatJS bietet einen Mechanismus, der es Ihnen ermöglicht, den Kern-"Softwarecode" Ihrer Anwendung ohne spezifischen Code für verschiedene Übersetzungen zu schreiben. Die Locale-spezifischen Anforderungen werden in Ihren übersetzten Strings und unseren Bibliotheken gekapselt.

const messages = {
en: {
GREETING: 'Hello {name}',
},
fr: {
GREETING: 'Bonjour {name}',
},
}

Wir verwenden die ICU Message-Syntax, die auch in Java, C, PHP und anderen Plattformen genutzt wird.

Bündeln übersetzter Strings

Es ist üblich, Übersetzungen primär nach Locale zu organisieren, da Sie nur die Übersetzungen für die aktuelle Locale des Nutzers benötigen. Unsere Template- und Komponentenbibliotheken sind für die Arbeit mit Übersetzungen für eine einzelne Locale ausgelegt. Bei komplexen Apps können Sie Übersetzungen weiter unterteilen, etwa nach Seite oder Website-Bereich.

Codestruktur

Die eigentliche Formatierung und Darstellung von Daten und übersetzten Strings erfolgt typischerweise in diesen Schritten:

  1. Bestimmen Sie die Locale des Nutzers, wie im Runtime Environments Guide beschrieben.

  2. Konfigurieren Sie eine der FormatJS-Integrationen mit folgenden Daten:

    • die aktuelle Locale des Nutzers
    • übersetzte Strings für diese Locale
    • optional benutzerdefinierte Formate
  3. Rufen Sie die Template-Engine auf und übergeben Sie die zu formatierenden Daten.