我应该如何使用ASP.NET MVC路由实现本地化?

时间:2009-03-02 20:45:23

标签: asp.net-mvc localization routing

我正在尝试计划新的ASP.NET MVC站点的未来(几个月之后)本地化。

尝试确定最有意义的事情,就构建URL和路由而言。

例如我应该立即开始:

 http://www.example.com/en/Products/1001
 http://www.example.com/es/Products/1001

或只是

 http://www.example.com/Products/1001

然后再添加其他语言

 http://www.example.com/en/Products/1001

这就是我现在的基本主要问题,试图让路由正确。我希望我的网址可以被搜索引擎正确索引。我甚至不确定我是否需要URL中的语言,但我不认为有一个不会混淆搜索引擎的好选择。

它导致了各种其他问题,比如“我不应该将产品一词本地化”,但是现在我只想在启动英文网站之前获得路由。

2 个答案:

答案 0 :(得分:2)

我和你一样有完全相同的URL_mapping。我的路线也使用约束。 适合我。

   routes.MapRoute(
            // Route name
            "LocalizedController", 
            // URL with parameters                                             
            "{language}/{controller}/{action}",
            // Parameter defaults
            new {
                controller = "Home", action = "Index", 
                language = "de"
            },
              //Parameter constraints
            new { language = @"de|en" }

答案 1 :(得分:1)

我会使用不同的URL方案:

en.mysite.com (English)
mysite.com (default language)
ro.mysite.com (Romanian)

然后我会创建一个自定义路线,如this answer