Intl.Locale
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()
构造函数将地区标识符字符串作为其参数
const us = new Intl.Locale("en-US");
使用带选项对象的 Locale 构造函数
构造函数还采用可选的配置对象参数,该参数可以包含几种扩展类型中的任何一种。例如,将配置对象的 hourCycle
属性设置为所需的小时循环类型,然后将其传递给构造函数
const us12hour = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(us12hour.hourCycle); // Prints "h12"
规范
规范 |
---|
ECMAScript 国际化 API 规范 # locale-objects |
浏览器兼容性
BCD 表仅在浏览器中加载