Страница 1 из 1
Языки сайта
Добавлено: 08.05.2019, 09:39
market
Добрый день!
Столкнулся со следующий проблемой:
Пытаюсь добавить язык на сайт, в файле: backend/lang/languages_list.php
По аналогии с предыдущими языками добавляю новый язык.
В админке все работает, язык можно выбрать и активировать.
Но при выходе в витрину, при переключении языка выдает 404
Что не так? Прошу помочь советом.
Версия сайта v.2.2.3
Спасибо
Добавлено: 09.05.2019, 16:04
apetruniv
в папке шаблона файл языка также добавил?
Добавлено: 12.05.2019, 12:56
market
Добрый день!
А какой путь к файлу?
Добавлено: 13.05.2019, 10:48
korshunov
Многое зависит от точных деталей Вашего расплывчатого "По аналогии с предыдущими языками добавляю новый язык".
1. Если в backend/lang/languages_list.php добавить строку
$langs['zz'] = (object)array('name' => 'TESTzz', 'label' => 'zz', 'href_lang' => 'zz');
то с этой строкой у меня все работает: добавляется язык, редактируются языковые, показывается витрина.
2. Если в backend/lang/languages_list.php добавить строку
$langs['yy'] = (object)array('name' => 'TESTyy', 'label' => 'yyy', 'href_lang' => 'yy');
то тут уже начинаются капризы - в админке не проходит добавление нового языка c сообщением Метка пуста.
Видимо, параметры в этой стороке нельзя писать совсем произвольно. Похоже, разработчики тут подарили нам избыточные данные, что, как известно, порождает лишние ошибки.
3. Если в backend/lang/languages_list.php добавить строку
$langs['xxx'] = (object)array('name' => 'TESTxx', 'label' => 'xxx', 'href_lang' => 'xx');
то тут уже сюрпризы другие - в админке новый язык добавляется, но на витрине имеем 404 - в точности как у ТС.
Вероятно, код языка требуется непременно двухсимвольный. Похоже, и тут создано довольно неудобное ограничение...
Вывод очевидный: в организации мультиязычности еще масса недостатков.
И начать с того, что само добавление нового языка организовано сложным кривым способом. Вот в админке можно легко и просто добавить новую валюту и она сразу заработает. С добавлением нового языка - надо админу самому экспериментировать и угадывать.
И кстати, вспоминаются многократные дискуссии на форуме про документацию - просто ДОЛЖНА быть инструкция по добавлению языков, раз уж разработчики решили сделать столь запутанную реализацию...
Добавлено: 13.05.2019, 16:15
OkayCMS
market писал(а):Добрый день!
Столкнулся со следующий проблемой:
Пытаюсь добавить язык на сайт, в файле: backend/lang/languages_list.php
По аналогии с предыдущими языками добавляю новый язык.
В админке все работает, язык можно выбрать и активировать.
Но при выходе в витрину, при переключении языка выдает 404
Что не так? Прошу помочь советом.
Версия сайта v.2.2.3
Спасибо
Напишите в техподдержку какой язык нужно добавить, вам сделают.
Добавлено: 14.05.2019, 22:58
wolf
Доброго времени суток! Как изменить дефолтный язык сайта? Чтобы по умолчанию украинская версия сайта отображалась
https://sitename.com/, а русскоязычная
https://sitename.com/ru/. Спасибо.
Добавлено: 15.05.2019, 06:37
korshunov
В списке языков поставить Украинский на первое место.
Добавлено: 15.05.2019, 07:32
wolf
Спасибо за ответ! Уточните, в каком списке языков?
Добавлено: 15.05.2019, 07:41
OkayCMS
Настройки сайта - Языки сайта
Добавлено: 15.05.2019, 10:01
wolf
Все ок, спасибо!!!
Добавлено: 06.01.2020, 16:35
Elanlar
korshunov писал(а):3. Если в backend/lang/languages_list.php добавить строку
$langs['xxx'] = (object)array('name' => 'TESTxx', 'label' => 'xxx', 'href_lang' => 'xx');
то тут уже сюрпризы другие - в админке новый язык добавляется, но на витрине имеем 404 - в точности как у ТС.
Вероятно, код языка требуется непременно двухсимвольный. Похоже, и тут создано довольно неудобное ограничение...
Добрый вечер! Как можно сделать так чтоб число символов было не 2 а 3 и более.
Добавлено: 06.01.2020, 17:32
korshunov
Пробуйте в .htaccess заменить ([a-z]{2}/)? на ([a-z]{2,3}/)? - c этим вроде бы должно заработать с 3 символами.
А если произвольное число хотите, могут проблемы разные выскочить.
Собственно, они и сейчас есть.
Если создать страницу с URL 'en' (совпадает с кодом языка), то админка такое разрешает. Но
1. при попытке открыть страницу на основном языке
http://domain.com/en открывается главная на английском, то есть страница не работает,
2. при попытке открыть страницу на других языках
http://domain.com/en/en,
http://domain.com/ua/en, работает нормально.
Подобное будет, если создать страницу с URL 'ok' (два символа, не совпадает с кодом языка). На основном языке - по адресу
http://domain.com/ok дает ошибку, на прочих языках (
http://domain.com/en/ok,
http://domain.com/ua/ok) работает нормально.
Если хотите любое число символов, то, чтобы работало полностью правильно, надо немало переделывать.
А судя по реакции разработчиков на тему, даже дать инструкцию по добавлению языков не совсем просто, не говоря уж о том, чтобы перепрограммировать всю схему. В документации, которая появилась в 3.3.4, по методам добавления языков я ничего не нашел...