2013-03-07 90 views
1

我已经使用Google这几个星期了,我找不到一个很好的答案和uique的方式来做到这一点。 我有一个使用FOSUserBundle的symfony2应用程序。该应用程序可用不同的语言。symfony2:伪区域设置(自动)检测

我想要的是有一个独特的方式来处理区域检测。由于它已从会议转到请求,我没有看到明确的方法来实现这一点。

步骤a)用户未登录,可能是我们第一次看到它。从请求头中接受语言环境Accept-Language:en-US,en; q = 0.8,fr; q = 0.6(例如)。服务于用户登录页面

步骤b)现在用户loggued中的本地化版本。当然,我们还是为他服务是基于相同的标题喜欢的语言

到目前为止,我已经做到了这一点使用ResponseListner但它似乎它不适用于第一个请求,并且在FOSuser登录页面出现问题。

任何样品的帮助将非常感激。

+0

这确实是敞开的。你能告诉我们你正面临的确切问题吗?任何错误消息? – 2013-03-07 19:01:05

+0

没有错误信息。这更多的是关于设计最佳实践的建议 – 2013-03-08 12:15:54

回答

2

LuneticsLocaleBundle是伟大的是:https://github.com/lunetics/LocaleBundle

它允许您创建一个自定义区域设置猜测者: https://github.com/lunetics/LocaleBundle/blob/master/Resources/doc/guesser.md

+0

谢谢@hacfi。这似乎很棒。我会试一试。 – 2013-03-08 12:17:13

+0

我不知道为什么casperOne会将此视为“模糊”。我认为像这样的问题是什么是最先进的做事方式在SO上真的很缺乏。没关系,答案很好,并且帮助我增加了很多这个链接(http://www.developpez.net/forums/d1263289/php/bibliotheques-frameworks/symfony2/doctrine2/fosuserbundle-translate-problem/)。非常感谢hacfi! – 2013-03-12 21:12:53

+0

顺便说一句symfony打破认为是在2.1中工作,并为最终用户的一些理论考虑(语言环境是基于一个uri而不是在一个会议上抱歉的家伙,我们犯了一个错误!!!!) – 2013-03-12 21:14:17