无法获取当前服务器区域性

本文关键字:服务器 区域性 获取 | 更新日期: 2023-09-27 18:16:52

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

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;
}

我想找到操作系统的当前文化,因此,我使用

CultureInfo.InstalledUICulture

查找操作系统当前文化,应该是法语(比利时)FR-BE,但每次返回的都是en-US English(美国)。我已经知道这个问题是与窗口,它总是返回默认的窗口文化,而不是当前文化在这个问题中解释。我想知道,有没有办法在我的服务器上找到当前的操作系统文化是法语(比利时)FR-BE。

无法获取当前服务器区域性

我想你可能想检查一下:

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

这应该包含应用程序启动时的默认操作系统区域性