Creatio development guide
PDF
Документация по разработке
Описание платформы
Это документация Creatio версии 7.12.0. Мы рекомендуем использовать новую версию документации.

Локализуемые ресурсы конфигурации

Glossary Item Box

Общие сведения

Конфигурационные ресурсы приложения — это локализуемые строки и изображения, которые используются в приложении для отображения служебной информации пользователю.

Ресурсы приложения размещены в пакетах и привязаны к базовой схеме в иерархии схем. При запросе ресурсов определенной схемы происходит сбор всех ресурсов по иерархии и "схлопывание" с учетом уровней и позиций пакетов.

Отображение ресурсов с учетом иерархии

Существует два режима построения ресурсов для схемы: режим дизайна (Design-time) и режим выполнения приложения (Run-time).

Режим дизайна (Design-time)

Данный режим используется для отображения ресурсов в дизайнерах и мастерах. При этом ресурсы для схем строятся только до уровня пакета, в котором находится схема, для которой запрашиваются ресурсы. Также не учитываются ресурсы пакетов, которые не попадают в иерархию по прямым связям. Например, для схемы ChildSchema (рис. 1) результирующие ресурсы будут такими:

  • BaseResource: BaseValue;
  • ChildResource: ChildValue.

Как видно по результату, ресурсы не попавших в иерархию построения пакетов PackageWithReplacedResource1 и PackageWithReplacedResource2 не учитываются. Также не учитываются ресурсы в пакетах PackageWithReplacedChildResource1 и PackageWithReplacedChildResource2, которые находятся ниже по уровню запрашиваемой схемы.

Рис. 1. — Пример иерархии пакетов

Исключением является случай, когда запрашивается схема с указанием пакета, от которого нужно собирать все ресурсы. Тогда результирующий набор ресурсов будет сформирован до уровня запрашиваемого пакета. Например, ресурсы для схемы ChildSchema до уровня пакета BottomPackage будут выглядеть так:

  • BaseResource: BaseValue;
  • ChildResource: ReplacedChildValue2;
  • ChildResource1: Value1;
  • ChildResource2: Value2.

Здесь значение ресурса ChildResource поменялось на ReplacedChildValue2. Это произошло по причине его замещенияв пакетах на уровень ниже (Level 2). При этом учитывается позиция и имя пакета — преимущество отдается пакету с большим значением позиции. При одинаковом значении позиции преимущество отдается первому по имени пакету.

Режим выполнения приложения (Run-time)

Данный режим отвечает за отображение ресурсов во всех разделах системы кроме дизайнеров. Механизм построения ресурсов в этом режиме в целом очень похож на механизм, используемый в режиме дизайна. Главным отличием является то, что при запросе схемы в результирующем списке ресурсов будут присутствовать еще и ресурсы из пакетов, не входящих напрямую в иерархию. Например, если будут запрашиваться ресурсы схемы ChildSchema, то результат будет следующим:

  • BaseResource: ReplacedBaseValue2;
  • Resource1: Value1;
  • Resource2: Value2;
  • ChildResource: ReplacedChildValue2;
  • ChildResource1: Value1;
  • ChildResource2: Value2.

Отображение ресурсов по умолчанию

Если для культуры, отличающейся от культуры по умолчанию, нет значений ресурсов, которые должны отображаться пользователю, то используется механизм "отката" значений до тех, которые используются в культуре по умолчанию.

Этот механизм реализован в классах Terrasoft.Common.LocalizableString (представляет локализуемую строку) и Terrasoft.Common.LocalizableImage (представляет локализуемое изображение). Эти классы содержат следующие свойства и методы для получения локализованного значения:

  • Value — свойство, которое возвращает значение локализованного объекта для текущей культуры или для культуры по умолчанию (если не найдено значение для текущей).
  • HasValue — свойство, которое возвращает признак наличия значения локализованного объекта для текущей культуры, или для культуры по умолчанию (если не найдено значение для текущей).
  • GetCultureValue() — метод, который возвращает значение локализованного объекта для текущей культуры или для культуры по умолчанию (если не найдено значение для текущей).
  • HasCultureValue() — метод, который возвращает признак наличия значения локализованного объекта для запрашиваемой культуры без учета культуры по умолчанию.

Хранение ресурсов

Необходимые для работы приложения ресурсы хранятся в базе данных. Для установки в новое приложение или для переноса между приложениями ресурсы могут храниться в системе контроля версий.

Хранение ресурсов в БД

Ресурсы хранятся в таблице базы данных SysLocalizableValue в виде ключ-значение для каждой локализуемой строки или изображения. Структура таблицы SysLocalizableValue приведена в таблице 1. Каждая запись таблицы SysLocalizableValue привязана к пакету и идентификатору базовой схемы Id, при этом сама схема может находиться в другом пакете.

Табл. 1. — Структура таблицы SysLocalizableValue

Название колонки Описание
Id Идентификатор записи.
CreatedOn Дата создания записи.
CreatedById Ссылка на Контакт (Contact), создавший запись.
ModifiedOn Дата изменения записи.
ModifiedById Ссылка на Контакт (Contact), изменивший запись.
SysPackageId Ссылка на пакет (SysPackage).
SysSchemaId Ссылка на базовую схему (SysSchema). Заполняется только для ресурсов конфигурации.
ResourceManager Название менеджера ресурсов, заполняется только для ресурсов ядра.
SysCultureId Ссылка на культуру (SysCulture).
ResourceType Тип ресурса.
IsChanged Признак, был ли ресурс изменен пользователем.
Key Ключ ресурса.
Value Значение строкового ресурса.
ImageData Значение графического ресурса.

Сохранение ресурсов по умолчанию

Если ресурс создается пользователем, который находится в культуре, отличающейся от культуры по умолчанию, для ресурса будет создана запись, соответствующая пользовательской культуре. Чтобы пользователи других культур также могли видеть этот ресурс, используется механизм дублирования в основную культуру. То есть будет создана аналогичная запись ресурса, но со ссылкой на культуру по умолчанию. Соответственно, новое значение ресурса будет отображаться во всех других культурах, если в них не задано своего значения для этого ресурса, как описано выше в разделе "Отображение ресурсов по умолчанию".

Хранение ресурсов в системе контроля версий и файловой системе

Структура хранения ресурсов в системе контроля версий и в файловой системе подробно описана в разделе "Структура хранения ресурсов" статьи "Структура и использование локализуемых ресурсов".

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?