Архитектура Microsoft Windows для разработчиков

продажа песка


Занятие 3. Локализация приложений

(Продолжительность занятия 25 минут)

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

Что касается интерфейса, то здесь локализуют не только язык, но и другие элементы: значки, символы и т.д. Например, пользователи в Соединенных Штатах легко опознают округлый почтовый ящик с флагом на боку как значок почтовой программы, но пользователи в других странах могут не понять этой аналогии. На этом занятии Вы познакомитесь с методами локализации приложений.

 
Изучив материал этого занятия, Вы сможете:

  • рассказать о применении файлов ресурсов для разработки приложений;
  • описать кодировку Unicode и ее назначение.

Файлы ресурсов

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

Хранение строк в файлах ресурсов

При разработке приложений на Visual Basic вместо ссылок на строки, рисунки и данные применяются функции LoadResString, LoadResPicture и LoadResData. Хранение этих элементов в файле ресурсов имеет два преимущества:

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

 
Пример Вот пример использования функции Visual Basic LoadResString. Аргумент Index задает идентификатор данных в файле ресурсов.

strValue = LoadResString(Index)

> Использование файла ресурсов

  1. Запустите Microsoft Visual Basic 5 и создайте новый проект типа Standard EXE.
  2. Добавьте элементы управления в форму так, как показано на рисунке ниже. Не меняйте заданные по умолчанию имена элементов.

    4-9.jpg

  3. Элемент управления в левом верхнем углу — это изображение. Свяжите его свойство Picture с любым понравившимся Вам значком, который Вы найдете в каталоге Graphics\Icons.
  4. Добавьте в событие обработки щелчка на кнопке Exit код закрытия приложения.
  5. Сохраните свою работу в файле Forml.frm и Lab04.vbp в папке WA\Practice\ Ch04.

> Использования файла ресурсов в Visual Basic

  1. Из каталога WA\Practice\Ch04 добавьте в проект файл ресурсов под названием Lab.res.

    Для этого щелкните правой кнопкой в окне Project Explorer и выберите в меню команду Add. Щелкните кнопку Add File и найдите нужный файл ресурсов на диске.

  2. В окне Project Explorer дважды щелкните Related Documents, чтобы удостовериться, что файл ресурсов добавлен в проект.
  3. Откройте окно кода для события Form_Load.
  4. Добавьте приведенный ниже код для загрузки ресурса «изображение» с идентификатором 100 и его связывания со свойством Picture элемента управления «изображение»:

    Image1.Picture = LoadResPicture(100, vbResIcon)

  5. Добавьте приведенный ниже код для загрузки ресурса «строка» с идентификатором 100 и его связывания со свойством Caption элемента управления «метка»:

    Label-1. Caption = LoadResString(IOO)

  6. Запустите приложение.

    Если ресурсы загружены правильно, форма будет выглядеть вот так.

    4-10.jpg

  7. Измените код в проекте Form_Load так, чтобы использовались рисунок и строка под номером 200.
  8. Запустите приложение.

Коды символов

Символы в системе представлены своими кодами. Они генерируются и сохраняются, когда пользователь создает документ. Однобайтные наборы символов содержат 256 кодов: этого достаточно для кодирования большинства символов основных языков. Например, набор символов Windows Extended ANSI содержит 256 символов, включая латинские буквы, арабские цифры, знаки препинания и изобразительные элементы.

Однако 256 кодов недостаточно для хранения всех символов одного шрифта на разных языках или для языков, использующих алфавит большого размера (например, в китайском языке более 12 000 символов-иероглифов). В подобных случаях применяются многобайтные наборы символов (обычно их называют двухбайтными).

Формат Unicode

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

Внутреннее представление символов в Windows NT (но не в Windows 95) использует формат Unicode.

 
Пример Здесь строка преобразуется в формат Unicode с помощью функции Visual Basic StrConv с константой vbUnicode:

strUnicodeValue = StrConv("String Value", vbUnicode)

 
Пример Здесь строка в формате Unicode преобразуется в строку в формате ANSI с помощью той же функции и константы vbFromUnicode:

StrANSIvalue = StrConv(strUnicodeValue, vbFromUnicode)

Резюме

Локализация делает возможным использование программного продукта на другом языке. Этой операции подлежат экранная информация, документация, справочные файлы, сценарии, шаблоны, модели, файлы примеров, значки и символы. На практике локализуемую информацию отделяют от кода приложения посредством файлов ресурсов, применяя в коде функции загрузки ресурса вместо самих ресурсов — строк, изображений и т.п. Ресурсы изолированы в одном файле, что позволяет локализовать приложение без доступа к исходному коду или его перекомпиляции. Строки в ресурсах хранятся в формате Unicode, поддерживающем многобайтные наборы символов.