【问题标题】:How to localize the Controller names and actions in an ASP.NET MVC application?如何本地化 ASP.NET MVC 应用程序中的控制器名称和操作?
【发布时间】:2010-11-24 21:37:56
【问题描述】:

我想完全本地化我的 ASP.NET MVC 应用程序,虽然有很多文章处理 ASP.NET MVC 本地化的各种缺陷,但没有一篇涉及我想要处理的方面,这就是 URL 的本地化,包括控制器名称和操作。

我想要一种方法来指定应该出现的字符串,而不是 URL 中的控制器名称和操作名称,例如在资源文件中。

这如何以合理的方式可行?提前感谢您的帮助!

编辑:
我仍在寻找一种方法来做到这一点。欢迎任何帮助。
是否有任何框架或库已经实现了这一点?

【问题讨论】:

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


    【解决方案1】:

    我以前从未这样做过,但是您不能为您想要支持的每种语言在路由表中添加一个条目吗?所有本地化路线都可以重定向到您选择的语言的路线。查看这些相关问题:

    Multi-lingual websites with ASP.NET MVC

    How should I implement localization with ASP.NET MVC routes?

    【讨论】:

    • 谢谢,这是唯一真正有用的答案。 :)
    【解决方案2】:

    简短回答:不要。

    URL 应该是通用的,因此是区域不变的。这就是我们不支持在模型绑定期间本地化控制器、操作或查询字符串值的原因。

    【讨论】:

    • 那么 URL 绝对不是语言环境不变的。对于说英语的人来说,他们可能看起来如此,但在说英语不那么普遍的地区,本地化 URL 可能是相关的。
    • 仅仅因为你可以做某事,并不意味着你应该做某事。 URL 中的规范化和不变性是重要的原则,不能轻易抛弃。
    • 对不起,布拉德,但我不同意,URL 应该是资源定位器,所以如果资源是西班牙语,你需要一个 url,如果资源是英文,你需要另一个,这些是不变的,但在不同的语言.
    • 为这个问题添加另一个维度,在 URL 结构中包含区域设置对于 SEO 很重要。
    【解决方案3】:

    看看这个简单的解决方案:

    Translating routes (ASP.NET MVC and Webforms)

    你也可以试试我刚刚发现的很棒的AttributeRouting 项目!您可以通过NuGet获取。

    【讨论】:

      【解决方案4】:

      考虑到您在本地化操作和控制器名称时还没有完成。 您仍然需要本地化任何路由参数。这对枚举来说尤其痛苦。

      即 www.seller.com/catalogue/list/winterclothing www.seller.com/catalogue/list/summerclothing 其中winterclothingsummerclothing 将是枚举。

      我会说:有可能但不可行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多