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

Примечание

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

Установка

При установке модуля происходит анализ его 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, а также очистка языкового кэша.