在Twig中将变量转换为字符串

时间:2014-07-23 09:15:35

标签: symfony twig

我在Twig中翻译字符串时遇到了麻烦。我正在为多语种网店建立一个主题。

用户可以创建USP(唯一卖点)。问题是当你有不同的语言时,它不会翻译。

所以在模板{{ theme.usp }}中像这样调用usp 结果就是例如"免费送货"。

要翻译系统中的字符串,您必须使用{{ 'Free shipping' | t }}过滤器。

有没有办法让{{ theme.usp }}翻译。我认为这会很有用,但我不知道如何融入它。 How to concatenate strings in twig

我做的是:

{% set usp = {{ theme.usp }} %}
{{ usp | t }}

这样做会给我一个错误,因为{{ theme.usp }}必须介于''之间。这样做不会给我'Free shipping'作为结果,但'theme.usp'

有人提出建议吗?

3 个答案:

答案 0 :(得分:10)

尝试:

{{ theme.usp|trans }}

或者必须按t过滤

{{ theme.usp|t  }}

答案 1 :(得分:6)

简单的方法是使用一个过滤器(最后是PHP函数),它只返回PHP文档中的字符串。

例如,我在选择(SELECT / OPTION)表单类型中显式设置值时出现问题,因为它需要一个字符串,但我得到一个int作为值。我只是这样做了:

{{ form_widget(form.scope, {'value': scope|trim}) }}

scope是int,但trim(和其他PHP函数,这里作为Twig过滤器)自动使它成为一个字符串。是的,它是Symfony2中的另一个缺失的功能,顺便说一句。

答案 2 :(得分:-1)

尝试一下

{{ usp|print_r }}

对我有用。