[英]How to translate concatenated string in twig template using Symfony2 translator
我有一个翻译yml文件,如下所示:
tag:
myfirsttag: Tag number one
secondtag: Tag number two
....
和树枝模板一样
<select name="tag" required="required">
{% for tag in tag_list %}
<option value="{{ tag }}">{{ "tag." ~ tag | trans(domain='mydomain') }}</option>
{% endfor %}
</select>
所以这就是问题所在。 select中的项目呈现为“tag.myfirsttag” ,未翻译。 如果我替换"tag." ~ tag
"tag." ~ tag
硬编码字符串,如"tag.myfirsttag"
它运作良好。 显然它与连接有关,但官方文档没有说明任何内容。
要更加清晰和简单
我可以翻译
{{ "hello.world" | trans(domain='mydomain') }}
但无法翻译
{{ "hello." ~ "world" | trans(domain='mydomain') }}
解决的办法是把串入括号描述在这里 :
作品:
{{ 'hello.world' | trans }}
不起作用:
{{ 'hello.' ~ 'world' | trans }}
作品:
{{ ('hello.' ~ 'world') | trans }}
翻译你必须做的事情的联系人字符串:
{{(“some string”~entity.type~“另一个字符串”)| trans}}
但是尝试编写字符串来翻译像params:例如:
some.funny.string
它是一个关联数组,对吧? 然后你应该循环key => value对
<select name="tag" required="required">
{% for key,tag in tag_list %}
<option value="{{ key }}">{{ tag | trans(domain='mydomain') }}</option>
{% endfor %}
</select>
或者你的阵列更深入:
<select name="tag" required="required">
{% for tag in tag_list %}
{% for key,value in tag %}
<option value="{{ key }}">{{ value | trans(domain='mydomain') }}</option>
{% endfor %}
{% endfor %}
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.