The Intl.Locale.prototype.language property is an accessor property that returns the language associated with the locale.


Language is one of the core features of a locale. The Unicode specification treats the language identifier of a locale as the language and the region together (to make a distiction between dialects and variations, e.g. British English vs. American English). The language property of a Locale returns strictly the locale's language subtag.


Setting the language in the locale identifer string argument

In order to be a valid Unicode locale identifier, a string must start with the language subtag. The main argument to the Locale constructor must be a valid Unicode locale identifier, so whenever the constructor is used, it must be passed an identifier with a language subtag.

let langStr = new Intl.Locale("en-Latn-US");

console.log(langStr.language); // Prints "en"

Overriding language via the configuration object

While the language subtag must be specified, the Locale constructor takes a configuration object, which can override the language subtag.

let langObj = new Intl.Locale("en-Latn-US", {language: "es"});

console.log(langObj.language); // Prints "es"


Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
language 74 79 75 No 62 14
Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
language 74 74 No 53 14 11.0
language 12.0.0
Before version 13.0.0, only the locale data for en-US is available by default. See the Locale() constructor for more details.

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.