笔者在今天修改网页模板时发现了lang属性,大可能是模板都是歪果仁写的,因此,通常你们在网页模板里都会见到 这样的写法,由于他们的语言是英文,因此这样写无可厚非。浏览器
可是咱们在修改的时候应该改为什么样子的呢?是 仍是 仍是 ?markdown
说实话,笔者以前一直没有注意这个,因此在写下本文以前也一直出于懵逼状态。框架
因而,笔者查找了一些资料,整理成此文。搜索引擎
HTML 的 lang 属性可用于网页或部分网页的语言。这对搜索引擎和浏览器是有帮助的。atom
根据 W3C 推荐标准,咱们应该经过 标签中的 lang 属性对每张页面中的主要语言进行声明,好比:code
lang属性的取值应该遵循 《BCP 47 - Tags for Identifying Languages》
对因而否可使用 , [4.1.2. Using Extended Language Subtags] 中说明以下:blog
随着本文件的采用,特定的ISO 639-3子标签可用于识别这些不一样语言系列或分组中包含的语言。这提供了之前不存在的语言标签选择:索引
也就是说,单一的 zh 和 zh-CN 均属于废弃用法。图片
问题主要在于,zh 如今不是语言code了,而是macrolang,能做为语言code的是cmn(国语)、yue(粤语)、wuu(吴语)等。开发
一般建议写成 zh-cmn 而不是光写 cmn,主要是考虑兼容性(至少可匹配 zh),有很多软件和框架尚未据此更新。
zh-CN 的问题还在于,其实多数状况下标记的是简体中文,可是不恰当的使用了地区,这致使一样用简体中文的 zh-SG(新加坡)等没法匹配。更典型的是 zh-TW 和 zh-HK。
因此其实应该使用 zh-Hans / zh-Hant 来表示简体和繁体。那么完整的写法就是 zh-cmn-Hans,表示简体中文书写的普通话/国语。通常而言没有必要加地区代码,除非要表示地区特异性,通常是词汇不同(好比维基百科的大陆简体和新马简体)。