V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
iugo
V2EX  ›  问与答

中文在 lang 标签的值, 到底是 zh 还是 zh-CN ?

  •  
  •   iugo · 2011-04-08 01:00:26 +08:00 · 8035 次点击
    这是一个创建于 4961 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://www.w3school.com.cn/tags/html_ref_language_codes.asp 看到中文的值, 无论是 Chinese (Simplified) 还是 Chinese (Traditional), 都是 zh .而在实际应用中, 我常常在 Google 的 URL 中看到 zh-CN 的字样, V2EX 中 lang 的值也是 zh-CN .

    于是我 Google 到这样一篇文章: http://dev.csdn.net/htmls/60/60260.html
    但是看完之后我还是不明白该用哪一个.

    看到 http://www.w3school.com.cn/tags/html_ref_standardattributes.asphttp://www.google.com/ 中, 均没有 "lang=".

    我想, CN 是区域, 而不是语言. 那是不是一些语言要指定区域呢? zh-CN, zh-HK? 美式和英式的语言也有差异, en-US, en-UK?

    大家说说, 在网页语言标注中, 用"语言"好呢, 还是用"语言-区域"好?
    12 条回复    1970-01-01 08:00:00 +08:00
    keakon
        1
    keakon  
       2011-04-08 01:06:45 +08:00
    zh-CN。其实写上它有个目的就是让Opera这种傻兮兮的浏览器不要用繁体字体来显示简体中文,这样会导致字体参差不齐。
    lianghai
        2
    lianghai  
       2011-04-08 01:32:54 +08:00
    zh 是泛指的「中文」。
    而 zh-CN、zh-TW、zh-Hans、zh-Hant……这些都是对 zh 的进一步细化。

    具体用哪个要根据你的需求来,像中文维基百科这样的混有各种中文文本的网站就会采用 zh;而豆瓣这样针对中国大陆的网站就会用 zh-CN;而如果你有个网站关注的是简体字,而不关心到底用哪个地区的字形标准,就可以用 zh-Hans。你甚至还可以用 zh-Hans-CN 这样的明确声明。

    英语确实也是有这种差异的,英式英语和美式英语分别是 en-GB(不是 en-UK)和 en-US。

    遇到这种问题时,建议参考更权威一些的网站:
    http://www.w3.org/International/articles/language-tags/
    http://www.langtag.net/
    lianghai
        3
    lianghai  
       2011-04-08 01:48:59 +08:00
    另外,就像 @keakon 说的一样,lang 会控制浏览器使用的字体。比如在最新的 Windows 里,如果没有明确写明字体,原则上来说 zh-CN 会默认用上微软雅黑或宋体(SimSun),而 zh-TW 就会用上微軟正黑或新細明體。
    ilexswam
        4
    ilexswam  
       2011-04-08 01:54:31 +08:00
    强调地域,使用 zh-cn(或 zh-hk,zh-tw)
    强调字形(简体、繁体),使用 zh-Hans(或 zh-Hant)
    强调读音,使用 zh-cmn(或 zh-yue)
    如果不强调地域,但强调语言和字形,则 zh-cmn-Hans(中文-普通话-简体)
    lianghai
        5
    lianghai  
       2011-04-08 02:01:43 +08:00
    @ilexswam 地区的那一段,一般都用全大写的吧:zh-CN、zh-HK、zh-TW……
    其它的同意。
    iugo
        6
    iugo  
    OP
       2011-04-08 19:22:59 +08:00
    @ilexswam @lianghai @keakon 谢谢,学到了。
    chuangbo
        7
    chuangbo  
       2011-04-08 20:57:01 +08:00
    @lianghai 这几天学到很多 Web 字体渲染方面的知识,感谢。
    如果能总结总结就好了⋯⋯等着 @jjgod 说的那篇文章呢
    Sam
        8
    Sam  
       2011-04-08 22:20:38 +08:00
    请教一下,lang可以写在body上吗?
    lianghai
        9
    lianghai  
       2011-04-08 22:40:44 +08:00
    @Sam 似乎可以写在任何元素里,只是一般都只在 <html> 和 <p>、<span> 那些比较小的元素里见到:
    http://www.w3.org/International/tutorials/language-decl/#Slide0090
    lianghai
        10
    lianghai  
       2011-04-08 22:43:26 +08:00
    @chuangbo 总结的事情还是交给 @jjgod 了……他对浏览器和字体的了解实在很深。
    darasion
        11
    darasion  
       2011-04-09 22:48:51 +08:00
    如果是任何语言都可能会出现,那么这个应该怎样做???
    lianghai
        12
    lianghai  
       2011-04-10 00:07:23 +08:00
    @darasion 标注主要语言就好了。在 <meta> 里可以写明多个语言标签,比如:
    <meta http-equiv="Content-Language" content="en,fr,es" />

    另外,lang 这个属性在页面的任何地方都可以用,不是仅限于 <html> 或者 <meta> 这样的地方,所以很容易给一个局部标注和整体不一样的语言。可以看一看上面给出的几个链接。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1111 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.