2013-09-30 2 views
0

Я хочу получить пользовательский язык, когда он приземлится на моем сайте, а затем привяжет его к пользователю (также придерживайтесь нового, если он хочет изменить язык).Symfony2 locale пользователя не получен

Однако я не хочу, чтобы языковой стандарт отображался в URL-адресе.

Я реализовал LocaleListener из документа Symfony2, но я могу получить локальную локаль пользователя по первому запросу.

Этот запрос не дает мне ничего для ответа:

$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
$language = $request->getPreferredLanguage(); 
$request->setLocale($language); 
+0

спасибо, это будет действительно дать мне что-нибудь, но всегда язык по умолчанию устанавливается в parameters.yml, не мое реальное локаль. –

+0

Хорошо, обновил мой ответ, надеюсь, что это работает. –

+0

Да, это работает! Thanks –

Смежные вопросы