使用路由进行ASP.NET MVC本地化

时间:2011-10-19 20:19:23

标签: asp.net-mvc localization

我将实现一个支持ASP.NET MVC3的网站,该网站将使用不同语言的多语言(即http://acme.com/en/faqhttp://acme.com/de/faq等)。

this article中概述的方式是否仍然适用于ASP.Net MVC3?

2 个答案:

答案 0 :(得分:3)

我没有使用像博客作者那样的路由处理程序,但这似乎是一个好主意。

我通常只是将语言作为参数添加到路线中。

routes.MapRoute("someroute", "{language}/some/path/{p1}/{p2}",
    new { controller = "SomeController", action = "SomeAction"});

您可以在路由定义上默认语言参数,但我通常在基本控制器上执行此操作,因为我尝试默认使用用户在其浏览器首选项上定义的语言(它来自HTTP请求。)

博客文章中描述的方法的一个警告是改变主要的“CurrentCulture”。您不希望在每个请求上更改主“CurrentCulture”,您只需要更改“CurrentUICulture”。更改主“CurrentCulture”会影响服务器的行为方式。例如,在与数据库交谈时,它将使用用户的文化,这可能不是你想要的。

人们倾向于改变主要的CurrentCulture以获得日期和数字的格式化(这很好)但是没有意识到这样做有一些副作用。您不需要更改主要的CultureThread,而是需要将用户的文化传递给您的数字和格式化功能(例如someDate.ToString(format,culture)

答案 1 :(得分:1)

是的,从路由角度来看,没有任何改变。

相关问题