网页头部的声明应该是用 lang=zh 还是 lang=zh-CN?

网页头部的声明应该是用 lang="zh" 还是 lang="zh-CN"?

遇到问题

不知道大家有没有留意到一个问题,就是使用 VsCode 新建的 html 文件的,根标签会有 lang="en"

这样会导致打开网页的时候,浏览器的右上角会蹦出一个翻译英文提示。

翻译弹窗

网页头部的声明应该是用lang=zh还是lang=zh-CN?

源文件 lang="en"

网页头部的声明应该是用lang=zh还是lang=zh-CN?

如何解决

修改设置

在 VsCode 设置界面,给 emmet 代码片段添加变量,设置 lang 的值为 zh-CN

网页头部的声明应该是用lang=zh还是lang=zh-CN?

测试成果

变量设置生效 lang="zh-CN"

网页头部的声明应该是用lang=zh还是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 部分描述。

网页头部的声明应该是用lang=zh还是lang=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" 即可。

原文链接:https://www.cnblogs.com/Megasu/p/16816412.html