Перейти к содержанию

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

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

Эта проблема возникает только тогда, когда среди языков присутствует русский. (кеш и куки я сбрасывала)

Если его удалить, то дефолтный язык среди двух других иностранный устанавливается и меняется легко.

Я даже развернула на субдомене нулевую сборку с офсайта - проблема та же, и именно на версии 2.3.0.2

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

в Opencart 2.2 такой проблемы нет, так как там немного иначе реализована локализация -  папки называются полными именами языков, а не ru-ru, а opencart  версии 2.3 подцепляет название папок, как код языка.

Может кто-то сталкивался с такой проблемой и знает как её безболезненно решить?

Изменено пользователем Xelen
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Tom сказал:

Здесь есть такая проблема?

а как узнать?

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

Там сейчас по дефолту русский стоит в админке.

 

Вот сегодня раскинула демку, скачанную  сайта opencart

http://monaok1.aviofly.ru/

 

Ничего там не меняла, добавила только 2 языка - немецкий и русский

Английский стоит по дефолту.

При сбросе кук и кеша, кидает ан русскую версию

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата

Вот сегодня раскинула демку, скачанную  сайта opencart

Я не зря дал ссылку на демку сборки данного форума.Скачайте и проверьте.Ссылка на скачивание в верхней части форума в меню в разделе Ocstore.

Поделиться сообщением


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

Скачала последнюю сборку версии  2.3.0.2.2 тут https://myopencart.com/downloads 

установила эту сборку сюда же

 

Поставила дефолтным английский язык.

Сайт показывает по-русски в хроме и мозилле. После сброса кук и кеша, все равно остается русский

То есть проблема осталась

Поделиться сообщением


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

А папку с кэшем чистили?
system\storage\cache

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, thentru сказал:

А папку с кэшем чистили?
system\storage\cache

только что почистила - не помогает.

У меня все же подозрение, что магазин как-то подцепляет язык системы

когда русский убирала, было ещё 2 иностранных языка, между ними переключение получалось

Поделиться сообщением


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

Я проводила тесты, переназывала папку ru-ru  в другое название языка nl-nl ,  и внутри файл языка тоже называла nl-nl.php

Ставила дефолтным языком английский, и все работало- русский переставал залипать, и работал, когда на него переключали.но все работает довольно криво, это просто костыль для теста.

То есть дело в названии папки, которую магазин подцепляет, как код языка

В Opencart 2.2  папка называлась russian  и такой проблемы нет,

Поделиться сообщением


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

Ваш тестовый сайт у меня на английском.Хром,мазила,Edge.Что не так?

 

http://joxi.ru/5mdnoKvtEG9oA1

 

 

Поделиться сообщением


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

админка на английском,а  сам сайт?

Админка у меня тоже на англиqском а фронтенд на русском

Поделиться сообщением


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

@Xelen Вы правы, детект языка браузера есть
в файле catalog\controller\startup\startup.php
 

Скрытый текст

// 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 : '';
		}

 

 

Изменено пользователем thentru
  • +1 3

Поделиться сообщением


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

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

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

Поэтому, при удалении русского, магазин включался на дефолтном английском.

Если мне не нужен такой функционал, то можно просто закомментировать этот код?

Я так понимаю, это такое "улучшение" в версии 2.3

Поделиться сообщением


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

@Xelen да, можно закомментировать, тогда будет изначально дефолтный, если в куках и сессии нет данных

  • +1 2

Поделиться сообщением


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

thentru, закомментировала, и все сработало на моем рабочем сайте.

Я вам очень благодарна!:D

Поделиться сообщением


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

Спасибо обоим, думаю нужно переместить в ФАК .

Поделиться сообщением


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

Доброго времени суток,

У меня тоже такая проблема с opencart 2.3 , закоментировал выше указанный код,но не помогло,все ровно по умолчанию стоит английский

Поделиться сообщением


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

@gvanji Кэш модификаторов обновляли после правок?

Поделиться сообщением


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

Благодарю, после обновления кэша модификаторов, почистил общий кэш и заработало. 

Вуаля :)

Изменено пользователем gvanji

Поделиться сообщением


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

Добрый день. У меня такая же проблема возникла. opencart 3.0, в магазине два языка русский и украинский, ставлю по умолчанию украинский, но все равно отображается русский. Код в файле catalog\controller\startup\startup.php  закомментировала, кеш модификаций и общий кеш почистила, но не помогло, все равно по-умолчанию русский.
 

Поделиться сообщением


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

Проблема решилась, нужно было почистить кэш браузера.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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