Intl.Locale

基线 广泛可用

此功能已得到很好的建立,并且可以在许多设备和浏览器版本上运行。它自以下时间起在各个浏览器中可用 2020 年 9 月.

Intl.Locale 对象是 Intl 对象的标准内置属性,表示 Unicode 地区标识符。

试一试

描述

Intl.Locale 对象的创建是为了更轻松地操作 Unicode 地区。Unicode 使用称为地区标识符的字符串来表示地区。地区标识符由语言标识符扩展标记组成。语言标识符是地区的核心,包括语言文字地区子标记。有关地区的其他信息存储在可选的扩展标记中。扩展标记保存有关地区方面的信息,例如日历类型、时钟类型和数字系统类型。

传统上,Intl API 使用字符串来表示地区,就像 Unicode 一样。这是一种简单且轻量级的解决方案,效果很好。但是,添加 Locale 类可以更轻松地解析和操作语言、文字和地区,以及扩展标记。Intl.Locale 的以下属性对应于 Unicode 地区标识符子标记

属性 对应的子标记
language language(第一部分)
script script(第二部分)
region region(第二/第三部分)
calendar ca(扩展)
caseFirst kf(扩展)
collation co(扩展)
hourCycle hc(扩展)
numberingSystem nu(扩展)
numeric kn(扩展)

上述信息在构造 Locale 对象时完全按原样提供,无需咨询任何外部数据库。Intl.Locale 对象还提供了一些方法,这些方法返回有关地区现实世界信息的信息,例如可用的日历、排序规则和数字系统。

构造函数

Intl.Locale()

创建一个新的 Locale 对象。

实例属性

这些属性定义在 Intl.Locale.prototype 上,并由所有 Intl.Locale 实例共享。

Intl.Locale.prototype.baseName

以完整数据字符串的子字符串形式返回有关 Locale 的基本核心信息。

Intl.Locale.prototype.calendar

返回 Locale 中指示地区日历纪元的那个部分。

Intl.Locale.prototype.caseFirst

返回是否考虑大小写以用于地区的排序规则。

Intl.Locale.prototype.collation

返回 Locale 的排序类型,用于根据地区的规则对字符串进行排序。

Intl.Locale.prototype.constructor

创建实例对象的构造函数。对于 Intl.Locale 实例,初始值为 Intl.Locale 构造函数。

Intl.Locale.prototype.hourCycle

返回地区使用的记时格式约定。

Intl.Locale.prototype.language

返回与地区关联的语言。

Intl.Locale.prototype.numberingSystem

返回地区使用的数字系统。

Intl.Locale.prototype.numeric

返回地区是否对数字字符进行特殊排序处理。

Intl.Locale.prototype.region

返回与地区关联的世界区域(通常是国家/地区)。

Intl.Locale.prototype.script

返回用于书写地区中使用的特定语言的文字。

Intl.Locale.prototype[Symbol.toStringTag]

[Symbol.toStringTag] 属性的初始值为字符串 "Intl.Locale"。此属性用于 Object.prototype.toString()

实例方法

Intl.Locale.prototype.getCalendars()

根据地区的规则返回可用日历标识符的 Array

Intl.Locale.prototype.getCollations()

返回 Locale 的排序类型的 Array

Intl.Locale.prototype.getHourCycles()

返回小时循环标识符的 Array,指示 12 小时制时钟 ("h12")、日本 12 小时制时钟 ("h11")、24 小时制时钟 ("h23") 或未使用的格式 "h24"。

Intl.Locale.prototype.getNumberingSystems()

根据地区的规则返回可用数字系统标识符的 Array

Intl.Locale.prototype.getTextInfo()

返回指示字符顺序 ltr(从左到右)或 rtl(从右到左)的部分。

Intl.Locale.prototype.getTimeZones()

返回与 Locale 关联的时区标识符的 Array

Intl.Locale.prototype.getWeekInfo()

返回根据地区规则的 UTS 35 的星期元素

Intl.Locale.prototype.maximize()

根据现有值获取地区语言、文字和地区的可能性最大的值。

Intl.Locale.prototype.minimize()

尝试删除通过调用 maximize() 将添加的有关地区的信息。

Intl.Locale.prototype.toString()

返回地区的完整地区标识符字符串。

示例

基本用法

最简单的情况下,Intl.Locale() 构造函数将地区标识符字符串作为其参数

js
const us = new Intl.Locale("en-US");

使用带选项对象的 Locale 构造函数

构造函数还采用可选的配置对象参数,该参数可以包含几种扩展类型中的任何一种。例如,将配置对象的 hourCycle 属性设置为所需的小时循环类型,然后将其传递给构造函数

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

规范

规范
ECMAScript 国际化 API 规范
# locale-objects

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅