網頁頭部的宣告應該是用 lang="zh" 還是 lang="zh-CN"?

2022-10-22 18:01:03

網頁頭部的宣告應該是用 lang="zh" 還是 lang="zh-CN"?

遇到問題

不知道大家有沒有留意到一個問題,就是使用 VsCode 新建的 html 檔案的,根標籤會有 lang="en"

這樣會導致開啟網頁的時候,瀏覽器的右上角會蹦出一個翻譯英文提示。

翻譯彈窗

原始檔 lang="en"

如何解決

修改設定

在 VsCode 設定介面,給 emmet 程式碼片段新增變數,設定 lang 的值為 zh-CN

測試成果

變數設定生效 lang="zh-CN"

思考於爭議

  • 曾經因為簡體中文的 lang 設定為什麼有過激烈的討論,這種在圈子內對技術的嚴謹追求和探討其實是極好的。
  • 其實描述「中文 (簡體, 中國大陸)」用 zh-CN 即可。
網站 網址 lang 值
淘寶 https://www.taobao.com/ lang="zh-CN"
騰訊網 https://www.qq.com/ lang="zh-CN"
騰訊 alloyteam http://www.alloyteam.com/ lang="zh-cn"
Bilibili https://www.bilibili.com/ lang="zh-CN"
apifox https://www.apifox.cn/ lang="zh-CN"
uniapp https://uniapp.dcloud.net.cn lang="zh-CN"
小米 https://www.mi.com/ lang="zh-CN"
部落格園 https://www.cnblogs.com/ lang="zh-cn"
微軟(中國大陸) https://www.microsoft.com/zh-cn/ lang="zh-CN"
蘋果(中國大陸) https://www.apple.com.cn/ lang="zh-CN"
谷歌(簡體中文) https://www.google.com.hk/ lang="zh-CN"
VueJS(簡體中文) https://cn.vuejs.org/ lang="zh-CN"
百度 https://www.baidu.com/
京東 https://www.jd.com
網易 https://www.163.com/
微信 https://weixin.qq.com/
抖音 https://www.douyin.com/
黑馬程式設計師 https://www.itheima.com/
傳智播客 https://www.itcast.cn/
掘金 https://juejin.cn/ lang="zh"
CSDN https://www.csdn.net/ lang="zh"
知乎 https://www.zhihu.com/ lang="zh"
Facebook(簡體中文) https://www.facebook.com/ lang="zh-Hans"
React(簡體中文) https://zh-hans.reactjs.org/ lang="zh-Hans"
YouTube(簡體中文) https://www.youtube.com lang="zh-Hans-CN"
維基百科(簡體中文) https://zh.wikipedia.org/ lang="zh-Hans-CN"
豆瓣 https://www.douban.com lang="zh-cmn-Hans"

為什麼列這個表格

知乎討論:https://www.zhihu.com/question/20797118

W3C官網: https://www.w3.org/International/articles/language-tags/

PS:考慮到大家不會主動開啟 W3C 連結,所以我截圖示記出 W3C 對 zh-CN 部分描述。

結論

  • 描述「中文 (簡體, 中國大陸)」 用 zh-CN 即可,而且也是最多國內外大廠採用的方式,所有瀏覽器都能準確識別,通俗易懂,推薦使用。

  • 其實模糊設定為 zh 或者精確設定為zh-Hanszh-Hans-CNzh-cmn-Hans ,其實瀏覽器都能識別成中文。

  • 如果不設定 lang ,讓瀏覽器自動推導語言也是可以的。

  • 中文體系是複雜的,但標準是為開發者服務的,同時瀏覽器也是智慧的。其實設定為 zh-CNzh-Hanszh-Hans-CNzh-cmn-Hans 還是 zh 其實都無所謂,不要再使用預設的 lang="en" 即可。