在我们开发过程中;
或者在浏览网页过程中;
如果涉及到多语言;
我们会经常发现 cn
;
zh
zh-Hans
zh-CN
、 zh-cn
各种方式五花八门简直令人目瞪狗呆;
他们之间到底有什么区别?
又有什么关系?
这一切的一切;
到底是人性的扭曲?
还是道德的沦丧?
作为开发者我们应该如何选择?
带着这些疑问我们走进今天的文章;
说到语种有几类标准;
首先说 ISO 639 系列;
ISO 639 是国际标准组织为各语言定制的语言代码;
这个标准用两个字母表示一个语种;
比如说 zh
表示中文、 en
表示英语;
zh
是 zhongwen
这个拼音的缩写;
en
则是 english
这个单词的缩写;
但是我们知道字母也就 26 个;
平方一下两个字母最多也就能表示 676 个语种;
面对世界上几千个语种明显是不够用的;
于是两个字母的 ISO 639 的标准作为 ISO 639-1;
接着就又扩展一个三个字母的版本 ISO 639-2;
根据上面的经验我们可以直接蒙对中英文的语种代码 zho
、 eng
;
这套标准对于大多数国家已经够用了;
然鹅制定这套标准的歪果仁明显是不了解中华文化的博大精深;
作为柴那人民我们知道中文可是分为简体中文和繁体中文的;
如果语种还有子类;
当我们需要具体到子类语种的时候;
这个标准明显是又不够我们用了;
我们就不再过多的去研究 ISO 639 的后续版本了;
上面的 ISO 639 规范的是语种代码;
但是我们知道英国和美国都是使用的英语;
如果我想具体表达某个国家地区呢?
ISO 3166 规范就是定义国家和地区代码的;
CN
是 China
的简称;
TW
是 Taiwan, Province of China
的简称;
US
是 United States of America
的简称;
ISO 3166 标准还被广泛的应用于域名后缀;
中国的国家顶级域名就是 .cn
;
ISO 3166 代码列表
有了 ISO 639 语种代码和 ISO 3166 国家地区代码;
我们组合起来就可以同时满足语种和国家的需求了;
RFC 1766 标准就是一个组合方案;
它把 ISO 639 和 ISO 3166 用 -
拼接来表示不同的国家和地区使用的语种;
比如说 zh-CN
表示中国大陆的中文;
那 zh-TW
则表示台湾地区使用的中文;
而 zh-HK
则表示香港地区使用的中文;
在 RFC 1766 标准下;
我们一般使用 zh-CN
表示简体中文;
而用 zh-TW
表示繁体中文;
RFC 1766 还被广泛的用于 HTML 的 lang
;
<html lang="zh-CN" dir="ltr" class="no-js">
<html lang="zh-TW" dir="ltr" class="no-js">
上面 RFC 1766 方案已经可以让我们具体到语种和地区了;
但是又有很多时候我们并不是很关心地区;
而是比较关心子语种;
比如说我们可能只需要细化到中文简体和中文繁体就行了;
而并不打算具体到是香港地区使用的繁体还是台湾地区使用的繁体;
虽然 RFC 1766 中人们一般用 zh-TW
表示繁体;
已经满足区分简体中文和繁体中文的需求;
但是面向香港客户给一个 zh-TW
而不是 zh-HK
总还是让人略有不爽;
这时候我们需要一个能用来代表繁体中文又没有歧义的代码;
这就是接下来要讲的 RFC4646;
这里依然以中文为示例;
在 RFC4646 中代码第一部分同样是 ISO 639-1 的两位字母缩写 zh
;
后面跟的是 Hans
和 Hant
;
Han
汉语的意思;
s
是 Simplified 简体;
t
是 Traditional 繁体;
zh-Hans
表示简体中文;
zh-Hant
表示繁体中文;
如果想具体到地区;
RFC4646 标准还可以再加第三部分 ISO 3166 国家代码;
比如说 zh-Hans-CN
表示大陆地区使用的简体中文;
比如说 zh-Hant-TW
表示台湾地区使用的繁体中文;
不过一般不用第三部分;
标准 | 简体中文 | 繁体中文 |
---|---|---|
ISO 639-1 | zh | zh |
ISO 3166 | cn | cn |
RFC 1766 | zh-CN | zh-TW |
RFC4646 | zh-Hans | zh-Hant |
在开发过程中;
如果是想按国家划分可以使用 ISO 3166 标准;
如果是想按语种划分可以使用 ISO 639-1 标准;
如果是想具体到简体和繁体;
RFC 1766 和 RFC4646 两个标准都可以;
但是如果只是想表示语种而不想纠结地区;
那么显然 RFC4646 会更加合适;
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
校尉 :额鹅鹅鹅
2022-06-29 05:58:12 回复
电脑维修全市上门17625370078 :
2022-03-29 18:58:28 回复
追梦人生 :
2021-05-05 00:45:52 回复
追梦人生 :
2021-05-05 00:47:17 回复
小小白在努力 :很棒的博客
2021-01-17 08:57:32 回复
TyaL :
2020-11-21 02:18:26 回复
Mr.PAN :额鹅鹅鹅
2021-03-07 07:57:46 回复
晌午的 :11
2020-10-09 16:45:53 回复
大柠檬 :dDSV S
2020-06-12 14:22:17 回复
Pader_FingerAge :不错,描述的很详细。
2020-06-02 10:38:26 回复
:来过了 欢迎有空回访https://yxb.qiuyi.cn/ 磕头了
2020-05-16 11:20:43 回复
Music音乐鱼 :哈哈23432
2020-05-12 09:12:39 回复
Sin of Envy :真好
2020-04-30 14:38:22 回复
Sin of Envy :ssa
2020-04-30 15:24:54 回复
Mr.PAN :11111
2021-03-07 07:56:24 回复
玩乐时光 :来过了,欢迎有空回访!http://www.cnwanle.com/index.html
2020-04-18 13:49:35 回复
YangYongAn :学习了。有一个错别字:“但是又有很多时候我们并不是很关系地区”
2020-04-08 12:25:59 回复
云淡风晴 :多谢提醒;已修改;
2020-04-30 19:33:17 回复
:学习了学习了。 https://cojz8.com
2020-03-14 08:51:21 回复
磊哥-松松推广 :祝你好运哈!
2020-03-10 15:27:27 回复
HuntingGame! :123123321
2020-03-23 17:24:20 回复
momostar :呼呼
2020-03-07 18:52:29 回复
Yioky :hhhh这个很可以
2020-03-04 11:57:25 回复
CatalinStratu :Good
2020-03-03 18:31:04 回复
ihz :大佬,博文怎么生成目录,在编写文章时添加[TOC],右侧可以显示目录,但提交后,从网站看没有目录,直接显示[TOC]
2020-03-03 15:19:39 回复
陈大剩 :1
2020-04-08 23:14:29 回复
云淡风晴 :前台文章详情页面暂时不支持 TOC 哈;
2020-04-30 19:34:11 回复
陈大剩 :22
2020-03-01 23:08:25 回复
qq851145971 :1
2020-03-01 23:09:25 回复
qq851145971 :23
2020-03-01 23:11:12 回复
陈大剩 :?
2020-03-01 23:11:47 回复
momostar :2356
2020-03-07 20:06:53 回复
qq851145971 :1
2020-04-07 23:15:35 回复
叶先生 :www
2020-02-27 14:28:48 回复
心的距离 :5555555555555
2020-02-22 15:59:54 回复
最新评论