Symfony形式的捆绑之间的翻译冲突

时间:2015-01-11 13:59:25

标签: php symfony translation

我创建了一个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当我使用Congrat Title !!

时,我收到{{ "Title"|trans }}

我正在使用Symfony 2.5.6
有什么问题?

1 个答案:

答案 0 :(得分:2)

摘自documentation

  

Symfony在下面查找消息文件(即翻译)   位置:

     

app / Resources / translations目录;

     

app / Resources //翻译目录;

     

任何捆绑包内的Resources / translations /目录。

     

此处列出的位置优先级最高。那   是的,你可以覆盖任何一个包的翻译消息   前2个目录。

我认为这里的重要部分是选项三的任意捆绑。看起来Symfony正在从第一个捆绑中获取翻译(两个中的一个)。

我会试试这个:

  • 摆脱捆绑包中的翻译目录。
  • 创建app/Resources/CongratBundle/translations目录并添加其messages.en.yml
  • 创建app/Resources/MessagingBundle/translations目录并添加其messages.en.yml

重要:即使您处于开发环境中,也不要忘记清除缓存:

php app/console cache:clear

希望这能解决问题。