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