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
Другие вопросы по тегам