php – Twig“trans with”无法正常工作

我在模板中使用了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 line的twig模板:

PHP Fatal error: Uncaught exception ‘Twig_Error_Syntax’ with message ‘Unexpected token “punctuation” of value “{” (“end of statement block” expected).’ in [twig-template:line]

即使我复制&粘贴Symfony documentation中的示例我得到了相同的异常.所以我不知所措,我在这里做错了什么?

仅供参考:我正在使用Twig 1.33并启用了i18n扩展(我没有使用Symfony框架)

最佳答案 Twig不支持trans开箱即用.它是Symfony翻译扩展的一部分.这就解释了为什么即使官方的Symfony文档也不起作用 – 你没有使用Symfony.

请参阅此问题:https://github.com/twigphp/Twig-extensions/issues/74.有一个pull request支持trans with,但尚未合并.

您可能希望在应用程序中使用Symfony Translation Component.即使不使用完整的Symfony(Framework)堆栈,也可以在应用程序中使用Symfony组件.

我没试过,但你可以尝试使用jhogervorst/Twi18n.

点赞