无法获得当前的服务器文化

时间:2014-08-05 23:41:35

标签: c# asp.net-mvc globalization cultureinfo

我正在使用c#asp.net MVC中的多语言应用程序,其中服务器,客户端或两者可能具有除英语之外的不同语言。我的开发机器使用英语作为默认语言,并且在Windows中使用语言栏,我将当前语言设置为法语(比利时),我的客户端浏览器语言是荷兰语(比利时)。对于我曾经使用全球化技术将Thread Current Culture更改为荷兰语(客户端浏览器语言)的每个请求,如下所示。

protected void Application_BeginRequest(object sender, EventArgs e)
{
    HttpCookie userCookie = Request.Cookies["Culture"];
    string cultureCode = "en-US";
    if (userCookie != null)
    {
        cultureCode = userCookie.Value;
    }
    CultureInfo culture = new CultureInfo(cultureCode);
    Thread.CurrentThread.CurrentCulture = culture;
    Thread.CurrentThread.CurrentUICulture = culture;
}

我想找到OS当前文化,因此,我使用

CultureInfo.InstalledUICulture

找到OS当前的文化,应该是法国(比利时)FR-BE,但每次它都归还给我美国英语(美国)。我已经知道问题出在windows上,它总是返回默认的windows文化而不是当前的文化,如in this question所述。我想知道,有没有办法在我的服务器上找到当前的OS文化,即法国(比利时)FR-BE。

1 个答案:

答案 0 :(得分:0)

我相信您可能需要查看:

public static CultureInfo CurrentCulture { get; set; }
public static CultureInfo CurrentUICulture { get; set; }

这应包含应用程序启动时的默认操作系统文化。