2017-04-08 63 views
3

我用我的模板树枝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 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的例子中,我得到了同样的异常。所以我不知所措,我在这里做错了什么?

FYI:我使用的嫩枝1.33对国际化扩展启用(和我不使用Symfony框架)

回答

2

枝杈不支持trans with开箱。它是Symfony翻译扩展的一部分。这就解释了为什么即使官方Symfony文档不起作用 - 您也没有使用Symfony。

查看本期:https://github.com/twigphp/Twig-extensions/issues/74。有一个pull request来支持trans with,但它没有被合并。

您可能想在应用程序中使用Symfony Translation Component。即使不使用完整的Symfony(框架)堆栈,您也可以在应用程序中使用Symfony组件。

我还没有尝试过,但您可以尝试使用jhogervorst/Twi18n来代替。

+0

好的,这解释了官方枝条网站上丢失的文档页面。但是,谢谢你的回答!我想我会使用SF翻译组件,因为它比jhogeverst的Twi18n更新得更频繁。 –

0

作为解决方法,您可以使用filter tagreplace

{% filter replace({'%foo%': 'blue', '%bar%': 'red'}) %} 
    {% trans %} 
    I like %foo% and %bar% messages. 
    {% endtrans %} 
{% endfilter %}