Первая установка
Модуль ставится как обычное решение Маркетплейса. Всё, что ему нужно, он создаёт сам: хранилище переводов, обработчики событий, агент фонового перевода и права администраторам.
Перед установкой
PHP 8.2 или новее. Требование жёсткое и не декларативное: часть классов модуля объявлена readonly-классами, а такой конструкции до 8.2 не было — на 8.1 эти файлы не прочитать вовсе. Дополнительный довод: 8.1 с конца 2025 года не получает даже исправлений безопасности.
На более старой версии установка отменяется с сообщением, а обновление — отказывается до того, как тронет базу. У обновления через сервис обновлений есть оговорка: файлы каталога там подменяются раньше, чем доходит дело до проверки, см. Обновление через сервис обновлений. Модуль, который на старом PHP уже стоит, не выключается целиком: словарь, подстановка переводов на витрине и админка работают, не работает машинный перевод. Причина при этом пишется в журнал событий, а на экране «Проверка стенда» горит красная строка про версию PHP — искать её вслепую не придётся.
Модули Битрикса: главный (main) версии 23.0.0 или новее и Highload-блоки (highloadblock). Для перевода инфоблоков — ещё iblock, для магазина — sale. Ядро старше 23.0.0 модуль поставит и обновит, но перехват GetMessage() на нём не включится: на таком ядре загрузка языковых файлов ведёт себя иначе, и молчаливое включение было бы хуже отказа.
Расширения PHP: curl, mbstring, iconv, json, openssl.
Права на запись у веб-сервера: /bitrix/cache/ — там модуль держит файлы словаря, /local/styles/ — стили режима правки, и /local/mrlexndr.translate/state/ — состояние поиска фраз в языковых файлах. Этот каталог не в кеше Битрикса: кнопка «Очистить файлы кеша» иначе оборвала бы прогон.
Сеть. Для машинного перевода нужен исходящий HTTPS до https://api.mrlexndr.com. Без него словарь и подстановка переводов работают, не работает только машинный перевод. Ключи Яндекса или Google на стороне сайта заводить не нужно — они живут на стороне сервиса.
Лицензия 1С-Битрикс. Сервис переводов узнаёт сайт по хешу лицензии. На локальных стендах с DEMO-лицензией используется устойчивый идентификатор разработчика, так что и там перевод работает.
Отдельно: модуль mrlexndr.corrector не обязателен. Он нужен только для типографики после перевода — неразрывных пробелов, кавычек, тире. Без него всё остальное работает, а текст записывается без обработки, и вкладка «Качество перевода» в настройках об этом предупреждает. Подробнее — Типографика.
Установка
- Положите код модуля в
/local/modules/mrlexndr.translate/. Почему именно туда и когда бывает иначе — Куда класть модуль. - Marketplace → Установленные решения → Установить, пункт «mrLexndr Мультиязычность: перевод сайта через GPT».
- Пройдите мастер. Шагов три, в базу ничего не пишется до последней кнопки:
- Языки — на какие языки переводить. Язык сайта уже отмечен. Если пока не решили, нажмите «Решу потом»: список можно задать в Настройки → Языки.
- Переводчик — Gemini или Яндекс. По умолчанию Gemini, сменить можно в Настройки → Качество перевода.
- Файловые фразы — в каких каталогах потом искать фразы языковых файлов шаблонов и компонентов. Сам поиск на установке не запускается, подробнее — Фразы из языковых файлов. Кнопка этого шага — «Установить».
- На экране «Что дальше» — ссылки на первые действия: отметить инфоблоки, создать языковые свойства, пополнить баланс, запустить первый перевод.
Что модуль создал
Highload-блок «Словарь сайта» (SiteDictionary) — хранилище фраз. В нём поля UF_CODE (код фразы), UF_USAGE_COUNT (сколько раз встречается в коде) и по одному полю UF_LANG_<ID> на каждый активный язык сайта.
Таблица состояния b_mrlexndr_translate_state — очередь перевода и отметки о том, что переведено, что устарело и что не удалось перевести.
Обработчики событий — около двадцати пяти регистраций. Через них работают очередь, подстановка на витрине, кнопки перевода в админке и перевод меню. Полный список — События.
Агент \mrLexndr\Translate\Agent\QueueAgent::run(); с периодом 60 секунд. Простаивающий агент ничего не делает и нагрузки не создаёт: он работает, только когда запущено фоновое задание очереди. Как им пользоваться — Фоновый перевод.
Права — администраторским группам выдаётся доступ W к модулю. Выданные вручную права не трогаются: установщик добавляет доступ только тем группам, у которых его не было.
Что проверить сразу
Пять минут, которые экономят час поисков потом.
| Что открыть | Что должно быть |
|---|---|
| Модули mrLexndr → Перевод | пункт меню открывается |
| Настройки → Доступ к модулю | у администраторов W на «mrLexndr Мультиязычность» |
| Highload-блоки → Словарь сайта | есть UF_CODE, UF_USAGE_COUNT и UF_LANG_<ID> на каждый активный язык |
| Настройки → Агенты | ровно один агент модуля, QueueAgent::run();, период 60 |
Если пункта меню нет — скорее всего, дело в правах: раздел виден тем, у кого есть хотя бы R на модуль. Разбор — Права и безопасность.
Более подробный прогон по живому сайту — Что проверить после выкладки.
Дальше
Модуль установлен, но ещё не знает, на какие языки переводить. Следующий шаг — Добавить язык: сквозной сценарий от языка в настройках Битрикса до выведенной на странице фразы.
Если языки на сайте уже заведены и нужно просто начать переводить — Запустить разовый перевод.