В Symfony/Twig я мог использовать теги, используя проценты в моем переведенном блоке. Например:
Hello {{nickname}}
станет
{% trans %}Hello %nickname%{% endtrans %}
Это работает, как и ожидалось. Массив с заполнителями, который я передаю в Twig, автоматически сопоставляется с %placeHolder%. Никаких дополнительных работ. Итак, это работает с моим PHP-массивом из контроллера:
Array('nickname' => 'rolandow')
Когда я хочу использовать псевдоним внутри блока перевода, все, что мне нужно сделать, это окружить его процентами %. К сожалению, это не работает, когда я передаю его trans.
Теперь я хотел бы перевести целый блок текста, используя теги. Я не могу понять, как я могу использовать теги в своем переводе. Итак, моя ветка будет выглядеть примерно так:
{{ say.hello|trans }}
И мой фрагмент перевода
<trans-unit id="1">
<source>say.hello</source>
<target>Hello %nickName%, how are you doing today? lots-of-text-here</target>
</trans-unit>
Я заработал, используя это в своем шаблоне, но мне кажется, что нужно делать что-то дважды. Теперь мне нужно снова поместить массив заполнителей в функцию trans. Например:
{{ say.hello|trans('%nickName%' : nickName) }}
Если я хочу использовать другие теги, которые даны twig в моем контроллере, мне также нужно передать их транслятору. Разве я не могу как-то просто передать полный массив?
$tags = array('%nickname%'=>'luke'), в своем контроллере? Если это так, вы можете просто сделать{{ say.hello|trans(tags) }}- person Luke   schedule 05.04.2013tags, используя ключевое слово Twigset. - person eagleoneraptor   schedule 05.04.2013