Прежде чем применять настройки - внимательно читаем. От этого зависит работоспособность системы


Начиная с версии 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';Режим гибридного языка






Дополнительная информация