我在新网站上使用JMSI18nRoutingBundle进行区域设置路由,但我们现有的网站使用以下格式的语言+国家/地区,我需要保持网址的相同。
有没有办法使用配置?如果没有,开始定制的最佳位置在哪里?
答案 0 :(得分:1)
它看起来不可能通过配置完成,但可以通过您自己的实现替换PatternGenerationStrategyInterface的默认实现来完成。
您可以查看捆绑包使用here的默认实施。
创建自己的实现后,只需通过设置config参数使bundle使用您自己的实现。如果您正在使用YAML,例如:
parameters:
jms_i18n_routing.pattern_generation_strategy.class: YourBundle\YourImplementationClass
提示:您基本上可以从默认实施中复制/粘贴,并将line 69更改为使用str_replace('_', '/', $locale)
而不仅仅是$locale
。这样,如果语言环境包含/
,则新生成的路由模式将包含_
。
不是很优雅的解决方案,但很遗憾,捆绑包不能提供足够的配置以使其更漂亮。