Конфликт перевода между пакетами в формах Symfony

0

Я создал приложение Symfony, и я использую перевод текстов в своем приложении.
Перевод в одном из моих пачек переопределяет все другие пакеты, в то время как перевод специфичен для пакета, и я не использую уровень app ! например, у меня есть эти два CongratBundle именем MessagingBundle & CongratBundle и ключ Title определен в обоих из них следующим образом:

src/ITW/CongratBundle/Resources/translations/messages.en.yml:

...
Title: Congrat Title 
...

src/ITW/MessagingBundle/Resources/translations/messages.en.yml:

...
Title: Message Title 
...

Тем не менее, в MessagingBundle & CongratBundle я получаю Congrat Title когда я использую {{ "Title"|trans }} !!

Я использую Symfony 2.5.6
В чем проблема?

Теги:
translation

1 ответ

2
Лучший ответ

Извлечен из документации:

Symfony ищет файлы сообщений (т.е. Переводы) в следующих местах:

каталог приложений/ресурсов/переводов;

каталог приложений/ресурсов//;

каталог Resources/translations/внутри любого пакета.

Эти места перечислены здесь с наивысшим приоритетом. То есть вы можете переопределить сообщения трансляции пакета в любом из двух лучших каталогов.

Я думаю, что здесь важная часть - это любой комплект из трех вариантов. Похоже, что Symfony получает перевод с первого пакета (один из двух).

Я бы попробовал это:

  • Избавьтесь от каталога переводов в связках.
  • Создайте app/Resources/CongratBundle/translations и добавьте его messages.en.yml
  • Создайте каталог app/Resources/MessagingBundle/translations и добавьте его messages.en.yml

Важно: не забудьте очистить кеш, даже если вы находитесь в среде dev:

php app/console cache:clear

Надеюсь, это решает проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню