【问题标题】:How should I implement localization with ASP.NET MVC routes?我应该如何使用 ASP.NET MVC 路由实现本地化?
【发布时间】:2010-10-10 20:59:34
【问题描述】:

我正在尝试为新的 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 可以被搜索引擎正确索引。我什至不确定我是否要在 URL 中使用语言,但我认为没有一个不会混淆搜索引擎的好选择。

它会导致各种其他问题,例如“我是否应该本地化产品这个词”,但现在我只想在启动英文网站之前确定路由。

【问题讨论】:

标签: asp.net-mvc localization routing


【解决方案1】:

我会像这样使用不同的 URL 方案:

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

等等

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

【讨论】:

    【解决方案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" }
    

    【讨论】:

    • 所以您选择包含语言,即使是英语。只是为了方便?
    • 我的默认语言是德语。如果您看到第一页,则您的 URL 中没有该语言。但隐含地你会得到德语。只要您使用操作链接或发布到操作,您就会在 URL 中获得语言。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    相关资源
    最近更新 更多