交响乐 3 | JMSi18nRoutingBundle 不转换路由

Symfony 3 | JMSi18nRoutingBundle doesn't translate routes

伙计们,我使用的是 BeSimplei18nRoutingBundle,但也使用了一些 JMS 包,所以我希望所有包都是 JMS 包并将其更改为 JMSi18nRoutingBundle。现在我的基于语言环境的路由工作正常,但我无法翻译它们。到处寻找,无法 create/find 解决方案。

首先,我安装了 JMS 的路由和转换包。添加到 AppKernel。

之后,将路由配置添加到config.yml文件:

jms_i18n_routing:
    default_locale: tr
    locales: [tr, en]
    strategy: prefix_except_default

然后,添加 2 条路由到 routing.yml 文件:

homepage:
    path:     /
    defaults: { _controller: AppBundle:Default:index }
    options: { i18n: true }

secondpage:
    path:     /ikincisayfa
    defaults: { _controller: AppBundle:Default:secondPage }
    options: { i18n: true }

之后,我在控制台上提取了 en 语言环境的翻译文件:

php bin/console translation:extract en --bundle=AppBundle --enable-extractor=jms_i18n_routing --output-format=yml --exclude-dir=cache --exclude-dir=data --exclude-dir=logs --exclude-dir=Tests --exclude-dir=Service --output-dir="app/Resources/translations"

并将ikincisayfa翻译成secondpage:

# Desc: /
homepage: /

# Desc: /ikincisayfa
secondpage: /secondpage

但是当我 运行 php bin/console debug:router 这里是输出;没有发生翻译:

  tr__RG__homepage           ANY      ANY      ANY    /                                  
  en__RG__homepage           ANY      ANY      ANY    /en/                               
  tr__RG__secondpage         ANY      ANY      ANY    /ikincisayfa                       
  en__RG__secondpage         ANY      ANY      ANY    /en/ikincisayfa 

尝试清除缓存,重新提取翻译但没有成功..有人能告诉我哪里做错了吗..谢谢。

好的,我找到了问题.. 我没有删除 routing.yml 文件中由 symfony 创建的路由:

app:
    resource: '@AppBundle/Controller/'
    type: annotation

看来,这导致了 Symfony 的路由和 JMS 的路由之间的冲突。我希望 JMS 的文档也有这些信息。