Symfony2 + Twig, переменная в переводе возвращает «Сообщение должно быть простым текстом»

Когда я делал простой PHP, я просто делал это:

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

Теперь с Twig я должен использовать тэг trans. Поэтому я скопирую / вставлю пример документации , и вот мой полный шаблон:

 {% extends 'MyAppBundle::layout.html.twig' %} {% block content %} <h1> {% trans %} Hello {{ name }}! {% endtrans %} </h1> {% endblock %} 

Почему Symfony возвращает следующее освобождение?

Сообщение должно быть простым текстом в «MyAppBundle :: home.html.twig»

500 Внутренняя ошибка сервера – Twig_Error_Syntax

Точный синтаксис для переводов немного отличается в Symfony2, чем в автономном Twig. Вы захотите ознакомиться с документацией Symfony2 для переводов в шаблонах twig, найденных здесь . Правильный синтаксис будет выглядеть примерно так:

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

Один недостающий бит с предыдущим ответом – это часть «с», необходимая для замены переменной части сообщения.

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