如果您有一个本地化的应用程序 pt-br
和 pt-pt
,如果系统仅报告,您应该选择何种语言 pt
代码(通用葡萄牙语)?
此问题独立于应用程序,桌面,移动或基于浏览器的性质。让我们 假设您无法获取地区信息 来自其他来源,您必须选择一种语言作为默认语言。
这个问题也适用于更多案例,包括:
pt-pt
和 pt-br
en-us
和 en-gb
fr-fr
和 fr-CA
zh-cn
, zh-tw
,.... - 事实上在这种情况下,我知道 zh
可以作为主要语言 简体中文 完整代码的地方 zh-hans
。繁体中文,代码如 zh-tw
, zh-hant-tw
, zh-hk
, zh-mo
应该是正确的代码(规范) zh-hant
。
Q1: 如何确定指定元语言的主要语言?
我需要一个至少包括葡萄牙语,英语和法语的解决方案。
Q2:如果系统报告简体中文(PRC)(zh-cn
)作为用户的首选语言,我只翻译英文和繁体中文(en,zh-tw
) 我应该从两个选项中选择什么: en
要么 zh-tw
?
通常,您应该将“猜测缺少的参数”问题与“匹配我想要的语言环境列表与我所拥有的语言环境列表”问题分开。他们是不同的。
猜测缺少的部分
这些都是棘手的领域,甚至(可能)政治上的指责。
但除了极少数例外,规则是选择该语言的“原始国家”。
例外情况主要基于人口。
所以fr-FR为fr,es-ES等
一些例外:pt-BR而不是pt-PT,en-US而不是en-GB。
通常也接受(并且中国标准要求)zh映射到zh-CN。
您可能还需要查看国家/地区以确定脚本,或者反过来。
例如,az => az-AZ但是az-Arab => az-Arab-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-Mong不应该回退到mn-Cyrl。
棘手的领域:sr-Cyrl理论上不应该回到sr-Latn,但用户可能会理解。 ro-Cyrl可能会回到ro-Latn,但不是相反。
一些参考
通常,您应该将“猜测缺少的参数”问题与“匹配我想要的语言环境列表与我所拥有的语言环境列表”问题分开。他们是不同的。
猜测缺少的部分
这些都是棘手的领域,甚至(可能)政治上的指责。
但除了极少数例外,规则是选择该语言的“原始国家”。
例外情况主要基于人口。
所以fr-FR为fr,es-ES等
一些例外:pt-BR而不是pt-PT,en-US而不是en-GB。
通常也接受(并且中国标准要求)zh映射到zh-CN。
您可能还需要查看国家/地区以确定脚本,或者反过来。
例如,az => az-AZ但是az-Arab => az-Arab-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-Mong不应该回退到mn-Cyrl。
棘手的领域:sr-Cyrl理论上不应该回到sr-Latn,但用户可能会理解。 ro-Cyrl可能会回到ro-Latn,但不是相反。
一些参考
您是否希望在葡萄牙或巴西拥有更多用户?选择相应的。
对于您的一般解决方案,您可以通过阅读来了解 民族语。