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

Первая установка

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

Перед установкой

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 не обязателен. Он нужен только для типографики после перевода — неразрывных пробелов, кавычек, тире. Без него всё остальное работает, а текст записывается без обработки, и вкладка «Качество перевода» в настройках об этом предупреждает. Подробнее — Типографика.

Установка

  1. Положите код модуля в /local/modules/mrlexndr.translate/. Почему именно туда и когда бывает иначе — Куда класть модуль.
  2. Marketplace → Установленные решения → Установить, пункт «mrLexndr Мультиязычность: перевод сайта через GPT».
  3. Пройдите мастер. Шагов три, в базу ничего не пишется до последней кнопки:
    • Языки — на какие языки переводить. Язык сайта уже отмечен. Если пока не решили, нажмите «Решу потом»: список можно задать в Настройки → Языки.
    • Переводчик — Gemini или Яндекс. По умолчанию Gemini, сменить можно в Настройки → Качество перевода.
    • Файловые фразы — в каких каталогах потом искать фразы языковых файлов шаблонов и компонентов. Сам поиск на установке не запускается, подробнее — Фразы из языковых файлов. Кнопка этого шага — «Установить».
  4. На экране «Что дальше» — ссылки на первые действия: отметить инфоблоки, создать языковые свойства, пополнить баланс, запустить первый перевод.

Что модуль создал

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 на модуль. Разбор — Права и безопасность.

Более подробный прогон по живому сайту — Что проверить после выкладки.

Дальше

Модуль установлен, но ещё не знает, на какие языки переводить. Следующий шаг — Добавить язык: сквозной сценарий от языка в настройках Битрикса до выведенной на странице фразы.

Если языки на сайте уже заведены и нужно просто начать переводить — Запустить разовый перевод.