Особенности хранения и использования локализированных привязанных данных
Glossary Item Box
Общие сведения
Начиная с версии 7.8 приложение стало полностью мультиязычным. Вследствие этого была переработана структура хранения как ресурсов, так и привязанных данных.
Основные изменения:
- Добавлена таблица SysPackageDataLcz для хранения локализированных данных привязок.
- Изменен механизм создания и установки привязок.
- Изменена структура хранения данных в SVN.
Таблица хранения локализированных данных SysPackageDataLcz
Для хранения локализированных данных привязок была создана дополнительная таблица, структура которой представлена ниже в таблице 1.
Табл. 1. — Основные колонки таблицы SysPackageDataLcz
Название колонки | Описание |
---|---|
Id | Уникальный идентификатор. |
SysPackageSchemaDataId | Ссылка на уникальный идентификатор привязки в таблице SysPackageSchemaData. |
SysCultureId | Ссылка на уникальный идентификатор культуры. |
Data | Локализированные данные. |
ВАЖНО
Внешний интерфейс механизма работы по созданию и установке привязки идентичен предыдущим версиям.
Создание привязанных данных
В случае если схема не содержит локализированных колонок, привязанные данные для этой схемы по прежнему хранятся в таблице SysPackageSchemaData. Однако если в схеме присутствуют локализированные колонки, то созданная привязка данных для этой схемы будет храниться следующим образом:
- Нелокализированные данные содержатся, как и прежде, в таблице SysPackageSchemaData.
- Локализированные данные размещены в таблице SysPackageDataLcz.
- Каждая запись в SysPackageDataLcz соответствует записи в SysPackageSchemaData, ссылаясь на уникальный идентификатор культуры SysCultureId. Например, если в системе установлены две культуры — английская и русская, то каждой записи в таблице SysPackageSchemaData будут соответствовать две записи в таблице SysPackageDataLcz со ссылкой на соответствующий идентификатор записи в таблице SysPackageSchemaData, а также на идентификатор культуры в таблице SysCulture.
Установка привязанных данных
Установка данных для схемы, которая не содержит локализированных колонок, происходит, как и прежде, в таблицу соответствующей схемы. Если в привязанных данных есть локализированные значения, т.е. в таблице SysPackageDataLcz есть соответствующие записи, то установка происходит не только в таблицу соответствующей схемы, но и в ее локализированную таблицу Sys[имя схемы]Lcz.
Например, устанавливаются привязанные данные для схемы ContactType. Нелокализированные данные будут установлены в таблицу ContactType, а локализированные данные будут установлены и в таблицу ContactType (значения дефолтной культуры), и в таблицу SysContactTypeLcz (значения всех остальных культур, которые есть в привязке и в системе).
ВАЖНО
Если ваша схема является системной, т. е. ее название начинается с префикса "Sys", то для локализированной таблицы префикс "Sys" повторно добавлен не будет. Например, если схема называется SysTest1, то таблица локализированных данных будет называться не SysSysTest1Lcz, а SysTest1Lcz.
Хранение привязанных данных в SVN
Структура хранения привязанных данных схем в SVN для версий приложения 7.8 и выше отображена на рисунке 1.
Рис. 1. — Структура хранения привязанных данных в SVN
Нелокализированные данные хранятся в файле data.json. Все локализированные данные размещены в соответствующих файлах в подкаталоге Localization. Например, для схемы Country пакета Base данные локализированы только для двух языков и хранятся в соответсвующих файлах — data.en-US.json и data.ru-RU.json (рис. 1).