ASP.NET MVC:本地化问题(文化的错误resx文件)

时间:2010-03-11 14:16:23

标签: c# asp.net-mvc localization

我有一个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时,如何获得不同的字符串?

我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

您是否在任何地方指定了中性资源语言?如果将其设置为"nl""nl-NL",则对未找到的资源的任何请求最终将最终获取"nl"资源。由于您没有Strings.en-US.resxStrings.en.resx,因此将CurrentUICulture设置为"en-US"会使系统使用中性资源语言。

答案 1 :(得分:0)

检查您的web.config是否没有将语言设置为荷兰语的全球化标签

如果您使用的是Internet Explorer,请转到工具>互联网选项并点击语言按钮,如果它在英语之前显示荷兰语,则更改