Главная » C#, Компоненты » Работа с файлами ресурсов

0

Для компонентов, предназначенных работать с несколькими языками, удобно использовать сервис iResourceService, предоставляющий доступ к ресурсным файлам. Сервис имеет два метода:

0 метод GetResourceReader(CultureInfo info) возвращает интерфейс iResourceReader, позволяющий читать файл ресурсов для указанной культуры;

0 метод GetResourceWriter(CultureInfo info) возвращает интерфейс iResourcewriter, позволяющий записывать файлы ресурсов для указанной культуры.

Основная идея переключения языка компонента заключается в хранении всех строк в ресурсных файлах. При выборе языка выбирается соответствующий ресурсный файл, и все строки "переводятся" на этот язык. Единственное,

о чем стоит позаботиться, — это чтобы строки корректно вписывались в отведенное для них место, т. к. длины строк на различных языках будут разными.

Файл ресурса можно создать следующим образом:

// Получаем интерфейс сервиса IResourceService rs =

{IResourceService)this.Component.Site.GetService {

typeof(IResourceService)); // Получаем интерфейс IResourceWriter для текущего языка IResourceWriter rw = rs.GetResourceWriter(Culturelnfo.CurrentUlCulture); // Записываем строки в ресурс rw.AddResource("stringl", "строка-1"); rw.AddResource("string2", "строка-2"); rw.AddResource("string3", "строка-3"); // Генерируем ресурсный файл rw.Generate(); // Освобождаем объекты rw.Close();

Чтение производится с помощью интерфейса iDictionaryEnumerator, который возвращает метод GetEnumeratorO интерфейса IResourceReader. К вопросу локализации мы еще вернемся в разд. J0.6 и 12.7.

Литература:

Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. – СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

По теме:

  • Комментарии