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