我在模板中使用了twig trans
标记,我想像这样传递变量:
{% trans with {
'%link_start%': '<a href="http://www.google.nl/">',
'%link_end%': '</a>'
} %}
This %link_start%disclaimer%link_end% applies to all of our messages.
{% endtrans %}
但这给了我以下异常,它指向{% trans with
行的树枝模板:
PHP致命错误:未捕获异常'Twig_Error_Syntax',消息'意外令牌'标点符号“值”{“(”预期语句块结束“)。在[twig-template:line]
中
即使我复制&amp;粘贴Symfony documentation中的示例我得到了相同的异常。所以我不知所措,我在这里做错了什么?
仅供参考:我正在使用Twig 1.33且启用了i18n扩展(我没有使用Symfony框架)
答案 0 :(得分:2)
Twig不支持trans with
开箱即用。它是Symfony翻译扩展的一部分。这就解释了为什么即使官方的Symfony文档也不起作用 - 你没有使用Symfony。
请参阅此问题:https://github.com/twigphp/Twig-extensions/issues/74。 <{3}}支持trans with
,但尚未合并。
您可能希望在应用程序中使用pull request。即使不使用完整的Symfony(Framework)堆栈,也可以在应用程序中使用Symfony组件。
我没有尝试过,但您可以尝试使用Symfony Translation Component。
答案 1 :(得分:0)
作为一种解决方法,您可以将filter
tag与replace
一起使用。
{% filter replace({'%foo%': 'blue', '%bar%': 'red'}) %}
{% trans %}
I like %foo% and %bar% messages.
{% endtrans %}
{% endfilter %}