未检索到用户的Symfony2语言环境

时间:2013-09-30 22:27:40

标签: symfony internationalization request locale

我希望在他登陆我的网站时获取用户区域设置,然后将其粘贴到用户身上(如果他想要更改语言,还要粘贴新用户)。

但我不希望语​​言环境出现在网址中。

我从Symfony2 doc实现了LocaleListener,但我可以在第一次请求时获取用户默认语言环境。

这个请求没有给我任何答复:

 $locale = $this->getRequest()->attributes->get('_locale');
 $locale = $this->getRequest()->get('_locale');

虽然

$this->getRequest()

有效发送

GET /Twinkler1.2.3/web/app_dev.php/ HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 Cache-Control: max-age=0 Connection: keep-alive Cookie: __uvt=; PHPSESSID=f28e3958ecab05fe97d6fc6950eb72ec; SQLiteManager_currentLangue=2 Host: localhost:8888 Referer: http://localhost:8888/Twinkler1.2.3/web/app_dev.php/login User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36 X-Php-Ob-Level: 0

那么如何获取请求的语言环境(这里是法语)?

提前致谢 朱

1 个答案:

答案 0 :(得分:1)

$language = $request->getPreferredLanguage();
$request->setLocale($language);
相关问题