我有一个像这样的翻译yml文件:
tag:
myfirsttag: Tag number one
secondtag: Tag number two
....
和twig模板一样
<select name="tag" required="required">
{% for tag in tag_list %}
<option value="{{ tag }}">{{ "tag." ~ tag | trans(domain='mydomain') }}</option>
{% endfor %}
</select>
所以这就是问题所在。 select中的项目呈现为&#34; tag.myfirsttag&#34; ,未翻译。如果我用"tag." ~ tag
之类的硬编码字符串替换"tag.myfirsttag"
,则效果很好。所以很明显它与串联有关,但官方文档并没有说出任何关于它的内容。
更清晰简单
我可以翻译
{{ "hello.world" | trans(domain='mydomain') }}
但无法翻译
{{ "hello." ~ "world" | trans(domain='mydomain') }}
答案 0 :(得分:35)
解决方案是将字符串放入括号中,如here所述:
<强>如下:强>
{{ 'hello.world' | trans }}
不起作用:
{{ 'hello.' ~ 'world' | trans }}
<强>如下:强>
{{ ('hello.' ~ 'world') | trans }}
答案 1 :(得分:2)
翻译你必须做的事情的联系人字符串:
{{(“some string”~entity.type~“another string”)| trans}}
但是尝试编写字符串来翻译像params: 例如:
some.funny.string
答案 2 :(得分:0)
它是一个关联数组,对吧?然后你应该循环key =&gt;值对
<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>