我在C#/ WPF中有一个国际化的应用程序(某些语言的资源字符串)。
目前我使用以下代码作为资源文件:default.resx,de-DE,fr-FR,es-ES,pt-BR,pt-PT,nl-NL等。
但我有一些问题:
E.g。对于n1,有两种变体:nl-NL(荷兰)和nl-BE。目前我使用nl-NL,但我想如果来自比利时的人将获得默认文本,因为未定义nl-BE。这是真的吗?
我应该使用nl而不是nl-NL吗?
对于某些语言,只定义了一个国家(例如hu-HU)......那么hu和hu-HU的区别是什么?我想什么,但我想确定。
答案 0 :(得分:2)
资源搜索顺序有点复杂和灵活,请参阅MSDN Packaging and Deploying Resources。
对于您的问题说明第5项:如果找不到像nl-NL这样的特定文化,它会搜索父文化(CultureInfo.Parent)。但是父母文化不一定是没有国家的文化名称,例如zh-CN,它是zh-CHS。此外,可能有祖父母文化等...
答案 1 :(得分:1)
是的,您通常希望提供中性文化中的资源,例如" nl"如果你不能为nl-BE和nl-NL本地化它。如果特定文化不可用,资源管理器将自动回退到父文化。
您的客户是否会对此感到高兴,这是您稍后可能会发现的。佛兰芒语和荷兰语非常相似,所以对于这个特定的情况,它不可能让他们感到烦恼。对于巴西和葡萄牙来说,它并不那么明确,他们有一些时间来发展自己的方法,就像美国英语不再是英国人一样,颜色也不同。对胡胡和胡没什么关系,选择胡胡。
背景信息is here。