Symfony2+Twig, переменная в переводе возвращает «сообщение должно быть простым текстом»
Вопрос
Когда я делал простой PHP, я просто делал это:
printf(_("Hello %s !"), $name);
Теперь с Twig я должен использовать Trans Tag. Итак, я копирую/вставьте Пример документации, и вот мой полный шаблон:
{% extends 'MyAppBundle::layout.html.twig' %}
{% block content %}
<h1>
{% trans %}
Hello {{ name }}!
{% endtrans %}
</h1>
{% endblock %}
Почему Symfony возвращает следующую бывшую?
Сообщение должно быть простым текстом в "myappbundle :: home.html.twig"
500 Ошибка внутреннего сервера - TWIG_ERROR_SYNTAX
Решение
Точный синтаксис для переводов немного отличается в Symfony2, чем в автономной веточке. Вы захотите проверить документацию Symfony2 для переводов в шаблонах ветки, найденные здесь. Анкет Правильный синтаксис будет выглядеть примерно так:
{% trans %}Hello %name%!{% endtrans %}
Другие советы
Один недостающий бит с предыдущим ответом - это «с частью», которая необходима для замены переменной части сообщения.
{% trans with {'%name%':name} %}Hello %name%!{% endtrans %}
Не связан с StackOverflow