navigator 對像中的這幾個與 language 相關的屬性。
navigator 對象包含有關瀏覽器的信息。沒有應用於 navigator 對象的公開標準,不過所有瀏覽器都支持該對象。但是其內部一些屬性及其返回值在各瀏覽器並不統一。
language:返回當前的瀏覽器語言(來自 Mozilla Developer Center)
userLanguage:返回操作系統設定的自然語言(來自 MSDN)
browserLanguage:返回當前的瀏覽器語言(來自 MSDN)
systemLanguage:返回當前操作系統的缺省語言(來自 MSDN)
使用以下代碼在各不同遊覽器打印出並分析:
<script> document.write('navigator.language:'+navigator.language); document.write('<br>navigator.userLanguage:'+navigator.userLanguage); document.write('<br>navigator.browserLanguage:'+navigator.browserLanguage); document.write('<br>navigator.systemLanguage:'+navigator.systemLanguage); </script>
4 個屬性返回值的情況如下:
IE6 IE7 IE8 | Firefox Chrome Safari | Opera | |
---|---|---|---|
navigator.language | undefined | zh-CN | zh-CN |
navigator.userLanguage | zh-cn | undefined | zh-cn |
navigator.browserLanguage | zh-cn | undefined | zh-cn |
navigator.systemLanguage | zh-cn | undefined | undefined |
解決方案
得到的結論可使用下面的代碼,同時獲取navigator.language與navigator.browserLanguage,並且在做toLowerCase()轉成小寫字母:
(navigator.language || navigator.browserLanguage).toLowerCase()
以上取得遊覽器語言代碼後,就可配合需求使用判斷式,以下提供各國語言代碼提供參考對照,在寫程式時希望有幫助。
各國語言代碼表語言代碼對照表Language Codes Table
af 南非荷蘭語 | sq 阿爾巴尼亞語 |
ar-sa 阿拉伯語(沙特阿拉伯) | ar-iq 阿拉伯語(伊拉克) |
ar-eg 阿拉伯語(埃及) | ar-ly 阿拉伯語(利比亞) |
ar-dz 阿拉伯語(阿爾及利亞) | ar-ma 阿拉伯語(摩洛哥) |
ar-tn 阿拉伯語(突尼斯) | ar-om 阿拉伯語(阿曼) |
ar-ye 阿拉伯語(也門) | ar-sy 阿拉伯語(敘利亞) |
ar-jo 阿拉伯語(約旦) | ar-lb 阿拉伯語(黎巴嫩) |
ar-kw 阿拉伯語(科威特) | ar-ae 阿拉伯語(阿拉伯聯合酋長國) |
ar-bh 阿拉伯語(巴林) | ar-qa 阿拉伯語(卡塔爾) |
eu 巴斯克語 | bg 保加利亞語 |
be 貝勞語 | ca 加泰羅尼亞語 |
zh-tw 中文(中國台灣) | zh-cn 中文(中華人民共和國) |
zh-hk 中文(中國香港特別行政區) | zh-sg 中文(新加坡) |
hr 克羅地亞語 | cs 捷克語 |
da 丹麥語 | nl 荷蘭語(標準) |
nl-be 荷蘭語(比利時) | en 英語 |
en-us 英語(美國) | en-gb 英語(英國) |
en-au 英語(澳大利亞) | en-ca 英語(加拿大) |
en-nz 英語(新西蘭) | en-ie 英語(愛爾蘭) |
en-za 英語(南非) | en-jm 英語(牙買加) |
en 英語(加勒比) | en-bz 英語(伯利茲) |
en-tt 英語(特立尼達) | et 愛沙尼亞語 |
fo 法羅語 | fa 波斯語 |
fi 芬蘭語 | fr 法語(標準) |
fr-be 法語(比利時) | fr-ca 法語(加拿大) |
fr-ch 法語(瑞士) | fr-lu 法語(盧森堡) |
gd 蓋爾語(蘇格蘭) | gd-ie 蓋爾語(愛爾蘭) |
de 德語(標準) | de-ch 德語(瑞士) |
de-at 德語(奧地利) | de-lu 德語(盧森堡) |
de-li 德語(列支敦士登) | el 希臘語 |
he 希伯來語 | hi 北印度語 |
hu 匈牙利語 | is 冰島語 |
in 印度尼西亞語 | it 意大利語(標準) |
it-ch 意大利語(瑞士) | ja 日語 |
ko 朝鮮語 | ko 朝鮮語(韓國) |
lv 拉脫維亞語 | lt 立陶宛語 |
mk FYRO 馬其頓語 | ms 馬來西亞語 |
mt 馬耳他語 | no 挪威語(博克馬爾) |
no 挪威語(尼諾斯克) | pl 波蘭語 |
pt-br 葡萄牙語(巴西) | pt 葡萄牙語(葡萄牙) |
rm 拉丁語系 | ro 羅馬尼亞語 |
ro-mo 羅馬尼亞語(摩爾達維亞) | ru 俄語 |
ru-mo 俄語(摩爾達維亞) | sz 薩摩斯語(拉普蘭) |
sr 塞爾維亞語(西里爾) | sr 塞爾維亞語(拉丁) |
sk 斯洛伐克語 | sl 斯洛文尼亞語 |
sb 索布語 | es 西班牙語(西班牙傳統) |
es-mx 西班牙語(墨西哥) | es 西班牙語(西班牙現代) |
es-gt 西班牙語(危地馬拉) | es-cr 西班牙語(哥斯達黎加) |
es-pa 西班牙語(巴拿馬) | es-do 西班牙語(多米尼加共和國) |
es-ve 西班牙語(委內瑞拉) | es-co 西班牙語(哥倫比亞) |
es-pe 西班牙語(秘魯) | es-ar 西班牙語(阿根廷) |
es-ec 西班牙語(厄瓜多爾) | es-cl 西班牙語(智利) |
es-uy 西班牙語(烏拉圭) | es-py 西班牙語(巴拉圭) |
es-bo 西班牙語(玻利維亞) | es-sv 西班牙語(薩爾瓦多) |
es-hn 西班牙語(洪都拉斯) | es-ni 西班牙語(尼加拉瓜) |
es-pr 西班牙語(波多黎各) | sx 蘇圖語 |
sv 瑞典語 | sv-fi 瑞典語(芬蘭) |
th 泰語 | ts 湯加語 |
tn 瓦納語 | tr 土耳其語 |
uk 烏克蘭語 | ur 烏爾都語 |
ve 文達語 | vi 越南語 |
xh 科薩語 | ji 依地語 |
zu 祖魯語 |