Памятка
Прежде чем применять настройки - внимательно читаем. От этого зависит работоспособность системы
Краткое описание модуля
Начиная с версии RU 2026.02.15 языки перехали в таблицу баз данных. На время перехода (примерно год), в системе действуют два варианта и языковые файлы и база данных
Работа параметра
Варианты значений:
1) Не задан (undef)
Режим по умолчанию трактуется как HYBRID.
- lang_init_from_db:
- Создаёт таблицу translations при первом вызове.
- Загружает переводы из таблицы translations для текущей локали и DOMAIN_ID (0 и текущий домен).
- Складывает их в $lang_db{locale} и накладывает поверх %lang.
- lang_get:
- Сначала ищет ключ в $lang_db{locale} (БД).
- Если не нашёл, берёт из %lang (файлы).
- load_module:
- Для модуля:
- Вызывает lang_init_from_db(locale, MODULE => 'ИмяМодуля') — подмешиваются core+модульные переводы из БД.
- Потом грузит модульные lng_*.pl (файлы).
- Затем ещё раз накладывает карту из БД поверх %lang, чтобы значения из translations победили файловые.
- Для модуля:
Итог: источником правды являются переводы в БД, файлы используются как fallback, если для ключа нет строки в translations.
2) 'hybrid'
- Полностью эквивалентно режиму "не задан".
- lang_init_from_db работает, как описано выше.
- lang_get и load_module ведут себя идентично случаю LANG_BACKEND не задан.
Итог: гибридный режим "БД поверх файлов". Все ключи, присутствующие в translations, перекрывают файловые значения; отсутствующие — берутся из файлов.
3) 'db'
- Обрабатывается так же, как 'hybrid':
- lang_init_from_db выполняется (проверка: =~ /^(db|hybrid)$/).
- lang_get сначала смотрит в $lang_db, потом в %lang.
- load_module вызывает lang_init_from_db для модуля и затем накладывает карту БД поверх файловых lng_*.pl.
- Отличий в логике от 'hybrid' нет, это "строже названный" гибрид, но с теми же правилами.
Итог: режим "БД + файлы как запасной вариант", при котором переводы из translations всегда имеют приоритет над файлами.
4) 'files' или любое другое значение, не совпадающее с 'db' или 'hybrid'
- lang_init_from_db:
- После создания таблицы translations сразу делает return, если LANG_BACKEND определён и не равен db|hybrid.
- Переводы из БД НЕ загружаются и не накладываются на %lang.
- lang_get:
- Условие "!defined LANG_BACKEND || LANG_BACKEND =~ /^(db|hybrid)$/" ложно, поэтому кэш $lang_db не используется.
- Значения всегда берутся только из %lang (файлы языка).
- load_module:
- Переменная use_db = 0, lang_init_from_db для модуля не вызывается.
- Загружаются только модульные файловые lng_*.pl.
- Никакого повторного наложения БД нет.
Итог: чисто файловый режим. Таблица translations и значения из БД полностью игнорируются, все переводы берутся из языковых файлов.
Описания параметров конфигурации (config.pl) или модуля Config
| Параметр | Пример | Описание |
|---|---|---|
| LANG_BACKEND | $conf{LANG_BACKEND} = 'hybrid'; | Режим гибридного языка |