gpt4 book ai didi

symfony - 在 Twig 模板的翻译内容中添加链接

转载 作者:行者123 更新时间:2023-12-03 11:09:21 25 4
gpt4 key购买 nike

在 Twig 模板中,我需要一个包含链接的翻译文本(路径应该由路由器生成,而不是静态嵌入)。
Twig 不允许在 trans block 内呈现变量 - 我也知道以下几点:

{% trans with {'%name%': 'Fabien'} from "app" %}
Hello %name%
{% endtrans %}

但我看不到如何使用它在翻译中注入(inject)这样的片段
<a href="{{ path('privacy') }}">privacy policy</a>

(当然, anchor 文本也应该翻译)

最佳答案

我采取的方法是这样的:

在翻译文件中:

page.privacy.policy: Please read our %link_start%privacy policy%link_end%

在 Twig 文件中:
<p>{{ 'page.privacy.policy' | trans({'%link_start%' : '<a href="'~path('privacy-policy')~'">', '%link_end%' : '</a>'}, 'account') | raw }}</p>

我不确定这是否可以使用您上面提到的 block 语法来完成,因为我发现它不起作用,除非我通过“原始”过滤器传输翻译结果。此外,我使用消息域来拆分翻译,因此使用了“帐户”参数。

我认为最接近你的例子是:
<p>{{ 'Please read our %link_start%privacy policy%link_end%' | trans({'%link_start%' : '<a href="'~path('privacy-policy')~'">', '%link_end%' : '</a>'}) | raw }}</p>

编辑:

我遇到的这种方法的唯一问题是我需要在单元测试中以编程方式跟踪翻译的链接,因为没有一个翻译代表链接文本。虽然很困惑,但我认为可以通过为链接文本提供单独的翻译并将其翻译后的值作为附加变量替换为全文来解决这个问题。

关于symfony - 在 Twig 模板的翻译内容中添加链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11545459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com