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

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


Recommended Posts

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

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

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

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

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


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

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

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

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

Таблица oc_seo_url.

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

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

image.png.fdad3d5eba50a288751cb8133995c271.png

image.thumb.png.8f3d19b198fc1d17b5d86e236d2dc757.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 2
Надіслати
Поділитися на інших сайтах


  • 1 year later...

Добрий вечір. Така ж проблема. Вийшло у вас переписати startup.php?

 

У мене також на сайті налаштована багатомовність. Основна мова була російська (коли розробляли сайт), пізніше додали українську. При налаштуванні багатомовності зробили щоб при першому заході на сайт завжди здійснювався редірект на українську версію сайту. 

Тобто, при переході за посиланням

https://site.ua/san-paolo.html

відбувається редірект на сторінку

https://site.ua/ua/san-paolo.html

 

Зараз цей редірект треба прибрати, бо прилетіло попередження від MerchantCenter.

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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