2013-02-21 65 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>