Intl.Locale.prototype.variants
variants 访问器属性是 Intl.Locale 实例的属性,它返回与此区域设置关联的变体,作为一个由连字符(-)分隔的标识符字符串,按照最初指定的顺序排列。
描述
变体是主要语言 ID 的一部分。它们用于选择(语言、地区、脚本)三元组无法区分的语言变体。通常,它们代表不同时期或不同正字法的同一种语言。例如,德语有 1901 和 1996 这两种正字法变体,分别写作 de-1901 和 de-1996;“近代早期英语(1500-1700)”变体写作 en-emodeng。子标签可以包含多个由连字符(-)分隔的标识符。这些标识符在技术上是无序的,尽管在实践中它们常常具有语义层级——例如,斯洛文尼亚语的 Resian 方言写作 sl-rozaj,而 Resian 的 San Giorgio/Bila 方言写作 sl-rozaj-biske。
variants 属性的值在构造时设置,可以通过 region 后面的区域设置标识符部分,或通过 Intl.Locale() 构造函数的 variants 选项来设置。如果两者都存在,后者具有优先权;如果两者都不存在,则该属性的值为 undefined。
variants 的设置器(set accessor)为 undefined。你不能直接更改此属性。
示例
与其他区域设置子标签一样,变体可以通过区域设置字符串,或通过构造函数的配置对象参数添加到 Intl.Locale 对象中。
通过区域设置字符串添加变体
变体(如果存在)是有效的 Unicode 语言标识符字符串的最后一部分,可以添加到传递给 Intl.Locale() 构造函数的初始区域设置标识符字符串中。请注意,变体不是区域设置标识符的必需部分。
const locale = new Intl.Locale("sl-rozaj-biske");
console.log(locale.variants); // "rozaj-biske"
通过配置对象参数添加变体
Intl.Locale() 构造函数有一个可选的配置对象参数。将配置对象的 variants 属性设置为所需的变体,然后将其传递给构造函数。
const locale = new Intl.Locale("sl", { variants: "rozaj-biske" });
console.log(locale.variants); // "rozaj-biske"
规范
| 规范 |
|---|
| ECMAScript® 2026 国际化 API 规范 # sec-Intl.Locale.prototype.variants |
浏览器兼容性
加载中…
另见
Intl.Locale- Unicode 变体子标签(Unicode 区域设置数据标记语言规范)
- IANA 语言子标签注册表