symfony2:伪区域设置(自动)检测

symfony2:伪区域设置(自动)检测,symfony,fosuserbundle,Symfony,Fosuserbundle,我已经在谷歌上搜索了好几个星期了,但我找不到一个好的答案,也找不到一个好的方法来做这件事。 我有一个使用FOSUserBundle的symfony2应用程序。该应用程序有不同的语言版本 我希望有一种独特的方法来处理现场检测。由于它已从会话转移到请求,我看不到实现这一点的明确方法 步骤a)用户未登录,可能是我们第一次看到它。从请求头接受语言获取区域设置:en US,en;q=0.8,fr;q=0.6(例如)。为用户提供登录页面的本地化版本 步骤b)用户现在已登录。当然,我们仍然为他服务是基于相同标

我已经在谷歌上搜索了好几个星期了,但我找不到一个好的答案,也找不到一个好的方法来做这件事。 我有一个使用FOSUserBundle的symfony2应用程序。该应用程序有不同的语言版本

我希望有一种独特的方法来处理现场检测。由于它已从会话转移到请求,我看不到实现这一点的明确方法

步骤a)用户未登录,可能是我们第一次看到它。从请求头接受语言获取区域设置:en US,en;q=0.8,fr;q=0.6(例如)。为用户提供登录页面的本地化版本

步骤b)用户现在已登录。当然,我们仍然为他服务是基于相同标题的首选语言

到目前为止,我已经使用ResponseListner完成了这项工作,但它似乎不适用于第一个请求,并且在FOSuser登录页面上有问题


非常感谢您对样品的任何帮助。

LuneticsLocalebund非常适合:

它允许您创建自定义区域设置猜测器:

这是一个非常开放的领域。你能告诉我们你面临的确切问题吗?有错误消息吗?没有错误消息。这更多的是关于设计最佳实践的建议谢谢@hacfi。看起来很棒。我会试试看。我不知道为什么casperOne会以“含糊不清”来结束这篇文章。我认为像这样的问题,比如什么是最先进的做事方式,在这方面确实是缺乏的。尽管答案很好,但它为我添加了很多链接()。非常感谢hacfi!顺便说一句,symfony打破了我们在2.1中工作的想法,最终用户出于某种理论考虑(语言环境基于一个uri,而不是一个会话对不起,伙计们,我们犯了一个错误!!!!)