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

Posted

技术标签:

【中文标题】Symfony 2 URL结构中的可选文化参数?【英文标题】:Optional culture parameter in Symfony 2 URL structure? 【发布时间】:2014-09-26 08:13:30 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

您可以使用传统的 symfony 路由来做到这一点,例如

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

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

     

 

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

但我会推荐 jms 解决方案,因为如果您希望采用这种方法,这将有助于轻松翻译您的页面。

【讨论】:

优秀的捆绑包,刚刚检查过,它完全符合设置所需的 - 策略:prefix_except_default 无忧,乐于助人

以上是关于Symfony 2 URL结构中的可选文化参数?的主要内容,如果未能解决你的问题,请参考以下文章

mod_rewrite 中的可选参数(漂亮的 url)

如何匹配url中的可选参数? [复制]

基于类的视图中的可选 url 参数

烧瓶 add_url_rule 中的可选参数 [重复]

可变参数后元组中的可选函数参数

如何处理 Play 框架中的可选查询参数