Языковые переменные в жизненном цикле модуля

Примечание

Также рекомендуем статью о том, что такое языковые переменные.

Установка

При установке модуля происходит анализ его PO-файлов. Значения переменных для каждого представленного языка записываются в таблицу базы данных language_values. Таблица состоит из следующих полей:

  • lang_code — код языка;
  • name — имя языковой переменной без префикса;
  • value — значение переменной для данного кода языка.

Также значения записываются в таблицу original_values. Структура таблицы:

  • msgctxt — соответствует ключевому слову msgctxt в PO-файле; имя переменной с префиксом;
  • msgid — соответствует ключевому слову msgid в PO-файле, переводимая строка на исходном языке (как правило, на английском).

Использование

При первом использовании переменной в функции __ значение извлекается из таблицы language_values, помещается в кэш и в дальнейшем извлекается уже из кэша. Языковые переменные являются частью общего кэша CS-Cart, конкретный механизм кэширования зависит от настройки CS-Cart.

Значения языковых переменных можно менять в панели администратора. Изменения записываются в поле value таблицы language_values. В таблице original_values никаких изменений не происходит.

При экспорте языковых переменных в PO-формат из панели администратора значения msgctxt и msgid берутся из original_values, а msgstr из language_values.

Обновление

При обновлении дополнений анализируются PO-файлы из пакета обновления. При этом добавляются новые переменные, уже существующие переменные не обновляются. Это же справедливо и для обновлений CS-Cart. Подробнее о создании пакетов обновления можно прочитать в соответствующем разделе документации.

Удаление

При удалении дополнения анализируются PO-файлы и удаляются все языковые переменные дополнения из таблиц original_values и language_values; а также очищается языковой кэш.