3

言語を切り替えるのに役立つバンドルhttps://github.com/lunetics/LocaleBundleをインストールしました。すべてが正常に機能します。小枝では、翻訳は正常に機能します。しかし、コントローラーでメッセージを翻訳したい場合、定義された言語(たとえば、en)の代わりにフランス語(fr)を取得します。

コントローラで現在選択されているロケールを取得するにはどうすればよいですか?

私は使用します:$this->getRequest()->getLocale()しかし、それは機能しません、それは私にそれぞれの文化のためのFRを与えます。

parameter.iniのデフォルト設定言語はFRです

4

1 に答える 1

0

LuneticsLocaleBundle と Symfony 2.1 ドキュメントのコードを調べたところ、symfony2.1 がルートでロケールを渡していることがわかりました。この問題は、symfony が nes リクエストを作成する twig テンプレートからアクションをレンダリングするときに存在します。したがって、これを解決するために、LuneticsLocaleBundle のコードをオーバーライドし$this->get('session')->set('_locale', $_locale);、バンドルの LocaleController の switchAction に追加しました。

したがって、ロケールはセッションに保存されます。

それがあなたにも役立つことを願っています。

于 2013-02-05T23:10:18.813 に答える