Symfony 2 URL结构中的可选文化参数?

时间:2014-09-26 08:13:30

标签: symfony routing internationalization routes culture

我的Symfony 2应用程序存在内部化问题。在旧版网站URL结构中,默认文化是“en”,并且有许多翻译版本的网站,但对于英文版本,culture参数从URL中删除,如下所示:

/search - the culture "/en" is dropped
/fr/search - "/fr" is available
/es/search - likewise

我正在尝试在应用中创建路由,但我似乎找不到使URL的“/ en”部分可选的解决方案。

我检查了文档,但它似乎没有选项。是否可以通过标准Symfony配置或我应该为此做一个自定义路由器?

1 个答案:

答案 0 :(得分:2)

我建议您查看https://github.com/schmittjoh/JMSI18nRoutingBundle

基本上,这将允许您根据所选国家/地区国际化您的路线。

您可以使用传统的symfony路由执行此操作,例如

 /**
 * @Route("/{country}")
 */
 Class Something {

     /**
     *@Route("/search"), name="search"
     */
     public function searchAction(){

     }

 }

{country}参数将成为动态路由路径的一部分。

但我建议使用jms解决方案,因为如果您希望采用这种方法,这将有助于翻译您的页面。