我希望在他登陆我的网站时获取用户区域设置,然后将其粘贴到用户身上(如果他想要更改语言,还要粘贴新用户)。
但我不希望语言环境出现在网址中。
我从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
那么如何获取请求的语言环境(这里是法语)?
提前致谢 朱
答案 0 :(得分:1)
$language = $request->getPreferredLanguage();
$request->setLocale($language);