gpt4 book ai didi

Symfony2 错误的语言环境检测?

转载 作者:行者123 更新时间:2023-12-04 02:06:03 27 4
gpt4 key购买 nike

遵循 Symfony2 指南关于 translation我发现从 http header (存储在 $this->get('session')->getLocale() 中)推断的语言环境是错误的(发送 it ,推断 en ):

Host localhost User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 Accept text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language it-it,it;q=0.8,en-us;q=0.5,en;q=0.3



这是正常行为吗?或者我应该设置一些东西以使本地化开箱即用?

最佳答案

我今天仔细查看了代码,因为我遇到了和你一样的问题,而且语言似乎来自 Session::getLocale() .但是 Symfony2 从不调用 Session::setLocale() ,并设置 locale Session成员(member)目的。谷歌搜索“symfony2 session setlocale”导致 this § of the documentation

所以我最终把这条线放在我正在处理的 Controller 的顶部,它起作用了:

$this->getRequest()->getSession()->setLocale(
$this->getRequest()->getPreferredLanguage());

现在我想这是 Not Acceptable ,因为您不会将它添加到每个 Controller 之上。另外,这不应该对每个请求都这样做,它应该只对第一个请求进行,当用户还没有 session 时。如果有人知道如何做到这一点,请随时编辑此答案。

关于Symfony2 错误的语言环境检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com