我有一个 Web 应用程序,它使用本地化来为我们的法裔加拿大客户显示英语或法语。
根据用户的区域设置,它工作得很好。但是,如果用户的区域设置设置为法语,我们需要允许用户切换回英语。
如果他愿意,是否可以覆盖用户的区域设置?如果是这样...我将如何编码?(例如,在布局页面上有一个显示英语的链接,单击此链接会将其改回英文或改回法文)
此外,我正在使用资源文件来保存文本字符串并使用相同的视图集。
我有一个 Web 应用程序,它使用本地化来为我们的法裔加拿大客户显示英语或法语。
根据用户的区域设置,它工作得很好。但是,如果用户的区域设置设置为法语,我们需要允许用户切换回英语。
如果他愿意,是否可以覆盖用户的区域设置?如果是这样...我将如何编码?(例如,在布局页面上有一个显示英语的链接,单击此链接会将其改回英文或改回法文)
此外,我正在使用资源文件来保存文本字符串并使用相同的视图集。
在他们单击按钮选择语言后,在您的代码中的某处:
Session["customLocalization"] = "de-DE"; //Or whatever language
在您的 Global.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