首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IETF语言代码应该使用什么数据类型?

IETF语言代码应该使用什么数据类型?
EN

Stack Overflow用户
提问于 2013-07-25 02:36:33
回答 1查看 3.9K关注 0票数 16

我正在为微博平台上的消息设计一个模式,这个平台需要有一种定义的语言。这些消息将分布在多个节点之间的网络中,因此我需要使模式紧凑,但仍然是完全多语言的。

我将使用IETF语言代码 (enen-AU等),但为了提高效率,我需要知道是否有一种特定的方法来表示它们。语言标记有多种标准,但是当前的规范RFC 5646由于与以前的标准保持向后兼容性而变得复杂。我不完全理解空间的要求,因为有多个子标签。

表示IETF语言代码的最有效的空间方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-25 16:12:36

我认为IETF规范用于处理地区代码确实是业界的“最佳通用实践”,但肯定不是没有保持向后兼容性之类的妥协。由于最重要的国际化库和标准(Unicode、ICU)正在使用它,我仍然建议根据您的需要对其进行调整。

BCP47 47/ tag 5646 第4.4.1节建议使用35个字符的标签长度:

代码语言:javascript
复制
   language      =  8 ; longest allowed registered value
                      ;   longer than primary+extlang
                      ;   which requires 7 characters
   script        =  5 ; if not suppressed: see Section 4.1
   region        =  4 ; UN M.49 numeric region code
                      ;   ISO 3166-1 codes require 3
   variant1      =  9 ; needs 'language' as a prefix
   variant2      =  9 ; very rare, as it needs
                      ;   'language-variant1' as a prefix

   total         = 35 characters

              Figure 7: Derivation of the Limit on Tag Length

但是,如果您只关心语言和脚本(而不是表示一些区域敏感数据(如日期和时间格式)的区域信息),那么您可以使用13个字符( max )。

实际上,大多数标记最终只能是语言的两个字符。我经常处理并需要脚本子标签的唯一常见示例是sr-Latnsr-Cyrl (分别是用拉丁语或西里尔语编写的塞尔维亚语)、zh-Hant (繁体中文)和zh-Hans (简体中文)。另外,您很可能不需要这些变体,这意味着这些地区代码的大多数真实示例应该在17个字符的限制之下。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17848070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档