Страница 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, по методам добавления языков я ничего не нашел...