Jump to content
Xelen

Язык по-умолчанию Opencart 2.3.0.2

Recommended Posts

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

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

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

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

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

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

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

Edited by Xelen
  • +1 1

Share this post


Link to post
Share on other sites

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

 

https://demo.myopencart.com/

Share this post


Link to post
Share on other sites
3 минуты назад, Tom сказал:

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

а как узнать?

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

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

 

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

http://monaok1.aviofly.ru/

 

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

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

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

Share this post


Link to post
Share on other sites
Цитата

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
14 минут назад, thentru сказал:

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

http://joxi.ru/5mdnoKvtEG9oA1

 

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

 

Edited by thentru
  • +1 4

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

  • +1 2

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Вуаля :)

Edited by gvanji

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
7 минут назад, Alexkoba сказал:

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

значит делаете что-то не то
в логах ошибок сайта и сервера можно посмотреть в чем проблема

Share this post


Link to post
Share on other sites
3 минуты назад, thentru сказал:

значит делаете что-то не то

Да! Только что заметил, что захватил лишний код. Исправил, и всё заработало. Огромное Человеческое Спасибо! :-)

Share this post


Link to post
Share on other sites
В 28.01.2020 в 13:55, Alexkoba сказал:

Да! Только что заметил, что захватил лишний код. Исправил, и всё заработало. Огромное Человеческое Спасибо! :-)

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

Share this post


Link to post
Share on other sites
2 часа назад, oleksandrdubyna сказал:

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

Смотрите второе сообщение @thentru

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.