我在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'
。
有人提出建议吗?
答案 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 }}
对我有用。