我有一个Strings.resx
和一个Strings.nl.resx
文件。
第一个包含英文字符串,另一个包含荷兰语字符串。它们是C# Class Library
项目的一部分:Module
。
public static string testString()
{
//I Force the culture to always be english
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
return Strings.Hello;
}
当我从一个简单的Console Application
调用它们时,它可以工作:
Console.WriteLine(Module.testString()); //English string gets returned
当我从ASP.NET MVC
应用程序执行相同操作时,我会获得荷兰语版本...
public ActionResult testCulture()
{
return Content(Module.testString()); //Dutch string gets returned..?!
}
我正在使用荷兰语Windows,因此任何自动设置都将是荷兰语。但是当文化被硬编码到类库中的en-us时,如何获得不同的字符串?
我在这里缺少什么?
答案 0 :(得分:3)
您是否在任何地方指定了中性资源语言?如果将其设置为"nl"
或"nl-NL"
,则对未找到的资源的任何请求最终将最终获取"nl"
资源。由于您没有Strings.en-US.resx
或Strings.en.resx
,因此将CurrentUICulture
设置为"en-US"
会使系统使用中性资源语言。
答案 1 :(得分:0)
检查您的web.config是否没有将语言设置为荷兰语的全球化标签
或
如果您使用的是Internet Explorer,请转到工具>互联网选项并点击语言按钮,如果它在英语之前显示荷兰语,则更改