0

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

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

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

我可以绕过这个和包含语言的硬代码,但这可能会随着构建服务器的构建而改变,因为构建服务器将语言 resx 放在一起并动态构建。

4

1 回答 1

2

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

  • 枚举所有已知的文化 (CultureInfo.GetCultures),并尝试为这种文化获取给定的资源 => 简单但缓慢
  • 在应用程序目录中查找附属程序集:对于每个子目录,检查其名称是否对应于文化名称 (CultureInfo.GetCultureInfo),以及它是否包含 .resources.dll 文件
于 2009-05-28T09:54:18.653 回答