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

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


stebgo

Recommended Posts

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

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

 

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

 

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

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


удалил

<?php echo $currency; ?>

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

 

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

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


  • 3 weeks later...

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

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

/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); 

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

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


  • 7 years later...

Подскажите пожалуйста, как в опенкарте 3 отключить автовыбор языка?
В ссылках под разные локализации у меня прописаны /ru/ /ua/ , по умолчанию стоит /ua/.
Но мне очень нужно избавиться от автоопределения языка на уровне ip или браузера!
Помогите пожалуйста!!!

Нужно полностью убрать автодетект!

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


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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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