0

我想在他登陆我的网站时获取用户区域设置,然后将其粘贴给用户(如果他想更改语言,也粘贴新的)。

但是我不希望语​​言环境出现在 url 中。

我从 Symfony2 文档中实现了 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

那么我怎样才能获得请求的语言环境(这里是法语)?

在此先感谢朱尔斯

4

1 回答 1

1
$language = $request->getPreferredLanguage();
$request->setLocale($language);
于 2013-09-30T22:34:13.423 回答