Php 如何使用Symfony2转换器翻译细枝模板中的连接字符串

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

我有这样一个翻译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>
但是不能翻译

{{ "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问题,这正是我要找的。非常感谢。你的答案是正确的,但我不得不使用动态字符串,因为在写作时,我无法预测哪一个字符串将被翻译。检查我问题的第一部分。