Подтвердить что ты не робот

Symfony2 HTML в фильтре трансверса

Я использую Symfony2.1 и имею по умолчанию config.yml

Документация указана:

  {# but static strings are never escaped #}
  {{ '<h3>foo</h3>'|trans }}

Но если я скопирую и вставим его в мой пустой шаблон (без каких-либо дополнительных автоаршрутов или другого), я получил строку с экранированием <h3>foo</h3>. Что я делаю неправильно?

4b9b3361

Ответ 1

Попробуйте использовать фильтр ветки ветки:

{{ '<h3>foo</h3>' | trans | raw }}

Однако не используйте фильтр raw, если вы обрабатываете любой пользовательский ввод! Это позволяет использовать атаки с использованием межсайтовых скриптов, в соответствии с создателями Symfony. См. этот аналогичный вопрос для безопасной, но более утомительной альтернативы.

Ответ 2

Удержание HTML-материала в переводах неверно, потому что переводчики обычно нарушают его. Но если вам это действительно нужно:

{% trans %}<h3>foo</h3>{% endtrans %}

https://github.com/symfony/symfony/issues/2713#issuecomment-12510417