JMS I18n маршруты переводы игнорируются
Я пытаюсь использовать JMSI18nRoutingBundle для перевода моих маршрутов. Я установил и настроил его так, как показано в документации:
composer.json:
"jms/i18n-routing-bundle": "1.1.*@dev",
AppKernel.php:
new JMS\I18nRoutingBundle\JMSI18nRoutingBundle(),
new JMS\TranslationBundle\JMSTranslationBundle(),
И config.yml:
jms_i18n_routing:
default_locale: %locale%
locales: [en, fr]
catalogue: routes
strategy: custom
Затем я пытаюсь извлечь переводы для маршрутов. Команда, приведенная в документе
php app/console translation:extract fr --enable-extractor=jms_i18n_routing
не работает вообще, но я нашел эту команду в интернете, которая работает лучше:
php app/console translation:extract fr --enable-extractor=jms_i18n_routing --bundle="TeduleCoreBundle" --domain="routes"
При этом переводы извлекаются в routes.fr.yml
файл в AcmeCoreBundle/Resources/translations
, Файл содержит переводы для всех маршрутов во всех локалях, а не только для маршрутов AcmeCoreBundle
в fr
локаль вроде указана в команде, ну да ладно, работает...
Тем не менее, когда я делаю php app/console router:debug
ни один из маршрутов не переведен. Вместо этого я получаю что-то вроде этого:
en_fr__RG__tedule_app_account_profile ANY ANY ANY /myaccount
en__RG__tedule_app_account_profile ANY ANY ANY /myaccount
fr__RG__tedule_app_account_profile ANY ANY ANY /myaccount
en_fr__RG__tedule_app_account_notifications ANY ANY ANY /myaccount/notifications
en__RG__tedule_app_account_notifications ANY ANY ANY /myaccount/notifications
fr__RG__tedule_app_account_notifications ANY ANY ANY /myaccount/notifications
en_fr__RG__tedule_app_account_password ANY ANY ANY /myaccount/password
en__RG__tedule_app_account_password ANY ANY ANY /myaccount/password
fr__RG__tedule_app_account_password ANY ANY ANY /myaccount/password
Как видите, каждый маршрут появляется 3 раза (en_fr, en и fr), и шаблон не переводится в соответствии с тем, что я написал в routes.fr.yml
файл.
Я попытался очистить кеш, поставив routes.fr.yml
файл в app/Resources/translations
, разделяя переводы между двумя файлами routes.fr.yml
а также routes.en.yml
ничего не работает...
1 ответ
Это тоже случается со мной, но я решил это, переместив файлы перевода маршрутов в "app/Resources/translations"
Это работает для меня:
php app/console translation:extract en_US --bundle=MyBundle --enable-extractor=jms_i18n_routing --output-format=xliff --domain=routes --keep --output-dir=app/Resources/translations