rein
@redeyes2015
Thu, Oct 8, 2020 9:17 AM
來寫最近發現的坑補一下 karma ...
navigator.languages
會給出使用者在瀏覽器設定裡設定的語言偏好順序,但是...
1/ 雖然 MDN 第一段說 navigator.language (沒有 s),就是 languages 的第一項,但實際上因為歷史因素可能不是這樣
caniuse
的註解有寫,Chromium 系都是瀏覽器本身使用的語言,不是使用者設定的偏好
rein
@redeyes2015
Thu, Oct 8, 2020 9:27 AM
2/ 至少 Chrome 有這個行為: 如果在偏好裡設定的順序是這樣: 英文(美國) -> 繁體中文 -> 英文,這個時候 accept-language 是 accept-language: en-US,en;q=0.9,zh-TW;q=0.8,zh;q=0.7 , 但 navigator.languages 是 ["en-US", "zh-TW", "en", "zh"] 兩者順序微妙的不同 (en 一個在第二,一個在第三)
如果是用 next-i18next 這樣的套件就會在 browser 和 server 兩邊得到不一樣的語言設定 orz
彤克.涼月
@redindream
Fri, Oct 9, 2020 5:45 AM
載入新的回覆
navigator.languages 會給出使用者在瀏覽器設定裡設定的語言偏好順序,但是...
1/ 雖然 MDN 第一段說 navigator.language (沒有 s),就是 languages 的第一項,但實際上因為歷史因素可能不是這樣 caniuse 的註解有寫,Chromium 系都是瀏覽器本身使用的語言,不是使用者設定的偏好
如果是用 next-i18next 這樣的套件就會在 browser 和 server 兩邊得到不一樣的語言設定 orz