| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Intl | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit September 2017 browserbergreifend verfgbar.
* Einige Teile dieser Funktion werden mglicherweise unterschiedlich gut untersttzt.
Das Intl Namensraum-Objekt enthlt mehrere Konstruktoren sowie Funktionen, die den Internationalisierungs-Konstruktoren und anderen sprachsensitiven Funktionen gemeinsam sind. Zusammen bilden sie die ECMAScript Internationalization API, die sprachsensitive Zeichenfolgenvergleiche, Nummernformatierung, Datums- und Zeitformatierung und mehr bietet.
Im Gegensatz zu den meisten globalen Objekten ist Intl kein Konstruktor. Sie knnen es nicht mit dem new Operator verwenden oder das Intl Objekt als Funktion aufrufen. Alle Eigenschaften und Methoden von Intl sind statisch (genau wie das Math Objekt).
Die Internationalisierungs-Konstruktoren sowie mehrere sprachsensitive Methoden anderer Konstruktoren (unter Siehe auch) verwenden ein gemeinsames Muster zur Identifizierung von Gebietsschemen und zur Bestimmung desjenigen, das sie tatschlich verwenden werden: Sie akzeptieren alle locales- und options-Argumente und verhandeln die angeforderten Gebietsschema(s) gegenber den von ihnen untersttzten Gebietsschemen unter Verwendung eines Algorithmus, der in der Eigenschaft options.localeMatcher angegeben ist.
Das locales-Argument wird verwendet, um das in einer gegebenen Operation verwendete Gebietsschema zu bestimmen. Die JavaScript-Implementierung prft locales und berechnet dann ein Gebietsschema, das es versteht und das am ehesten der ausgedrckten Prferenz entspricht. locales kann sein:
undefined (oder weggelassen): Das Standardgebietsschema der Implementierung wird verwendet.Intl.Locale Objekt, das einen Gebietsschema-Identifier umschliet.In den letzten beiden Fllen ist das tatschlich verwendete Gebietsschema das am besten untersttzte, das durch die Gebietsschema-Verhandlung ermittelt wird. Wenn ein Gebietsschema-Identifier kein String oder Objekt ist, wird ein TypeError ausgelst. Wenn ein Gebietsschema-Identifier ein syntaktisch ungltiger String ist, wird ein RangeError ausgelst. Wenn ein Gebietsschema-Identifier gut geformt, aber von der Implementierung nicht erkannt wird, wird er ignoriert und das nchste Gebietsschema in der Liste wird in Betracht gezogen, letztendlich fllt es auf das Systemgebietsschema zurck. Sie sollten sich jedoch nicht darauf verlassen, dass ein bestimmter Gebietsschema-Name ignoriert wird, da die Implementierung in Zukunft fr jedes Gebietsschema Daten hinzufgen kann. Zum Beispiel verwendet new Intl.DateTimeFormat("default") nur das Standardgebietsschema der Implementierung, weil "default" syntaktisch gltig, aber als kein Gebietsschema erkannt ist.
Ein Gebietsschema-Identifier ist ein String, der aus Folgendem besteht:
Jeder Subtag und jede Sequenz sind durch Bindestriche getrennt. Gebietsschema-Identifier sind nicht unterscheidend nach Gro- und Kleinschreibung ASCII. Der Konvention nach wird jedoch empfohlen, Grobuchstaben fr den ersten Buchstaben von Skript-Subtags zu verwenden, Grobuchstaben fr Regions-Subtags und Kleinbuchstaben fr alles andere. Zum Beispiel:
"hi": Hindi (Sprache)"de-AT": Deutsch (Sprache) wie es in sterreich (Region) verwendet wird"zh-Hans-CN": Chinesisch (Sprache) in vereinfachten Schriftzeichen (Skript) wie es in China (Region) verwendet wird"en-emodeng": Englisch (Sprache) im "Frhneuenglisch" Dialekt (Variante)Subtags, die Sprachen, Skripte, Regionen (einschlielich Lndern) und (selten verwendete) Varianten identifizieren, sind im IANA Language Subtag Registry registriert. Dieses Register wird regelmig aktualisiert, und Implementierungen sind mglicherweise nicht immer auf dem neuesten Stand, daher sollten Sie sich nicht zu sehr darauf verlassen, dass Subtags universell untersttzt werden.
BCP 47 Erweiterungssequenzen bestehen aus einer einzelnen Ziffer oder einem Buchstaben (auer "x") und einem oder mehreren Subtags mit zwei bis acht Buchstaben oder Ziffern, die durch Bindestriche getrennt sind. Nur eine Folge ist fr jede Ziffer oder jeden Buchstaben erlaubt: "de-a-foo-a-foo" ist ungltig. BCP 47 Erweiterungs-Subtags sind im Unicode CLDR-Projekt definiert. Derzeit haben nur zwei Erweiterungen definierte Semantiken:
Die "u" (Unicode) Erweiterung kann verwendet werden, um zustzliche Anpassungen von Intl API-Objekten anzufordern. Beispiele:
"de-DE-u-co-phonebk": Verwenden Sie die Telefonbuchvariante der deutschen Sortierreihenfolge, die umgelautete Vokale als entsprechende Zeichenpaare interpretiert: ae, oe, ue."th-TH-u-nu-thai": Verwenden Sie thailndische Ziffern (, , , , , , , , , ) bei der Nummernformatierung."ja-JP-u-ca-japanese": Verwenden Sie den japanischen Kalender bei der Datums- und Zeitformatierung, sodass 2013 als Jahr 25 der Heisei-Periode ausgedrckt wird, oder 25."en-GB-u-ca-islamic-umalqura": Verwenden Sie britisches Englisch mit dem Umm al-Qura (Hijri) Kalender, wo das gregorianische Datum 14. Oktober 2017 das Hijri-Datum 24. Muharram, 1439 ist.Die "t" (transformiert) Erweiterung zeigt transformierten Inhalt an: zum Beispiel Text, der aus einem anderen Gebietsschema bersetzt wurde. Keine Intl Funktionalitt bercksichtigt derzeit die "t" Erweiterung. Diese Erweiterung enthlt jedoch manchmal ein eingebettetes Gebietsschema (ohne Erweiterungen): zum Beispiel enthlt die transformierte Erweiterung in "de-t-en" den Gebietsschema-Identifier fr Englisch. Wenn ein eingebettetes Gebietsschema vorhanden ist, muss es ein gltiger Gebietsschema-Identifier sein. Zum Beispiel, da "en-emodeng-emodeng" ungltig ist (weil es ein doppeltes emodeng Varianten-Subtag enthlt), ist "de-t-en-emodeng-emodeng" ebenfalls ungltig.
Schlielich kann eine private Nutzungserweiterungssequenz mit dem Buchstaben "x" auftreten, gefolgt von einem oder mehreren ein- bis achtbuchstabigen oder numerischen Subtags, die durch Bindestriche getrennt sind. Dies ermglicht es Anwendungen, Informationen fr den eigenen privaten Gebrauch zu kodieren, die von allen Intl Operationen ignoriert werden.
Das options-Argument muss ein Objekt sein mit Eigenschaften, die je nach Konstruktoren und Funktionen variieren. Wenn das options-Argument nicht bereitgestellt oder undefined ist, werden fr alle Eigenschaften Standardwerte verwendet.
Eine Eigenschaft wird von allen sprachsensitiven Konstruktoren und Funktionen untersttzt: Die localeMatcher Eigenschaft, deren Wert ein String "lookup" oder "best fit" sein muss und der einen der unten beschriebenen Algorithmen zur Gebietsbestimmung auswhlt.
Die durch das locales-Argument angegebenen Gebietsschemen, nachdem Unicode-Erweiterungen von ihnen entfernt wurden, werden als priorisierte Anforderung der Anwendung interpretiert. Die Laufzeit vergleicht es mit den verfgbaren Gebietsschemen und whlt das am besten verfgbare aus. Es gibt zwei bereinstimmungsalgorithmen: Der "lookup"-Matcher folgt dem Lookup-Algorithmus, wie er in BCP 47 spezifiziert ist; der "best fit"-Matcher ermglicht es der Laufzeit, ein Gebietsschema bereitzustellen, das mindestens, aber mglicherweise mehr fr die Anfrage geeignet ist als das Ergebnis des Lookup-Algorithmus. Wenn die Anwendung kein locales-Argument bereitstellt oder die Laufzeit kein Gebietsschema hat, das der Anfrage entspricht, wird das Standardgebietsschema der Laufzeit verwendet. Der Matcher kann mit einer Eigenschaft des options-Arguments ausgewhlt werden (siehe unten).
Wenn der ausgewhlte Gebietsschema-Identifier eine Unicode-Erweiterungssequenz hatte, wird diese Erweiterung jetzt verwendet, um das konstruierte Objekt oder das Verhalten der Funktion anzupassen. Jeder Konstruktor oder jede Funktion untersttzt nur eine Teilmenge der fr die Unicode-Erweiterung definierten Schlssel, und die untersttzten Werte hngen oft vom Gebietsschema-Identifier ab. Zum Beispiel wird der "co"-Schlssel (Kollation) nur von Intl.Collator untersttzt, und sein "phonebk"-Wert wird nur fr Deutsch untersttzt.
Intl.CollatorKonstruktor fr Kollatoren, die sprachsensitive Zeichenfolgenvergleiche ermglichen.
Intl.DateTimeFormatKonstruktor fr Objekte, die sprachsensitive Datums- und Zeitformatierung ermglichen.
Intl.DisplayNamesKonstruktor fr Objekte, die die konsistente bersetzung von Sprach-, Regions- und Skriptanzeige-Namen ermglichen.
Intl.DurationFormatKonstruktor fr Objekte, die gebietsschema-sensible Dauerformatierung ermglichen.
Intl.ListFormatKonstruktor fr Objekte, die sprachsensitive Listenformatierung ermglichen.
Intl.LocaleKonstruktor fr Objekte, die ein Unicode-Gebietsschema-Identifier darstellen.
Intl.NumberFormatKonstruktor fr Objekte, die sprachsensitive Nummernformatierung ermglichen.
Intl.PluralRulesKonstruktor fr Objekte, die plural-sensible Formatierung und sprachspezifische Regeln fr Plurale ermglichen.
Intl.RelativeTimeFormatKonstruktor fr Objekte, die sprachsensitive relative Zeitformatierung ermglichen.
Intl.SegmenterKonstruktor fr Objekte, die gebietsschema-sensible Textsegmentierung ermglichen.
Intl[Symbol.toStringTag]Der Anfangswert der [Symbol.toStringTag] Eigenschaft ist der String "Intl". Diese Eigenschaft wird in Object.prototype.toString() verwendet.
Intl.getCanonicalLocales()Gibt kanonische Gebietsschema-Namen zurck.
Intl.supportedValuesOf()Gibt ein sortiertes Array zurck, das die untersttzten einzigartigen Kalender-, Kollations-, Whrungs-, Nummerierungs- oder Einheitswerte enthlt, die von der Implementierung untersttzt werden.
Sie knnen Intl verwenden, um Daten und Zahlen in einer Form zu formatieren, die fr eine bestimmte Sprache und Region konventionell ist:
const count = 26254.39;
const date = new Date("2012-05-24");
function log(locale) {
console.log(
`${new Intl.DateTimeFormat(locale).format(date)} ${new Intl.NumberFormat(
locale,
).format(count)}`,
);
}
log("en-US"); // 5/24/2012 26,254.39
log("de-DE"); // 24.5.2012 26.254,39
Anstatt einen fest kodierten Gebietsschema-Namen an die Intl-Methoden zu bergeben, knnen Sie die vom Benutzer bevorzugte Sprache verwenden, die durch navigator.language bereitgestellt wird:
const date = new Date("2012-05-24");
const formattedDate = new Intl.DateTimeFormat(navigator.language).format(date);
Alternativ bietet die Eigenschaft navigator.languages eine sortierte Liste der bevorzugten Sprachen des Benutzers. Diese Liste kann direkt an die Intl Konstruktoren bergeben werden, um eine prferenzbasierte Fallback-Auswahl der Gebietsschemen zu implementieren. Der Prozess der Gebietsschema-Verhandlung wird verwendet, um das am besten geeignete verfgbare Gebietsschema zu whlen:
const count = 26254.39;
const formattedCount = new Intl.NumberFormat(navigator.languages).format(count);
| Spezifikation |
|---|
| ECMAScript 2027 Internationalization API Specification # intl-object |
Keyboard.getLayoutMap()navigator.languagenavigator.languagesDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |