3

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

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

但我有一些问题:

  1. 例如,对于 nl,有两个变体:nl-NL(荷兰)和 nl-BE。目前我使用 nl-NL,但我想如果来自比利时的人会得到默认文本,因为 nl-BE 没有定义。这是真的?

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

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

4

2 回答 2

3

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

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

  1. 是的
  2. 是的,但要小心选择正确的父文化名称。不要简单地切断国家
  3. 是的,这无关紧要,只是具体的加载速度可能会快一点。另一方面,你永远不知道未来是否会出现同一种语言的另一种特定文化。也许说罗马尼亚的匈牙利少数民族有自己的文化信息......
于 2013-02-13T21:29:03.773 回答
2

是的,如果您无法同时为 nl-BE 和 nl-NL 本地化资源,您通常希望以“nl”之类的中立文化提供资源。如果特定文化不可用,资源管理器将自动回退到父文化。

您的客户是否会对此感到高兴,您稍后可能会发现。佛兰芒语和荷兰语非常相似,因此对于这种特定情况,不太可能让他们感到厌烦。对于巴西和葡萄牙来说,情况并不是那么明确,他们已经有一段时间发展自己的方言,就像美式英语不再是英国式的,有着不同的色彩。hu-HU vs hu没关系,选择hu-HU。

背景信息在这里

于 2013-02-13T21:30:44.210 回答