使用不同的语言类 API 所涉及的语种问题

2015-10-15 23:39:58 +08:00
 adrianzhang
发现不同的语言类 API 对于语种的 code 是不一样的,比如 en_US, en-US, en-us, eng-USA, 都是代表美国英语。那么有没有什么方法简单一点给他们都对应起来呢? Python 字典这种方法我知道怎么做,只不过想偷偷懒看看有没有已经造好的轮子。

各位程序员们有没有人有经验的?
2400 次点击
所在节点    程序员
3 条回复
AlloVince
2015-10-16 00:35:42 +08:00
解决你的问题可以直接用 http://babel.pocoo.org/

但是如果你要了解问题后的背景可能需要弄清楚下面的关键词:

ISO-639
RFC-4646
BCP-47
CLDR
a358003542
2015-10-16 02:58:47 +08:00
最基本的是两个字母的 ISO-639-1 en zh . ....
然后三个字母常用的是 ISO-639-3 eng zho ...
adrianzhang
2015-10-16 12:09:50 +08:00
@AlloVince 谢谢!虽然没看懂 babel 怎么把 eng-USA 转换为 en-US ,不过循着你给出的线索查了查,貌似目前没有 python 轮子能方便地达到目的, pycountry 最接近可是还是很不方便,看来需要自己造了。。

@a358003542 谢谢,发现了 ISO-639 和 ISO-3166 是用来做这个事情的。可恨的是不同的奸商还有不同的标准,比如微软,例如还有某些奸商使用 cmn 而不是 zh 来表示大陆中文。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/228406

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX