Файлы и структура
Карта по назначению, а не полный перечень: классов в модуле под сотню, и список ради списка устаревает первым.
Внутри модуля
install/ установка, обновление, удаление, миграции схемы
admin/ экраны админки: страницы, вкладки, обработчики действий
lib/ код модуля
lang/ фразы интерфейса на русском и английском
docs/site/ исходники этой документации (в поставку не входят)
Подробнее по lib/:
| Где | Что |
|---|---|
Lang.php | фасад для шаблонов: получить фразу, типографика, перевод |
IblockHelper.php | фасад к работе с инфоблоками, 33 метода |
Access.php | права модуля |
DateHelper.php | даты и периоды через словарь |
Model/ | таблица состояния очереди |
Repository/ | словарь в highload-блоке |
Service/ | вся работа: перевод, очередь, сверка, подсчёт использования фраз, языки |
Iblock/, Shop/, Seo/, Hl/ | подстановка по областям |
UI/ | зеркало языка, кнопки в админке, редактор на сайте |
Event/ | обработчики событий |
Agent/ | фоновое задание |
Bootstrap/ | отбор автозагрузки на неподдерживаемом PHP |
Что модуль кладёт вне своего каталога
Это важно знать: замена каталога модуля эти файлы не обновляет.
| Путь | Что |
|---|---|
/bitrix/admin/mrlexndr_translate_*.php | девять заглушек: шесть экранов и три старых адреса (dictionary, iblock, index), которые перенаправляют на новые |
/bitrix/tools/mrlexndr.translate/translate.php | единый эндпоинт для запросов из админки и с сайта |
/local/js/mrlexndr.translate/ | редактор на сайте, перевод в списке и карточке |
/local/styles/mrlexndr.translate/ | стили режима правки |
/local/mrlexndr.translate/state/ | состояние перехвата файловых фраз: манифест, курсор, замок, отчёты |
/bitrix/themes/.default/ | иконка общего раздела меню |
Каталог состояния лежит вне /bitrix/cache/ сознательно: кнопка «Очистить файлы кеша» сносит кеш целиком, а состояние переживать её обязано. Словарь, наоборот, производный и живёт в кеше — /bitrix/cache/php/mrlexndr.translate/lang/<язык>/vocab.php рядом с strict.php. До 8.1.0 он лежал плоским файлом vocab_<язык>.php; старые файлы сносит обновление.
Раскладывает их установщик. Поэтому после замены файлов обязательно нажать «Обновить» — см. Обновление на бою.
Что модуль создаёт в базе
| Объект | Что в нём |
|---|---|
| Highload-блок «Словарь сайта» | фразы интерфейса |
Highload-блок MrlexndrTranslateSeo | переводы SEO-шаблонов |
b_mrlexndr_translate_state | очередь: хеши исходников, ждущие свойства, отказы, найденные поломки |
| Языковые свойства инфоблоков | переводы контента, рядом с оригиналом |
Поля разделов UF_NAME_<язык> и подобные | переводы разделов |
Ничего из этого не удаляется при удалении модуля. Это контент, и восстановить его неоткуда. См. Удаление, переустановка, откат.
Чего в поставке нет
Служебных скриптов и автоматических проверок: они нужны при разработке модуля, а на рабочем сайте только увеличивают площадь.
Документации — тоже. Каталог docs/ исключён целиком, вместе со справочником: он живёт разделом на сайте, и второй копии не будет. Причина не в размере архива, а в том, что копия неизбежно отстаёт, а читатель об этом не знает.
README в архив не едет по той же причине: это витрина репозитория, и ссылки в нём ведут на материалы, которых в поставке нет.