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

时间:2014-11-13 09:25:07

标签: c# .net localization

我尝试使用附属程序集本地化我的应用程序。 我试图关注此博客: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);    

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

我最终发现了问题所在,

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

ResourceManager rm = new ResourceManager("LocalizationLab.Global", typeof(Global).Assembly);  
经过一番疑惑,我发现它应该是这样的:

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

哪个有效!