Настройки модуля
Настройки хранятся штатным механизмом Битрикса, под идентификатором модуля 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, — значит вернуть модуль в режим автоопределения при заполненном списке, и поведение станет неочевидным.
Настройки переживают удаление модуля, если при удалении оставить соответствующую галочку. См. Удаление, переустановка, откат.