Intl.Locale
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
* Some parts of this feature may have varying levels of support.
TheIntl.Locale object is a standard built-in property of the Intl object that represents a Unicode locale identifier.
In this article
Try it
const korean = new Intl.Locale("ko", { script: "Kore", region: "KR", hourCycle: "h23", calendar: "gregory",});const japanese = new Intl.Locale("ja-Jpan-JP-u-ca-japanese-hc-h12");console.log(korean.baseName, japanese.baseName);// Expected output: "ko-Kore-KR" "ja-Jpan-JP"console.log(korean.hourCycle, japanese.hourCycle);// Expected output: "h23" "h12"Description
TheIntl.Locale object was created to allow for easier manipulation of Unicode locales. Unicode represents locales with a string, called alocale identifier. The locale identifier consists of alanguage identifier andextension tags. Language identifiers are the core of the locale, consisting oflanguage,script,region, andvariants subtags. Additional information about the locale is stored in the optionalextension 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. The following properties ofIntl.Locale correspond to Unicode locale identifier subtags:
| Property | Corresponding subtag |
|---|---|
language | Language ID, first part |
script | Language ID, part afterlanguage |
region | Language ID, part afterscript |
variants | Language ID, part afterregion |
calendar | ca (extension) |
caseFirst | kf (extension) |
collation | co (extension) |
hourCycle | hc (extension) |
numberingSystem | nu (extension) |
numeric | kn (extension) |
The information above is exactly provided as-is when theLocale object is constructed, without consulting any external database. TheIntl.Locale object additionally provides some methods that return information about the locale's real-world information, such as available calendars, collations, and numbering systems.
Constructor
Intl.Locale()Creates a new
Localeobject.
Instance properties
These properties are defined onIntl.Locale.prototype and shared by allIntl.Locale instances.
Intl.Locale.prototype.baseNameReturns basic, core information about the
Localein the form of a substring of the complete data string.Intl.Locale.prototype.calendarReturns the part of the
Localethat indicates the Locale's calendar era.Intl.Locale.prototype.caseFirstReturns whether case is taken into account for the locale's collation rules.
Intl.Locale.prototype.collationReturns the collation type for the
Locale, which is used to order strings according to the locale's rules.Intl.Locale.prototype.constructorThe constructor function that created the instance object. For
Intl.Localeinstances, the initial value is theIntl.Localeconstructor.Intl.Locale.prototype.hourCycleReturns the time keeping format convention used by the locale.
Intl.Locale.prototype.languageReturns the language associated with the locale.
Intl.Locale.prototype.numberingSystemReturns the numeral system used by the locale.
Intl.Locale.prototype.numericReturns whether the locale has special collation handling for numeric characters.
Intl.Locale.prototype.regionReturns the region of the world (usually a country) associated with the locale.
Intl.Locale.prototype.scriptReturns the script used for writing the particular language used in the locale.
Intl.Locale.prototype.variantsReturns the variants subtags (such as different orthographies) associated with the locale.
Intl.Locale.prototype[Symbol.toStringTag]The initial value of the
[Symbol.toStringTag]property is the string"Intl.Locale". This property is used inObject.prototype.toString().
Instance methods
Intl.Locale.prototype.getCalendars()Returns an
Arrayof available calendar identifiers, according to the locale's rules.Intl.Locale.prototype.getCollations()Returns an
Arrayof the collation types for theLocale.Intl.Locale.prototype.getHourCycles()Returns an
Arrayof hour cycle identifiers, indicating either the 12-hour clock ("h12"), the Japanese 12-hour clock ("h11"), the 24-hour clock ("h23"), or the unused format "h24".Intl.Locale.prototype.getNumberingSystems()Returns an
Arrayof numbering system identifiers available according to the locale's rules.Intl.Locale.prototype.getTextInfo()Returns the part indicating the ordering of characters
ltr(left-to-right) orrtl(right-to-left).Intl.Locale.prototype.getTimeZones()Returns an
Arrayof time zone identifiers, associated with theLocale.Intl.Locale.prototype.getWeekInfo()ReturnsUTS 35's Week Elements according to the locale rules.
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
maximize().Intl.Locale.prototype.toString()Returns the Locale's full locale identifier string.
Examples
>Basic usage
At its very simplest, theIntl.Locale() constructor takes a locale identifier string as its argument:
const 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 thehourCycle property of the configuration object to your desired hour cycle type, and then pass it into the constructor:
const us12hour = new Intl.Locale("en-US", { hourCycle: "h12" });console.log(us12hour.hourCycle); // Prints "h12"Specifications
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # locale-objects> |
Browser compatibility
See also
- Polyfill of
Intl.Localein FormatJS Intl- Canonical Unicode Locale Identifiers in the Unicode locale data markup language spec