Как настроить перевод справочников НСИ на другие языки?

Настройка мультиязычных справочников НСИ/составных справочников НСИ, то есть справочников, содержащих перевод атрибутов и элементов на различные языки, доступна с помощью языка Fore.

Описание примера

Для выполнения примера предполагается наличие репозитория НСИ, содержащего справочник НСИ. Идентификатор репозитория - «RDS_REPO», справочника - «RDS_DICT». Для репозитория пользователя русский язык установлен по умолчанию. Также необходимо добавить ссылки на системные сборки «Metabase» и «Rds».

Процедура экспорта данных

Sub UserSub;
Var
    Mb: IMetabase;
    RdsRepoDescr: IMetabaseObjectDescriptor;
    RdsDict: IRdsDictionary;
    DictTransl: IRdsDictionaryTranslations;
    AttrTransl: IRdsAttributeTranslations;
    Attr: IRdsAttribute;
Begin
    Mb := MetabaseClass.Active;
    RdsRepoDescr := Mb.ItemById("RDS_REPO");
    RdsDict := Mb.ItemByIdNamespace("RDS_DICT", RdsRepoDescr.Key).Edit As IRdsDictionary;
   DictTransl := RdsDict.Translations;
    // Указываем, что справочник будет переводиться на различные языки   
    DictTransl.IsOn := True;
    // Проверяем, существует ли настройка с параметрами перевода справочника на английский язык
    If DictTransl.FindByLocale(LocaleCodeID.English_UnitedStates) = Null Then
        // Настройка отсутствует, добавляем ее
        DictTransl.Add(LocaleCodeID.English_UnitedStates);
    End If;
    // Задаем наименование справочника для русского и английского языков
    DictTransl.Name(LocaleCodeID.Russian) := "Справочник государств";
    DictTransl.Name(LocaleCodeID.English_UnitedStates) := "States dictionary";
    //  Получаем параметры атрибута "NAME"
    Attr := RdsDict.Attributes.FindById("NAME");
    AttrTransl := Attr.Translations;
    // Указываем, что атрибут будет переводиться на различные языки  
   AttrTransl.IsOn := True;
    // Задаем наименование атрибута "NAME" для русского и английского языков        
    AttrTransl.Name(LocaleCodeID.Russian) := "Наименование государства";
    AttrTransl.Name(LocaleCodeID.English_UnitedStates) := "State name";
    // Сохраняем изменения  
    (RdsDict As IMetabaseObject).Save;
End Sub UserSub;

После выполнения примера справочник НСИ будет настроен для работы с русским и английским языками. Будут заданы наименования справочника и наименования атрибута «NAME» для отображения на данных языках.

См. также:

Вопросы и ответы