2013-06-12 6 views
6

मैं वर्तमान में एक Magento दुकान स्थापित कर रहा हूं जो कुछ अलग-अलग भाषाओं का समर्थन करेगा।विभिन्न भाषा के लिए अलग-अलग यूआरएल कुंजी सीएमएस पेज

एक मुद्दा जो मैंने भाग लिया था वह यह है कि मैं यह नहीं समझ सकता कि दो सीएमएस पृष्ठों को एक साथ कैसे लिंक किया जाए, ताकि जब कोई उपयोगकर्ता अपनी भाषा स्विच कर लेता है, तो वे स्वचालित रूप से वर्तमान सीएमएस पृष्ठ पर अग्रेषित होते हैं लेकिन उनकी पसंदीदा भाषा में। एक विकल्प दोनों पृष्ठों के लिए एक ही यूआरएल कुंजी का उपयोग करना होगा, लेकिन यह बहुत उपयोगकर्ता के अनुकूल नहीं होगा क्योंकि कुछ उपयोगकर्ता यूआरएल कुंजी को अपनी मूल भाषा में नहीं देख पाएंगे।

मैं आपको एक उदाहरण देता हूँ:

मैं एक "हमारे बारे में" पृष्ठ है। स्टोर के अंग्रेजी संस्करण में, उस पृष्ठ का URL /about-us है। अब एक जर्मन उपयोगकर्ता उस पृष्ठ पर उतरता है और अपनी भाषा बदलता है। लेकिन क्योंकि "हमारे बारे में" समकक्ष जर्मन "Über uns" है, उस पृष्ठ का जर्मन संस्करण पर है, इसलिए उपयोगकर्ता को 404 पृष्ठ प्रस्तुत किया जाएगा क्योंकि /about-us का कोई जर्मन संस्करण मौजूद नहीं है।

क्या कोई इस मुद्दे को हल करने का तरीका जानता है?

अद्यतन: कुछ और शोध किए और कुछ भी नहीं मिला। मुझे विश्वास नहीं है कि मैं इस समस्या के साथ अकेला हूं? सभी भाषाओं के लिए एक ही यूआरएल कुंजी का उपयोग करते हुए, जाने-माने समाधान, बहुत बदसूरत लगता है और बहुत उपयोगकर्ता के अनुकूल नहीं है!

उत्तर

8

तो, मुझे मिला एकमात्र समाधान मैगेंटो रिवाइट नियम में प्रत्येक पृष्ठ के लिए मैन्युअल रूप से रीडायरेक्ट बनाना था। करते हैं कि, Catalog -> URL Rewrite Management के पास जाकर निम्न स्वरूप में प्रत्येक पृष्ठ जोड़ें:

enter image description here

इसलिए, यदि उपयोगकर्ता Francais दुकान दृश्य का उपयोग और /url-in-english का अनुरोध करता रहा है, पुन: निर्देशन में लात और उपयोगकर्ता रीडायरेक्ट करेगा /url-in-french पर।

यह निश्चित रूप से एक आदर्श समाधान नहीं है, अगर दो पृष्ठों को सीधे "लिंक" किया जा सकता है, तो मुझे प्राथमिकता दी जाएगी, लेकिन मुझे लगता है कि मुझे इस पल के लिए इसका उपयोग करना होगा। यदि कोई बेहतर समाधान के साथ आता है तो आपका जोड़ना स्वतंत्र महसूस होता है!

1

ऊपर समाधान काम करता है लेकिन कुछ समय लगता है। (हमारी यह

की तरह था पर

हिस्सा है जहां $ यूआरएल चर भर जाता है के बाद app/design/frontend/default/template_name/template/page/switch/languages.html लिए निम्न कोड जोड़ें: हम सिर्फ भाषा परिवर्तक यूआरएल पुनर्लेखन के लिए जब एक सेमी पृष्ठ के बेस यूआरएल पर जाने के लिए निम्नलिखित किया ; .de/या .nl और पट्टी

if(($this->getRequest()->getModuleName() == 'cms') && strpos($url,'.com/')){$url = strstr($url, '.com/', true) . '.com/';} 
elseif(($this->getRequest()->getModuleName() == 'cms') && strpos($url,'.de/')){$url = strstr($url, '.de/', true) . '.de/';} 
elseif(($this->getRequest()->getModuleName() == 'cms') && strpos($url,'.nl/')){$url = strstr($url, '.nl/', true) . '.nl/';} 

क्या मैं यहाँ किया एक सेमी पृष्ठ पर अगर जाँच और देखें कि क्या यूआरएल या तो .com/शामिल है:

$url = /*explode('?',*/$_lang->getCurrentUrl()/*);*/; 

तो हम निम्नलिखित जोड़ा इससे पहले भाग पहले डोमेन एक्सटेंशन जोड़ें।

हमारे उदाहरण में: http://www.mega-watch.com/about-us?blablahttp://www.mega-watch.com/

आशा इस किसी को बाहर में मदद करता है ..

+0

बहुत बढ़िया, साझा करने के लिए धन्यवाद। मेरे समाधान से अधिक सुरुचिपूर्ण लगता है ... –

2

मैं Magento सीई 1.8.0.0 में इस बग देखा है हो जाएगा। यहां समस्या \ app \ code \ core \ Mage \ Core \ Model \ Url \ reewrite \ request.php में गलत असाइनमेंट थी।

इस समस्या यह $ fromStore का काम परिणाम के साथ

$fromStore = Mage::getModel('core/store')->load($this->_request->getQuery('___from_store'), 'code')->getId(); 

को

$fromStore = $this->_request->getQuery('___from_store'); 

से संरक्षित समारोह _rewriteDb() Mage_Core_Model_Url_Rewrite_Request वर्ग के भीतर में परिवर्तित करने के लिए पर्याप्त है हल करने के लिए है कि हम दाएं कुंजी के साथ $ स्टोर्स सरणी तक पहुंच सकते हैं (स्टोर कोड के बजाय स्टोर आईडी के साथ)। इसके साथ यदि कथन

if (!empty($stores[$fromStore])) { 

सही तरीके से काम करता है।

एक अनुस्मारक के रूप में: कोर फ़ाइलों को संशोधित न करें। किसी भी बदलाव से पहले \ app \ code \ core \ mage \ core \ model \ url \ reewite \ request.php \ app \ code \ local \ mage \ core \ Model \ Url \ reewrite \ request.php को कॉपी करें। आपको यह उत्तर यहां जर्मन में मिलेगा: Rewrite von Seiten in verschiedenen Sprachen und verschiedenen URL Keys in Magento

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