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

Настройки модуля

Настройки хранятся штатным механизмом Битрикса, под идентификатором модуля mrlexndr.translate. Почти все задаются через интерфейс — здесь они собраны, чтобы можно было посмотреть, что вообще есть.

Перевод и сервис

КлючЧто это
saas_balance_rubпоследний известный баланс. Кеш, чтобы экран не висел при недоступном сервисе
saas_dev_license_hashустойчивый идентификатор для стендов с DEMO-лицензией
saas_api_base_urlадрес сервиса. Пустой — боевой. Отладочный ключ, в интерфейсе не задаётся; хост обязан быть в списке разрешённых внутри модуля
gpt_contextописание сайта для переводчика, уходит модели перед каждым переводом
gpt_glossaryглоссарий терминов
auto_typoтипографика после перевода. По умолчанию выключена, работает только при установленном корректоре
slice_texts_max, slice_chars_maxпотолок размера порции
translate_engineвыбранный переводчик: gemini или yandex. Задаётся в Настройки → Качество перевода
translate_engine_cost, translate_engine_limitsотношение цен и пределы порции, которые прислал сервис вместе с балансом. Руками не задаются

Неизвестное значение translate_engine читается как Яндекс — поэтому модули прежних версий, писавшие туда gpt, продолжают работать. Подробнее — Движки перевода.

Языки

КлючЧто это
target_langsязыки перевода, список кодов
target_langs_configuredсписок сохранён администратором, автоопределение выключено
languages_pendingязыки, замеченные обработчиком и ещё не разобранные
language_event_last_lid, language_event_last_tsдиагностика: что и когда сработало последним

Два последних ключа нужны, когда язык завели, а модуль его не заметил: по ним видно, приходило ли событие вообще.

Очередь

КлючЧто это
queue_tracked_iblocksинфоблоки, за правками в которых следит очередь
queue_source_langязык оригинала
queue_jobсостояние перевода в фоне: курсоры, счётчики, отметки времени
queue_pausedпауза. Проверяется перед каждым оплачиваемым шагом
queue_skip_search_reindexне переиндексировать элемент в поиске после записи перевода

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

Свойства и правка в карточке

КлючЧто это
prop_scope_all_iblocksсвойства без суффикса языка: инфоблоки, где языковые свойства создаются для всех подходящих свойств
lang_mirrorправка перевода в штатной форме при целевом языке админки
lang_mirror_iblocksинфоблоки, где включена правка в карточке. Не задано — действует везде
section_extra_ufдополнительные текстовые поля разделов, которые переводятся сверх названия и описания
hl_fieldsкакие поля каких справочников переводить
hl_event_entitiesпод какими именами сейчас зарегистрированы обработчики правки строк справочников

hl_event_entities — память, а не настройка. Снять обработчик можно только по тому имени, под которым его ставили; если справочник переименуют, старое имя иначе было бы не найти.

Служебные

КлючЧто это
db_index_warningтекст проблемы со структурой базы; непустое значение выводит баннер в админке
rights_seed_v2права администраторам уже выданы
iblock_profiles_purgedустаревшие ключи прежних версий удалены
php_version_reported_atкогда в журнал последний раз писали о неподходящей версии PHP
installed_versionверсия, на которой последний раз отработала установка или обновление
state_schemaномер применённой схемы таблицы состояния очереди
state_schema_warningпочему схема не применилась; непустое значение выводит плашку на вкладке «Очередь»

php_version_reported_at модулю не настройка, а память: запись о старой версии PHP делается не чаще раза в сутки, и здесь лежит отметка времени. Файл модуля подключается на каждой странице, и запись на каждый просмотр означала бы тысячи строк в журнале за день.

installed_version нужна, потому что спросить ядро нельзя: версии модуля в b_module нет, а ядро читает её из того же install/version.php. Без своей отметки «выложили файлы и не нажали „Обновить“» не отличить от исправного стенда — а это самая частая беда после обновления.

Фразы из файлов

КлючЧто это
file_phrases_readyперехват GetMessage() включён
file_phrases_pausedидёт поиск фраз, перехват на это время молчит
file_phrases_snapshotязыки, каталоги и версия формата на момент включения
file_phrases_dirsкакие каталоги отмечены для поиска фраз. Ядро Битрикса в список не входит и отметить его нельзя
file_phrases_formatверсия формата словаря файловых фраз
composite_staleсловарь правили после последнего сброса статики композита

file_phrases_format гасит перехват при обновлении, но только когда формат поменялся, а не на каждом выпуске. Иначе любое обновление с Маркетплейса молча возвращало бы витрину к текстам из файлов, пока кто-нибудь не заметит и не запустит поиск заново.

Снимать file_phrases_ready руками не нужно: экран и смена языков делают это сами. Пустой снимок при включённом флаге перехват выключит. Состояние прогона — не в этих ключах, а в файлах каталога /local/mrlexndr.translate/state/: его не кладут в кеш Битрикса, потому что кнопка «Очистить файлы кеша» иначе оборвала бы поиск фраз.

Про адрес сервиса отдельно: произвольное значение он не примет. Хост сверяется со списком внутри модуля и проверяется на приватные и служебные диапазоны — по этому адресу уходит ключ лицензии. Свой стенд добавляется правкой поставки, а не настройкой сайта.

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

Можно, но осторожно: часть из них связана между собой. Например, снять target_langs_configured, не тронув target_langs, — значит вернуть модуль в режим автоопределения при заполненном списке, и поведение станет неочевидным.

Настройки переживают удаление модуля, если при удалении оставить соответствующую галочку. См. Удаление, переустановка, откат.