Как изменить изображение на базе локали в magento?

Я хочу изменить изображение поиска в magento. При поиске в magento имя изображения — btn_search.gif. Прямо сейчас он берет изображение из skin/frontend/default/default/images. И файл /app/design/frontend/default/default/template/catalogsearch/form.mini.phtml, где упомяните этот тег как

<input id="search-button" type="image" src="<?php echo $this->getSkinUrl('images/btn_search.gif') ?>" alt="<?php echo $this->__('Search') ?>" />

Я проверил код и обнаружил, что мы можем передать локаль как _type в этом как

<input id="search-button" type="image" src="<?php echo $this->getSkinUrl('images/btn_search.gif', array('_type'=>'local')) ?>" alt="<?php echo $this->__('Search') ?>" />

Но когда я проверю код, он просто проверит в каталоге локали, существует ли этот файл в этой локали или нет. Если это существует, то он займет изображение кожи. Я хочу использовать этот образ локали вместо этого образа скина.

Поэтому, когда я нажимаю на французский магазин, я получаю изображение, которое я установил в /app/design/frontend/default/default/locale/fr_FR/images/btn_search.gif

Я проверяю код для getSkinUrl в /app/code/core/Mage/Core/Model/Design/Package.php. И я обнаружил, что он проверяет локаль на наличие файла, но возвращает URL-адрес скина.

Есть ли метод, который возвращает URL-адрес локали?


person Nilesh    schedule 07.01.2010    source источник


Ответы (1)


я получил ответ

Вот как я сделал язык кнопок (локаль) зависимым от magento commerce.

Я начал с мини-формы поиска на главной странице. Кнопка поиска изображения для этой формы определена в

/app/design/frontend///template/catalogsearch/form.mini.phtml

В этом файле я изменил следующую строку

<input type="image" src="<?php echo $this->getSkinUrl('images/btn_mini_search.gif') ?>" alt="<?php echo $this->__('Search') ?>"/>

to

<input type="image" src="<?php echo $this->getSkinUrl('images/btn_mini_search_'.$this->__('_LOCALE_BUTTON_').'.gif') ?>" alt="<?php echo $this->__('Search') ?>"/>

Затем я добавил перевод для _LOCALE_BUTTON_ во все файлы translate.csv локали: /app/design/frontend///locale//translate.csv:

т.е. Языковой стандарт en_GB: _LOCALE_BUTTON_,en_GB Региональный стандарт nl_NL: _LOCALE_BUTTON_,nl_NL

Для каждого перевода убедитесь, что у вас есть файлы изображений с суффиксом локали, доступные в каталоге /skin/frontend///images/:

т.е. btn_mini_search_en_GB.gif btn_mini_search_nl_NL.gif

Я думаю, вы также можете сделать перевод для _LOCALE_BUTTON_ для представления папки, изменив строку, указанную выше, на:

<input type="image" src="<?php echo $this->getSkinUrl('images/locale/'.$this->__('_LOCALE_BUTTON_').'/btn_mini_search.gif') ?>" alt="<?php echo $this->__('Search') ?>"/>

но затем вам нужно сохранить файлы изображений кнопок с суффиксом локали, например:

Последний способ я на себе не проверял, но не вижу причин, по которым он не должен работать.

Я также думал о замене значения _LOCALE_BUTTON_ обычной строкой «Поиск» (не рекомендуется!!). Преимущество этого метода в том, что вам не нужно добавлять отдельные переводы в файлы translate.csv, но затем вы запускаете риск того, что некоторые переводы могут быть одинаковыми для разных языков (повторяющиеся ключи). Кроме того, это может привести к проблемам, когда в переводах используются символы, отличные от ascii/utf-8, но это зависит от используемой операционной/файловой системы.

person Nilesh    schedule 07.01.2010