28

私はこれをしたい:

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

Twigテンプレート内なので、これを引数として渡す必要はありません。どのように?

4

3 に答える 3

65

トランスフィルターを使用して行うこともできます:

{{ 'translationkey'|trans({},'domain') }}
于 2012-05-03T04:15:41.010 に答える
28

解決策は次のとおりです。

{% trans from "domain" %}text{% endtrans %}
于 2011-10-07T16:47:02.717 に答える
5

テンプレート内のドメインを変更するカスタム関数を追加できます。

関数を追加します。

$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) }}
于 2014-02-26T20:37:42.213 に答える