中文代码 zh-cn、zh-hk、zh-tw、zh-hant、zh-hans 都有什么区别?

中文代码 zh-cn、zh-hk、zh-tw、zh-hant、zh-hans 都有什么区别?
[游客] 匿名者 提问于 2 年 以前

1 个回答
最佳回答
[游客] GLOBAL 回答于 2 年 以前

1、服务器的 accept-language 信息

当我们浏览一个网页时,浏览器会向 WEB 服务器发送一个名为 accept-language 的请求头。这个请求头包含了我们期望服务器返回的语言信息,一个典型的 accept-language 数据值可以是下面这样:

zh-CN,zh;q=0.9,en;q=0.8,fr;q=0.7,pt;q=0.6,so;q=0.5,de;q=0.4,en-US;q=0.3,ko;q=0.2,ja;q=0.1,zh-TW;q=0.1,und;q=0.1

意思:浏览器支持的语言分别是简体中文和中文,优先支持简体中文。

详解:

  • Accept-Language 表示浏览器所支持的语言类型;
  • zh-cn 表示简体中文;zh 表示中文;
  • q 是权重系数,范围 0 =< q <= 1

q 值越大,请求越倾向于获得其 “;” 之前的类型表示的内容,若没有指定 q 值,则默认为 1,若被赋值为 0,则用于提醒服务器哪些是浏览器不接受的内容类型。

这就是网站用于判断用户浏览器语言信息的方法了,根据这个信息,我们可以返回和用户浏览器语言相匹配的网页。

比如我们访问 http://www.fuyeor.com 的时候,发送了 zh-CN,zh;q=0.9,得到此信息后会跳转到 http://www.fuyeor.com/zh-cn 上。

而法语的浏览器则会发送 fr-FR,fr,q=0.9,zh-CN,q=0.8,zh;q=0.7 由于法语(fr)的权重(q)最高,因此跳转到了 http://www.fuyeor.com/fr-fr 上。

 

2、中文代码详解

有时,我们也会在源代码中看到诸如 zh-Hans 和 zh-Hant 的字样。比如微软的文档就采用了 zh-cn 的形式:https://docs.microsoft.com/zh-cn/ ,微软问答则采用了 zh-Hans :https://answers.microsoft.com/zh-hans。

那么为什么会这样呢?这是由于微软文档需要准确的多语言信息,而微软问答主要面向产品支持,不需要很精确地语言代码,因此可用通用的 zh-Hans。

其中 zh-hans 是语言限制匹配规范,表示简体中文,适用区域范围是全宇宙用中文简体的地方,内容包括各种用简体的方言等。包括 zh-cn、zh-sg、zh-my;

而 zh-hant 则表示繁体中文,包括 zh-hk、zh-tw、zh-mo。

  • zh-CN:地区限制匹配规范,表示用在中国大陆区域的中文。包括各种大方言、小方言、繁体、简体等等都可以被匹配到。
  • zh-HK:地区限制匹配规范,表示用在中国香港特别行政区的繁体中文。
  • zh-TW:地区限制匹配规范,表示用在中国台湾的繁体中文。

目前仅有 Windows 10 系统以及 Edge 浏览器支持 zh-Hans 写法。旧的操作系统与当下的主流浏览器均使用 zh、zh-CN 来代表简体中文,zh-TW 来代表繁体中文。

如果需要对 HTML5 网页的 lang 属性进行标记,如果网站只有一种语言,则直接写 lang=”zh” 即可。如果有多种语言支持,则可以写成 lang=”zh-CN” 或 lang=”zh-TW”。

简体中文:<html lang="zh-CN">
繁体中文(香港):<html lang="zh-HK">
繁体中文(台湾):<html lang="zh-TW">

大家可打开 https://www.fuyeor.com/zh-cn (简体中文)以及 https://www.fuyeor.com/zh-hk (繁体中文)并按下 F12 查看到规范的 html lang 属性。

另外,中文的代码除了以上语言代码外,还有这些:

  • zh-MO 繁体中文,澳门特别行政区
  • zh-SG 简体中文,新加坡
  • zh-MY 简体中文,马来西亚
回答于 2021-12-09 12:23·更新于 2021-12-22 10:38