M

MrSergey

0
Репутация
0
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Мультиязычность отрабатывает только один раз 19 октября 2023 в 22:08

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

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

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

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

system\core\core.php

system\controllers\languages\hooks\engine_start.php

Прикрепленный файл
forreplace.zip 12 Кб
#1 [ЕСТЬ РЕШЕНИЕ] Мультиязычность отрабатывает только один раз 19 октября 2023 в 15:40

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

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

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

#1 После обновления работает только русский 17 октября 2022 в 13:08

Здравствуйте.

Я заказал одному человеку новый сайт для своего проекта, он сделал его на instantcms. Мне нужен был мультиязычный сайт, поэтому был докуплен компонент Языки 2.0, сайт переведен на английский и установлен на хостинг.

В чем проблема — после перехода на новый сайт мне начали писать иностранцы. Как оказалось если языком системы пользователя является не русский, то cms вместо главной страницы на английском отображает русский вариант, а вместо всех остальных страниц 404, с русскими страницами проблем нет.

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

Warning
: array_key_exists() expects parameter 2 to be array, string given in
C:\OpenServer\domains\max.ru\system\core\widget.php
on line
62

Warning: Illegal string offset 'type' in C:\OpenServer\domains\max.ru\templates\modern\widgets\template\template.tpl.php on line 1

Error'ов при этом нет.

Почему пишу тут — исполнитель уже вторую неделю кормит меня завтраками, возможно сам не знает как это исправить. В связи с этим ищу человека, готового помочь.

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