我正在使用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。
答案 0 :(得分:0)
我相信您可能需要查看:
public static CultureInfo CurrentCulture { get; set; }
public static CultureInfo CurrentUICulture { get; set; }
这应包含应用程序启动时的默认操作系统文化。