Signatur
Beschreibung
of() übersetzt maschinenlesbare Codes in Namen, die Menschen lesen können. Aus "DE" wird je nach Locale zum Beispiel „Deutschland“, „Germany“ oder „Allemagne“, und aus "EUR" wird „Euro“. Welche Art von Code erwartet wird, legt die Option type fest, die man beim Erstellen von new Intl.DisplayNames(locales, { type }) angibt.
Welches Format gültig ist, hängt vom type ab:
"language": ein Unicode-Sprachbezeichner wie"fr","de-AT"oder"zh-Hant""region": ein Ländercode nach ISO 3166-1 Alpha-2 ("US") oder ein dreistelliger UN-M.49-Code ("419")"script": ein Schriftcode nach ISO 15924 aus vier Buchstaben ("Latn","Cyrl")"currency": ein Währungscode nach ISO 4217 aus drei Buchstaben ("EUR","JPY")"calendar": ein Kalender-Bezeichner nach Unicode ("gregory","islamic")"dateTimeField": ein Feldname wie"year","month","weekday","hour"oder"timeZoneName"
Die Methode eignet sich für Sprach- und Länderauswahlen, Währungsbezeichnungen und Formularbeschriftungen. Man muss dafür keine eigenen Übersetzungstabellen pflegen, denn die Daten liefert die Laufzeitumgebung (CLDR). Gibt es für einen gültigen Code keinen Namen, entscheidet die Option fallback: Beim Standardwert "code" kommt der Code selbst zurück, bei "none" kommt undefined zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $code Pflicht | string | Der Code, der übersetzt werden soll. Sein Format muss zum type der Instanz passen. Groß- und Kleinschreibung spielt keine Rolle: "us" wird wie "US" behandelt. |
Rückgabewert
fallback: "code" (Standard) der normalisierte Code zurück, bei fallback: "none" dagegen undefined.Beispiele
Länder- und Regionsnamen auf Deutsch
const regionen = new Intl.DisplayNames(['de'], { type: 'region' });
console.log(regionen.of('DE'));
console.log(regionen.of('us')); // Kleinschreibung wird akzeptiert
console.log(regionen.of('419')); // UN-M.49-Code
Sprachauswahl: jede Sprache in ihrer eigenen Schreibweise
const sprachen = ['de', 'en', 'fr', 'ja', 'uk'];
const optionen = sprachen.map((code) => {
const eigenName = new Intl.DisplayNames([code], { type: 'language' }).of(code);
return `${code}: ${eigenName}`;
});
console.log(optionen.join('\n'));
Währungen, Schriften und Datumsfelder
const waehrung = new Intl.DisplayNames('de', { type: 'currency' });
const schrift = new Intl.DisplayNames('de', { type: 'script' });
const feld = new Intl.DisplayNames('de', { type: 'dateTimeField' });
console.log(waehrung.of('CHF'));
console.log(schrift.of('Cyrl'));
console.log(feld.of('weekday'));
Fallback steuern und ungültige Codes abfangen
const mitCode = new Intl.DisplayNames('de', { type: 'region' });
const ohneCode = new Intl.DisplayNames('de', { type: 'region', fallback: 'none' });
console.log(mitCode.of('XA')); // gültig, aber ohne Daten
console.log(ohneCode.of('XA'));
try {
mitCode.of('Deutschland'); // kein gültiger Regionscode
} catch (err) {
console.log(err.name);
}