Intl.Locale

The Intl.Locale object is a standard built-in property of the Intl object that represents a Unicode locale identifier.

Description

The Intl.Locale object was created to allow for easier manipulation of Unicode locales. Unicode represents locales with a string, called a locale identifier. The locale identifier consists of a language identifier and extension tags. Language identifiers are the core of the locale, consisting of language, script, and region subtags. Additional information about the locale is stored in the optional extension tags. Extension tags hold information about locale aspects such as calendar type, clock type, and numbering system type.

Traditionally, the Intl API used strings to represent locales, just as Unicode does. This is a simple and lightweight solution that works well. Adding a Locale class, however, adds ease of parsing and manipulating the language, script, and region, as well as extension tags.

Constructor

Intl.Locale()

Creates a new Locale object.

Instance properties

Intl.Locale.prototype.baseName

Returns basic, core information about the Locale in the form of a substring of the complete data string.

Intl.Locale.prototype.calendar

Returns the part of the Locale that indicates the Locale's calendar era.

Intl.Locale.prototype.calendars

Returns an Array of available calendar identifiers, according to the locale's rules.

Intl.Locale.prototype.caseFirst

Returns whether case is taken into account for the locale's collation rules.

Intl.Locale.prototype.collation

Returns the collation type for the Locale, which is used to order strings according to the locale's rules.

Intl.Locale.prototype.hourCycle

Returns the time keeping format convention used by the locale.

Intl.Locale.prototype.hourCycles

Returns an Array of hour cycle identifiers, indicating either the 12-hour format ("h11", "h12") or the 24-hour format ("h23", "h24").

Intl.Locale.prototype.language

Returns the language associated with the locale.

Intl.Locale.prototype.numberingSystem

Returns the numeral system used by the locale.

Intl.Locale.prototype.numberingSystems

Returns an Array of numbering system identifiers available according to the locale's rules.

Intl.Locale.prototype.numeric

Returns whether the locale has special collation handling for numeric characters.

Intl.Locale.prototype.region

Returns the region of the world (usually a country) associated with the locale.

Intl.Locale.prototype.script

Returns the script used for writing the particular language used in the locale.

Intl.Locale.prototype.textInfo

Returns the part indicating the ordering of characters ltr (left-to-right) or rtl (right-to-left).

Intl.Locale.prototype.timeZones

Returns an Array of time zone identifiers, associated with the Locale.

Intl.Locale.prototype.weekInfo

Returns UTS 35's Week Elements according to the locale rules.

Instance methods

Intl.Locale.prototype.maximize()

Gets the most likely values for the language, script, and region of the locale based on existing values.

Intl.Locale.prototype.minimize()

Attempts to remove information about the locale that would be added by calling Locale.maximize().

Intl.Locale.prototype.toString()

Returns the Locale's full locale identifier string.

Examples

Basic usage

At its very simplest, the Intl.Locale constructor takes a locale identifier string as its argument:

let us = new Intl.Locale('en-US');

Using the Locale constructor with an options object

The constructor also takes an optional configuration object argument, which can contain any of several extension types. For example, set the hourCycle property of the configuration object to your desired hour cycle type, and then pass it into the constructor:

let us12hour = new Intl.Locale("en-US", {hourCycle: "h12"});
console.log(us12hour.hourCycle); // Prints "h12"

Specifications

Specification
ECMAScript Internationalization API Specification
# locale-objects

Browser compatibility

BCD tables only load in the browser

See also