Navigator: languages-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die schreibgeschützte Eigenschaft Navigator.languages gibt ein Array von Zeichenfolgen zurück, das die bevorzugten Sprachen des Benutzers darstellt. Die Sprache wird mittels Sprach-Tags beschrieben, die gemäß RFC 5646: Tags for Identifying Languages (auch bekannt als BCP 47) definiert sind. Im zurückgegebenen Array sind sie nach Präferenz geordnet, wobei die bevorzugteste Sprache zuerst steht.

Der Wert von navigator.language ist das erste Element des zurückgegebenen Arrays.

Wenn sich sein Wert ändert, da die bevorzugten Sprachen des Benutzers geändert wurden, wird auf dem Window-Objekt ein languagechange-Ereignis ausgelöst.

Der Accept-Language HTTP-Header in jeder HTTP-Anfrage des Browsers des Benutzers listet im Allgemeinen dieselben Gebietsschemata wie die navigator.languages-Eigenschaft auf, mit abnehmenden q-Werten (Qualitätswerten). Einige Browser (Chrome und Safari) fügen im Accept-Language sprachspezifische Fallback-Tags hinzu - zum Beispiel en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7, wenn navigator.languages ["en-US", "zh-CN"] ist. Aus Datenschutzgründen (zur Reduzierung der Fingerprinting) können sowohl Accept-Language als auch navigator.languages möglicherweise nicht die vollständige Liste der Benutzerpräferenzen enthalten, wie in Safari (immer) und dem Inkognito-Modus von Chrome, wo nur eine Sprache aufgeführt wird.

Wert

Ein Array von Zeichenfolgen.

Beispiele

Auflistung des Inhalts von navigator.language und navigator.languages

js
navigator.language; // "en-US"
navigator.languages; // ["en-US", "zh-CN", "ja-JP"]

Verwenden von Intl-Konstruktoren zur sprachspezifischen Formatierung mit Fallback

Das Array von Sprachkennzeichen, das in navigator.languages enthalten ist, kann direkt an die Intl-Konstruktoren übergeben werden, um eine präferenzbasierte Fallback-Auswahl von Gebietsschemata zu implementieren, wobei der erste Eintrag in der Liste verwendet wird, der einem von Intl unterstützten Gebietsschema entspricht:

js
const date = new Date("2012-05-24");

const formattedDate = new Intl.DateTimeFormat(navigator.languages).format(date);

Spezifikationen

Specification
HTML Standard
# dom-navigator-languages-dev

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch