symfony2:伪语言环境(自动)检测

时间:2013-03-07 18:32:38

标签: symfony fosuserbundle

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

我想要的是有一种独特的方式来处理区域设置检测。由于它已从会话移至请求,因此我没有看到明确的方法来实现这一点。

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

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

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

非常感谢任何有关样品的帮助。

1 个答案:

答案 0 :(得分:2)

LuneticsLocaleBundle非常适合:https://github.com/lunetics/LocaleBundle

它允许您创建自定义Locale Guesser: https://github.com/lunetics/LocaleBundle/blob/master/Resources/doc/guesser.md