Как изменить изображение на базе локали в magento? - PullRequest
2 голосов
/ 07 января 2010

Я хочу изменить изображение поиска в magento. При поиске в magento имя изображения btn_search.gif. Прямо сейчас он берет изображение из скина / внешнего интерфейса / по умолчанию / по умолчанию / изображения. И файл /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') ?>" />

Я проверил код и обнаружил, что мы можем передать locale как _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 локали?

1 Ответ

5 голосов
/ 07 января 2010

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

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

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

/ приложение / дизайн / интерфейс /// шаблон / catalogsearch / form.mini.phtml

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

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

до

<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') ?>"/>

но затем вам нужно сохранить файлы изображений кнопки суффикса локали, например так: / skin / frontend /// images / locale / en_GB / btn_mini_search.gif и / skin / frontend /// images / locale / nl_NL / btn_mini_search.gif

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...