Php Symfony2+;细枝,翻译中的变量返回“;信息必须是简单的文本;

Php Symfony2+;细枝,翻译中的变量返回“;信息必须是简单的文本;,php,symfony,twig,Php,Symfony,Twig,当我在做普通PHP时,我只是在做: printf(_("Hello %s !"), $name); 现在对于Twig,我必须使用trans标记。我已经复制/粘贴了,下面是我的完整模板: {% extends 'MyAppBundle::layout.html.twig' %} {% block content %} <h1> {% trans %} Hello {{ name }}! {% endtrans %}

当我在做普通PHP时,我只是在做:

printf(_("Hello %s !"), $name);
现在对于Twig,我必须使用trans标记。我已经复制/粘贴了,下面是我的完整模板:

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

{% block content %}
    <h1>
        {% trans %}
            Hello {{ name }}!
        {% endtrans %}
    </h1>
{% endblock %}
{%extends'MyAppBundle::layout.html.twig%}
{%block content%}
{%trans%}
你好{{name}}!
{%endtrans%}
{%endblock%}
为什么Symfony返回以下exeption

消息必须是“MyAppBundle::home.html.twig”中的简单文本

500内部服务器错误-细枝错误语法


Symfony2中翻译的精确语法与独立Twig中的略有不同。您将要查看Symfony2文档,以获取twig模板中的翻译。正确的语法如下所示:

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

前面答案中缺少的一位是替换消息可变部分所需的“with”部分

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

嘿,谢谢!我还发现了以下语法:{{'welcome.message'| trans({'%titre%':name}}}}这应该是所选的答案根据当前文档,不需要将
部分一起使用,请参见