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
也会从您的浏览器中进行设置。例如,科索沃也没有邮政编码,什么都没有。这是个坏主意。我在德国旅行,不说德语…例如科索沃,科索沃也没有邮政编码,什么都没有。这是个坏主意。我在德国旅行,不说德语。。。