symfony を始めたばかりで、多言語の Web サイトを構築しようとしていますが、ロケールを変更するのに問題があります
いくつかの投稿を読み、これに関するドキュメントを読みましたが、ロケールは変更されません。試してみます:
public function indexAction()
{
$this->get('session')->set('_locale', 'fr');
$request = $this->getRequest();
$locale = $request->getLocale();
return $this->render('PhoneMainBundle:Default:index.html.twig',array('locale'=>$locale));
}
ただし、$locale の値は常に「en」です (私のデフォルトのロケール)
私もやってみる
public function indexAction()
{
$this->get('session')->set('_locale', 'fr');
$request = $this->getRequest();
$request->setLocale('fr');
$locale = $request->getLocale();
return $this->render('PhoneMainBundle:Default:index.html.twig',array('locale'=>$locale));
}
この場合、$locale は fr ですが、翻訳は常に messages.en.yml から行われます。
$_SERVER['HTTP_ACCEPT_LANGUAGE'] を使用して初めてユーザー ロケールを検出したいのですが、おそらく各ページの実現でリスナーを使用していますか?
そして、ロケールを変更するルートを作成した後
しかし、ロケールを変更する方法を見つけたいと思います。
ご協力いただきありがとうございます