Php 如何使用Symfony2转换器翻译细枝模板中的连接字符串
我有这样一个翻译yml文件:Php 如何使用Symfony2转换器翻译细枝模板中的连接字符串,php,symfony,twig,translation,Php,Symfony,Twig,Translation,我有这样一个翻译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(domai
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>
但是不能翻译
{{ "hello.world" | trans(domain='mydomain') }}
{{ "hello." ~ "world" | trans(domain='mydomain') }}
它是一个关联数组,对吗?然后您应该在key=>value对上循环
<select name="tag" required="required">
{% for key,tag in tag_list %}
<option value="{{ key }}">{{ tag | trans(domain='mydomain') }}</option>
{% endfor %}
</select>
{%用于键,标记在标记列表%}
{{tag | trans(domain='mydomain')}
{%endfor%}
或者您的阵列更深:
<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>
{标记列表%中的标记的%
{%为键,标记%中的值}
{{value}trans(domain='mydomain')}
{%endfor%}
{%endfor%}
解决方案是将字符串放入括号中,如下所述:
有效:
{{ 'hello.world' | trans }}
{{ 'hello.' ~ 'world' | trans }}
{{ ('hello.' ~ 'world') | trans }}
不起作用:
{{ 'hello.world' | trans }}
{{ 'hello.' ~ 'world' | trans }}
{{ ('hello.' ~ 'world') | trans }}
有效:
{{ 'hello.world' | trans }}
{{ 'hello.' ~ 'world' | trans }}
{{ ('hello.' ~ 'world') | trans }}
要转换联系人字符串,您必须执行以下操作: {{(“某个字符串”~entity.type~“另一个字符串”)| trans} 但请尝试编写字符串以像参数一样进行翻译: 例如: 一些有趣的字符串
不,这不是我真正想要的。我对数组的键或值没有任何问题。将串接字符串与
trans
filter一起使用是有问题的。我已经更新了答案,看看是否是这样。看起来像是XY问题,这正是我要找的。非常感谢。你的答案是正确的,但我不得不使用动态字符串,因为在写作时,我无法预测哪一个字符串将被翻译。检查我问题的第一部分。