【问题标题】:asp.net mvc where to set default culture?asp.net mvc 在哪里设置默认文化?
【发布时间】:2015-09-16 07:51:29
【问题描述】:

对于多语言的asp.net mvc 网站。

我应该在哪里将线程的文化设置为默认语言(在我的情况下是 tr-TR),此外,如果它不存在,我需要将其保存在 cookie 中。在 Application_Start() 或其他?

我有多个站点(域),所以我需要更改站点特定的默认语言。

 example.com must set default culture to tr-TR
 example2.com must set default culture to en-US

【问题讨论】:

    标签: asp.net-mvc multilingual culture


    【解决方案1】:

    尝试在 web.config 中设置

    <configuration>
        <system.web>
            <globalization uiCulture="en-GB" culture="en-GB" />
        </system.web>
    </configuration>
    

    这是一种更通用的设置文化的方式...

    【讨论】:

    • 为了使其更通用,您可以使用它来自动检测浏览器的文化:
    • 我需要根据站点(域)设置默认文化,那么在 webconfig 中设置文化是否正确?我更新了上面的问题。
    • 我不是很确定,但是有一种简单的方法可以在 Routeconfig 类 foreach 中添加路由(在 routes.Cast().Where(route => route.GetType( ) == typeof(MultiLingualRoute))) { route.Url = "{language}/" + route.Url; route.Defaults.Add("language", "YOUR-DEFAULT"); } 这可能会给你一个提示。
    【解决方案2】:

    您可以在 Application_AcquireRequestState 中设置区域性:

    protected void Application_AcquireRequestState(object sender, EventArgs e)
    {
        // A Cookie
        string cookie = HttpContext.Current.Request.Cookies["culture"].Value;
    
        Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(cookie);
        Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(cookie);
    }
    

    你也可以访问这个link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 2011-09-04
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      相关资源
      最近更新 更多