Muszę utworzyć wielojęzyczny blok statyczny. Do tej pory utworzyłem blok statyczny o identyfikatorze „delivery_returns”.
Nazywam to w katalogu \ product \ view.phtml w następujący sposób:
$deliveryBlock = Mage::getModel('cms/block')->load('delivery_returns');
echo $deliveryBlock->getTitle();
echo $deliveryBlock->getContent();
Rozumiem, że aby przetłumaczyć ten blok:
- Powinienem po prostu stworzyć kolejny.
- Wybierz żądany język z pola store_view
- i zachowaj statyczny identyfikator bloku taki sam jak oryginał.
Ta metoda działa z „footer_links”, a także z innym statycznym blokiem, który utworzyłem, zwanym „header_links”, ale najwyraźniej nie działa z blokiem „delivery_returns”. Zmiana języka sklepu nie ładuje odpowiedniego przetłumaczonego bloku „delivery_returns”
czego mi brakuje? Czy istnieje lepszy sposób na osiągnięcie tego?
źródło
Poniższa odpowiedź mówi o ustawianiu identyfikatora sklepu przed załadowaniem modelu, ale, jak zauważył @benmarks w komentarzu poniżej, nie jest to konieczne, ponieważ dzieje się tak w bloku _toHtml ().
Podobnie jak w przypadku wielu innych modeli magów, spróbuj ustawić żądany identyfikator sklepu przed załadowaniem modelu:
źródło
cms/block
robi to podczas renderowania; patrzMage_Cms_Block_Block::_toHtml()
(link)Mage_Cms_Block_Block::_toHtml()
.Mage_Core_Model_Block
czym ustawiłby się identyfikator sklepu.Dokonałem tego na jeden z kilku sposobów:
Możesz użyć `{{translate text =" text to translate "}} na dowolnej stronie statycznego bloku cms, wdrażając następujące obejście:
-
Więcej informacji / źródło:
http://jagdeepbanga.com/blog/magento_how_add_translation_ability_into_cms_page_or_static_block.html
źródło
Moduł, który utworzyłem na podstawie tej odpowiedzi, możesz pobrać stąd: https://github.com/miguelbalparda/MB_Translate/ Udostępnia on wbudowanego tłumacza Magento na stronach CMS / Block.
źródło