使用语言代码(en)还是完整的文化代码(例如en-AU)?

时间:2013-02-13 21:01:38

标签: c# wpf localization internationalization

我在C#/ WPF中有一个国际化的应用程序(某些语言的资源字符串)。

目前我使用以下代码作为资源文件:default.resx,de-DE,fr-FR,es-ES,pt-BR,pt-PT,nl-NL等。

但我有一些问题:

  1. E.g。对于n1,有两种变体:nl-NL(荷兰)和nl-BE。目前我使用nl-NL,但我想如果来自比利时的人将获得默认文本,因为未定义nl-BE。这是真的吗?

  2. 我应该使用nl而不是nl-NL吗?

  3. 对于某些语言,只定义了一个国家(例如hu-HU)......那么hu和hu-HU的区别是什么?我想什么,但我想确定。

2 个答案:

答案 0 :(得分:2)

资源搜索顺序有点复杂和灵活,请参阅MSDN Packaging and Deploying Resources

对于您的问题说明第5项:如果找不到像nl-NL这样的特定文化,它会搜索父文化(CultureInfo.Parent)。但是父母文化不一定是没有国家的文化名称,例如zh-CN,它是zh-CHS。此外,可能有祖父母文化等...

  1. 是的,但要小心选择正确的父文化名称。不要简单地砍掉这个国家
  2. 是的,除了具体可能加载更快一点之外没关系。另一方面,你永远不知道将来是否会有同一种语言的另一种特定文化。也许罗马尼亚的匈牙利少数民族有自己的CultureInfo ......

答案 1 :(得分:1)

是的,您通常希望提供中性文化中的资源,例如" nl"如果你不能为nl-BE和nl-NL本地化它。如果特定文化不可用,资源管理器将自动回退到父文化。

您的客户是否会对此感到高兴,这是您稍后可能会发现的。佛兰芒语和荷兰语非常相似,所以对于这个特定的情况,它不可能让他们感到烦恼。对于巴西和葡萄牙来说,它并不那么明确,他们有一些时间来发展自己的方法,就像美国英语不再是英国人一样,颜色也不同。对胡胡和胡没什么关系,选择胡胡。

背景信息is here