目前,我试图启用的Symfony 2.0翻译。 的Symfony是忽略了Accept-Language头变量并使用DEFAULT_LOCALE(并且当没有定义回退)。
我的要求是这样的:
Accept-Language de-DE,de;q=0.8,en-us;q=0.5,en;q=0.3
但是$this->getRequest()->getLocale();
让我en
与同样的要求。
有人能告诉我可能是错的?
是的,我曾尝试以清除缓存并删除了我的饼干(omnomnom):)
这是预期的行为。 Symfony的默认不使用接受语言头,而是依赖于对区域设置symfony的配置。 事实上,它是建议不要使用相同的网址不同地区的内容,请参阅本文档:
Symfony的2书-翻译-区域设置和URL
但是,如果你想忽略这个建议,并使用接受语言头,你可以用这个代码在你的控制器做到这一点:
$request = $this->getRequest();
$session = $this->get('session');
$session->setLocale($request->getPreferredLanguage(array('de', 'en')));
文章来源: Why does Symfony ignore the browsers locale-setting (HTTP-Request Accept-Language Header)?