Mini bucket v 3.6.6: Мультиязычность, менеджер переводов и ворох системных исправлений

от автора

Данное изображение продукт генерации ИИ. Количество языков в данный момент на картинке не соответствует количеству готовых языковых пакетов!

Данное изображение продукт генерации ИИ. Количество языков в данный момент на картинке не соответствует количеству готовых языковых пакетов!

В одной из предыдущих статей я поднимал вопрос о том, что интерфейс системы целиком и полностью работает на Английском языке. Я пообещал, что в будущем реализую поддержку нескольких языков, и вот этот момент настал. Но, как это часто бывает, пока я копался в коде ради мультиязычности, попутно переписал пару системных модулей, чтобы они наконец-то работали стабильно ну и не ручками же вводить переменные в файл пакета. Поэтому релиз 3.6.6 получился тройным: Системные исправления, исправления интерфейса ну и новый плагин.


Что нового?

1) Полноценная мультиязычность.

Начиная с версии 3.6.6, в системе появилась полноценная поддержка языковых пакетов. Базовым языком по умолчанию остается Английский, но в комплекте с дистрибутивом я сразу добавил Русский пакет. Интерфейс и системные диалоги теперь умеют отображаться на великом и могучем.

Стоит отметить, что проделана огромная работа по поиску и извлечению всего текста из интерфейса. Английский пакет насчитывает более 4000 строк. Да, пришлось попотеть.

В основе лежит довольно распространенная и простая схема. Механизм переключения языка опирается на настройки пользователя и подгружает нужный языковой файл. Сам файл представляет собой набор PHP-переменных вида $lang1234 = “КАКОЙ-ТО ТЕКСТ”. В самом интерфейсе вместо статичного текста расставлены эти переменные, а то, из какого файла их брать, определяется настройкой пользователя.

2) Плагин Lang Editor для управления переводами.

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

Он умеет:

  • Создавать новые пакеты и копировать существующие.

  • Редактировать переменные прямо из интерфейса.

  • Автоматически генерировать код для вставки (чистый PHP или с echo для HTML, JS).

  • Делать сторонние плагины мультиязычными: достаточно выбрать плагин в списке и нажать «Создать Lang-директорию». Кстати с помощью этого плагина я и перевел существующие.

Подробнее о механике:

Вводите текст в строку, жмете Enter — переменная создана, а в буфере обмена уже готовый код. Слева от переменных кликабельные имена для быстрого копирования, справа — кнопки для копирования готовой конструкции . Удобно до безумия.

Для PHP — копируется $lang1234.

Для HTML — копируется <?php echo $lang1234; ?>.

Правда, честно признаюсь: я не стал заморачиваться с «правильным» оформлением вида <?php echo $lan1234 ?: ‘ТУТ ТЕКСТ’; ?>, хотя это было бы правильнее. Исправлю постепенно.

3) Обновленная архитектура системы плагинов.

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

В ближайшее время добавлю информацию для разработчиков в WiKi — как подключать переключения языков в плагинах.


Исправления в системных модулях.

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

Менеджер дисков (Disk Manager):

Исправлены множественные проблемы при монтировании/размонтировании LVM-томов. Также починил редактирование записей в /etc/fstab — теперь изменения применяются корректно и не разваливают систему.

Менеджер LVM (LVM Manager):

Переписана логика монтирования томов и синхронизации с fstab. Теперь операции выполняются без ошибки записи в fstab.

Менеджер RAID (RAID Manager):

Оптимизирован интерфейс создания массива. Самое важное — системные диски (на которых установлена ОС) больше не отображаются в списке доступных устройств для RAID. Это исключает фатальные ошибки невнимательного администратора. Выявил ее как раз развалив стенд по ошибке добавив системный диск в raid, не внимательность губит.

Менеджер точек монтирования (Mount Manager):

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

Имя и домен: Исправлена функция редактирования имени хоста. Теперь значение корректно записывается в /etc/hostname, а файл /etc/hosts заполняется строго по системным правилам (без дублей и кривых записей). Ранее как временный костыль в инструкции я предлагал писать имя вместе с доменов в имя машины, что в свою очередь писалось в файл hostname, что в свою же очередь типа неправильно.


О переводе и языке

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

Но благодаря встроенному Lang Editor вы можете легко поправить любой текст прямо в веб-интерфейсе. Нашли кривую фразу? Открыли плагин, нашли эту переменную, исправили — готово.

Как переключить язык?

  • При новой установке — выбор языка появляется на первом шаге инсталлятора.

  • При обновлении — язык можно сменить в настройках системы в разделе интерфейса.

Но если вы сообщите о найденных ошибках в переводе у нас на форуме — Буду признателен.


Что дальше?

Помнится я там говорил что то про поддержку новых версий операционных систем. Видимо мне есть еще чем занятся.

Всем спасибо за внимание! Буду рад, если вы сообщите о найденных багах или кривых переводах на форуме или по почте.


P.S Оставлю полезные линки по статье:

Сайт проекта: https://mini-bucket.ru/

Плагины: https://mini-bucket.ru/plugins/

Раздел для языков на форуме: https://mini-bucket.ru/community/community/переводы/

WiKi for Developers: https://mini-bucket.ru/wiki/knowledge-base/dev-pugins/plugin-development/

Установка: https://mini-bucket.ru/install/

Прошлая статья: https://habr.com/ru/articles/1046167/

Для тех у кого уже установлен Mini Bucket готово обновление в интерфейсе в разделе Update.

ссылка на оригинал статьи https://habr.com/ru/articles/1055100/