symfony2.1のWebサイトで言語スイッチャーを使用しようとしています。
私は公式ドキュメントに従い、翻訳ファイルを設定しましたが、ロケールを$ request-> setLocale('en_US');で設定しました。動作しないようです。いくつかの調査の後、私はこのリスナーテクニックで答えの始まりを提供するこの質問を見つけました。
しかし、私はまだそれを機能させることができません、私は私のリスナー宣言についてよくわかりません、それは何か問題がありますか?
私のコントローラー:
public function englishAction(Request $request)
{
$this->get('session')->set('_locale', 'en_US');
return $this->redirect($request->headers->get('referer'));
}
config.ymlでのサービス宣言:
services:
my_listener:
class: "FK\MyWebsiteBundle\Listener\LocaleListener"
私のルーティング:
homepage:
pattern: /{_locale}
defaults: { _controller: FKMyWebsiteBundle:Default:index, _locale: en }
requirements:
_locale: en|fr|cn
about:
pattern: /{_locale}/about
defaults: { _controller: FKMyWebsiteBundle:Default:about, _locale: en }
requirements:
_locale: en|fr|cn