2013-02-21 68 views
6

我試圖通過樹枝訪問翻譯。在symfony2中的樹枝內翻譯郵件

例如,我有我的申請,我Resources/translations/messages.de.ymlResources/translations/messages.en.yml

我的控制器內的名字確實只有一個渲染樹枝文件。

我的樹枝文件裏面我要訪問到(陽明),這是郵件文件中定義的application.name財產

如何訪問此屬性,以獲取應用程序的名稱(比方說它包含了一些特定語言信息)

我嘗試這些方法,並未能:

  • {{ application.name }}
    • 看起來更像是已經通過控制器發送變量,我得到一個錯誤,該變量「應用」未找到
  • {% trans% } application.name {% endtrans %}
    • 顯示application.name
  • {% trans% } 'application.name' {% endtrans %}
    • 顯示 'application.name'
+0

你能告訴我們你的'messages.en.yml'的內容嗎? – Touki 2013-02-21 17:33:47

回答

19

藉助內嵌的符號,你應該使用過濾器:

{{ 'application.name'|trans }} 

隨着trans標籤,我認爲問題的空格周圍application.name

+0

不要忘記提及(我知道沒有問,但只是給出了最好的答案),如果消息沒有在默認域中定義,那麼翻譯是通過{{'application.name'| (我不知道爲什麼):framework.translator:{fallback:%locale%{}}'domain')}} – Axxiss 2013-02-21 21:00:04

+0

謝謝,不知何故,我也在app/config/config.yml文件中註釋掉了這個(我不知道爲什麼) } – eav 2013-02-25 07:58:03

-1
{% trans% }app.name{% endtrans %} 

在你messages.en.yml

<trans-unit id="app.name" resname="app.name"> 
    <source>My app</source> 
    <target>My app</target> 
    </trans-unit> 

在您的郵件中發現

<trans-unit id="app.name" resname="app.name"> 
    <source>My app</source> 
    <target>Meine App</target> 
    </trans-unit>