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
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Intl | Chrome Vollständige Unterstützung 24 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 29 | IE Vollständige Unterstützung 11 | Opera Vollständige Unterstützung 15 | Safari Vollständige Unterstützung 10 | WebView Android Vollständige Unterstützung 4.4 | Chrome Android Vollständige Unterstützung 25 | Firefox Android Vollständige Unterstützung 56 | Opera Android Vollständige Unterstützung Ja | Safari iOS Vollständige Unterstützung 10 | Samsung Internet Android Vollständige Unterstützung 1.5 | nodejs Vollständige Unterstützung Ja |
Collator | Chrome Vollständige Unterstützung 24 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 29 | IE Vollständige Unterstützung 11 | Opera Vollständige Unterstützung 15 | Safari Vollständige Unterstützung 10 | WebView Android Vollständige Unterstützung ≤37 | Chrome Android Vollständige Unterstützung 25 | Firefox Android Vollständige Unterstützung 56 | Opera Android Vollständige Unterstützung Ja | Safari iOS Vollständige Unterstützung 10 | Samsung Internet Android Vollständige Unterstützung 1.5 | nodejs ? |
DateTimeFormat | Chrome Vollständige Unterstützung 24 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 29 | IE Vollständige Unterstützung 11 | Opera Vollständige Unterstützung 15 | Safari Vollständige Unterstützung 10 | WebView Android Vollständige Unterstützung 4.4 | Chrome Android Vollständige Unterstützung 26 | Firefox Android Vollständige Unterstützung 56 | Opera Android Vollständige Unterstützung 14 | Safari iOS Vollständige Unterstützung 10 | Samsung Internet Android Vollständige Unterstützung 1.5 | nodejs Vollständige Unterstützung Ja |
ListFormat | Chrome Vollständige Unterstützung 72 | Edge Keine Unterstützung Nein | Firefox Keine Unterstützung Nein | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 60 | Safari Keine Unterstützung Nein | WebView Android Vollständige Unterstützung 72 | Chrome Android Vollständige Unterstützung 72 | Firefox Android Keine Unterstützung Nein | Opera Android ? | Safari iOS Keine Unterstützung Nein | Samsung Internet Android Keine Unterstützung Nein | nodejs Keine Unterstützung Nein |
Locale | Chrome Vollständige Unterstützung 74 | Edge Keine Unterstützung Nein | Firefox Keine Unterstützung Nein | IE Keine Unterstützung Nein | Opera Keine Unterstützung Nein | Safari Keine Unterstützung Nein | WebView Android Vollständige Unterstützung 74 | Chrome Android Vollständige Unterstützung 74 | Firefox Android Keine Unterstützung Nein | Opera Android Keine Unterstützung Nein | Safari iOS Keine Unterstützung Nein | Samsung Internet Android Keine Unterstützung Nein | nodejs Keine Unterstützung Nein |
NumberFormat | Chrome Vollständige Unterstützung 24 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 29 | IE Vollständige Unterstützung 11 | Opera Vollständige Unterstützung 15 | Safari Vollständige Unterstützung 10 | WebView Android Vollständige Unterstützung Ja | Chrome Android Vollständige Unterstützung 26 | Firefox Android Vollständige Unterstützung 56 | Opera Android Vollständige Unterstützung 14 | Safari iOS Vollständige Unterstützung 10 | Samsung Internet Android Vollständige Unterstützung 1.5 | nodejs ? |
PluralRules | Chrome Vollständige Unterstützung 63 | Edge Vollständige Unterstützung 18 | Firefox Vollständige Unterstützung 58 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 50 | Safari Keine Unterstützung Nein | WebView Android Vollständige Unterstützung 63 | Chrome Android Vollständige Unterstützung 63 | Firefox Android Vollständige Unterstützung 58 | Opera Android Vollständige Unterstützung 46 | Safari iOS Keine Unterstützung Nein | Samsung Internet Android Vollständige Unterstützung 8.0 | nodejs Vollständige Unterstützung 10.0.0 |
RelativeTimeFormat | Chrome Vollständige Unterstützung 71 | Edge Keine Unterstützung Nein | Firefox Vollständige Unterstützung 65 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 58 | Safari Keine Unterstützung Nein | WebView Android Vollständige Unterstützung 71 | Chrome Android Vollständige Unterstützung 71 | Firefox Android Vollständige Unterstützung 65 | Opera Android Vollständige Unterstützung 50 | Safari iOS Keine Unterstützung Nein | Samsung Internet Android Vollständige Unterstützung 10.0 | nodejs Vollständige Unterstützung 12.0.0 |
getCanonicalLocales | Chrome Vollständige Unterstützung 54 | Edge Vollständige Unterstützung 16 | Firefox Vollständige Unterstützung 48 | IE Keine Unterstützung Nein | Opera Keine Unterstützung Nein | Safari Vollständige Unterstützung 11 | WebView Android Keine Unterstützung Nein | Chrome Android Keine Unterstützung Nein | Firefox Android Vollständige Unterstützung 56 | Opera Android Keine Unterstützung Nein | Safari iOS Vollständige Unterstützung 11 | Samsung Internet Android Keine Unterstützung Nein | nodejs 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
- Experimentell. Das Verhalten kann sich zukünftig ändern.
- Experimentell. Das Verhalten kann sich zukünftig ändern.