可以在Symfony2 + Twig中使用变量进行翻译吗?

时间:2011-10-11 17:58:55

标签: symfony translation twig

第一个输出字符串未翻译:

{{ chart.name~'.short'|trans({}, "charts") }}

这个有效(与chart.name~'.short'应输出的文本相同):

{{ 'charts.region.area.short'|trans({}, "charts") }}

我错过了什么吗?在Twig中翻译动态文本似乎是不可能的吗?

编辑:设置变量(为什么?):

{% set name = chart.name ~ '.short' %}
{{ name|trans({}, "charts") }}

2 个答案:

答案 0 :(得分:27)

Symfony / Twig正试图翻译.short并将其与chart.name的内容连接起来。使用括号来获得预期的输出:

{{ (chart.name~'.short')|trans({}, "charts") }}

答案 1 :(得分:0)

将symfony2多语言用于树枝时,您需要:

设置请求区域设置,这将提供tran twig标记将在其中翻译单词的区域设置。

我所做的是以下内容:

1-控制器部分:

 $this->getRequest()->setLocale('es_AR');   //setting the locale to spanish in Argentina

 return $this->render('LoginLoginBundle:Default:welcome.html.twig');   //render a twig file

2-枝条文件有

<h2>{% trans %} hello {% endtrans %}</h2>

带有twig标签trans的代码,以这种方式使用它或{{“Text”| trans}}因为{%trans hello%}不再起作用

在文件messeges.es.yml中的

3-我得到了

你好:Hola

这是为了翻译

{%trans%} hello {%endtrans%}

中的单词  你可以改变你喜欢的任何一个你好的单词,并在messeges.es.yml文件中更改它,例如:1:如果语言环境设置为西班牙语,Hola会带来Hola,否则会带来1