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

Автоматическое определения языка в мульти-магазине


Keyua
 Поделиться

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

Делаю магазин (ocstore 2.3.0.2 Шаблон moneymaker)на двух языках - ******ский и русский. Хочу реализовать автоматическое переключение языка. Почитал форум и решил, что оптимальный вариант призываться не к ip пользователя, а к языку браузера. Нашел статью, в которой предлагается такой код

if (!isset($this->session->data['language_change'])) {    
    $this->session->data['language_change'] = '0'; } if ($this->session->data['language_change']=='0') {
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    $this->session->data['language_change']='1'; if ($lang=='ru' || $lang=='uk' || $lang=='be' || $lang=='ky' || $lang=='am' || $lang=='ab'){ 
        $_SESSION['language'] = 'ru';
        $this->session->data['language']='ru';
        $this->session->data['language_code']='ru'; } else { 
        $_SESSION['language'] = 'en'; 
        $this->session->data['language']='en';
        $this->session->data['language_code']='en'; }
    $this->response->redirect($_SERVER['REQUEST_URI']); }

По инструкции его нужно вставить в catalog/controller/common/header.php.

В исходном варианте код не срабатывает. Я попробовал переделать его под себя (php не владею) - убрал лишние переменные языков - оставил только русский и ******ский. Код по прежнему не работает. После сброса кеша модификаторов и системы

Прошу у знающих помощи закоментировать данный код что бы разобраться в чем причина.

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


Думаю лучше по ip, в документации сказано про определение на офф сайте, и там же есть ссылка на платную версию базы данных и на бесплатную. А если вообщем ошибки могут быть везде браузер может дать не верно и так же ip. Лучше реализовать как то так.

Зашел я с определенного ip сверил со своей базой если Россия то русскую версию сайта если то другую

Как то так...
 

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


А чем дефолтное определение языка по ['HTTP_ACCEPT_LANGUAGE'] не устраивает?
Работает корректно, если локали в настройках языка в админке не трогали.

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

  • 1 год спустя...
В 13.02.2017 в 00:25, pashast сказал:

А чем дефолтное определение языка по ['HTTP_ACCEPT_LANGUAGE'] не устраивает?
Работает корректно, если локали в настройках языка в админке не трогали.

можно подробней как активировать дефолтное определение языка по ['HTTP_ACCEPT_LANGUAGE']

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


Он из коробки включен и работает. Если в магазине есть язык, который совпадает с локалью пользователя, то показывается сайт на этом языке. Если языка нет, то показывается язык по-умолчанию.

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


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

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

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

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

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

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

Войти

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

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

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

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

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