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

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


OpenBind234
 Погделиться

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

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

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

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

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

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


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

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

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

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

Раскрыть  

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

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


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

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

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

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

Раскрыть  

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

 

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


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

Таблица oc_seo_url.

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

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

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

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

Таблица oc_seo_url.

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

Раскрыть  

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

image.png.fdad3d5eba50a288751cb8133995c271.png

 

 

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

 

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


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

Код

// Language Detection
		if (!empty($this->request->server['HTTP_ACCEPT_LANGRUGE']) && !array_key_exists($code, $languages)) {
			$detect = '';
			
			$browser_languages = explode(',', $this->request->server['HTTP_ACCEPT_LANGRUGE']);
			
			// 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

 

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

 

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

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


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

Код

// Language Detection
		if (!empty($this->request->server['HTTP_ACCEPT_LANGRUGE']) && !array_key_exists($code, $languages)) {
			$detect = '';
			
			$browser_languages = explode(',', $this->request->server['HTTP_ACCEPT_LANGRUGE']);
			
			// 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 и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.