This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
The NavigatorLanguage.languages read-only property returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47 language tags. 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 [3]. (But it refers to the system language setting.)
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).
Syntax
preferredLanguages = globalObj.navigator.languages
Examples
navigator.language //"en-US" navigator.languages //["en-US", "zh-CN", "ja-JP"]
Specification
| Specification | Status | Comment |
|---|---|---|
| HTML 5.1 The definition of 'NavigatorLanguage.languages' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 32 [3] | 32 (32) [1] | No support | No support | Nightly build [2] |
| on Web workers | ? | 35 (35) | ? | ? | ? |
| Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support | No support | 32.0 (32)[1] | No support | No support | No support |
| on Web workers | ? | 35.0 (35) | ? | ? | ? |
[1] In Firefox, the navigator.languages property's value is taken from the intl.accept_languages preference.
[2] supported in Safari Technology Preview (10.2): Bug 163220
[3] In Chrome, navigator.language is the language of the browser UI, and is not guaranteed to be equal to navigator.languages[0].