从基于目前的访客,设置资源获取的CultureInfo? [英] Get CultureInfo from current visitor and setting resources based on that?
问题描述
我如何(在ASP .NET MVC)得到(根据他/她的浏览器语言)当前访问者的CultureInfo的?
How can I (in ASP .NET MVC) get the CultureInfo of the current visitor (based on his/her browser languages)?
我不知道从哪里开始。我试图寻找到浏览器发出的接受语言头。但是,这是做的最好的方式?
I have no idea where to start. I tried looking into the "Accept-Languages" header sent by the browser. But is that the best way of doing it?
推荐答案
<一个href=\"http://msdn.microsoft.com/en-us/library/system.web.htt$p$pquest.userlanguages.aspx\">Request.UserLanguages就是你要找的属性。只要记住,此数组可以包含任意的(甚至非exsitent)的语言由请求头设置。
Request.UserLanguages is the property you're looking for. Just keep in mind that this array may contain arbitrary (even non-exsitent) languages as set by request headers.
更新
例如:
// Get Browser languages.
var userLanguages = Request.UserLanguages;
CultureInfo ci;
if (userLanguages.Count() > 0)
{
try
{
ci = new CultureInfo(userLanguages[0]);
}
catch(CultureNotFoundException)
{
ci = CultureInfo.InvariantCulture;
}
}
else
{
ci = CultureInfo.InvariantCulture;
}
// Here CultureInfo should already be set to either user's prefereable language
// or to InvariantCulture if user transmitted invalid culture ID
这篇关于从基于目前的访客,设置资源获取的CultureInfo?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!