2010-03-23 18 views
11

如果您的应用程序本地化为pt-brpt-pt,如果系统仅报告pt代码(通用葡萄牙语),应选择什么语言?如果您的应用程序已本地化为pt-br和pt-pt,如果系统仅报告“pt”代码,您应该选择哪种语言?

此问题与应用程序,桌面,移动设备或基于浏览器的性质无关。我们假设假设您无法从其他来源获取地区信息,并且您必须选择一种语言作为默认语言。

问题不适用,以及更多的情况包括:

  • pt-ptpt-br
  • en-usen-gb
  • fr-frfr-CA
  • zh-cnzh-tw,... - 事实上在这种情况下,我知道zh可以用作主要语言Sim plified Chinese其中完整代码为zh-hans。对于繁体中文,其代码如zh-tw,zh-hant-tw,zh-hk,zh-mo正确的代码(规范)应该是zh-hant

Q1如何我确定一个指定的元语言的主要语言?

我需要一个至少包含葡萄牙语,英语和法语的解决方案。

Q2:如果系统报告的简体中文(中国)(zh-cn)作为用户的首选语言,我有翻译只为英文和繁体中文(中国en,zh-tw我应该从两个选项中进行选择:enzh-tw

回答

10

一般来说,你应该从“匹配我想要的区域设置列表与我所具有的区域设置列表”问题中分离出“猜测缺失的参数”问题。他们是不同的。

猜测缺少的部分

这些都是棘手的领域,甚至(可能)充满政治色彩。

但是除了极少数例外,规则是选择语言的“原始国家”。 例外主要基于人口。 因此fr-FR适用于fr,es-ES等 一些例外:pt-BR替代pt-PT,en-US替代en-GB。

zh也映射到zh-CN也被普遍接受(并且被中国标准要求)。

您可能还得看看国家来确定脚本,或者反过来看。 比如AZ => AZ-AZ但AZ-阿拉伯=> AZ-阿拉伯-IR和az_IR => az_Arab_IR

匹配 '要' 与 '有'

这涉及到匹配列表想要与有语言的列表进行比较。 处理列表使得它更难。如果可能的话,结果也应该以明智的方式排序。 (例如,如果want = [ fr ro ]have = [ en fr_CA fr_FR ro_RO ]那么你可能想[ fr_FR fr_CA ro_RO ]作为结果。

应该有不同的脚本语言之间的不匹配。因此,ZH-TW不应该退回到ZH-CN和MN-旺不应该退回到mr-Cyrl Tricky区域:sr-Cyrl在理论上不应该回退到sr-Latn,但用户可能会理解,ro-Cyrl可能会倒退到ro-Latn,但不会倒过来。 Some references

+0

“en-US而不是en-US”。我认为最后一个应该是en-GB。 – Thomas 2010-03-23 18:59:11

+0

固定(后人:-)。谢谢托马斯。 – 2010-03-24 09:03:35

4

您是否期望在葡萄牙或巴西有更多的用户?相应地选择。

对于您的一般解决方案,您可以通过阅读Ethnologue找到答案。

+0

谢谢,这看起来像一个很好的信息来源。从它我认为'pt-br','fr-fr','zh-cn'和'en-us'可以被认为是他们组中的主流。 – sorin 2010-03-23 14:29:45

相关问题