Возможен ли перевод с использованием переменных в Symfony2 + Twig? - PullRequest
7 голосов
/ 11 октября 2011

Первый вывод строки не переведен:

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

Этот работает (это тот же текст, который должен выводить chart.name~'.short'):

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

Я что-то упустил? Кажется, невозможно перевести динамический текст в Twig?

РЕДАКТИРОВАТЬ : рабочая установка переменной (почему?):

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

Ответы [ 2 ]

27 голосов
/ 12 октября 2011

Symfony / Twig пытается перевести .short и объединить его с содержимым chart.name.Используйте скобки, чтобы получить ожидаемый результат:

{{ (chart.name~'.short')|trans({}, "charts") }}
0 голосов
/ 17 мая 2013

при использовании мультиязычности с symfony2 в ветке вам необходимо:

Установить языковой стандарт запроса, это даст языковой стандарт, в который тег trans 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>

с тегом ветки trans, используйте его следующим образомили {{"Text" | trans}} потому что {% trans hello%} больше не работает

3- в файле messeges.es.yml Я получил

hello: Hola

Это делается для того, чтобы перевести слово в

{% trans%} hello {% endtrans%}

, вы можете изменить слово hello на любое, которое вам нравится, и изменить его нафайл messeges.es.yml, пример: 1: Hola принесет Hola, если локаль установлена ​​на испанский, иначе принесет 1
...