2013-03-07 69 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