Laravel 资源控制器的语言

Posted

技术标签:

【中文标题】Laravel 资源控制器的语言【英文标题】:Language of Laravel Resource Controller 【发布时间】:2016-04-29 23:30:27 【问题描述】:

我来自荷兰,我正在使用荷兰语的 Laravel 5.2 创建一个网站。我希望能够使用带有荷兰名称的Route::resource('test', 'testController') 作为控制器的方法。所以基本上我想更改以下动作名称:

    /index 变为 /thuis /create 变成 /maken /store 变成 /opslaan ...

等等..

这可能吗?我该怎么做?我不想为每一个可能的动作创建一个单一的路线。 提前致谢!

【问题讨论】:

如果你能有点耐心......这太有趣了,因为现在我正在为此构建一个包!我也是荷兰人。使用该软件包,您可以像这样使用它:TranslatableRoute::resource('recipe', 'recepten', 'RecipeController'); 唯一的问题是我使用与普通资源路由相同的路由结构,因此 /index 仍然只是 / 并且 store 也只是 /。只有创建和编辑变成“nieuw”和“wijzig” @TimvanUum 太棒了!完成后请联系我 :-) 你所做的足以满足我的需要,只是为了让网站的客户能够理解 URL。不过方法可以是英文的,没关系。 如果您访问 webchat.freenode.net 并添加“translatableroute”作为频道,我们可以更轻松地交谈。 几乎完成了,在自动加载包时遇到了一些问题。 @Helix 【参考方案1】:

我认为方法和路由的命名必须是英文的,这样你的代码才能被世界上的其他开发者阅读。

使用通用语言更容易进行贡献和调试。

【讨论】:

所以您希望不会说英语的人的网址中包含“创建”和“编辑”字样? 是的,使用英语更符合惯例。我是法国人,一开始我使用法语来命名方法和路线。这种方法的问题是代码不是传统的,因此所有其他开发人员都无法阅读。如果您编写要共享或发布的包,其他不讲您的特定语言的开发人员将无法正确理解您的代码。贡献,声明问题非常有限,......用英语学习和编写代码是更容易的解决方案。此外,Composer 和 laravel 所需的开发工具都是用英文编写的。只翻译内容 @chalasr 使用特定语言的 url 完全没问题。这对 SEO 来说甚至更好。但确实,方法名称和编码应该是英文的。 可能是英文代码,但面向用户的网址应该有意义。【参考方案2】:

我的包裹可以使用了。只需按照说明进行操作。不要忘记将您的语言环境设置为 nl 或将来设置为另一种语言。

https://github.com/doitonlinemedia/TranslatableRoutes

你可以像这样调用资源路由:

TranslatableRoute::resource('recipe', 'recepten', 'RecipeController');

其中第二个参数是翻译后的名称,第一个参数定义您的路线名称。

另见:https://codeneverlied.com/translatable-resource-routes-in-laravel/

【讨论】:

以上是关于Laravel 资源控制器的语言的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中为资源控制器添加新方法

如何使用更新资源控制器 laravel 4?

用于 API 和非 API 的 Laravel 资源控制器

Laravel - 如何通过资源路由将变量传递给控制器​​?

Laravel 4:如何为嵌套资源编写正确的嵌套控制器?

Laravel 5.7 使用某些命名空间的资源控制器路由名称是啥?