网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别

 

单一的 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,表示简体中文书写的普通话/国语。一般而言没有必要加地区代码,除非要表示地区特异性,一般是词汇不一样(比如维基百科的大陆简体和新马简体)。

如何标记的例子:

简体中文页面:html lang=zh-cmn-Hans
繁体中文页面:html lang=zh-cmn-Hant
英语页面:html lang=en

需要加地区代码的情况一般比较少,除非为了强调不同地区汉语使用差异。比如:

<p lang="zh-cmn-Hans">
<b lang="zh-cmn-Hans-CN">菠萝</b>和<b lang="zh-cmn-Hant-TW">?梨</b>其实是同一种水果。只是大陆和台湾称谓不同,且新马一带的称谓也是不同的,称之为<b lang="zh-cmn-Hans-SG">黄梨</b>。
</p>
当然,由于历史原因,有时候不得不继续使用zh-CN。比如中文维基百科,沿用了传统的zh-CN/zh-HK/zh-SG/zh-TW(按照标准应该使用 zh-cmn-Hans-CN、zh-cmn-Hant-HK、zh-cmn-Hans-SG、zh-cmn-Hant-TW)。这时候,合理的软件行为,是将 zh-CN 等转化为 zh-cmn-Hans(即转化为最常见的误用所对应的实际标准写法)。

实际上,各相关标准,也存在一定的滞后。例如CSS的:lang选择器,不支持选择仅仅简体/繁体中文(而不管是cmn或是yue或是min等汉语方言)。理想情况是CSS3对:lang选择器的语法进行升级,即BCP 47中的高级匹配算法,支持 :lang(*-Hans)这样的写法。

时间: 2024-10-29 04:32:31

网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别的相关文章

求前辈帮忙看看java.lang.UnsatisfiedLinkError: cn/org/bjca/sign/PDFSign.getHashValue

问题描述 使用signPDF.jar签名时报错java.lang.UnsatisfiedLinkError:cn/org/bjca/sign/PDFSign.getHashValue([B[B[B[I)Jatcn.org.bjca.sign.PDFSign.signPDF(PDFSign.java:825)atonest.sp.pdf.PDFSignTools.signPDF(PDFSignTools.java:183)atonest.sp.pdf.PDFSignTools.simpleSign

注意:XHTML和HTML网页首先声明语言信息

xhtml|网页 当我开始XHTML 1.1的时候,我一直不知道应该在xml:lang上写什么好,我想使用中文,它的值是zh.zh-cn/zh-CN还是gb2312/gbk/gb18030或者utf8?通常遇到问题我都优先Google中文,无奈也是找不到答案.看到一些权威的网站上使用gb2312,我还差点相信了,但根据我使用Linux中设置语言的经验,我直觉告诉我这是错误的.于是开始了把范围缩小到W3C中去Google,找到了Tutorial: Using language informatio

关于XHTML头部声明,什么是DOCTYPE?

xhtml 当我们制作页面的时候,总会在它的源码头部看到一串声明,比如最常见的 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 如果我们把这些代码去掉,会发现页面可能会有比较明显的变化,因为这样造成了有些样式的表现不一样. 这些代码我们称做DOCTYPE声明.D

网页头部属性设置技巧

技巧|网页 很多时候,我们在做主页时会忽略了网页头部属性的设置.网页头部属性是指 Html 文件中被Head> 标识符所作用的区域,Html 文件的头部信息包括了对当前文件一些信息的收集,对 <Head> 区的属性进行修改后,不会直接影响到该文件的视觉效果.但通过对其进行设置,将使我们的主页制作过程更加规范.使用更方便. 现在就让我们来看看如何设置一些主页的头部属性: 1.META标识符 META标识符是主页头部元素用以记录当前页面的一些重要信息,例如网页的字符集.作者.版本.网页关键字

HTML网页头部代码全接触

 对于刚刚开始学习HTML的新手而言,了解网页头部代码是非常必要的.       以下所有代码全是在<head>...</head>之间,具体内容有:       1.<title>-</title>       标题元素,帮助用户更好识别文件,有且只有一个.当作为首页或收藏时做文件名.       2.<link>-</link>       显示本文档和其它文档之间的关系:<link rel="stylesheet

网页头部信息优化

很多时候,我们在做主页时会忽略了网页头部属性的设置.网页头部属性是指 html 文件中被 <head> 标识符所作用的区域,html 文件的头部信息包括了对当前文件一些信息的收集,对 <head> 区的属性进行修改后,不会直接影响到该文件的视觉效果.但通过对其进行设置,将使我们的主页制作过程更加规范.使用更方便. 现在就让我们来看看如何设置一些主页的头部属性: 1.meta标识符 meta标识符是主页头部元素用以记录当前页面的一些重要信息,例如网页的字符集.作者.版本.网页关键字等

java.lang.NoClassDefFoundError:org/apache/commons/lang/exception/NestableRuntimeException 异常的处理

在做eclipse插件开发的时候,有需要使用到json的处理.然后把以前web开发中用到的json包拿过来使用,发现在web开发时候没问题的代码,在eclipse插件开发时不能用了.. 出现以下的异常: java.lang.NoClassDefFoundError:org/apache/commons/lang/exception/NestableRuntimeException 经度娘后,发现是commons lang包出的问题.我使用的是3.3版本的.更换回2.6版本的lang包.问题得到解

在HTML网页头部添加一些属性的重要性

网页 HTML和XHTML都有一个结构,它使网页作者可以增加于HTML文档相关的额外信息.这些额外资源可以是样式化信息(CSS).导航助手.属于另外形式的信息(RSS).联系信息等等. LINK元素(link)用来在你的文档头部的<head>元素区增加这些元素. 让我们来看看一个实际的例子,一个天文学网站的一个页面.这个页面关于地球在太阳系中的位置. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" &q

HTML网页头部代码

  HTML中我们一般把部分称为网页的头部.头部部分的内容虽然不会在页面中显示,但它能影响到搜索引擎对网页的收录和排序,以及网页的各种全局设置,可以说是至关重要. 知识点一:头部信息里设置网页的基底网址 基底网址的实质是统一设置超级链接的属性,基底网址标签是</base>,它有两个属性,href和_target.href用于设置基底网址的路径,_target用于设置超级链接的打开方式. 通过基底网址的添加,页面中所有的相对网站根目录地址可转换成绝对地址.当浏览器浏览页面时,通过<base