一个非常简单的事情,我无法让它工作。我想全球化我的DLL,因此我正在使用资源文件+ ResourceManager。Resourcemanager正在返回相同的资源,虽然指定了CultureInfo
我调用ResourceManager这样的:
var p = new ResourceManager("Appname.Default", Assembly.GetExecutingAssembly());
获取字符串这样
System.Diagnostics.Debug.WriteLine(p.GetString("greeting"));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("nl-NL")));
System.Diagnostics.Debug.WriteLine(p.GetString("greeting", new CultureInfo("en")));
并返回的字符串相同的4倍。我的文件被称为
Default.resx
Default.en.resx
Default.nl.resx
Default.nl-NL.resx
所有文件设置都是一样的,但提到 - 只用在默认文件资源。
我在这里忽略了什么?
是.resx文件实际上得到编译成附属程序集?查看bin \ Debug文件夹并查找名称为en,nl和nl-NL的子目录。 –
尝试通过'Default.ResourceManager.GetString'获取翻译。很有可能你正在创建的资源管理器会得到一些错误的参数。 –