私はこれをしたいと思います:
$this->get('translator')->trans('notice.unregistered', array(), 'index');
内部Twigテンプレートなので、これを引数として渡す必要はありません。方法は?
解決策は次のとおりです。
{% trans from "domain" %}text{% endtrans %}
トランスフィルターを使用して行うこともできます:
{{ 'translationkey'|trans({},'domain') }}
カスタム関数を追加して、テンプレート内のドメインを変更できます。
関数を追加します。
$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) }}