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 |
瀏覽器相容性
載入中…