The Intl.Locale.prototype.baseName property returns a substring of the Locale's string representation, containing core information about the Locale.


An Intl.Locale object represents a parsed local and options for that locale. The baseName property returns basic, core information about the Locale in the form of a substring of the complete data string. Specifically, the property returns the substring containing the language, and the script and region if available.

baseName returns the language ["-" script] ["-" region] *("-" variant) subsequence of the unicode_language_id grammar.


Basic Example

let myLoc = new Intl.Locale("fr-Latn-CA"); // Sets locale to Canadian French
console.log(myLoc.toString()); // Prints out "fr-Latn-CA-u-ca-gregory"
console.log(myLoc.baseName); // Prints out "fr-Latn-CA"

Example with options in the input string

// Sets language to Japanese, region to Japan,

// calendar to Gregorian, hour cycle to 24 hours
let japan = new Intl.Locale("ja-JP-u-ca-gregory-hc-24");
console.log(japan.toString()); // Prints out "ja-JP-u-ca-gregory-hc-h24"
console.log(japan.baseName); // Prints out "ja-JP"

Example with options that override input string

// Input string indicates language as Dutch and region as Belgium,

// but options object overrides the region and sets it to the Netherlands
let dutch = new Intl.Locale("nl-Latn-BE", {region: "NL"});

console.log(dutch.baseName); // Prints out "nl-Latn-NL"


ECMAScript Internationalization API Specification (ECMAScript Internationalization API)

Browser compatibility

BCD tables only load in the browser

See also