Navigator: languages 属性
Navigator 接口的只读属性 languages 返回一个包含字符串的数组,这些字符串代表用户偏好的语言。语言使用 BCP 47 语言标签 进行描述。在返回的数组中,它们按照偏好顺序排列,最偏好的语言在前。
navigator.language 的值是返回数组的第一个元素。
当用户偏好的语言发生变化时,其值也会随之改变,并且会在 Window 对象上触发一个 languagechange 事件。
用户浏览器发出的每个 HTTP 请求中的 Accept-Language HTTP 头部通常列出了与 navigator.languages 属性相同的区域设置,并带有递减的 q 值(质量值)。一些浏览器(Chrome 和 Safari)会在 Accept-Language 中添加仅包含语言的备用标签——例如,当 navigator.languages 为 ["en-US", "zh-CN"] 时,Accept-Language 可能是 en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7。出于隐私目的(减少 指纹识别),Accept-Language 和 navigator.languages 可能不会包含用户偏好的完整列表,例如在 Safari(始终)和 Chrome 的隐身模式下,只列出一种语言。
值
一个包含字符串的数组。
示例
列出 navigator.language 和 navigator.languages 的内容
js
navigator.language; // "en-US"
navigator.languages; // ["en-US", "zh-CN", "ja-JP"]
使用 Intl 构造函数进行特定语言的格式化,并提供备用方案
navigator.languages 中包含的语言标识符数组可以直接传递给 Intl 构造函数,以实现基于偏好的备用区域设置选择,其中使用列表中第一个与 Intl 支持的区域设置匹配的条目。
js
const date = new Date("2012-05-24");
const formattedDate = new Intl.DateTimeFormat(navigator.languages).format(date);
规范
| 规范 |
|---|
| HTML # dom-navigator-languages-dev |
浏览器兼容性
加载中…