Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何通过编程找到客户机的所选语言?_Asp.net_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net 如何通过编程找到客户机的所选语言?

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

我已将阿拉伯语设置为客户端的机器语言。但在C#程序中,我使用

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