Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


Recommended Posts

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

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

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

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites

Posted (edited)
19.07.2022 в 16:50, Flint2000 сказал:

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

Так, відкривається на Руimage.thumb.png.5c584222aa5003629997dbec204da6a5.png

Edited by OpenBind234
Link to comment
Share on other sites


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

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

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

 

Link to comment
Share on other sites


Posted (edited)
19.07.2022 в 20:30, Tom сказал:

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

Таблица oc_seo_url.

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

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

image.png.fdad3d5eba50a288751cb8133995c271.png

image.thumb.png.8f3d19b198fc1d17b5d86e236d2dc757.png

 

 

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

 

Edited by OpenBind234
Link to comment
Share on other sites


Вопрос нынче очень актуальный для 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

 

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

 

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

Link to comment
Share on other sites


Вопрос нынче очень актуальный для 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
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.