当我做普通的PHP时,我只是这样做:
printf(_("Hello %s !"), $name);
现在使用Twig,我必须使用trans标签。所以我复制/粘贴documentation example,这是我的完整模板:
{% extends 'MyAppBundle::layout.html.twig' %}
{% block content %}
<h1>
{% trans %}
Hello {{ name }}!
{% endtrans %}
</h1>
{% endblock %}
为什么Symfony会返回以下内容?
消息必须是“MyAppBundle :: home.html.twig”
中的简单文本500内部服务器错误 - Twig_Error_Syntax
答案 0 :(得分:21)
上一个答案的一个缺失位是替换消息的可变部分所需的“with”部分。
{% trans with {'%name%':name} %}Hello %name%!{% endtrans %}
答案 1 :(得分:11)
在Symfony2中,翻译的精确语法与独立的Twig中的语法略有不同。您需要查看Symfony2文档,了解twig模板中的翻译,找到here。正确的语法看起来像这样:
{% trans %}Hello %name%!{% endtrans %}