0

彼が私のWebサイトにアクセスしたときにユーザーロケールを取得し、それをユーザーに貼り付けたいです(言語を変更したい場合は、新しいロケールも貼り付けます)。

それでも、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 に答える