Мультиязычность отрабатывает только один раз

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X
#1 19 октября 2023 в 15:40

Столкнулся с проблемой в работе Мультиязычности в последней версии CMS — язык на сайте переключается автоматически только при первом входе и не запоминается в дальнейшем.

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

Просьба помочь советом — где, что проверить / настроить / заменить...

#2 19 октября 2023 в 15:43

Аналогично

#3 19 октября 2023 в 22:08

Посмотрел я код движка — нет там никакого функционала по запоминанию выбранного языка и его последующему восстановлению. Разрабы сделали в лоб — либо даем волю браузеру и он ставит язык на свое усмотрение, не давая юзеру его сменить, либо при каждом посещении сайта попадаем на страницу с дефолтным языком и меняем его руками.

Почему так сделали, проделав столько остальной работы — не знаю, видать спешили выкатить релиз.

Т.к. времени на то, чтобы сделать все по нормальному через передачу доп параметров при выборе языка у меня нет, то реализовал через небольшой костыль. Работает исправно, но есть ограничение — после смены языка должно пройти 30 сек до следующего посещения сайта чтобы произошло автоматическое переключение на этот язык с другого. Например, мы переключились на русский, потом открыли новую вкладку и вставили в строку адреса ссылку на английскую страницу сайта. Если с момента переключения прошло 30 сек, то сайт переключиться на русский, если нет, то откроется английская версия сайта и будет запомнен английский. Соответственно, если с момента открытия страницы до переключения на другой язык пройдет более 30 сек, то переключения не произойдет и его нужно будет произвести повторно.

Файлы с исправлениями в архиве во вложении. Заменить надо следующие системные файлы (правились оригинальные, без изменений):

system\core\core.php

system\controllers\languages\hooks\engine_start.php

Прикрепленный файл
forreplace.zip 12 Кб
#4 2 января 2024 в 20:03

С новым годом! Подскажите как включить раздельное управление публикацией разных языковых версий записей. Что-бы записи из типов контента не дублировались в разных языковых версиях сайта, а были только в нужной.
site.com/ru/news
site.com/en/news
site.com/es/news

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.