Я создал приложение 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
В чем проблема?
Извлечен из документации:
Symfony ищет файлы сообщений (т.е. Переводы) в следующих местах:
каталог приложений/ресурсов/переводов;
каталог приложений/ресурсов//;
каталог Resources/translations/внутри любого пакета.
Эти места перечислены здесь с наивысшим приоритетом. То есть вы можете переопределить сообщения трансляции пакета в любом из двух лучших каталогов.
Я думаю, что здесь важная часть - это любой комплект из трех вариантов. Похоже, что Symfony получает перевод с первого пакета (один из двух).
Я бы попробовал это:
app/Resources/CongratBundle/translations
и добавьте его messages.en.yml
app/Resources/MessagingBundle/translations
и добавьте его messages.en.yml
Важно: не забудьте очистить кеш, даже если вы находитесь в среде dev:
php app/console cache:clear
Надеюсь, это решает проблему.