Измените текст $this-> ("Выберите опцию...") в шаблоне


Есть ряд изменений, которые я хотел бы внести в тему, но я привожу здесь только одно в качестве примера. Там, где в раскрывающемся списке написано "Выберите опцию", мне нравится быть вежливым и просить пользователей "Пожалуйста, выберите опцию".

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

frontend/default/paul_overrides/template/catalog/product/view/type/options/configurable.phtml

enter image description here

Когда я добираюсь до configurable.phtml, там очень мало там...

enter image description here

Я действительно замечаю возможность изменить "Выбрать опцию", но когда я ее изменил, она не изменилась на сайте. Так что я не понимаю, почему, должно быть, это происходит откуда-то еще.

Также указывает название блока. Так что у меня есть Mage_Catalog_Block_Product_View_Type_Configurable К чему это относится и как это помогает мне найти код, который создает html?


Обновление

Спасибо, фшменглер.

Я создал файл translate.csv в своей дочерней теме "paul_overrides", я вставил в это строку, которую вы предложили, а также файл, выделенный ниже, чтобы убедиться, что я его поймаю. К сожалению, ни то, ни другое не сработало, и я все еще получаю исходное отображение в раскрывающемся списке.

enter image description here

Есть идеи?

Должен сказать, я очень удивлен magento, его приветствуют как легко модифицируемый, но если этот пример что-то значит, он кажется совсем не простым.

Ценю любую помощь.

Author: PeterC, 2015-07-22

3 answers

Не меняйте тексты в шаблонах phtml, вместо этого используйте перевод.

В вашем случае вы хотите изменить возвращаемое значение $this->__('Choose an option...'). Когда выпадающий список динамически заполняется JavaScript, снова используется тот же перевод (и именно поэтому изменение значения только в этом шаблоне не сработало).

Тип блока Mage_Catalog_Block_Product_View_Type_Configurable - это класс, который используется для визуализации этого шаблона, и по нему можно определить, что он находится в модуле Mage_Catalog.

Располагая этой информацией, вы можете изменить перевод в своей теме:

Как изменить перевод

  1. Откройте файл app/design/[your_package]/[your_theme]/locale/en_US/translate.csv или создайте его, если он не существует.

  2. Добавьте эту строку:

     "Mage_Catalog::Choose an option...","Please choose an option..."
    

Это подскажет Magento использовать "Please choose an option..." вместо "Choose an option..." везде в модуле Mage_Catalog.


В качестве альтернативы вы можете использовать функцию встроенного перевода, как описано здесь: http://inchoo.net/magento/inline-translation-in-magento / - это вместо этого сохранит ваши измененные переводы в базе данных.

Он прост в использовании, но вы больше не можете искать тексты в базе кода, и переносить/развертывать переводы в другую систему сложнее. Поэтому я предпочитаю использовать файлы перевода, но YMMV.

 1
Author: Fabian Schmengler, 2020-06-15 08:30:17

Это удаление генерируется JavaScript, объектом json.

Если это значение параметра, выберите вариант, текст которого поступает из

Для пользовательского варианта: - mage_catalog_block_product_view_options_type_выбирать

  • js/varien/product.js сделать выпадающий список для продукта с пользовательской опцией

Для настраиваемой опции продукта:

Mage_Catalog_Block_Product_View_Type_Configurable


<?php

class Mage_Catalog_Block_Product_View_Type_Configurable extends Mage_Catalog_Block_Product_View_Abstract
{
 public function getJsonConfig()
    {.....
        $config = array(
            'attributes'        => $attributes,
            'template'          => str_replace('%s', '#{price}', $store->getCurrentCurrency()->getOutputFormat()),
            'basePrice'         => $this->_registerJsPrice($this->_convertPrice($currentProduct->getFinalPrice())),
            'oldPrice'          => $this->_registerJsPrice($this->_convertPrice($currentProduct->getPrice())),
            'productId'         => $currentProduct->getId(),
            'chooseText'        => Mage::helper('catalog')->__('Choose an Option...'),
            'taxConfig'         => $taxConfig
        );

        .......
    }


}

Вам нужно изменить этот класс для текста.

js/varien/configurable.js сделайте dropdown для настраиваемого продукта

 1
Author: Amit Bera, 2015-07-22 04:51:07

Действительно простой способ изменить это - войти в систему администратора ->Конфигурация->Разработчик->Встроенный перевод. Включите интерфейс для каждого представления, которое вы хотите, а затем перейдите на страницу вашего продукта.

Теперь просто найдите значок крошечной книги и нажмите на него, отсюда вы можете быстро и легко изменить этот текст на любой, какой захотите, не касаясь строки кода.

 0
Author: Charlie Tupman, 2016-02-26 14:49:33