我有一个使用本地化为我们的加拿大法语客户显示英语或法语的 Web 应用程序。
根据用户区域设置,它工作正常。但是,如果用户的区域设置设置为法语,我们需要允许用户切换回英语。
如果他愿意,是否可以覆盖用户区域设置? 如果是这样...我将如何编码?(例如,在布局页面上有一个显示英语的链接,单击此链接会将其更改回英语或法语)
此外,我正在使用资源文件来保存文本字符串并使用同一组视图。
在他们单击按钮选择语言后,代码中的某个位置:
Session["customLocalization"] = "de-DE"; //Or whatever language
在你的全球.asax
protected void Application_BeginRequest(object sender, EventArgs e)
{
String sessionOverrideLocale;
if (HttpContext.Current != null && HttpContext.Current.Session != null)
{
sessionOverrideLocal = (String) HttpContext.Current.Session["customLocalization"];
}
if (sessionOverrideLocale != null)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sessionOverrideLocale);
Thread.CurrentThread.CurrentCulture = new CultureInfo(sessionOverrideLocale);
}
}
是的,这是可能的,但我目前无法访问我最近处理的代码,我们允许用户更改其当前渲染区域。
这是一篇博客文章,详细介绍了如何执行此操作。 他有一篇较旧的帖子,我相信它使用了 MVC3,然后这个较新的帖子是从 MVC4 的角度编写的,所以这应该涵盖您。
我希望它有帮助:
http://geekswithblogs.net/shaunxu/archive/2012/09/04/localization-in-asp.net-mvc-ndash-upgraded.aspx