V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iugo
V2EX  ›  程序员

[学生与学究] 关于语言代码的标准

  •  
  •   iugo ·
    iugo · 2016-07-15 18:05:21 +08:00 · 1409 次点击
    这是一个创建于 2903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言:

    以前对语言代码很模糊, 最常见的也就是 zh-CN.

    今天在看 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation 的时候, 就想弄清楚语言代码究竟怎样才是标准的, 就查了些资料, 顺便分享. 前辈请指教.

    对于 IT 从业者来说, RFC 5646 是首先要看的. 依据的具体代码要看 ISO 639.

    如果想直接点的话, 看这个 (RFC 5646 根据 ISO 639 生成的) 列表:
    http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

    标准:

    RFC 5646 https://tools.ietf.org/html/rfc5646
    被分类为 目前的最佳惯例(Best Current Practice), 而不是标准.

    ISO 639 http://www.iso.org/iso/home/standards/language_codes.htm
    目前共分为五部分(曾经有过第六部分, 已被废弃).

    • ISO 639-1 (2 letter code list)
    • ISO 639-2 是 1 的超集 (3 letter code list)
    • ISO 639-3 是 1 的超集, 是 2 部分语言的超集 (3 letter code list)
    • ISO 639-4 编写原则与使用指导
    • ISO 639-5 语言类(不知道可否翻译为语系)的列表 (3 letter code list)

    经验:

    许多扩展语言(extlang)都要直接使用. 比如之前我们用 zh-cmn 表示中文普通话, 现在使用 cmn 替代.

    语言如果有 script 则需要加上, 比如 Hanszh 的 script. (script 的首字母大写)
    但 RFC 5646 4.1.2 也说了 zh-HK 这种用法仍然是有效的.

    三段式是最为详细的代码, 比如 语言(language)-子语言(script)-地区(region).

    根据实际情况去选代码, 并不能说也特殊越好, 也不能说越兼容越好.
    比如一篇文章是用中文简体书写, 内容的语境也是大陆的事情, 那么就使用 zh-Hans-CN. 如果一个社区服务各种华裔, 那么使用 zh 也是合适的.

    例子:

    粤语使用 yue 即可. 吴语使用 wuu 即可.

    简体汉字, zh-Hans. 繁体汉字, zh-Hant. 台湾正体, zh-Hant-TW.

    可以通过没有被 Deprecated 的 Type: redundant 找到常见的语言代码.


    备注:

    什么是 macrolanguage:

    https://en.wikipedia.org/wiki/ISO_639_macrolanguage https://zh.wikipedia.org/wiki/ISO_639-3#.E5.A4.A7.E8.AA.9E.E8.A8.80_.28Macrolanguages.29

    language-subtag-registry 例子:

    Type: language
    Subtag: zh
    Description: Chinese
    Added: 2005-10-16
    Scope: macrolanguage
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1319 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:47 · PVG 01:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.