Разработка расширения с локализованными ресурсами

При необходимости использовать локализованные ресурсы в расширении можно их добавить при регистрации расширения в Index.ts.

Чтобы создать расширение, добавляющее новые локализованные ресурсы, выполните приведенную далее инструкцию.

  1. Создайте проект клиентского расширения.

  2. Создайте в папке src файл TypeScript (.ts, .tsx) со следующим содержимым:

    import { ILocalizationsMap } from "@docsvision/webclient/System/ILocalizationsMap"; (1)
    
    export function getLocalizedResources(): ILocalizationsMap {
        let cultureMap: ILocalizationsMap = {};
        cultureMap["en"] = {
            "Resource_One": "Sample",
            "Resource_Two": "Sample 2"
        };
           cultureMap["ru"] = {
            "Resource_One": "Пример",
            "Resource_Two": "Пример 2"
        };
        return cultureMap;
    }
    1 Импортируем необходимые сущности из модуля.

    В данном коде выполняется добавление двух ресурсов Resource_One и Resource_Two для языков русский (ru) и английский (en).

    Функция getLocalizedResources (можно использовать другое название) возвращает массив добавляемых локализованных ресурсов, в котором каждый элемент соответствует определённой локали. Например, следующий участок кода отвечает за добавление ресурсов для локали ru (русский):

    cultureMap["ru"] = {
        "Resource_One": "Пример",
        "Resource_Two": "Пример 2"
    };
  3. Измените содержимое файла Index.ts.

    import { getLocalizedResources } from "./LocalizedResource"; (1)
    import { extensionManager } from "@docsvision/webclient/System/ExtensionManager";
    import { ILocalizationsMap } from "@docsvision/webclient/System/ILocalizationsMap";
    
    extensionManager.registerExtension({ (2)
        name: "Client extension with localization",
        version: "1.0",
        getLocalizations(): ILocalizationsMap {
            return getLocalizedResources();
            }
    })
    1 Добавьте строку импорта функции getLocalizedResources из добавленного в 2 файла (в примере — LocalizedResource).
    2 Добавьте в registerExtension функцию getLocalizations, которая должна вызывать импортированную в 1 функцию.

Пример использования ресурсов

export function onButtonClick(sender: LayoutControl, args: IEventArgs) {
     const messageWindow - sender.getService($MessageWindow);
     messageWindow.showInfo(resoures.Resource_One);
}