在 Symfony2 中翻译路由本身



我目前正在我的 Symfony2 项目中使用 JMSI18nRoutingBundle,到目前为止它工作正常,但我还需要翻译路由本身的能力,例如:

英语路线

/en/my-route/whatever/XXX

西班牙语路线

/es/mi-ruta/lo-que-sea/XXX

总而言之,我需要能够在控制器中定义以下内容:

/**
 * @Route("route.my_route/route.whatever/XXX")
 */

其中route.my_route来自翻译文件的消息:

消息.en.yml

route:
    my_route: my-route

消息.es.yml

route:
    my_route: mi-ruta

有谁知道这个捆绑包是否可以做到这一点?如果没有,有没有其他方法可以达到预期的效果?

为了自我回答这个问题,我最终创建了自己的捆绑包来处理这种特殊情况。现在我可以使用特殊的[]表示法翻译路线,如下所示:

/**
 * @Route("[route.my_route]/[route.whatever]/XXX")
 */

如果您碰巧遇到同样的问题,这里是捆绑包的链接。希望你觉得有用:

https://github.com/albertofem/TranslatableRoutePathBundle

最新更新