1

我的控制器名称应该使用我的母语还是英文?当前的最佳实践是什么?如果是英语,我如何确保网址保持在我的母语中?

我知道我的 webapp 不会是多语言的,我宁愿不写很多样板。

4

6 回答 6

2

ASP.NET MVC 中的约定是控制器和操作名称与 URI 中的控制器和操作名称相同,除非在特殊情况下,如模棱两可的重载。我认为遵循该约定是一个好主意,即使这意味着控制器和操作名称将使用您的母语,而其余代码将使用英语。如果我被要求调试一个网站,该网站以某种我不懂的语言(如斯瓦希里语)显示,我会发现如果它们反映了斯瓦希里语 URI,则为某个页面找到适当的控制器和操作要容易得多。被翻译成英文。

但是请注意,大多数 Unicode 字符不能出现在 URI 中(没有Punycode)。只有 ASCII 字符的受限子集可以出现在 URI 中。有关详细信息,请参阅规范

于 2009-04-07T11:39:12.000 回答
2

从 SEO 的角度来看,我认为在 MVC 站点所基于的控制器/视图/操作上使用相同的语言是一个很好的标准。

在我的情况下,我有一些基于我的母语瑞典语的网站,为了获得最佳的搜索引擎优化页面排名,当我将控制器/视图/操作命名为网站上的内容语言时,我使用相同的语言。

在控制器/视图/操作中,我总是使用英语作为编码和评论语言。

我不知道这是否是最好的方法,但如果您关心搜索引擎优化页面排名,感觉这是一个很好的模式。

于 2009-08-04T07:22:15.093 回答
1

您可以用任何语言(UTF-8)编写控制器和控制器的方法名称,这不是问题。对于只支持一种语言的网站应该没问题。

于 2009-04-07T11:35:44.550 回答
1

这是您的应用程序,所以当然是您的选择,但如果您有本地语言 URI,那么我也会选择本地语言控制器和操作名称,以确保一致性和易用性。

Jeff Atwood 写了一篇关于软件开发和英语的有趣帖子(我不确定我是否同意,但它很有趣且相关)。它不会回答你的问题,但值得一读。

于 2009-04-07T11:40:59.170 回答
0

如果您要让一个国际团队查看您的代码,那么请使用英文名称。如果您要自己完成所有工作,或者让当地人说语言,那么您可以使用当地语言命名。

但请记住,命名约定是针对英语而不是针对当地语言的。所以这是个问题。

于 2009-04-07T11:56:41.753 回答
0

我的意见可能是尝试在 global.asax 中按语言显式加载路由定义。

常量字符串 DEFAULT_LANGUAGE = "en";

routes.MapRoute("Product_EN", "en/Product/{action}", new { controller="Product", action="Index"} );

routes.MapRoute("Product_FR", "fr/Produit/{action}", new { controller="Product", action="Index"} );

routes.MapRoute("Product_ES", "es/Produto/{action}", new { controller="Product", action="Index"} );

route.MapRoute("Default", "{language}/{controller}/{action}/{id}", new { language = DEFAULT_LANGUAGE, controller="Home", action="Index", id=""}) ;

注意:这些是示例,您应该从全局资源中检索翻译后的名称。

但是随后我们被迫在您的视图中引用正确的路由名称以使用 RouteActions。无论如何,这是一种解决方法,但允许您将 URL 翻译到您的网站中,例如:

www.mysite.com/produit/afficher www.mysite.com/product/show ...

我希望它有帮助,干杯

弗雷德。

于 2009-04-09T13:44:26.363 回答