Ошибка в файле /admin/lang/login.php и проблемы при смене языка

  • 5 Ответов
  • 1191 Просмотров

SergusNET

  • Сообщений: 57
    • Просмотр профиля
    • Заработок в интернете
Добавил второй язык на базе русского с изменениями некоторых языковых переменных. Русский потом убрал, чтобы база была меньше.
Обнаружил, что при входе админку не отображаются все надписи (логин, пароль и т.д.).
Поставил предварительно сохраненный русский обратно, ситуация не изменилась (все разы создавал языковой кэш).
В admin/login.php добавил костыль в виде объявления DNREAD и подключения языкового cahce/caсhe.lang.php, предварительно в базе установив кеширование нужных переменных.
В admin/login.php, кстати, вообще на нашел подключения языка $lang, за исключением английского /admin/lang/login.php, в котором обнаружил ошибку на 22 строке:

$lang['chmod_config'] = 'Set the attribute (read-only) on a file',

Там должна быть точка с запятой в конце.
Оставить свой костыль или будет доработка?
Версия 1.5.4 последняя.

И еще позже нашел. Не включаются визуальные редакторы при активном языке, отличном от русского.
Причина — $langcode = $conf['langcode']; в wysiwyg.php (18 строка) — ставишь $langcode='ru', все работает.
Я бы в  wysiwyg.php поставил проверку на наличие файла локали визуального редактора — если установлен другой язык в системе и его локализации нет в редакторе, то оставлять русский.
« Последнее редактирование: 06 Января 2018, 21:21:09 от SergusNET »

Neon

  • Сообщений: 671
    • Просмотр профиля
    • Danneo CMS
Файл admin/login.php трогать не нужно, там все нормально.

Есть не доработки при генерации и импорте языкового файла.
Исправления в архиве.

Обновленные файлы:
admin/core/classes/cache/CacheLang.php
admin/system/lang/index.php

Порядок действий:
1. Нажать "Экспорт в XML файл".
2. Выполнить перевод.
3. Сделать "Импорт языка из XML файла".
4. Включить новый язык по умолчанию.
5. Нажать "Генерация языкового файла для кэша".

Все должно работать.

Файл кеша для страницы авторизации находится: cache/lang/login.php

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

  <name><![CDATA[Система даты]]></name>
  <date><![CDATA[0]]></date>
заменить на

  <name><![CDATA[Система даты]]></name>
  <date><![CDATA[1]]></date>
далее (ниже)

  <name><![CDATA[Администратор вход]]></name>
  <date><![CDATA[0]]></date>
заменить на

  <name><![CDATA[Администратор вход]]></name>
  <date><![CDATA[2]]></date>
В общем, в теге <date> для этих групп, поставить значения 1, 2 (соответственно).
Сохранить.
После этого можно импортировать.
DANNEO ™

Neon

  • Сообщений: 671
    • Просмотр профиля
    • Danneo CMS
Описание создания нового языка для базовой сборки.
Собираем архив для скачивания.
Как пример Украинский язык.

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

К примеру для модуля "Новости", файл ланга находится по адресу:
admin/mod/news/install/lang.xml
Для остальных, базовых модулей файлы также находятся в папке admin/mod/модуль/install/
Данные файлы импортируются в базу при добавлении мода.

Для добавления нового языка нужны файлы:
1. Базовый языковой файл (XML) для панели управления, без модулей.
2. Языковые файлы (XML) для всех базовых модулей.

Чтобы правильно создать файлы нового языка нужно:

Установить систему с нуля, без добавления модулей.
Зайти в настройки языкового менеджера, и экспортировать текущий (русский) язык. Вторая кнопка "Экспорт в XML файл".
В результате будет создан файл: cache/lang/dn-standart-154-ru-lang.xml
Это, базовый языковой файл.

Далее:
Переименовать файл в dn-standart-154-ua-lang.xml (языковой префикс UA).
Открыть файл в редакторе.

В первом блоке изменить.
* Русский язык на Українська мова
* Код ru на ua
* В строке "Автор:" вписать ссылку на свой ресурс, либо имя (будет отображено в панели управления).

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

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

Скопировать файл: admin/mod/news/install/lang.xml
Переименовать в lang_ua.xml
Открыть на редактирование, выполнить перевод всех языковых значений, и добавить в туже папку.
Должно быть два файла:
admin/mod/news/install/lang.xml
admin/mod/news/install/lang_ua.xml

Аналогично, для все модулей.

**
Для некоторых модулей языковые файлы пустые (отсутствуют значения).
Это означает, что для данного модуля используются ланги из базового, системного файла.
Но, файлы все равно лучше продублировать.
На случай, если модуль в дальнейшем будет клонироваться, возможно понадобится добавление своих языковых переменных.

В конечном итоге архив файлов для нового языка должен быть таким:

Цитировать
dn-standart-154-ua-lang.xml
www/admin/mod/article/install/lang_ua.xml
www/admin/mod/catalog/install/lang_ua.xml
www/admin/mod/contact/install/lang_ua.xml
www/admin/mod/down/install/lang_ua.xml
www/admin/mod/faq/install/lang_ua.xml
www/admin/mod/home/install/lang_ua.xml
www/admin/mod/map/install/lang_ua.xml
www/admin/mod/media/install/lang_ua.xml
www/admin/mod/news/install/lang_ua.xml
www/admin/mod/pages/install/lang_ua.xml
www/admin/mod/photos/install/lang_ua.xml
www/admin/mod/poll/install/lang_ua.xml
www/admin/mod/subscribe/install/lang_ua.xml
www/admin/mod/user/install/lang_ua.xml
README.txt

В файл README.txt можно добавить описание, а также оставить свой копирайт.
DANNEO ™

SergusNET

  • Сообщений: 57
    • Просмотр профиля
    • Заработок в интернете
Изменения внесены в основной релиз?

Neon

  • Сообщений: 671
    • Просмотр профиля
    • Danneo CMS
Нет, войдет в следующую версию.

Очень хорошо, что вы подняли данный вопрос.
Добавление новых языков в систему, как оказалось, не было до конца протестировано.
Исправление закрывает проблему.

Но, пока лучше оставить эту тему открытой.
Возможно еще появятся вопросы.
DANNEO ™

SergusNET

  • Сообщений: 57
    • Просмотр профиля
    • Заработок в интернете
Ориентировочные сроки новой версии можете назвать?