Домен Symfony 'trans' внутри шаблона Twig - PullRequest
28 голосов
/ 07 октября 2011

Я бы хотел сделать это:

$this->get('translator')->trans('notice.unregistered', array(), 'index');

Внутри шаблона Twig, поэтому мне не нужно передавать это в качестве аргумента.Как?

Ответы [ 3 ]

60 голосов
/ 03 мая 2012

Вы также можете использовать транс-фильтр:

{{ 'translationkey'|trans({},'domain') }}
27 голосов
/ 07 октября 2011

Решение:

{% trans from "domain" %}text{% endtrans %}
5 голосов
/ 27 февраля 2014

Вы можете добавить пользовательские функции для изменения доменов внутри ваших шаблонов.

Добавить свои функции:

$getTextdomain = new Twig_SimpleFunction('get_textdomain', function () {
    return textdomain(NULL);
});
$setTextdomain = new Twig_SimpleFunction('set_textdomain', function ($domain) {
    textdomain($domain);
});

$twig->addFunction($getTextdomain);
$twig->addFunction($setTextdomain);

Затем использовать его:

{% set originalDomain = get_textdomain() %}
{{ set_textdomain('errors') }}
{% trans "My error message" %}
{{ set_textdomain(originalDomain) }}
...