私が取ったアプローチはこれです:
翻訳ファイル:
page.privacy.policy: Please read our %link_start%privacy policy%link_end%
小枝ファイルで:
<p>{{ 'page.privacy.policy' | trans({'%link_start%' : '<a href="'~path('privacy-policy')~'">', '%link_end%' : '</a>'}, 'account') | raw }}</p>
上記のブロック構文を使用してこれを実行できるかどうかはわかりません。変換の結果を「生」フィルターにパイプしない限り機能しないことがわかったからです。また、メッセージ ドメインを使用して翻訳を分割しているため、'account' パラメータを使用しています。
あなたの例に最も近いのは次のようになると思います:
<p>{{ 'Please read our %link_start%privacy policy%link_end%' | trans({'%link_start%' : '<a href="'~path('privacy-policy')~'">', '%link_end%' : '</a>'}) | raw }}</p>
編集:
私が遭遇したこのアプローチの唯一の問題は、リンクテキストを表す単一の翻訳がないため、単体テストで翻訳されたリンクをプログラムでたどる必要がある場所です。面倒ですが、リンクテキストに別の翻訳を提供し、翻訳された値を追加の変数として全文に置き換えることで、これを回避できると思います。