Системой Ultima Businessware® поддерживается мультиязычность справочников. Это означает, что свойство справочника может иметь значения на одном и более языке. Например, названия товаров в каталоге компании, работающей с поставщиками из Финляндии, могут быть на русском, финском и шведском языках. В этом случае наиболее используемый из языков назначается языком по умолчанию. Его идентификатор (ID таблицы LANGUAGES) равен 1.

Локализуемым считается справочник, у которого мультиязычным является хотя бы одно из свойств (задается флагом IS_MULTILANGUAGE таблицы DICT_PROPERTIES). Локализованные значения свойств справочника (в том числе и на языке по умолчанию) хранятся в таблице PROP_TRANSLATIONS в схеме ядра базы данных.

Все обращения к справочникам, хранящимися в прикладной схемы базы данных, как, например, операции чтения/записи, происходят через представления. В том числе это сделано и для реализации мультиязычности.

Локализация справочника может быть прозрачной или непрозрачной (задается свойством TRANSP_LOCALIZATION таблицы DICTIONARIES).

Прозрачная локализация

При прозрачной локализации вводимые пользователем значения мультиязычных свойств справочника записываются в таблицу PROP_TRANSLATIONS в схеме ядра базы данных. Кроме того, последнее актуальное значение свойства, вне зависимости от того на каком языке оно введено, реплицируется и в таблицу справочника в прикладной схеме базы данных. Это позволяет значительно упростить поиск по истории изменений.

При обращении пользователя к прозрачно локализуемому справочнику, он получает доступ к его представлению, где мультиязычные свойства представлены на языке пользователя (язык пользователя определяется полем LANG_ID таблицы USERS).

35_important

При прозрачной локализации в представлении, прикрывающем таблицу справочника, на месте мультиязычного свойства всегда будут значения на языке пользователя. При внесение пользователем изменений в справочник (представление), значение на языке пользователя будет записано в таблицу PROP_TRANSLATIONS. Для каждого поля требуется выполнение одного оператора JOIN. Поэтому следует помнить, что включение прозрачной локализации для большого справочника может привести к снижению производительности.

Непрозрачная локализация

При непрозрачной локализации вводимые пользователем значения мультиязычных свойств справочника записываются в таблицу PROP_TRANSLATIONS в схеме ядра базы данных. Кроме того, если значение свойства было введено на языке по умолчанию (и только в этом случае), оно также реплицируется в таблицу справочника в прикладной схеме базы данных.

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