Navigator: languages property
The Navigator.languages
read-only property returns an array of strings representing the user's preferred languages. The language is described using language tags according to RFC 5646: Tags for Identifying Languages (also known as BCP 47). In the returned array they are ordered by preference with the most preferred language first.
The value of navigator.language
is the first element of the returned array.
When its value changes, as the user's preferred languages are changed a languagechange
event is fired on the Window
object.
The Accept-Language
HTTP header in every HTTP request from the user's browser uses the same value for the navigator.languages
property except for the extra qvalues
(quality values) field (e.g. en-US;q=0.8
).
Value
Examples
Listing the contents of navigator.language and navigator.languages
navigator.language;
navigator.languages;
The array of language identifiers contained in navigator.languages
can be passed directly to the Intl
constructors to implement preference-based fallback selection of locales, where the first entry in the list that matches a locale supported by Intl
is used:
const date = new Date("2012-05-24");
const formattedDate = new Intl.DateTimeFormat(navigator.languages).format(date);
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
languages |
37Before Chrome 65, navigator.languages[0] is not guaranteed to equal navigator.language .
|
16 |
32In Firefox, the navigator.languages property's value is taken from the intl.accept_languages preference.
|
NoClosest available (non-standard) properties are userLanguage and browserLanguage .
|
24 |
10.1 |
37Before version 65, navigator.languages[0] is not guaranteed to equal navigator.language .
|
37Before Chrome 65, navigator.languages[0] is not guaranteed to equal navigator.language .
|
32In Firefox, the navigator.languages property's value is taken from the intl.accept_languages preference.
|
24 |
10.3 |
3.0 |
See also