交响乐 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 的文档也有这些信息。
伙计们,我使用的是 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 的文档也有这些信息。