Twigテンプレートシステムを使用して電子メールのテンプレートを作成したいと考えています。電子メールのロケールは、セッションまたは要求ロケールからではなく、ユーザー設定に基づいている必要があります。 Twigテンプレートをレンダリングするとき、どのようにロケールを強制できますか?Twigロケールを強制する
マニュアルにはどのように言及していますかto force the locale for the Translator。しかし、私はこのロケールをrender()メソッドに渡して、このロケールでレンダリングされる小枝テンプレート内の翻訳を持たせたいと思います。
これはテンプレート内でにを使用しているのとは異なります。これは、特定のロケールでテンプレート内で強制的に翻訳が行われると思うからです。
ので、symfonyのから例を取って、私はこのような何かを探しています:
はpublic function indexAction($name)
{
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('[email protected]')
->setTo('[email protected]')
->setBody(
$this->renderView(
'HelloBundle:Hello:email.txt.twig',
array('name' => $name),
'nl_NL' // <-- This would be nice!
)
)
;
$this->get('mailer')->send($message);
return $this->render(...);
}
はい、テンプレートは{%trans%}ブロックに対してこのロケールを自動的に使用するとは思われません。 – rolandow
いいえ、トランスフィルターは、 '{{" Hello "| trans({}、" messages "、locale}}}'を使用するロケールを強制的に使用できますが、トランスレータコンポーネントはリクエストで定義されたロケールを自動的に使用します$ this-> get( 'translator') - > setLocale($ locale); ' –