2012-08-27 9 views
14

मैं वर्तमान में सिम्फनी 2.0 में अनुवादक को सक्षम करने की कोशिश कर रहा हूं। सिम्फनी स्वीकार्य-भाषा शीर्षलेख चर को अनदेखा कर रहा है और डिफ़ॉल्ट_लोकेल का उपयोग कर रहा है (और जब इसे फ़ॉलबैक परिभाषित नहीं किया जाता है)।सिम्फनी ब्राउज़र लोकेल-सेटिंग (HTTP-Request Accept-Language Header) को अनदेखा क्यों करता है?

Accept-Language de-DE,de;q=0.8,en-us;q=0.5,en;q=0.3 

लेकिन $this->getRequest()->getLocale(); मुझे है कि एक ही अनुरोध के साथ en हो जाता है: जैसे

मेरा अनुरोध लग रहा है।

क्या कोई मुझे बता सकता है कि क्या गलत हो सकता है?

हाँ, मैं कैश को साफ़ करने की कोशिश की और मेरी कुकीज़ (omnomnom) :)

उत्तर

19

को हटाने यह अपेक्षित व्यवहार है। सिम्फनी डिफ़ॉल्ट रूप से स्वीकृति भाषा शीर्षलेख का उपयोग नहीं करता है और इसके बजाय लोकेल सेटिंग्स के लिए सिम्फनी कॉन्फ़िगरेशन पर निर्भर करता है।

Symfony 2 The Book - Translations - The Locale and the URL

लेकिन अगर आप इस सलाह पर ध्यान न दें और स्वीकार करें भाषा हैडर उपयोग करना चाहते हैं, तो आप यह कर सकते हैं: वास्तव में, यह, विभिन्न स्थानों में सामग्री के लिए एक ही URL का उपयोग इस दस्तावेज़ को देखने के लिए नहीं की सलाह दी है इस कोड के साथ आपके नियंत्रक में:

$request = $this->getRequest(); 
$session = $this->get('session'); 

$session->setLocale($request->getPreferredLanguage(array('de', 'en'))); 
+2

क्या प्रत्येक नियंत्रक में वास्तव में प्रत्येक नियंत्रक में इसे लिखने के बिना उस कोड को निष्पादित करने की संभावना है? मेरा मतलब यह सिर्फ एक बार लिखने के साथ है? – Senad

+1

आप kernel.request ईवेंट के लिए श्रोता लिख ​​सकते हैं और वहां कर सकते हैं। –

+0

धन्यवाद ... मैं पहले से ही इसमें हूं :) – Senad

संबंधित मुद्दे