从您所在的当前国家/地区获取当前的文化和语言

时间:2015-06-01 12:49:07

标签: c# asp.net

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

我试过这段代码:

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应用程序知道用户的确切国家/地区?

1 个答案:

答案 0 :(得分:4)

一般来说,没有。

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

要测试其工作原理,只需转到浏览器设置并将语言更改为其他设置即可。如果您的ASP.NET应用程序设置正确,它应该在06/01/2015中显示不同的语言/文化。即使不是,1433206800000 也会从您的浏览器中获取该设置。