Английский перевод в переопределении шаблона с модулем

1

Мне нужно переопределить класс и шаблон. Для этого я решил создать новый модуль, чтобы не блокироваться при обновлении Prestashop. Для переопределения класса у меня нет проблем.

Опасность заключается в переопределении шаблона, поля находятся на английском языке, тогда как на остальной части моего сайта они находятся на французском языке (когда я удаляю модуль, они возвращаются на французский язык).

В моем модуле я переопределяю шаблон таким образом:

public function hookDisplayOverrideTemplate($params)
    {
        $controllerName = get_class($params['controller']);
        $tpl = $this->local_path . 'override/tpl/' . $controllerName . '.tpl';
        if (file_exists($tpl))
        {
            return $tpl;
        }
        return false;
    }

В моем файле.tpl поля, которые не переписываются, выглядят следующим образом:

{l s='Your addresses'}

Итак, я попытался вставить файл fr.php в /my_module/translations/fr.php, и я его отредактировал:

<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{customaddresses}prestashop>customaddresses_3908e1afa0ff22fbf112aff3c5ba55c1'] = 'Vos adresses';

Затем я модифицировал файл.tpl:

{l s='Your addresses' mod='customaddresses'}

Мои поля по-прежнему на английском языке. У кого-то есть решение предложить?

Теги:
templates
module
smarty
prestashop

1 ответ

0
Лучший ответ

После большого количества исследований я нашел свою проблему.

Мое решение: $_MODULE['<{customaddresses}prestashop>address_0f68b904e33d9ac04605aecc958bcf52'] = 'Informations supplémentaires';

Я заменил "customaddresses_" на "address_" (мой основной шаблон).

Я продолжал:

{l s='Your addresses' mod='customaddresses'}

И чтобы быть более правильным, я немного изменил свой метод hookDisplayOverrideTemplate:

public function hookDisplayOverrideTemplate($params)
{
    $controllerName = get_class($params['controller']);
    $tpl = $this->local_path . 'override/tpl/' . strtolower(str_replace("Controller", "", $controllerName)) . '.tpl';
    if (file_exists($tpl))
    {
        return $tpl;
    }
    return false;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню