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 Oktober 2017.
Die schreibgeschützte Eigenschaft languages
des Navigator
-Interfaces liefert ein Array von Zeichenfolgen, die die bevorzugten Sprachen des Benutzers darstellen. Die Sprache wird mit Sprach-Tags gemäß RFC 5646: Tags for Identifying Languages (auch bekannt als BCP 47) beschrieben. Im zurückgegebenen Array sind sie nach Präferenz geordnet, wobei die bevorzugte 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 ein languagechange
-Ereignis auf dem Window
-Objekt 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
-Header Sprach-Only-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 (Reduzierung von Fingerprinting) könnten sowohl Accept-Language
als auch navigator.languages
nicht die vollständige Liste der Benutzerpräferenzen enthalten, wie z.B. in Safari (immer) und im Inkognito-Modus von Chrome, wo nur eine Sprache aufgelistet ist.
Wert
Ein Array von Zeichenfolgen.
Beispiele
>Die Inhalte von navigator.language und navigator.languages auflisten
navigator.language; // "en-US"
navigator.languages; // ["en-US", "zh-CN", "ja-JP"]
Verwendung von Intl-Konstruktoren für sprachspezifisches Formatieren, mit Fallback
Das Array von Sprach-Identifikatoren, 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:
const date = new Date("2012-05-24");
const formattedDate = new Intl.DateTimeFormat(navigator.languages).format(date);
Spezifikationen
Specification |
---|
HTML> # dom-navigator-languages-dev> |
Browser-Kompatibilität
Loading…
Siehe auch
navigator.language
navigator
languagechange
-EreignisIntl