我创建了一个Symfony应用程序,我正在我的应用程序中对文本使用翻译。
我的一个捆绑包中的翻译覆盖了所有其他捆绑包,而翻译是特定于捆绑包的,我没有使用 app
级别!例如,我有这两个名为 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
中,当我使用{{ "Title"|trans }}
时,我都会Congrat Title
!
我正在使用Symfony 2.5.6
问题出在哪里?
摘自文档:
Symfony在下面寻找消息文件(即翻译) 地点:
应用程序/资源/翻译目录;
应用程序/资源//翻译目录;
任何捆绑包中的资源/翻译/目录。
此处以最高优先级列出的位置。那 是的,您可以在任何 前 2 个目录。
我认为这里重要的部分是选项三的任何捆绑包。看起来Symfony正在从第一个捆绑包(两个捆绑包之一)获得翻译。
我会试试这个:
- 摆脱捆绑包中的翻译目录。
- 创建
app/Resources/CongratBundle/translations
目录并添加其messages.en.yml
- 创建
app/Resources/MessagingBundle/translations
目录并添加其messages.en.yml
重要提示:即使您处于开发环境中,也不要忘记清除缓存:
php app/console cache:clear
希望这能解决问题。