使用附属程序集进行本地化将返回默认语言

本文关键字:返回 默认 语言 本地化 附属程序集 | 更新日期: 2023-09-27 18:30:16

我正在尝试使用附属程序集本地化我的应用程序。我试着关注这个博客:http://msdn.microsoft.com/en-us/library/21a15yht(v=vs.110).aspx

我创建了两个文件,一个文件的名称为"Global.resx"和英语字符串,第二个文件的名称为"Global.nl-NL.resx",带有荷兰字符串。

在此之后,我使用 resgen 从荷兰文件创建了一个 .resources 文件。使用 al.exe 我创建了一个名为 LocalizationLab.resources 的.dll.dll并将其存储在文件夹/bin/debug/nl-NL 中。

在我的应用程序中,我将 CurrentUICulture 设置为 nl-NL.并使用 Global.test 调用字符串。见下文

Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-NL");
        Console.WriteLine(Global.Test);    

这将返回英语字符串而不是荷兰语字符串。当我调试并查看全局并查看资源管理器正在使用的资源集时,我看到三个资源集:"nl"、"nl-NL"和",这三个资源中都有英文字符串值。

谁能告诉我我做错了什么?

提前谢谢。

使用附属程序集进行本地化将返回默认语言

我最终发现了问题所在,

问题是生成的用于初始化资源管理器的代码如下所示:

ResourceManager rm = new ResourceManager("LocalizationLab.Global", typeof(Global).Assembly);  

经过一番困惑,我发现应该是这样的:

ResourceManager rm = new ResourceManager("Global", typeof(Global).Assembly); 

这奏效了!