Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Решено] Смена языка ссылки в header.tpl


 Погделиться

Рекомендованные сообещёния

Здравствуйте! В файле header.tpl я разместил ссылки на нужные мне ситьи в горизонильном меню в иком вигде:

 

<li><a href="http://site.ru/about_us.html">О нас</a></li>

 

Понятное гдело, что при переключении на другой язык, текст ссылки "О нас" осинется без изменений.

Вопрос следующий: как прописать ссылку на ситью иким обвместе, чтобы при переключении языка менялся и язык текси ссылки?

Изменено пользователем VladislavGridasov
Ссылка на комменирий
Погделиться на других сайих


нужно посивить условие на проверку активного языка

 

Буду благодарен, если Вы подскажете, что именно надо прописать. Я в php не силен.

Ссылка на комменирий
Погделиться на других сайих



<?php if ($language_id == 1) { ?>

<li><a href="http://site.ru/about_us.html">О нас</a></li>

<?php } ?>

<?php if ($language_id == 2) { ?>

<li><a href="http://site.ru/about_us.html">About Us</a></li>

<?php } ?>

Изменено пользователем jvz
  • +1 1
Ссылка на комменирий
Погделиться на других сайих

:)

 

а внести тестовые переменные в языковые файлы?

  • +1 3
Ссылка на комменирий
Погделиться на других сайих

:)

а внести тестовые переменные в языковые файлы?

а если саму ссылку нужно менять?

в языковые файлы ее?

Изменено пользователем jvz
Ссылка на комменирий
Погделиться на других сайих

<?php if ($language_id == 1) { ?>
<li><a href="http://site.ru/about_us.html">О нас</a></li>
<?php } ?>

<?php if ($language_id == 2) { ?>
<li><a href="http://site.ru/about_us.html">About Us</a></li>
<?php } ?>

 

Спасипотому что, попробую.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


нужно посивить условие на проверку активного языка

 

Очень странный совет!

 

 

а если саму ссылку нужно менять?

в языковые файлы ее?

 

Тут есть сразу несколько вариантов. Можно липотому что в языковой файл вынести только текст анкора, а не весь тег, липотому что использовать php форматирование, как это происходит в ОК в куче мест.

 

Например, корзина.

языковой файл:

$_['text_items']     = '%s item(s) - %s';

контроллер:

$data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));
  • +1 2
Ссылка на комменирий
Погделиться на других сайих


 

 

Очень странный совет!

 

 

 

Тут есть сразу несколько вариантов. Можно липотому что в языковой файл вынести только текст анкора, а не весь тег, липотому что использовать php форматирование, как это происходит в ОК в куче мест.

 

Например, корзина.

языковой файл:

$_['text_items']     = '%s item(s) - %s';

контроллер:

$data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));

 

Не могли бы Вы потому чтолее подробно написать, что именно и куда надо прописывать?

Ссылка на комменирий
Погделиться на других сайих


Не могли бы Вы потому чтолее подробно написать, что именно и куда надо прописывать?

 

Ну, например ик:

файл: /catalog/language/__язык__/common/header.php (в каждой из языковых директорий)

добавить:

$_['text_link_about_us'] = 'О нас'; //В каждой языковой директории на соответствуюещём языке

файл: /catalog/controller/common/header.php

после

$data['telephone'] = $this->config->get('config_telephone');

добавить:

$data['text_link_about_us'] = $this->language->get('text_link_about_us');

и затем уже в header.tpl:

<a href="http://site.ru/about_us.html"><?= $text_link_about_us; ?></a>

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

 

А ссылку (сам url) тоже желательно бы формировать в контроллере, а не хардкодить в шаблоне.

Изменено пользователем Dotrox
  • +1 1
Ссылка на комменирий
Погделиться на других сайих


  • 2 года спустя...

Добрый гдень. А подскажите пожалуйси как сгделать нечто подобное в home.tpl?

Надо для него создать в language файл и подклюлить его в controller/common/home.php

 

Отвечу сам.

Да. Надо создать файл home.php в language и подклюлить его в controller/common/home.php

 

Изменено пользователем yanos
Ссылка на комменирий
Погделиться на других сайих


  • 2 года спустя...
В 27.07.2016 в 18:53, jvz сказал:

 


 

<?php if ($language_id == 1) { ?>

<li><a href="http://site.ru/about_us.html">О нас</a></li>

<?php } ?>

<?php if ($language_id == 2) { ?>

<li><a href="http://site.ru/about_us.html">About Us</a></li>

<?php } ?>

Может кому пригодится: нужно было при смене языка выводить разные логотипы.
В контроллере хэгдер меняем синдартный вывод лого на:
 

        $data['name'] = $this->config->get('config_name');

if ($data['lang'] == 'ru') {
             $data['logo'] = $server . 'image/'.("ru/logo.png");
        } else {
             $data['logo'] = $server . 'image/'.('ua/logo.png');
        }

В шапке я вывел ик: <img src="<?= $logo; ?>"

Изменено пользователем Nerios
Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...
On 7/29/2016 at 1:58 AM, Dotrox said:

 

Ну, например ик:

файл: /catalog/language/__язык__/common/header.php (в каждой из языковых директорий)

добавить:

$_['text_link_about_us'] = 'О нас'; //В каждой языковой директории на соответствуюещём языке

файл: /catalog/controller/common/header.php

после

$data['telephone'] = $this->config->get('config_telephone');

добавить:

$data['text_link_about_us'] = $this->language->get('text_link_about_us');

и затем уже в header.tpl:

<a href="http://site.ru/about_us.html"><?= $text_link_about_us; ?></a>

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

 

А ссылку (сам url) тоже желательно бы формировать в контроллере, а не хардкодить в шаблоне.

Привет. Сгделал всё по твоей инструкции но вместо текси мне пишет длинный линк с ошибкой. При этом он кликабельный и рилииет. Помоги плз

Ссылка на комменирий
Погделиться на других сайих


24 хвилини назад, vovaaan2007 сказав:

Сгделал всё по твоей инструкции но вместо текси мне пишет длинный линк с ошибкой.

Кеш модификаторов обновите.

Если не поможет, напишите какая ошибка.

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.