Разделы Написать в Telegram

Файлы и структура

Карта по назначению, а не полный перечень: классов в модуле под сотню, и список ради списка устаревает первым.

Внутри модуля

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 в архив не едет по той же причине: это витрина репозитория, и ссылки в нём ведут на материалы, которых в поставке нет.