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"


Specification Status Comment
Intl.Locale.prototype.language proposal Stage 3

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
languageChrome Full support 74Edge No support NoFirefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android Full support 74Chrome Android Full support 74Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No


Full support  
Full support
No support  
No support

See also