网页头部的声明应该是用 lang="zh" 还是 lang="zh-CN"?
遇到问题
不知道大家有没有留意到一个问题,就是使用 VsCode 新建的 html 文件的,根标签会有 lang="en"
。
这样会导致打开网页的时候,浏览器的右上角会蹦出一个翻译英文提示。
翻译弹窗
源文件 lang="en"
如何解决
修改设置
在 VsCode 设置界面,给 emmet
代码片段添加变量,设置 lang
的值为 zh-CN
。
测试成果
变量设置生效 lang="zh-CN"
思考于争议
- 曾经因为简体中文的 lang 设置为什么有过激烈的讨论,这种在圈子内对技术的严谨追求和探讨其实是极好的。
- 其实描述“中文 (简体, 中国大陆)”用
zh-CN
即可。
为什么列这个表格
知乎讨论:https://www.zhihu.com/question/20797118
W3C官网: https://www.w3.org/International/articles/language-tags/
PS:考虑到大家不会主动打开 W3C 链接,所以我截图标记出 W3C 对 zh-CN
部分描述。
结论
-
描述“中文 (简体, 中国大陆)” 用
zh-CN
即可,而且也是最多国内外大厂采用的方式,所有浏览器都能准确识别,通俗易懂,推荐使用。 -
其实模糊设置为
zh
或者精确设置为zh-Hans
、zh-Hans-CN
、zh-cmn-Hans
,其实浏览器都能识别成中文。 -
如果不设置
lang
,让浏览器自动推导语言也是可以的。 -
中文体系是复杂的,但标准是为开发者服务的,同时浏览器也是智能的。其实设置为
zh-CN
、zh-Hans
、zh-Hans-CN
、zh-cmn-Hans
还是zh
其实都无所谓,不要再使用默认的lang="en"
即可。