我使用 Symfony2.1 并拥有默认的 config.yml
文档说:
{# but static strings are never escaped #}
{{ '<h3>foo</h3>'|trans }}
但是,如果我将它复制并粘贴到我的空模板中(没有任何额外的自动转义或其他),我得到了转义字符串<h3>foo</h3>
。我做错了什么?
我使用 Symfony2.1 并拥有默认的 config.yml
文档说:
{# but static strings are never escaped #}
{{ '<h3>foo</h3>'|trans }}
但是,如果我将它复制并粘贴到我的空模板中(没有任何额外的自动转义或其他),我得到了转义字符串<h3>foo</h3>
。我做错了什么?
尝试使用twig raw 过滤器:
{{ '<h3>foo</h3>' | trans | raw }}
raw
但是,如果您正在处理任何用户输入,请不要使用过滤器!据Symfony 的创建者称,它允许跨站点脚本攻击。有关安全但更繁琐的替代方案,请参阅此类似问题。
在翻译中保留 HTML 内容是错误的,因为翻译人员通常会破坏它。但如果你真的需要它:
{% trans %}<h3>foo</h3>{% endtrans %}
https://github.com/symfony/symfony/issues/2713#issuecomment-12510417