Intl.Locale
Intl.Locale
对象是 Intl 对象的标准内置属性,表示 Unicode 区域设置标识符。
¥The Intl.Locale
object is a standard built-in property of the Intl object that represents a Unicode locale identifier.
Try it
描述
¥Description
创建 Intl.Locale
对象是为了更轻松地操作 Unicode 语言环境。Unicode 用字符串表示区域设置,称为区域设置标识符。区域设置标识符由语言标识符和扩展标记组成。语言标识符是语言环境的核心,由语言、脚本和区域子标签组成。有关区域设置的附加信息存储在可选的扩展标记中。扩展标记保存有关区域设置方面的信息,例如日历类型、时钟类型和编号系统类型。
¥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.
传统上,Intl API 使用字符串来表示语言环境,就像 Unicode 一样。这是一个简单、轻量级且效果良好的解决方案。但是,添加 Locale 类可以更轻松地解析和操作语言、脚本和区域以及扩展标记。Intl.Locale
的以下属性对应于 Unicode 区域设置标识符子标签:
¥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 of Intl.Locale
correspond to Unicode locale identifier subtags:
属性 | 对应子标签 |
---|---|
language |
language (第一部分) |
script |
script (第二部分) |
region |
region (第二/第三部分) |
calendar |
ca (扩大) |
caseFirst |
kf (扩大) |
collation |
co (扩大) |
hourCycle |
hc (扩大) |
numberingSystem |
nu (扩大) |
numeric |
kn (扩大) |
上述信息是在构造 Locale
对象时按原样提供的,无需查询任何外部数据库。Intl.Locale
对象还提供了一些返回有关区域设置的实际信息的方法,例如可用的日历、排序规则和编号系统。
¥The information above is exactly provided as-is when the Locale
object is constructed, without consulting any external database. The Intl.Locale
object additionally provides some methods that return information about the locale's real-world information, such as available calendars, collations, and numbering systems.
构造函数
实例属性
¥Instance properties
这些属性在 Intl.Locale.prototype
上定义并由所有 Intl.Locale
实例共享。
¥These properties are defined on Intl.Locale.prototype
and shared by all Intl.Locale
instances.
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()
中使用。
实例方法
¥Instance methods
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()
-
返回区域设置的完整区域设置标识符字符串。
示例
基本用法
¥Basic usage
最简单的是,Intl.Locale()
构造函数采用区域设置标识符字符串作为其参数:
¥At its very simplest, the Intl.Locale()
constructor takes a locale identifier string as its argument:
const us = new Intl.Locale("en-US");
将 Locale 构造函数与选项对象结合使用
¥Using the Locale constructor with an options object
构造函数还采用一个可选的配置对象参数,该参数可以包含多种扩展类型中的任何一种。例如,将配置对象的 hourCycle
属性设置为所需的小时周期类型,然后将其传递到构造函数中:
¥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:
const us12hour = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(us12hour.hourCycle); // Prints "h12"
规范
Specification |
---|
ECMAScript Internationalization API Specification # locale-objects |
浏览器兼容性
BCD tables only load in the browser
也可以看看
¥See also
- FormatJS 中
Intl.Locale
的 Polyfill Intl
- Unicode 区域设置数据标记语言规范中的 规范 Unicode 区域设置标识符