Контент на разных языках в стороннем шаблоне

Тема в разделе "Opencart", создана пользователем romeo143, 28 дек 2015.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. romeo143

    romeo143

    Регистр.:
    15 авг 2015
    Сообщения:
    156
    Симпатии:
    38
    Установил шаблон Micra.
    Столкнулся с несколькими кастомными блоками в этом шаблоне, которые отображаются на разных языках одинаково.
    Есть модуль от этого шаблона, в котором эти 2 блока можно изменить, но только для обоих языков. Можно ли разделить отображение на русском и английском языках? 2015-12-28_12-22-15.png 2015-12-28_12-23-23.png
     
  2. mazdada

    mazdada Создатель

    Регистр.:
    27 ноя 2012
    Сообщения:
    8
    Симпатии:
    0
    ну можно к примеру отредактировать файл русификации и добавить туда куски которые нужно переводить, либо как вариант использовать разные блоки и с помощью php if else отображать уже нужный блок
     
  3. romeo143

    romeo143

    Регистр.:
    15 авг 2015
    Сообщения:
    156
    Симпатии:
    38
    а как я эти куски добавлю в русификацию?
    т.е. по дефолту это английский язык, правильно? А мне нужно в language/russian добавить в это место перевод.
    а как это сделать?:)
    Вот есть код из footer.tpl, который выводит то, что мне нужно перевести

    Код:
    <div class="col-md-3 col-sm-4">
                 <?php if($config->get('magikmicra_footer_cb')==1){
                echo html_entity_decode($config->get('magikmicra_footer_cbcontent'));}?>
    
          </div>
     
  4. mazdada

    mazdada Создатель

    Регистр.:
    27 ноя 2012
    Сообщения:
    8
    Симпатии:
    0
  5. romeo143

    romeo143

    Регистр.:
    15 авг 2015
    Сообщения:
    156
    Симпатии:
    38
    Смысл посыла я понял, но причем тут Wordpress
     
  6. romeo143

    romeo143

    Регистр.:
    15 авг 2015
    Сообщения:
    156
    Симпатии:
    38
    Сделал по аналогии:
    В файле /catalog/view/theme/default/template/common/header.tpl в меню было добавлено раздел Акции. Выглядит это так:
    <li style="float: right; font-weight: bold;">
    <a href="Перейти по ссылке">АКЦИИ</a></li>

    Но при таком подходе при смене языка текст не будет меняться. Для этого есть следующее решение:

    Вместо статического значения вводим переменную $text_akcii, в следствии чего предыдущий код будет выглядеть так:
    <li style="float: right; font-weight: bold;">
    <a href="Перейти по ссылке"><?php echo $text_akcii; ?></a></li>

    Теперь нам необходимо подключить эту переменную в языковом файле движка. Для этого переходим в папку /catalog/language/russian/common/header.php и добавляем
    $_['text_akcii'] = 'АКЦИИ';
    Аналогичные действия проводим с файлами и для других языков, только заменяем текст на нужный перевод.
    Теперь нам нужно подключить данную переменную в файле контроллера /catalog/controller/common/header.php

    Находим строку:
    $this->render();
    И перед ней вставляем следующую строку:
    $this->data['text_akcii'] = $this->language->get('text_akcii');
     
  7. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    255
    Симпатии:
    75
    Я бы сделал по такой констукции в view вашего подвала:
    Код:
    <?php $lang =$this->session->data['language'];
    if($lang =='ru'){
    <div class="show_ru">
    <!-- вызываем модуль -->
    </div>
    } elseif($lang =='en'){
    <div class="show_en">
    <!-- вызываем модуль -->
    </div>
    }?>
    В админке сделайте два DIV'а - для каждого из языков.
    В CSS стилях показывайте тот DIV, который нужен.
    Пример:
    Код:
    .div_ru, .div_en { display: none;}
    .show_ru .div_ru { display: block;}
    .show_en .div_en { display: block;}
    И никаких танцев с бубном вокруг language переменных.