2

我有一个 Web 应用程序,它使用本地化来为我们的法裔加拿大客户显示英语或法语。

根据用户的区域设置,它工作得很好。但是,如果用户的区域设置设置为法语,我们需要允许用户切换回英语。

如果他愿意,是否可以覆盖用户的区域设置?如果是这样...我将如何编码?(例如,在布局页面上有一个显示英语的链接,单击此链接会将其改回英文或改回法文)

此外,我正在使用资源文件来保存文本字符串并使用相同的视图集。

4

2 回答 2

1

在他们单击按钮选择语言后,在您的代码中的某处:

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);
    }
}
于 2012-11-14T17:35:22.283 回答
0

是的,这是可能的,但我目前无法访问我最近处理的代码,我们允许用户更改他们当前的渲染区域。

这是一篇博客文章,其中详细介绍了如何执行此操作。他有一篇较旧的帖子,我相信它使用 MVC3,然后这个较新的帖子是从 MVC4 的角度编写的,所以这应该让您有所了解。

我希望它有帮助:

http://geekswithblogs.net/shaunxu/archive/2012/09/04/localization-in-asp.net-mvc-ndash-upgraded.aspx

于 2012-11-14T17:36:04.077 回答