Системой Ultima Businessware® поддерживается мультиязычность справочников. Это означает, что свойство справочника может иметь значения на одном и более языке. Например, названия товаров в каталоге компании, работающей с поставщиками из Финляндии, могут быть на русском, финском и шведском языках. В этом случае наиболее используемый из языков назначается языком по умолчанию. Его идентификатор (ID таблицы LANGUAGES) равен 1.
Локализуемым считается справочник, у которого мультиязычным является хотя бы одно из свойств (задается флагом IS_MULTILANGUAGE таблицы DICT_PROPERTIES). Локализованные значения свойств справочника (в том числе и на языке по умолчанию) хранятся в таблице PROP_TRANSLATIONS в схеме ядра базы данных.
Все обращения к справочникам, хранящимися в прикладной схемы базы данных, как, например, операции чтения/записи, происходят через представления. В том числе это сделано и для реализации мультиязычности.
Локализация справочника может быть прозрачной или непрозрачной (задается свойством TRANSP_LOCALIZATION таблицы DICTIONARIES).
Прозрачная локализация
При прозрачной локализации вводимые пользователем значения мультиязычных свойств справочника записываются в таблицу PROP_TRANSLATIONS в схеме ядра базы данных. Кроме того, последнее актуальное значение свойства, вне зависимости от того на каком языке оно введено, реплицируется и в таблицу справочника в прикладной схеме базы данных. Это позволяет значительно упростить поиск по истории изменений.
При обращении пользователя к прозрачно локализуемому справочнику, он получает доступ к его представлению, где мультиязычные свойства представлены на языке пользователя (язык пользователя определяется полем LANG_ID таблицы USERS).
При прозрачной локализации в представлении, прикрывающем таблицу справочника, на месте мультиязычного свойства всегда будут значения на языке пользователя. При внесение пользователем изменений в справочник (представление), значение на языке пользователя будет записано в таблицу PROP_TRANSLATIONS. Для каждого поля требуется выполнение одного оператора JOIN. Поэтому следует помнить, что включение прозрачной локализации для большого справочника может привести к снижению производительности. |
Непрозрачная локализация
При непрозрачной локализации вводимые пользователем значения мультиязычных свойств справочника записываются в таблицу PROP_TRANSLATIONS в схеме ядра базы данных. Кроме того, если значение свойства было введено на языке по умолчанию (и только в этом случае), оно также реплицируется в таблицу справочника в прикладной схеме базы данных.
При обращении пользователя к непрозрачно локализуемому справочнику, он получает доступ к его представлению, где мультиязычные свойства представлены на языке по умолчанию.