WPF本地化语言组

时间:2017-03-24 16:41:46

标签: wpf localization

我有一个使用.resx文件的标准WPF本地化应用程序。目前我支持en-US(默认)en-AU,es和zh-CN。

我是否需要为每种语言设置单独的resx文件,或者是否有某种方法对它们进行分组?例如,我想具有区域id en-GB的人更喜欢en-AU而不是en-US。或者zh-TW绝对比en-US更喜欢zn-CN。我当然可以复制文件,但有更简单的方法吗?

2 个答案:

答案 0 :(得分:0)

每种语言都需要一个单独的resx文件,每个文件必须具有相同的密钥。匹配的resx文件将自动选择。 如果这也是您想知道的,那么您可以拥有一个默认的resx文件。

答案 1 :(得分:0)

这个问题有点晚了,但是我才发现它,所以我不妨给出一个答案。

我猜有两种选择,具体取决于您的需求:

您可以定义“ Resources.en.resx”,如果未定义特定的en-GB资源文件,则en-GB用户将使用该资源。 en-GB用户将尝试按以下顺序查找资源:

  1. Resources.en-GB.resx
  2. Resources.en.resx
  3. Resources.resx

这适用于每个资源条目。您可以在Resources.en.resx中定义所有通用的“ en”资源,而仅定义Resources.en-AU中的差异,因此不必复制粘贴所有资源。

您还可以根据语言代码手动设置区域性:如果用户使用的是en-GB,则只需将区域性设置为en-AU:

CultureInfo userCulture = CultureInfo.InstalledUICulture;
if(userCulture.Name == "en-AU") // do what you want