Перейти к содержанию
stebgo

Отключить автоматический выбор языка

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

Здравствуйте.

У меня следующая проблема - на сайте установлены три языка, и сделано три магазина стандартным способом. в каждом магазине установлен свой язык по умолчанию. Только сейчас обнаружил что ocStore 1.5.4.1  выдает в любом из трех магазинов не по умолчанию, а в зависимости от кода страны откуда пришел покупатель, языка браузера или еще как то .

 

Вот собственно хотелось бы убрать эту его функцию + убрать запоминание выбора языка(при переходе между магазинами).

 

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

Поделиться сообщением


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

удалил

<?php echo $currency; ?>

вроде получше стало, но все равно автоматом определяет язык.

 

Подскажите в к каком файле происходит определение языка посетителя и в каком файле происходит запись выбранного языка в куки

Поделиться сообщением


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

Нужно отключить любой автоматический выбор языка на сайте, так как некоторые поисковики все равно индексируют страницы не на том языке который должен быть по умолчанию и есть проблемы у некоторых покупателей.

не могу понять где устанавливается язык.

/catalog/model/localisation/language.php - вывод всех языков но это не то.

подскажите пожалуйста хоть строчку кода которая установит язык, дальше я сам доделаю в зависимости от id магазина.

Поделиться сообщением


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

Нужно отключить любой автоматический выбор языка на сайте, так как некоторые поисковики все равно индексируют страницы не на том языке который должен быть по умолчанию 

С этим проблем вообще не должно быть. 

У страницы должен быть свой адрес на каждом из языков.

Например: article.html, article-ru.html, article-kh.html - тогда поисковик отлично проиндексирует все языки

Поделиться сообщением


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

вот нашел кусок кода в index.php

// Language Detection
$languages = array();

$query = $db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1'"); 

foreach ($query->rows as $result) {
	$languages[$result['code']] = $result;
}

$detect = '';



if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && ($request->server['HTTP_ACCEPT_LANGUAGE'])) { 
	$browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
	
	foreach ($browser_languages as $browser_language) {
		foreach ($languages as $key => $value) {
			if ($value['status']) {
				$locale = explode(',', $value['locale']);

				if (in_array($browser_language, $locale)) {
					$detect = $key;
				}
			}
		}
	}
}



if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
	$code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
	$code = $request->cookie['language'];
} elseif ($detect) {
	$code = $detect;
} else {
	$code = $config->get('config_language');
}

if (!isset($session->data['language']) || $session->data['language'] != $code) {
	$session->data['language'] = $code;
}

if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {	  
	setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}			

$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language', $languages[$code]['code']);



// Language	
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);	
$registry->set('language', $language); 

тут, если я правильно понимаю и происходит определение языка.

 

 

ЗЫ

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

Поделиться сообщением


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

вроде работает

 

оставил только

// Language Detection


$languages = array();

$query = $db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1'"); 

foreach ($query->rows as $result) {
	$languages[$result['code']] = $result;
}

$code = $config->get('config_language');

$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language', $languages[$code]['code']);

// Language

$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);	
$registry->set('language', $language); 

Посмотрите, может это как то плохо я сделал :)

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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