Работа с локализацией
в Stimulsoft присутствует специальный класс StiLocalization для загрузки локализаций, их хранения и изменения, а также получения локализованных строк. Этот класс поддерживает загрузку локализаций из XML-файлов, потоков, встроенных ресурсов сборки и автоматический выбор локализации на основании текущей культуры системы. Однако в генераторах отчетов для .NET и JavaScript платформ присутствуют отличия в свойствах и методах для класса StiLocalization.
Ниже представлены перечень свойств и методов по работе с локализациями.
Свойство 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);
|
Ниже представлены перечень свойств и методов по работе с локализациями.
Свойство 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");
|