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

标签 c# wpf localization internationalization

我有一个国际化的 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 之间有什么区别?我什么都不想,但我想确定。

最佳答案

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

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

  1. 是的,但要小心选择正确的父文化名称。不要简单地砍掉国家
  2. 是的,这并不重要,只是特定的加载速度可能稍微快一点。另一方面,您永远不知道将来是否会出现针对同一种语言的另一种特定文化。也许罗马尼亚的匈牙利少数民族获得了自己的 CultureInfo...

关于c# - 使用语言代码 (en) 还是完整的文化代码(例如 en-AU)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14863037/

相关文章:

c# - 如何将通用数组转换为另一种类型?

c# - 是否可以在 UNIX 上运行 AS IIS?

wpf - 触发 Button.Click 时的 XAML Binding.UpdateSourceTrigger?

iphone - 显示时 Unicode 未转换

c# - 转换通用类型 "as T"同时强制执行 T 的类型

c# - 使用数据绑定(bind),根据 ComboBox 中选定的时区在文本框中显示时间

wpf - 是否可以将自定义拼写检查字典添加到样式中?

wpf - 如何在 WPF 网格列中定位元素?

xamarin.android - 在 xamarin Android 应用程序中更改显示语言

java - 在 Java 中将希腊语转换为大写