我已经在谷歌上搜索了好几个星期了,我找不到一个很好的答案和这种方式来做到这一点。 我有一个使用FOSUserBundle的symfony2应用程序。该应用程序有不同的语言版本。
我想要的是有一种独特的方式来处理区域设置检测。由于它已从会话移至请求,因此我没有看到明确的方法来实现这一点。
步骤a)用户未登录,也许是我们第一次看到它。从请求标头中获取区域设置Accept-Language:en-US,en; q = 0.8,fr; q = 0.6(例如)。为用户提供登录页面的本地化版本
步骤b)用户现在已经登录了。当然我们仍然服务他的是基于相同标题的首选语言到目前为止,我已经使用ResponseListner完成了这项工作,但它似乎不适用于第一个请求,并且在FOSuser登录页面上遇到了麻烦。
非常感谢任何有关样品的帮助。
答案 0 :(得分:2)
LuneticsLocaleBundle非常适合:https://github.com/lunetics/LocaleBundle
它允许您创建自定义Locale Guesser: https://github.com/lunetics/LocaleBundle/blob/master/Resources/doc/guesser.md