[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Intl [Back]  [Original]

Intl - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Intl

Baseline Weitgehend verfgbar *

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.

In diesem Artikel

Beschreibung

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.

locales-Argument

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.
  • Ein Gebietsschema: Ein Gebietsschema-Identifier oder ein Intl.Locale Objekt, das einen Gebietsschema-Identifier umschliet.
  • Eine Liste von Gebietsschemen: Jeder andere Wert, der in ein Objekt konvertiert und dann als ein Array von Gebietsschemen behandelt wird.

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:

  1. Einem Sprach-Subtag mit 23 oder 58 Buchstaben
  2. Einem Skript-Subtag mit 4 Buchstaben Optional
  3. Einem Regions-Subtag mit entweder 2 Buchstaben oder 3 Ziffern Optional
  4. Ein oder mehreren einzigartigen Varianten-Subtags, jeweils mit 58 alphanumerischen Zeichen oder einer Ziffer gefolgt von 3 alphanumerischen Zeichen Optional
  5. Ein oder mehreren BCP 47 Erweiterungsfolgen Optional
  6. Eine private Nutzungserweiterungsfolge Optional

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.

options-Argument

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.

Gebietsbestimmung und -verhandlung

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.

Statische Eigenschaften

Intl.Collator

Konstruktor fr Kollatoren, die sprachsensitive Zeichenfolgenvergleiche ermglichen.

Intl.DateTimeFormat

Konstruktor fr Objekte, die sprachsensitive Datums- und Zeitformatierung ermglichen.

Intl.DisplayNames

Konstruktor fr Objekte, die die konsistente bersetzung von Sprach-, Regions- und Skriptanzeige-Namen ermglichen.

Intl.DurationFormat

Konstruktor fr Objekte, die gebietsschema-sensible Dauerformatierung ermglichen.

Intl.ListFormat

Konstruktor fr Objekte, die sprachsensitive Listenformatierung ermglichen.

Intl.Locale

Konstruktor fr Objekte, die ein Unicode-Gebietsschema-Identifier darstellen.

Intl.NumberFormat

Konstruktor fr Objekte, die sprachsensitive Nummernformatierung ermglichen.

Intl.PluralRules

Konstruktor fr Objekte, die plural-sensible Formatierung und sprachspezifische Regeln fr Plurale ermglichen.

Intl.RelativeTimeFormat

Konstruktor fr Objekte, die sprachsensitive relative Zeitformatierung ermglichen.

Intl.Segmenter

Konstruktor 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.

Statische Methoden

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.

Beispiele

Formatieren von Daten und Zahlen

Sie knnen Intl verwenden, um Daten und Zahlen in einer Form zu formatieren, die fr eine bestimmte Sprache und Region konventionell ist:

js
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

Verwenden der bevorzugten Sprache des Browsers

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:

js
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:

js
const count = 26254.39;

const formattedCount = new Intl.NumberFormat(navigator.languages).format(count);

Spezifikationen

Spezifikation
ECMAScript 2027 Internationalization API Specification
# intl-object

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page