Разработка решения интернационализации приложения MIDP

В этом разделе представлены три подхода к разработке поддержки интернационализации и локализации приложений MIDP. Эти подходы были отобраны на основе доступных в MIDP API, которые могут предоставить некоторый уровень поддержки интернационализации, или тех, что включены в MIDP для работы с интернационализацией.

Использование атрибутов МID-лета для определения локализованных ресурсов

Как вы знаете, вы можете размещать определяемые пользователем атрибуты в файле JAD вашего приложения. Это означает, что вы можете использовать файл JAD для определения атрибутов MID-лета, которые представляют локализованные ресурсы, используемые вашим приложением.

В данном подходе программы больше не вставляют ресурсы (например, текстовую строку) в приложение. Вместо этого программы размещают ресурсы в файле JAD. Программа ищет ресурс, извлекая значение некоторого атрибута. Программист определяет имена атрибутов так, чтобы они содержали компонент, который представляет контекст региональной настройки. Таким образом программы могут извлекать версию ресурса, который совместим с их контекстом региональной настройки среды исполнения.

Для демонстрации данного подхода я вновь использовал демонстрационную программу HelloWorld из главы 3. Приложение переименовано на IISNDemo для отличия его от оригинальной версии.

В листинге 9.1 показан файл дескриптора приложения, используемый программой IISNDemo. Несколько новых атрибутов были добавлены в файл JAD. Они представляют собой текстовые строки, которые пользователь видит во время исполнения приложения. Обратите внимание, что существует две версии каждой из данных строк: одна английская и одна французская. Этот файл поддерживает выполнение приложения в английской и французской языковых средах.

Листинг 9.1. Файл JAD содержит один атрибут на строку приложения на поддерживаемую региональную настройку

I18NDerao-alert-en_US: Alert

I18NDemo-alert-fr_FR: Alerce

H8NDemo-alert_text-en_US: The button was pressed

I18NDemo-alert_text-f£_FR: Le bouton a ete presse

I18NDemo-alert_title-en_US: Button Pressed

I18NDemo-alert_title-fr_FR: Eouton a ete Presse

I18NDemo-cancel-en_US: Cancel!18NDemo-cancel-fr_FR: Quitter

I18NDemo-exit-en_US: Exit IlSNDemo-exit-fr_FR: Sortie

I18NDemo-greeting-en_US: Another MIDlet!

I18NDerao-greeting-fr_FR: Un autre MIDlet!

I18NDemo-help-en_US: Help I18NDemo-help-fr_FR: Aider

I18NDemo-item-en_US: Item I18NDemo-item-fr_FR: Item,

I18NDemo-menu-en US: Menu

I18NDemo-menu-fr_Fr: Menu

I18NDemo-ok-en_US: OK

I18NDemo-ok-fr_FR: OK

I18NDe: r.o-sayhi-en_US: Say hi

I18NDemo-sayhi-fr_FR: Dis bonjour

I18NDemo-screen-en_US: Screen

I18NDemc-screen-fr_FR: Ecran I18NDemo-stop-en_US: Stop

I18NDemo-stop-fr_FR: Arreter I18NDemo-title-en_US: Hello, World

I18NDemo-title-fr_FR: A116, tout le Monde MIDlet-1: I18N Demo 1,

I18n.png, I18NDemo MIDlet-Info-URL:

MIDlet-Jar-Size: 19101 MIDlet-Jar-URL: ilSn.jar MIDlet-Name:

I18n MIDlet-Vendor: Vartan Piroumian MIDlet-Version: 1.0

Имена атрибутов в файле JAD, показанные в листинге 9.1, приобретают следующую форму:

<название МID-лета>-<ключ>-<обозначение региональной настройки>

Например, следующие два атрибута определяют заголовок MID-лета на английском и французском языках:

I18NDemo-title-en_US: Hello, World.

I18NDemo-title-fr_FR: A116, tout le Monde

В листингах 9.2 и 9.3 показаны два файла, которые составляют исходный код приложения. Они определяют и реализуют схему поиска атрибутов, отражаемую именами атрибутов в файле JAD. Программа извлекает версию атрибута, связанного с контекстом региональной настройки, в котором приложение работает.

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

Листинг 9.2. Измененный класс HelloWorld называется IlSNDemo. Он использует схему поиска для извлечения правильной версии атрибутов строки приложения, базируясь на региональной настройке


Логин
Пароль
Запомнить меня