在WPF应用程序中在运行时枚举已翻译的.resx资源

时间:2009-05-27 17:26:28

标签: wpf localization resources internationalization resx

我通过在.resx文件中存储字符串来为我的WPF应用程序进行本地化。我的默认(英语)字符串资源是strings.resx。对于其他语言,对于法语称为strings.fr-FR.resx,对于西班牙语称为strings.es-ES.resx,依此类推。

这种本地化方法非常棒,因为当我将全球化区域设置为匹配的区域设置时,我的应用程序将自动加载正确的字符串,而当没有时,默认为英语。

是否可以在运行时枚举我的程序集中的哪些语言?

我可以解决这个以及包含哪些语言的硬代码,但是这可以从构建更改为构建,因为构建服务器将语言resx和动态构建在一起。

1 个答案:

答案 0 :(得分:2)

我看到两个选项,其中没有一个是理想的......

  • 枚举所有已知的文化(CultureInfo.GetCultures),并尝试获得此文化的给定资源=>
  • 在应用程序的目录中查找附属程序集:对于每个子目录,检查它的名称是否对应于区域性名称(CultureInfo.GetCultureInfo),以及它是否包含.resources.dll文件