Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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
C# 从您所在的国家获取当前的文化和语言_C#_Asp.net - Fatal编程技术网

C# 从您所在的国家获取当前的文化和语言

C# 从您所在的国家获取当前的文化和语言,c#,asp.net,C#,Asp.net,我正在寻找一种从用户的当前地理位置获取语言和文化的方法,例如,如果用户来自德国,我希望代码能够获取该用户的位置并自动更改语言。我问这个问题的原因是,在我目前的国家,没有文化(默认情况下:英语) 我尝试了以下代码: var ri = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID); string val = ri.ISOCurrencySymbol; string[] cul1 = HttpCo

我正在寻找一种从用户的当前地理位置获取语言和文化的方法,例如,如果用户来自德国,我希望代码能够获取该用户的位置并自动更改语言。我问这个问题的原因是,在我目前的国家,没有文化(默认情况下:英语)

我尝试了以下代码:

var ri = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID);
string val = ri.ISOCurrencySymbol;
string[] cul1 = HttpContext.Current.Request.UserLanguages;
string name = RegionInfo.CurrentRegion.GeoId.ToString();
所有这些示例都得到了
en-us
,这是不正确的。有没有办法让ASP.NET应用程序知道用户的确切国家/地区?

一般来说,没有

更重要的是,原则上,不要这样做。默认情况下,让用户按照自己的方式选择语言。这会在ASP.NET上自动发生(除非您正在做一些可疑的事情),并基于浏览器中指定的用户语言工作(您可能有一个英语操作系统和/或您已经在浏览器设置中将您的语言设置为英语)。始终允许用户覆盖该语言

要测试其工作原理,只需转到浏览器设置并将语言更改为其他语言。如果ASP.NET应用程序的设置正确,则应在
CurrentCulture
中显示不同的语言/区域性。即使不是这样,
Request.UserLanguages
也会从浏览器中进行设置。

一般来说,不会

更重要的是,原则上,不要这样做。默认情况下,让用户按照自己的方式选择语言。这会在ASP.NET上自动发生(除非您正在做一些可疑的事情),并基于浏览器中指定的用户语言工作(您可能有一个英语操作系统和/或您已经在浏览器设置中将您的语言设置为英语)。始终允许用户覆盖该语言


要测试其工作原理,只需转到浏览器设置并将语言更改为其他语言。如果ASP.NET应用程序的设置正确,则应在
CurrentCulture
中显示不同的语言/区域性。即使不是这样,
Request.UserLanguages
也会从您的浏览器中进行设置。

例如,科索沃也没有邮政编码,什么都没有。这是个坏主意。我在德国旅行,不说德语…例如科索沃,科索沃也没有邮政编码,什么都没有。这是个坏主意。我在德国旅行,不说德语。。。