私は自分のアプリケーションの翻訳に取り組んできました。データベースから翻訳を取り出してカタログに追加しました。 symfony内ですべて動作しますが、たとえば$translator->trans('TEST_TRANSLATION')
という変換をエコーすると、正しい値が返されます。私は翻訳が正しいと思います。私のTwigテンプレートでSymfony Translatorを使用するには?
今私は{%trans%}タグでの翻訳をサポートするテンプレートエンジンとしてTwigを使用します。悲しいことに、翻訳者の変数からの翻訳は、Twigやグーグルでかなりの間働くことはできません。私は実際の解決策を見つけることができません。
私は$twig->addExtension()
を使って拡張機能を追加することについて何かを読んだことがありますが、それを動作させることはできません。
誰かが正しい方向で私を指すことができたり、翻訳者を{%trans%}タグでどのように使用するかについてより明確な説明を提供していただければ幸いです。
ありがとうございます。
編集:ここで私はトランスレータを作成するために使用するコントローラーからのコードです:エコー使用している場合
$this->translator = new Translator('en');
$this->translator->addLoader('array', new ArrayLoader());
$this->translator->addResource('array', $translations, 'en');
echo $this->translator->trans('TEST_TRANSLATION');
$翻訳変数は翻訳を持つ配列が含まれていますが、それは正しく与えられた変換を示しています。 <p>{% trans %}TEST_TRANSLATION{% endtrans %}</p>
を使用している場合、この翻訳者をTwigで動作させるにはどうすればよいですか?
編集2:私は過去1,5時間であらゆる種類のものを試してきましたが、何も動作しません。次のように私はこれを行う、小枝テンプレートのレンダリング機能のための配列に翻訳を与えることにその変数をアクセスもするように私にできることが、しかし私を見出した:
return $this->render('test/transTest.html.twig', array('translator'=>$this->translator));
私は上記を使用している場合は、私が翻訳にアクセスすることができます実行して、小枝内の変数:
<p>{{ translator.trans('TEST_TRANSLATION') }}</p>
を<p>{{ translator.locale }}</p>
を使用しても、私に権利ロケール情報を提供します。
私は翻訳が間違っていないことを確信していますが、私が取り組んでいるサイトでは、Twigの翻訳で{%trans%}を使用しています。 。どんな助けでも大歓迎です。
に助言を参照してください?トランスフィルターに '{{app.request.locale}}' – martin
が正しく設定されていることを確認してください。 {{'' TEST_TRANSLATION '| trans}} – Matteo
{%trans%}タグと{{' TEST_TRANSLATION '| trans}}の両方を試しましたが、ロケールも正しいです。 Twigがコントローラで作成したトランスレータクラスにアクセスできないようです。私はTwig内のコントローラで作成したトランスレータを使用する方法を探しています。 – user2467128