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

StackOverflow https://stackoverflow.com/questions/7811162

  •  26-10-2019
  •  | 
  •  

Вопрос

Когда я делал простой 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 %}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top