Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Здравствуйте! В файле 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
Надіслати
Поділитися на інших сайтах

:)

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

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

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

Змінено користувачем 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 years later...

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

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

 

Отвечу сам.

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

 

Змінено користувачем yanos
Надіслати
Поділитися на інших сайтах


  • 2 years later...
В 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 month later...
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 сказав:

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

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.