2011-10-18 24 views
8

我在做纯PHP,我只是这样做:用嫩枝的Symfony2 +枝条,在翻译返回变量“的消息必须是一个简单的文本”

printf(_("Hello %s !"), $name); 

现在,我必须使用反式标签。所以我复制/粘贴documentation example,这是我的完整的模板:

{% extends 'MyAppBundle::layout.html.twig' %} 

{% block content %} 
    <h1> 
     {% trans %} 
      Hello {{ name }}! 
     {% endtrans %} 
    </h1> 
{% endblock %} 

为什么Symfony的返回以下exeption?

,邮件必须在 “MyAppBundle :: home.html.twig”

500内部服务器错误一个简单的文本 - Twig_Error_Syntax

回答

11

对翻译的准确语法是有点不同Symfony2比它在独立的Twig中。您需要查看Symfony2文档以获取树枝模板中的翻译,找到here。正确的语法看起来是这样的:与以前的答案

{% trans %}Hello %name%!{% endtrans %} 
+3

嘿谢谢!我也发现这个语法:{{'welcome.message'| trans({'%titre%':name})}} – FMaz008

+0

同样的情况出现在独立的Twig中。这工作,谢谢。 – umpirsky

21

一人失踪位是“有”,即做更换消息的可变部分的所需部分。

{% trans with {'%name%':name} %}Hello %name%!{% endtrans %} 
+4

这应该是选定的答案 – Simon

+0

根据目前的文档,不需要使用'with'部分,请参阅http://symfony.com/doc/current/translation.html#twig-templates – hchr