Asp.net 如何通过编程找到客户机的所选语言?
我已将阿拉伯语设置为客户端的机器语言。但在C#程序中,我使用Asp.net 如何通过编程找到客户机的所选语言?,asp.net,asp.net-mvc,asp.net-mvc-3,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我已将阿拉伯语设置为客户端的机器语言。但在C#程序中,我使用 var test = Thread.CurrentThread.CurrentCulture; 它将语言显示为En US.? 如何获取计算机的选定语言?这将取决于客户端浏览器的配置方式。如果客户端浏览器的默认语言配置为en-US,则永远无法在服务器上获取实际语言。例如,在Google Chrome中有一个设置,您可以指定发送到服务器的首选语言: 因此,一旦您将web浏览器的首选语言配置为其他语言,浏览器将以Accept langu
var test = Thread.CurrentThread.CurrentCulture;
它将语言显示为En US.?如何获取计算机的选定语言?这将取决于客户端浏览器的配置方式。如果客户端浏览器的默认语言配置为
en-US
,则永远无法在服务器上获取实际语言。例如,在Google Chrome中有一个设置,您可以指定发送到服务器的首选语言:
因此,一旦您将web浏览器的首选语言配置为其他语言,浏览器将以Accept language
HTTP请求头的形式发送此语言,您将能够在服务器上检索它。在这种情况下,ASP.NET将自动将其分配给当前线程的区域性,前提是在web.config中,您没有在
元素中更改它,而是保留了默认值。是您要查找的属性。请记住,此数组可能包含由请求头设置的任意(甚至不存在)语言 例如:
var lobUserLanguages = Request.UserLanguages;
CultureInfo ci;
if (lobUserLanguages.Count > 0)
{
try
{
ci = new CultureInfo(lobUserLanguages[0]);
}
catch(CultureNotFoundException)
{
ci = CultureInfo.InvariantCulture;
}
}
else
{
ci = CultureInfo.InvariantCulture;
}