в Stimulsoft присутствует специальный класс StiLocalization для загрузки локализаций, их хранения и изменения, а также получения локализованных строк. Этот класс поддерживает загрузку локализаций из XML-файлов, потоков, встроенных ресурсов сборки и автоматический выбор локализации на основании текущей культуры системы. Однако в генераторах отчетов для .NET и JavaScript платформ присутствуют отличия в свойствах и методах для класса StiLocalization.

 

.NET Engine

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

 

Свойство DirectoryLocalization

Предоставляет возможность указать наименование папки, в которой хранятся XML-файлы локализаций. По умолчанию Localization.

 

C#

 

StiLocalization.DirectoryLocalization = "Localization";

 

 

 

Свойство Localization

Предоставляет возможность указать наименование файла локализации.

C#

 

StiLocalization.Localization = "zh-CHS.xml";

 

 

 

Свойство SearchLocalizationFromRegistry

Предоставляет возможность попытаться найти путь к папке локализаций в реестре ОС.

 

C#

 

StiLocalization.SearchLocalizationFromRegistry = true;

 

 

 

Свойства Language, Description, CultureName

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

 

C#

 

StiLocalization.LoadCurrentLocalization();

Console.WriteLine(StiLocalization.CultureName);

 

 

 

Свойства IsEn, IsDe, IsBeRu, IsCyrillic

Предоставляют возможность определить принадлежность загруженной локализации.

 

C#

 

if (StiLocalization.IsDe) Console.WriteLine("German locale");

 

 

 

Свойства BlockLocalizationExceptions, BlockLocalizationLoading

Предоставляют возможность управлять поведением при ошибках и загрузке. Можно подавлять исключения при отсутствии ключей или полностью блокировать загрузку локализационных файлов.

 

C#

 

StiLocalization.BlockLocalizationExceptions = true; // Disables exceptions for missing localization keys

StiLocalization.BlockLocalizationLoading = false; // Enables localization loading

 

 

 

Метод GetDirectoryLocalizationFromRegistry()

Предоставляет возможность получить путь к каталогу локализаций, сохраненному в реестре. Если поиск через реестр отключен или каталог не существует, возвращает null.

 

C#

 

string path = StiLocalization.GetDirectoryLocalizationFromRegistry();

 

 

 

Метод GetDirectoryLocales()

Предоставляет возможность найти каталог locales рядом с исполняемым файлом приложения. Возвращает путь только если каталог содержит XML-файлы локализации.

 

C#

 

string path = StiLocalization.GetDirectoryLocales();

 

 

 

Метод GetEnumValue(string key)

Предоставляет возможность получить локализованное значение перечисления из категории PropertyEnum.

 

C#

 

string value = StiLocalization.GetEnumValue("AlignmentCenter");

 

 

 

Метод LoadDefaultLocalization()

Предоставляет возможность загрузить встроенную английскую локализацию из ресурсов сборки.

 

C#

 

StiLocalization.LoadDefaultLocalization();

 

 

 

Метод LoadCurrentLocalization()

Предоставляет возможность загрузить текущую локализацию. Если задано свойство Localization, загружает указанный файл. В противном случае пытается подобрать локализацию по текущей культуре ОС.

 

C#

 

StiLocalization.LoadCurrentLocalization();

 

 

 

Метод Load(string file)

Предоставляет возможность загрузить локализацию из XML-файла.

 

C#

 

StiLocalization.Load(@"Localization\de.xml");

 

 

 

Метод Load(Stream stream)

Предоставляет возможность загрузить локализацию из потока.

 

C#

 

using var stream = File.OpenRead("pt.xml");

StiLocalization.Load(stream);

 

 

 

Метод GetParam(string file, ...)

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

 

C#

 

StiLocalization.GetParam("ko.xml", out var language, out var description, out var cultureName);

 

 

 

Метод GetParam(Stream stream, ...)

Предоставляет возможность получить информацию о локализации из потока.

 

C#

 

StiLocalization.GetParam(stream, out var language, out var description, out var cultureName);

 

 

 

Метод Add(string category, string key, string value)

Предоставляет возможность добавить новое значение локализации или обновить существующее.

 

C#

 

StiLocalization.Add("MainMenu", "File", "NewFile");

 

 

 

Метод Get(string category, string key)

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

 

C#

 

string text = StiLocalization.Get("MainMenu", "File");

 

 

 

Метод GetCleaned(string category, string key)

Предоставляет возможность получить локализованную строку после дополнительной обработки методом Loc.GetCleaned().

 

C#

 

string text = StiLocalization.GetCleaned("MainMenu", "File");

 

 

 

Метод GetValue(string category, string key)

Аналог метода Get(category, key). Предоставляет возможность получить локализованную строку по категории и ключу. Если значение не найдено, генерирует исключение.

 

C#

 

string text = StiLocalization.GetValue("MainMenu", "File");

 

 

 

Метод Get(string category, string key, bool throwError)

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

 

C#

 

string text = StiLocalization.Get("MainMenu", "UnknownKey", false);

 

 

 

Метод Set(string category, string key, string value)

Предоставляет возможность изменить значение локализации в памяти.

 

C#

 

StiLocalization.Set("MainMenu", "File", "App File");

 

 

 

Метод GetKeys(string category)

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

 

C#

 

string[] keys = StiLocalization.GetKeys("MainMenu");

 

 

 

Метод GetValues(string category)

Предоставляет возможность получить список всех значений указанной категории.

 

C#

 

string[] values = StiLocalization.GetValues("MainMenu");

 

 

 

Метод GetCategories()

Предоставляет возможность получить список всех категорий загруженной локализации.

 

C#

 

string[] categories = StiLocalization.GetCategories();

 

 

 

Метод GetLocalization(bool format)

Предоставляет возможность получить текущую локализацию в формате JSON.

 

C#

 

string json = StiLocalization.GetLocalization(true);

 

 

 

JS Engine

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

 

Свойство cultureName

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

 

JavaScript

 

StiLocalization.cultureName = "de";

console.log(StiLocalization.cultureName);

 

 

 

Метод loadLocalizationFile(filePath)

Предоставляет возможность загрузить локализацию из файла.

 

JavaScript

 

StiLocalization.loadLocalizationFile("locales/de.xml");

 

 

 

Метод get(category, key)

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

 

JavaScript

 

const text = StiLocalization.get("MainMenu", "File");

 

 

 

Метод getJsonStringLocalization()

Предоставляет возможность получить текущую локализацию в формате JSON.

 

JavaScript

 

const json = StiLocalization.getJsonStringLocalization();

 

 

 

Метод setLocalization(localizationXml, onlyThis)

Предоставляет возможность загрузить локализацию из XML-строки. Если параметр onlyThis имеет значение true, список зарегистрированных локализаций будет очищен.

 

JavaScript

 

StiLocalization.setLocalization(localizationXml);

 

 

 

Метод loadLocalization(localizationXml)

Предоставляет возможность загрузить локализацию из XML-строки и получить имя загруженного языка.

 

JavaScript

 

const language = StiLocalization.loadLocalization(localizationXml);

 

 

 

Метод addLocalizationFile(filePath, load, language)

Предоставляет возможность зарегистрировать файл локализации. Если параметр load имеет значение true, локализация будет загружена немедленно.

 

JavaScript

 

StiLocalization.addLocalizationFile("locales/de.xml");

 

 

 

Метод setLocalizationFile(filePath, onlyThis)

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

 

JavaScript

 

StiLocalization.setLocalizationFile("locales/fr.xml");