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 languages-Eigenschaft des Navigator-Interfaces
gibt ein Array von Strings zurück, die die bevorzugten
Sprachen des Benutzers darstellen. Die Sprache wird mit einem BCP 47-Sprachtag beschrieben. Im zurückgegebenen
Array sind sie nach Präferenz geordnet, wobei die am meisten bevorzugte Sprache zuerst erscheint.
Der Wert von navigator.language ist das
erste Element des zurückgegebenen Arrays.
Wenn sich der Wert ändert, beispielsweise wenn die bevorzugten Sprachen des Benutzers geändert werden, 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 die gleichen Locale wie die navigator.languages-Eigenschaft auf, mit abnehmenden q-Werten (Qualitätswerte). Einige Browser (Chrome und Safari) fügen im Accept-Language-Header Sprachtags ohne Länderkennzeichnung als Fallback 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önnen sowohl Accept-Language als auch navigator.languages möglicherweise nicht die vollständige Liste der Benutzerpräferenzen enthalten, wie zum Beispiel in Safari (immer) und im Inkognito-Modus von Chrome, wo nur eine Sprache aufgelistet ist.
Wert
Ein Array von Strings.
Beispiele
>Auflisten der Inhalte von navigator.language und navigator.languages
navigator.language; // "en-US"
navigator.languages; // ["en-US", "zh-CN", "ja-JP"]
Verwenden von Intl-Konstruktoren für sprachspezifische Formatierung mit Fallback
Das Array von Sprachkennungen, das in navigator.languages enthalten ist, kann direkt an die Intl-Konstruktoren übergeben werden, um eine präferenzbasierte Fallbackauswahl von Locales zu implementieren, bei der der erste Eintrag in der Liste verwendet wird, der eine von Intl unterstützte Locale 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.languagenavigatorlanguagechangeEreignisIntl