我刚刚开始本地化的ASP.NET MVC应用程序。 大部分的字符串将在资源文件中定义,并通过检索马特的本地化助手 。 其他字符串必须存储在数据库中。
我的问题:我应该设置CurrentUICulture
在请求管道早期和使用,在整个申请,或直接使用Request.UserLanguages[0]
每当需要的?
现在, 我想我应该设置CurrentUICulture
中的Application_BeginRequest。 实施将是这个样子:
protected void Application_BeginRequest(object sender, EventArgs e)
{
var cultureName = HttpContext.Current.Request.UserLanguages[0];
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
}
这是设置的最佳场所CurrentUICulture
并Request.UserLanguages[0]
来获取信息的最佳地点?
更新:
Ariel的帖子显示这可以在没有代码来定义,使用web.config
<system.web>
<!--If enableClientBasedCulture is true, ASP.NET can set the UI culture and culture for a Web page automatically, based on the values that are sent by a browser.-->
<globalization enableClientBasedCulture="true" culture="auto:en-US" uiCulture="auto:en"/>