【问题标题】:Controller's actions names localization控制器的动作名称本地化
【发布时间】:2008-11-24 22:27:37
【问题描述】:

我遇到了一个问题。 我想在我的项目中本地化我的动作名称,以便法国人可以使用带有法语名称的干净网址。

http://www.test.com/Home 应该是http://www.test.com/Accueil

这对谷歌索引也是一件好事。 此外,我想在应用程序上保持安静,所以我也想保留英文名称,因为开发人员(甚至是法国人)更喜欢使用英文名称。

我不知道这是否可能以及如何。

我的第一个想法应该是获取浏览器语言,将其分配给 CurrentThread.CurrentCulture,这样我就可以选择我想要的视图名称。

非常感谢您的回答。

【问题讨论】:

    标签: asp.net asp.net-mvc localization


    【解决方案1】:

    您可以在 global.asax 中注册路由时执行此操作。

    如果你通常有这个:

    routes.MapRoute("Catalog-Brands", "catalog/brand/", new {controller = "Brand", action = "Index", isActive = true});
    

    你也可以做这个(我不懂法语,抱歉)

    routes.MapRoute("Catalog-Brands-French", "french-catalog/french-brand/", new {controller = "Brand", action = "Index", isActive = true});
    

    您可以使它们全部在全球范围内可用,也可以单独设置:

    public static void RegisterUsRoutes
    
    public static void RegisterFrenchRoutes
    

    您必须在应用程序启动时做出决定(您可能会也可能无法在运行时注册路由。)

    【讨论】:

      【解决方案2】:

      如果你可以使用ISAPIs,也就是说,如果你控制IIS,最好的办法是使用ISAPI我推荐你Ionics Isapi: http://www.codeplex.com/IIRF

      它或多或少地实现了 Apache 中的 Rewrite mod 所做的(重定向)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-17
        • 1970-01-01
        • 2023-04-09
        • 2010-12-31
        • 2014-09-05
        • 2014-09-03
        • 2010-11-17
        相关资源
        最近更新 更多