我使用Symfony2.1并使用默认的config.yml
{# but static strings are never escaped #}
{{ '<h3>foo</h3>'|trans }}
但是如果我将其复制并粘贴到我的空模板中(没有任何其他autoescapes或其他)我得到了转义字符串<h3>foo</h3>
。我做错了什么?
答案 0 :(得分:16)
{{ '<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