我刚开始使用symfony我正在尝试构建一个multilang网站,但是我有一个问题需要更改语言环境
我阅读了一些帖子,我阅读了有关此内容的文档但是语言环境没有改变,我尝试:
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));
}
Run Code Online (Sandbox Code Playgroud)
但是$ 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));
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,$ locale是fr,但翻译始终来自messages.en.yml
我想第一次使用$ _SERVER ['HTTP_ACCEPT_LANGUAGE']检测用户区域设置,也许在每个页面实现时使用一个列表器?
然后我将创建一个路由来更改区域设置
但我想找到一种方法来改变语言环境.
谢谢你的帮助