从基于目前的访客,设置资源获取的CultureInfo? [英] Get CultureInfo from current visitor and setting resources based on that?

查看:130
本文介绍了从基于目前的访客,设置资源获取的CultureInfo?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何(在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆