Вывод текста в соответствии с языком в коде

Тема в разделе "OpenCart", создана пользователем femmill, 22 дек 2017.

Метки:
  1. femmill

    femmill

    Регистрация:
    5 фев 2014
    Сообщения:
    42
    Симпатии:
    14
    Всем привет!
    Кто подскажет как вывести в коде (например в header.tpl, footer.tpl) текст в соответствии с выбранным языком?

    Примерно так чтоб было

    <?php if ($language['code'] == 'ru-ru') { ?>
    тут текст на русс
    <?php } ?>
     
  2. settr

    settr

    Регистрация:
    12 окт 2016
    Сообщения:
    67
    Симпатии:
    54
    Сначало Вам необходимо в соответствующих контроллере ( catalog/controller/common/header.php и catalog/controller/common/footer.php ) добавить
    PHP:
    $data['language_code'] = $this->language->get('code'); 
    Теперь в tpl можете обращаться к переменной $language_code
    Но лучше делать по-правильному - править языковые файлы
     
  3. femmill

    femmill

    Регистрация:
    5 фев 2014
    Сообщения:
    42
    Симпатии:
    14
    Что имеете ввиду под "править языковые файлы" ?
    у меня кусок кода там лежит и я не могу никак из админки их исправить ... и вывести невозможно
    --- Добавлено, 22 дек 2017 ---
    Не работает так же с таким подходом.
     
  4. Master2KAZ

    Master2KAZ

    Регистрация:
    25 окт 2014
    Сообщения:
    183
    Симпатии:
    72
    Имеется ввиду, что тексты нужно править в файлах:

    catalog/language/en-gb/common/header.php
    catalog/language/ru-ru/common/header.php
    и т.д...

    В каждом из таких файлов прописывается переменная с текстом
    PHP:
    $_['text_module']      = 'Модули'//в файле catalog/language/ru-ru/common/header.php

    $_['text_module']      = 'Modules'//в файле catalog/language/en-gb/common/header.php
    А потом в контроллере подгружается перевод, соответствующий выбранному языку
    PHP:
    $data['text_module']  = $this->language->get('text_module');
    НО ЕСЛИ по каким-то причинам вам это не подходит, то сначала нужно подгрузить список языков
    PHP:
    $this->load->model('localisation/language');

    $data['languages'] = $this->model_localisation_language->getLanguages();
    а затем расписывать условие
    в тплке
    PHP:
    <?php foreach($languages as $language) { ?>
        <?php if ($language['code'] == 'ru-ru') { ?>
            // текст для русского языка
        <?php } elseif ($language['code'] == 'en-gb') { ?>
            // текст для английского языка
        <?php ?>
    <?php 
    ?>
     
    Baco нравится это.