1. 程式人生 > >Navigator對象關於語言的屬性

Navigator對象關於語言的屬性

9.png google ima 系統 語言切換 ie9 操作 兩個 測試

【摘要】在做國際化WEB項目的時候,遇到了一個根據用戶瀏覽器所使用的自然語言切換默認語言版本的問題。於是,整理了這篇文章。

首先W3Cschool關於Navigator的各個屬性值說的很明確了,這裏不再贅述。

技術分享

然後從各個瀏覽器的Navigator對象關於語言的屬性上分析差異。

1.Google Chrome的navigator:

技術分享

可以看到,Google Chrome 有兩個關於語言的屬性: languagelanguages。前者是返回當前的瀏覽器語言,後者是瀏覽器的所有可使用語言版本(Google Chrome 在高級設置裏面可以添加需要的語言也可以隨意切換使用的語言。所以可以通過這種方式來測試多語言版自動默認設置當前語言版本的功能)。

2. Firefox的navigator:

技術分享

Firefox 也是有兩個關於語言的屬性: languagelanguages

3.IE8 和 IE9 的navigator:

(1) IE8及其以下版本:

技術分享

IE8 有兩個屬性:systemLanguageuserLanguage。前者是返回當前操作系統的缺省語言,後者是返回操作系統設定的自然語言。

再看看IE9及其以上版本:

技術分享

IE9有三個屬性:systemLanguage:返回當前操作系統的缺省語言;userLanguage:返回操作系統設定的自然語言;browserLanguage:返回當前的瀏覽器語言。

【總結】各個瀏覽器對language相關屬性的支持情況如下表:

屬性 IE8及其以下版本 IE9及其以上版本 Firefox / Chrome / Safari Opera
language × × √  
userLanguage ×  
systemLanguage × ×
browserLanguage × ×

可以使用下面的代碼獲取當前瀏覽器語言:

(navigator.language || navigator.browserLanguage).toLowerCase()

Navigator對象關於語言的屬性