Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Intl

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

View in EnglishAlways switch to English

Intl

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2017⁩.

* Some parts of this feature may have varying levels of support.

DasIntl Namensraum-Objekt enthält 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.

Beschreibung

Im Gegensatz zu den meisten globalen Objekten istIntl kein Konstruktor. Sie können es nicht mit demnew Operator verwenden oder dasIntl Objekt als Funktion aufrufen. Alle Eigenschaften und Methoden vonIntl sind statisch (genau wie dasMath Objekt).

Die Internationalisierungs-Konstruktoren sowie mehrere sprachsensitive Methoden anderer Konstruktoren (unterSiehe auch) verwenden ein gemeinsames Muster zur Identifizierung von Gebietsschemen und zur Bestimmung desjenigen, das sie tatsächlich verwenden werden: Sie akzeptieren allelocales- undoptions-Argumente und verhandeln die angeforderten Gebietsschema(s) gegenüber den von ihnen unterstützten Gebietsschemen unter Verwendung eines Algorithmus, der in der Eigenschaftoptions.localeMatcher angegeben ist.

locales-Argument

Daslocales-Argument wird verwendet, um das in einer gegebenen Operation verwendete Gebietsschema zu bestimmen. Die JavaScript-Implementierung prüftlocales und berechnet dann ein Gebietsschema, das es versteht und das am ehesten der ausgedrückten Präferenz entspricht.locales kann sein:

  • undefined (oder weggelassen): Das Standardgebietsschema der Implementierung wird verwendet.
  • Ein Gebietsschema: Ein Gebietsschema-Identifier oder einIntl.Locale Objekt, das einen Gebietsschema-Identifier umschließt.
  • 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 Fällen ist das tatsächlich verwendete Gebietsschema das am besten unterstützte, das durch dieGebietsschema-Verhandlung ermittelt wird. Wenn ein Gebietsschema-Identifier kein String oder Objekt ist, wird einTypeError ausgelöst. Wenn ein Gebietsschema-Identifier ein syntaktisch ungültiger String ist, wird einRangeError ausgelöst. Wenn ein Gebietsschema-Identifier gut geformt, aber von der Implementierung nicht erkannt wird, wird er ignoriert und das nächste Gebietsschema in der Liste wird in Betracht gezogen, letztendlich fällt es auf das Systemgebietsschema zurück. Sie sollten sich jedoch nicht darauf verlassen, dass ein bestimmter Gebietsschema-Name ignoriert wird, da die Implementierung in Zukunft für jedes Gebietsschema Daten hinzufügen kann. Zum Beispiel verwendetnew Intl.DateTimeFormat("default") nur das Standardgebietsschema der Implementierung, weil"default" syntaktisch gültig, aber als kein Gebietsschema erkannt ist.

Ein Gebietsschema-Identifier ist ein String, der aus Folgendem besteht:

  1. Einem Sprach-Subtag mit 2–3 oder 5–8 Buchstaben
  2. Einem Skript-Subtag mit 4 BuchstabenOptional
  3. Einem Regions-Subtag mit entweder 2 Buchstaben oder 3 ZiffernOptional
  4. Ein oder mehreren einzigartigen Varianten-Subtags, jeweils mit 5–8 alphanumerischen Zeichen oder einer Ziffer gefolgt von 3 alphanumerischen ZeichenOptional
  5. Ein oder mehrerenBCP 47 ErweiterungsfolgenOptional
  6. Eine private NutzungserweiterungsfolgeOptional

Jeder Subtag und jede Sequenz sind durch Bindestriche getrennt. Gebietsschema-Identifier sind nicht unterscheidend nach Groß- und KleinschreibungASCII. Der Konvention nach wird jedoch empfohlen, Großbuchstaben für den ersten Buchstaben von Skript-Subtags zu verwenden, Großbuchstaben für Regions-Subtags und Kleinbuchstaben für 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 "Frühneuenglisch" Dialekt (Variante)

Subtags, die Sprachen, Skripte, Regionen (einschließlich Ländern) und (selten verwendete) Varianten identifizieren, sind imIANA Language Subtag Registry registriert. Dieses Register wird regelmäßig aktualisiert, und Implementierungen sind möglicherweise nicht immer auf dem neuesten Stand, daher sollten Sie sich nicht zu sehr darauf verlassen, dass Subtags universell unterstützt werden.

BCP 47 Erweiterungssequenzen bestehen aus einer einzelnen Ziffer oder einem Buchstaben (außer"x") und einem oder mehreren Subtags mit zwei bis acht Buchstaben oder Ziffern, die durch Bindestriche getrennt sind. Nur eine Folge ist für jede Ziffer oder jeden Buchstaben erlaubt:"de-a-foo-a-foo" ist ungültig. BCP 47 Erweiterungs-Subtags sind imUnicode CLDR-Projekt definiert. Derzeit haben nur zwei Erweiterungen definierte Semantiken:

  • Die"u" (Unicode) Erweiterung kann verwendet werden, um zusätzliche Anpassungen vonIntl 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 thailändische 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 ausgedrückt 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. KeineIntl Funktionalität berücksichtigt derzeit die"t" Erweiterung. Diese Erweiterung enthält jedoch manchmal ein eingebettetes Gebietsschema (ohne Erweiterungen): zum Beispiel enthält die transformierte Erweiterung in"de-t-en" den Gebietsschema-Identifier für Englisch. Wenn ein eingebettetes Gebietsschema vorhanden ist, muss es ein gültiger Gebietsschema-Identifier sein. Zum Beispiel, da"en-emodeng-emodeng" ungültig ist (weil es ein doppeltesemodeng Varianten-Subtag enthält), ist"de-t-en-emodeng-emodeng" ebenfalls ungültig.

Schließlich 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 ermöglicht es Anwendungen, Informationen für den eigenen privaten Gebrauch zu kodieren, die von allenIntl Operationen ignoriert werden.

options-Argument

Dasoptions-Argument muss ein Objekt sein mit Eigenschaften, die je nach Konstruktoren und Funktionen variieren. Wenn dasoptions-Argument nicht bereitgestellt oderundefined ist, werden für alle Eigenschaften Standardwerte verwendet.

Eine Eigenschaft wird von allen sprachsensitiven Konstruktoren und Funktionen unterstützt: DielocaleMatcher Eigenschaft, deren Wert ein String"lookup" oder"best fit" sein muss und der einen der unten beschriebenen Algorithmen zur Gebietsbestimmung auswählt.

Gebietsbestimmung und -verhandlung

Die durch daslocales-Argument angegebenen Gebietsschemen, nachdem Unicode-Erweiterungen von ihnen entfernt wurden, werden als priorisierte Anforderung der Anwendung interpretiert. Die Laufzeit vergleicht es mit den verfügbaren Gebietsschemen und wählt das am besten verfügbare aus. Es gibt zwei Übereinstimmungsalgorithmen: Der"lookup"-Matcher folgt dem Lookup-Algorithmus, wie er inBCP 47 spezifiziert ist; der"best fit"-Matcher ermöglicht es der Laufzeit, ein Gebietsschema bereitzustellen, das mindestens, aber möglicherweise mehr für die Anfrage geeignet ist als das Ergebnis des Lookup-Algorithmus. Wenn die Anwendung keinlocales-Argument bereitstellt oder die Laufzeit kein Gebietsschema hat, das der Anfrage entspricht, wird das Standardgebietsschema der Laufzeit verwendet. Der Matcher kann mit einer Eigenschaft desoptions-Arguments ausgewählt werden (siehe unten).

Wenn der ausgewählte 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 unterstützt nur eine Teilmenge der für die Unicode-Erweiterung definierten Schlüssel, und die unterstützten Werte hängen oft vom Gebietsschema-Identifier ab. Zum Beispiel wird der"co"-Schlüssel (Kollation) nur vonIntl.Collator unterstützt, und sein"phonebk"-Wert wird nur für Deutsch unterstützt.

Statische Eigenschaften

Intl.Collator

Konstruktor für Kollatoren, die sprachsensitive Zeichenfolgenvergleiche ermöglichen.

Intl.DateTimeFormat

Konstruktor für Objekte, die sprachsensitive Datums- und Zeitformatierung ermöglichen.

Intl.DisplayNames

Konstruktor für Objekte, die die konsistente Übersetzung von Sprach-, Regions- und Skriptanzeige-Namen ermöglichen.

Intl.DurationFormat

Konstruktor für Objekte, die gebietsschema-sensible Dauerformatierung ermöglichen.

Intl.ListFormat

Konstruktor für Objekte, die sprachsensitive Listenformatierung ermöglichen.

Intl.Locale

Konstruktor für Objekte, die ein Unicode-Gebietsschema-Identifier darstellen.

Intl.NumberFormat

Konstruktor für Objekte, die sprachsensitive Nummernformatierung ermöglichen.

Intl.PluralRules

Konstruktor für Objekte, die plural-sensible Formatierung und sprachspezifische Regeln für Plurale ermöglichen.

Intl.RelativeTimeFormat

Konstruktor für Objekte, die sprachsensitive relative Zeitformatierung ermöglichen.

Intl.Segmenter

Konstruktor für Objekte, die gebietsschema-sensible Textsegmentierung ermöglichen.

Intl[Symbol.toStringTag]

Der Anfangswert der[Symbol.toStringTag] Eigenschaft ist der String"Intl". Diese Eigenschaft wird inObject.prototype.toString() verwendet.

Statische Methoden

Intl.getCanonicalLocales()

Gibt kanonische Gebietsschema-Namen zurück.

Intl.supportedValuesOf()

Gibt ein sortiertes Array zurück, das die unterstützten einzigartigen Kalender-, Kollations-, Währungs-, Nummerierungs- oder Einheitswerte enthält, die von der Implementierung unterstützt werden.

Beispiele

Formatieren von Daten und Zahlen

Sie könnenIntl verwenden, um Daten und Zahlen in einer Form zu formatieren, die für 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.39log("de-DE"); // 24.5.2012 26.254,39

Verwenden der bevorzugten Sprache des Browsers

Anstatt einen fest kodierten Gebietsschema-Namen an dieIntl-Methoden zu übergeben, können Sie die vom Benutzer bevorzugte Sprache verwenden, die durchnavigator.language bereitgestellt wird:

js
const date = new Date("2012-05-24");const formattedDate = new Intl.DateTimeFormat(navigator.language).format(date);

Alternativ bietet die Eigenschaftnavigator.languages eine sortierte Liste der bevorzugten Sprachen des Benutzers. Diese Liste kann direkt an dieIntl Konstruktoren übergeben werden, um eine präferenzbasierte Fallback-Auswahl der Gebietsschemen zu implementieren. Der Prozess derGebietsschema-Verhandlung wird verwendet, um das am besten geeignete verfügbare Gebietsschema zu wählen:

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

Spezifikationen

Specification
ECMAScript® 2026 Internationalization API Specification
# intl-object

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp