我采取的方法是这样的:
在翻译文件中:
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>
我不确定这是否可以使用您上面提到的块语法来完成,因为我发现它不起作用,除非我通过“原始”过滤器传输翻译结果。我还使用消息域来拆分翻译,因此使用了“帐户”参数。
我认为最接近你的例子是:
<p>{{ 'Please read our %link_start%privacy policy%link_end%' | trans({'%link_start%' : '<a href="'~path('privacy-policy')~'">', '%link_end%' : '</a>'}) | raw }}</p>
编辑:
我遇到的这种方法的唯一问题是我需要在单元测试中以编程方式跟踪翻译的链接,因为没有一个翻译代表链接文本。虽然很混乱,但我认为可以通过为链接文本提供单独的翻译并将其翻译后的值作为附加变量替换为全文来解决这个问题。