Das Intl Objekt ist der Namensraum für die ECMAScript Internationalisierunges API, welche sprachenabhängige Stringvergleiche, Zahlenformate und Datums bzw. Zeitformate unterstützt. Der Konstruktoren für Collator, NumberFormat und DateTimeFormat Objekte sind Eigenschaften des Intl Objektes. Diese Seite dokumentiert diese Eigenschaften sowie die Funktionalität, die in Internationalisierungskonstruktoren und anderen sprachsensitiven Funktionen gemeinsam sind.

Eigenschaften

Intl.Collator
Konstruktor für Collatoren, Objekte mit sprachsensitiven Stringvergleichen.
Intl.DateTimeFormat
Konstruktor für Objekte, die Daten und Zeiten sprachsensitiv formatieren.
Intl.NumberFormat
Konstruktor für Objekte, die Zahlen sprachsensitiv formatieren.
Intl.PluralRules
Konstruktor für Objekte, die mit Pluralsprachregeln pluralsensitiv formatieren kann.

Methoden

Intl.getCanonicalLocales()
Eine Methode, die den kanonischen Gebietsnamen zurückgibt.

Gebietsidentifikation und -verhandlung

Die Internationalisierungskonstruktoren genauso wie viele sprachsensitive Methoden von anderen Konstruktoren (aufgelistet unter Siehe auch) benutzten übliche Muster für die Identifizierung von Gebieten und der Feststellung des aktuellen Gebietes: Alle diese akzeptieren locales und options Parameter und verhandeln ein Gebiet aus den gesendeten Gebieten und den Lokal unterstützen Gebieten mithilfe eines Speziellen Algorithmus in der Eigenschaft options.localeMatcher aus.

locales Argument

Das locales Argument muss entweder ein String sein, der einen BCP 47 Sprachcode enthält, oder ein Array mit solche Sprachcodes. Wenn dieses Argument nicht unterstützt ist oder undefined ist, wird das lokale Standardgebiet benutzt.

Ein BCP 47-Sprachcode definiert eine Sprache und enthält minimal einen primären Sprachcode. In seiner gebräuchlichsten Form kann er folgender Reihenfolge enthalten: einen Sprachcode, einen Skriptcode und einen Länder- oder Regionscode, alle getrennt durch Bindestriche. Weil diese Codes unabhängig von Groß- und Kleinschreibung ist, ist es empfohlen bei Skriptcodes den ersten Buchstaben groß zuschreiben, bei Länder- und Regionscodes soll alles groß geschrieben werden und der Rest soll klein geschreiben werden.

Beispiele:

  • "hi": Hindi (primäre Sprache).
  • "de-AT": Deutsch wie es in Österreich genutzt wird (primäre Sprache mit Ländercode).
  • "zh-Hans-CN": Chinesisch geschrieben mit speziellen Zeichen, wie es in China genutzt wird (Primäre Sprache mit Skript- und Ländercode).

Die Subcodes zum identifizieren von Sprachen, Skripten, Ländern (Regionen) und (selten genutzen) Varianten in BCP 47 Sprachcodes können im IANA Sprach Subtag Register gefunden werden.

BCP 47 erlaubt sogar Erweiterungen. JavaScript Internationalisierungsfunktionen benutzen die "u" (Unicode) Erweiterung, welche es ermöglicht benutzerdefinierte Änderungen in Collator, NumberFormat oder DateTimeFormat einzubringen. Beispiele:

  • "de-DE-u-co-phonebk": Benutzt die Telefonbuch-Variante der deutschen Sortierreihenfolge, welche Umlaute zu Paaren übersetzt: ä → ae, ö → oe, ü → ue.
  • "th-TH-u-nu-thai": Benutzt Thei-Zeichen(๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) im Nummernformat.
  • "ja-JP-u-ca-japanese": Benutzt den Japanischen Kalender für Datums- und Zeitformate, so dass 2013 als Jahr 25 der Heisei Periode ist oder 平成25.
  • "en-GB-u-ca-islamic": Benutzt Britisches Englisch mit dem Islamic (Hijri) Kalender, indem das gregorianische Datum 14. Oktober 2017 das Hijri Datum 24 Muharram, 1439 ist.

Gebietsauswahl

Das locales Argument wird als priorisierte Angabe für die Applikation interpretiert, nach dem alle Unicode-Erweiterungen durchführt wurden. Zur Laufzeut wird gegeben verfügbare Gebiete verglichen und das am besten passende genommen. Es existieren zwei Algorithmen für die Auswahl: die "lookup" Auswahl, die dem im BCP 47 spezifizierten Algorithmus folgt; die "best fit" Auswahl, bei dem die Laufzeigumgebung mindestens einen gleichgutes Ergebnis wie der Lookup Algorithmus erzielt, wenn nicht sogar einen besseren. Wenn die Applikation kein locales Argument unterstützt oder die Laufzeit kein Gebiet hat, welches passt, dann wird das Standardgebiet der Laufzeitumgebung werdendet. Das Algorithmus zur Auswahl kann über das options Argument ausgewählt werden (siehe unten).

Wenn der ausgewählte Sprache-Tag eine Unicode Erweiterung hat, wird diese genutzt, um das erstellte Objekte oder das Verhalten der Funktion anzupassen. Jeder Konstruktor oder jede Funktion unterstützt nur eine Untermenge der als Unicode Erweiterungen definierten Schlüssel und die unterstützen Werte sind meistens von Sprach-Tag abhängig. Zum Beispiel ist der "co" Schlüssel (collation) nur in Collator unterstützt und der "phonebk" Wert ist nur im Deutschen unterstützt.

options Argument

Das options Argument muss ein Objekt mit Eigenschaften sein, welche vom Konstruktor und der Funktion abhängen. Wenn das options Argument nicht unterstützt wird oder undefined ist, werden Standardwerte für alle Eigenschaften benutzt.

Eine Eigenschaft ist in allen sprachensensitiven Konstruktoren und Funktionen forhanden: Die localeMatcher Eigenschaft, die vom Datentyp String ist und den Wert "lookup" oder "best fit" hat, welche den Algorithmus für die Auswahl des Gebietes beschreiben (siehe oben).

Spezifikationen

Spezifikation Status Kommentar
ECMAScript Internationalization API 1.0 (ECMA-402)
Die Definition von 'Intl' in dieser Spezifikation.
Standard Initiale Definition.
ECMAScript Internationalization API 2.0 (ECMA-402)
Die Definition von 'Intl' in dieser Spezifikation.
Standard  
ECMAScript Internationalization API 4.0 (ECMA-402)
Die Definition von 'Intl' in dieser Spezifikation.
Entwurf Intl.getCanonicalLocales in the 4. Auflage hinzugefügt.

Browserkompatibilität

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidEdge MobileFirefox für AndroidOpera für AndroidiOS SafariSamsung InternetNode.js
Grundlegende UnterstützungChrome Vollständige Unterstützung 24Edge Vollständige Unterstützung JaFirefox Vollständige Unterstützung 29IE Vollständige Unterstützung 11Opera Vollständige Unterstützung 15Safari Vollständige Unterstützung 10WebView Android Keine Unterstützung NeinChrome Android Vollständige Unterstützung 26Edge Mobile Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung 56Opera Android ? Safari iOS Vollständige Unterstützung 10Samsung Internet Android Vollständige Unterstützung Janodejs ?
getCanonicalLocalesChrome Vollständige Unterstützung 54Edge Vollständige Unterstützung 16Firefox Vollständige Unterstützung 48IE Keine Unterstützung NeinOpera Keine Unterstützung NeinSafari Vollständige Unterstützung 11WebView Android Keine Unterstützung NeinChrome Android Keine Unterstützung NeinEdge Mobile Keine Unterstützung NeinFirefox Android Vollständige Unterstützung 56Opera Android Keine Unterstützung NeinSafari iOS Vollständige Unterstützung 11Samsung Internet Android Keine Unterstützung Neinnodejs Keine Unterstützung Nein
CollatorChrome Vollständige Unterstützung 24Edge Vollständige Unterstützung JaFirefox Vollständige Unterstützung 29IE Vollständige Unterstützung 11Opera Vollständige Unterstützung 15Safari Vollständige Unterstützung 10WebView Android Keine Unterstützung NeinChrome Android Vollständige Unterstützung 26Edge Mobile Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung 56Opera Android ? Safari iOS Vollständige Unterstützung 10Samsung Internet Android Vollständige Unterstützung Janodejs ?
DateTimeFormatChrome Vollständige Unterstützung 24Edge Vollständige Unterstützung JaFirefox Vollständige Unterstützung 29IE Vollständige Unterstützung 11Opera Vollständige Unterstützung 15Safari Vollständige Unterstützung 10WebView Android Keine Unterstützung NeinChrome Android Vollständige Unterstützung 26Edge Mobile Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung 56Opera Android ? Safari iOS Vollständige Unterstützung 10Samsung Internet Android Vollständige Unterstützung Janodejs ?
NumberFormatChrome Vollständige Unterstützung 24Edge Vollständige Unterstützung JaFirefox Vollständige Unterstützung 29IE Vollständige Unterstützung 11Opera Vollständige Unterstützung 15Safari Vollständige Unterstützung 10WebView Android Vollständige Unterstützung 4.4Chrome Android Vollständige Unterstützung 26Edge Mobile Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung 56Opera Android Vollständige Unterstützung 37Safari iOS Vollständige Unterstützung 10Samsung Internet Android Vollständige Unterstützung Janodejs ?
PluralRulesChrome Vollständige Unterstützung 63Edge Keine Unterstützung NeinFirefox Vollständige Unterstützung 58IE Keine Unterstützung NeinOpera Vollständige Unterstützung 50Safari Keine Unterstützung NeinWebView Android Vollständige Unterstützung 63Chrome Android Vollständige Unterstützung 63Edge Mobile Keine Unterstützung NeinFirefox Android Vollständige Unterstützung 58Opera Android Vollständige Unterstützung 50Safari iOS Keine Unterstützung NeinSamsung Internet Android Keine Unterstützung Neinnodejs Keine Unterstützung Nein

Legende

Vollständige Unterstützung  
Vollständige Unterstützung
Keine Unterstützung  
Keine Unterstützung
Kompatibilität unbekannt  
Kompatibilität unbekannt

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123
Zuletzt aktualisiert von: schlagi123,