symfony 2 の翻訳ファイルで config.yml のグローバル変数を使用することは可能ですか? はいの場合、いくつかの例または有用なリンクを教えてください。
1793 次
2 に答える
3
1 つ (またはすべて) の twig グローバルを翻訳に挿入するには、翻訳サービスをオーバーライドする必要があります。詳細な説明が必要な場合は、この回答を確認してください。これが私がしたことです:
パラメーターをオーバーライドしtranslator.class
ます (例: 内parameters.yml
):
translator.class: Acme\YourBundle\Translation\Translator
新しいTranslator
サービスを作成します。
use Symfony\Bundle\FrameworkBundle\Translation\Translator as BaseTranslator;
class Translator extends BaseTranslator
{
}
最後に と の両方trans
をオーバーライドしtransChoice
ます。
/**
* {@inheritdoc}
*/
public function trans($id, array $parameters = array(), $domain = null, $locale = null)
{
return parent::trans(
$id,
array_merge($this->container->get('twig')->getGlobals(), $parameters),
$domain,
$locale
);
}
/**
* {@inheritdoc}
*/
public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
{
return parent::transChoice(
$id,
$number,
array_merge($this->container->get('twig')->getGlobals(), $parameters),
$domain,
$locale
);
}
この例では、すべてのtwig グローバルを注入しています。次のように 1 つだけ注入できます。
array_merge(['%your_global%' => $this->container->get('twig')->getGlobals()['your_global']], $parameters)
于 2016-01-22T15:42:04.757 に答える