2015-01-11 51 views
0

我創建了一個Symfony應用程序&我在我的應用程序中使用了文本翻譯。
我的一個捆綁包中的翻譯覆蓋了所有其他捆綁包,而翻譯是捆綁包特定的&我沒有使用app級別! 比如我有一個名爲MessagingBundle & CongratBundle &這兩捆Title關鍵是他們兩人的定義是這樣的:Symfony形式的包之間的翻譯衝突

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
什麼問題?

回答

2

documentation提取:

Symfony的查找在以下 位置消息文件(即翻譯):

的應用程序/資源/翻譯目錄;

app/Resources //翻譯目錄;

任何捆綁的資源/翻譯/目錄內。

這裏列出的地點的優先級最高。 是,您可以覆蓋頂部2個目錄中任何一個 中的一個包的翻譯消息。

我認爲這裏的重要組成部分,是選項三者的任意捆綁。看起來Symfony正在從第一個包(兩個之一)獲取翻譯。

我想試試這個:

  • 獲取包內擺脫翻譯目錄。
  • 創建app/Resources/CongratBundle/translations目錄,並添加其messages.en.yml
  • 創建app/Resources/MessagingBundle/translations目錄,並添加其messages.en.yml

重要:不要忘記清除,即使你在開發環境是高速緩存:

php app/console cache:clear 

希望能解決這個問題。