trans twig过滤器中的Symfony2 HTML

时间:2012-11-22 05:47:06

标签: symfony translation twig

我使用Symfony2.1并使用默认的config.yml

Documentation said

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

但是如果我将其复制并粘贴到我的空模板中(没有任何其他autoescapes或其他)我得到了转义字符串<h3>foo</h3>。我做错了什么?

2 个答案:

答案 0 :(得分:16)

使用twig raw filter

进行尝试
{{ '<h3>foo</h3>' | trans | raw }}

但是,如果您正在处理任何用户输入,请不要使用raw过滤器!它允许跨站点脚本攻击,according to the creators of Symfony。请参阅this similar question以获得安全但更乏味的替代方案。

答案 1 :(得分:1)

在翻译中保留HTML内容是错误的,因为翻译人员通常会破坏它。但如果你真的需要它:

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

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