拥有多语言网站的最佳和优化方式是什么?

时间:2013-09-25 18:03:01

标签: c# asp.net-mvc-4 culture

我想知道从谷歌翻译API使用或拥有这样的网址更好:

  

/example.com/en/page/show

并使用url中提到的语言生成带有大量if的视图? 或者是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

如果您想支持多种语言,一种方法是使用资源文件,而不是对页面上的任何字符串/资源进行硬编码,请使用资源表示。

通过这种方式,您可以轻松添加新语言,翻译等等......

关于它所依赖的URL,通过URL设置它是一种方式,你也可以使用cookie ..

您可以在当前线程上设置CurrentUICulture,所有资源检索方法和/或字符串操作实际上都支持您指定要使用的CultureInfo。它应该采用当前线程中自动设置的文化。

例如,你可以把这样的东西放到你的global.asax

void context_BeginRequest(object sender, EventArgs e)
{
    // eat the cookie (if any) and set the culture
    if (HttpContext.Current.Request.Cookies["lang"] != null)
    {
        HttpCookie cookie = HttpContext.Current.Request.Cookies["lang"];
        string lang = cookie.Value;
        var culture = new System.Globalization.CultureInfo(lang);
        Thread.CurrentThread.CurrentCulture = culture;
        Thread.CurrentThread.CurrentUICulture = culture;
    }
}

或者,如果您使用MVC,您的路由配置可能包含该语言,您可以使用URL路由来设置语言而不是cookie ...

所以这只是一个例子,我建议你在google上找到更多的例子,找出解决问题的最佳方法。