私は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>
。私は何を間違えますか?
小枝の raw フィルターで試してみてください:
{{ '<h3>foo</h3>' | trans | raw }}
ただし、raw
ユーザー入力を処理している場合は、フィルターを使用しないでください。Symfony の作成者によると、クロスサイト スクリプティング攻撃が可能になります。安全だがより面倒な代替手段については、この同様の質問を参照してください。
翻訳者は通常それを壊すため、翻訳で HTML を保持することは間違っています。しかし、本当に必要な場合:
{% trans %}<h3>foo</h3>{% endtrans %}
https://github.com/symfony/symfony/issues/2713#issuecomment-12510417