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

Установка языка по умолчанию


OpenBind234
 Поделиться

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

Доброго времени суток. нужна ваша помощь.

Добавил на сайте ******ский язык, установил его по умолчанию, в настройках изменил язык сайта на ******ский, а он все ровно загружается на Ру

Куда рыть и что менять.

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

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


Перевіряли в режимі інкогніто?

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

19.07.2022 в 16:50, Flint2000 сказал:

Перевіряли в режимі інкогніто?

Так, відкривається на Ру

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


Видимо потому что главная страница в урлах привязана именно к RU.

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

19.07.2022 в 19:08, Tom сказал:

Видимо потому что главная страница в урлах привязана именно к RU.

а где изменить эту привязку?

 

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


В базе данных.

Таблица oc_seo_url.

Для значения "common/home"

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

19.07.2022 в 20:30, Tom сказал:

В базе данных.

Таблица oc_seo_url.

Для значения "common/home"

Сделал вот так \

image.png.fdad3d5eba50a288751cb8133995c271.png

 

 

Ничего не поменялось

 

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


Вопрос нынче очень актуальный для UA владельцев сайтов=)) Автор темы похоже угадал, порылся я в гугле и файлах opencarta и нашёл проблему(по крайней мере у меня так): Opencart с завода смотрит на язык браузера и выставляет его в любом случае.

Код

// Language Detection
		if (!empty($this->request->server['HTTP_ACCEPT_LANGUAGE']) && !array_key_exists($code, $languages)) {
			$detect = '';
			
			$browser_languages = explode(',', $this->request->server['HTTP_ACCEPT_LANGUAGE']);
			
			// Try using local to detect the 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;
							break 2;
						}
					}
				}	
			}			
			
			if (!$detect) { 
				// Try using language folder to detect the language
				foreach ($browser_languages as $browser_language) {
					if (array_key_exists(strtolower($browser_language), $languages)) {
						$detect = strtolower($browser_language);
						
						break;
					}
				}
			}
			
			$code = $detect ? $detect : '';
		}
		
		if (!array_key_exists($code, $languages)) {
			$code = $this->config->get('config_language');
		}
		
		if (!isset($this->session->data['language']) || $this->session->data['language'] != $code) {
			$this->session->data['language'] = $code;
		}
				
		if (!isset($this->request->cookie['language']) || $this->request->cookie['language'] != $code) {
			setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);
		}
				
		// Overwrite the default language object
		$language = new Language($code);
		$language->load($code);
		
		$this->registry->set('language', $language);
		
		// Set the config language_id
		$this->config->set('config_language_id', $languages[$code]['language_id']);

прячется в файле /магазин/storage/modification/catalog/controller/startup/startup.php

 

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

 

Кто силён в коде, давайте вместе поломаем это автоопределение, нашел ещё несколько тем у людей с такой же проблемой, но решения пока нигде нет. Толи Ув. знатоки кода так усердно отмораживаются, что бы заработать, либо не нашлось еще такого гуру, который перепишет\правильно вырежет  код автоопределения.

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


Вопрос нынче очень актуальный для UA владельцев сайтов=)) Автор темы похоже угадал, порылся я в гугле и файлах opencarta и нашёл проблему(по крайней мере у меня так): Opencart с завода смотрит на язык браузера и выставляет его в любом случае.

Код

// Language Detection
		if (!empty($this->request->server['HTTP_ACCEPT_LANGUAGE']) && !array_key_exists($code, $languages)) {
			$detect = '';
			
			$browser_languages = explode(',', $this->request->server['HTTP_ACCEPT_LANGUAGE']);
			
			// Try using local to detect the 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;
							break 2;
						}
					}
				}	
			}						

прячется в файле /магазин/www/catalog/controller/startup/startup.php

 

При смене языка браузера на ******ский - сайт запускается на ******ском, режим инкогнито и чистые куки НЕ ПОДХОДЯТ как вариант проверки в случае с автоопределением языка.

 

Кто силён в коде, давайте вместе поломаем это автоопределение, нашел ещё несколько тем у людей с такой же проблемой, но решения пока нигде нет. Толи Ув. знатоки кода так усердно отмораживаются, что бы заработать, либо не нашлось еще такого гуру, который перепишет\правильно вырежет код автоопределения.

 

upd: Код вроде нашёл и допилил, завтра всё хорошо перепроверю на своём магазине и выложу. Кому интересно - велком в личку.

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


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

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

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

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

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

Войти

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

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

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

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

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