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. Он использует схему поиска для извлечения правильной версии атрибутов строки приложения, базируясь на региональной настройке
1 import javax.microedition.midlet.MIDlet;
2
3 import javax.microedition.Icdui.Display;
4 import javax.microedition.Icdui.Displayable;
5 import javax.microedition.Icdui.Form;
6
7 /**
8 Первая версия приложения IlSNDemo.
9
10 <���р>Данная версия демонстрирует простейший подход к
11 загрузке локализованных ресурсов из файла JAD MID-лета.
12 этот подход быстро становится непригодным при большом
13 количестве ресурсов. И он полезен только для текстовых
14 сообщений, но не для других видов локализованных
15 ресурсов.
16 */
17 public class IlSNDemo extends MIDlet
18 {
19 // Региональная настройка, указанная для выполнения в
20 // данном MID-лете.
21 private String locale;
22
23 // Displayable. Этот компонент отображается
24 // на экране.
25 private HelloForm form;
26
27 // Экземпляр Display. Данный объект управляет всеми
28 // компонентами Displayable данного MID-лета.
29 private Display display;
30
31 // Экземпляр MID-лета.
32 private static IlSNDemo instance;
33
34 // Префикс имен атрибутов локализуемых
35 // ресурсов.
36 String attrPrefix = new String("I18NDemo-");
37
38 /**
39 Конструктор No-arg.
40 */
41 public I18NDemo()
42 {
43 super();
44 instance = this;
45 }
46
47 /*
48 Получает экземпляр данного класса, который существует в
49 работающем приложении.
50
51 Звоззращает экземпляр, созданный при запуске
52 приложения.
53 */
54 public static IlSNDemo getlnstance()
55 {
56 if (instance == null)
57 {
58 instance = new IlSNDemo ();
59 }
60 return instance;
61 }
62
63 /**
64 Запускает. MID-лет. Получает текущую региональную
65 настройку для реализации. Использует ее для
66 создания префикса ключей атрибутов всех
67 локализованных ресурсов. Названия локализованных
68 ресурсов в файле JAD соответствуют
69 совместимой схеме имен.
70 */
71 public void startApp()
72 {
73 // Извлекает региональную настройку из программного
74 // обеспечения AMS. Региональная настройка должна быть
75 // установлена прежде, чем данный MID-лет начнет выполняться.
76 locale =
77 System.get Property("microedition.locale");
78
79 // Создает элемент Displayable. Получает локализованную
80 // String, которая представляет заголовок
81 // Form, из определенных пользователем атрибутов файла
82 // JAD. Получает все локализованные строки таким
83 // образом.
84 String formTitle = getResource("title");
85 form = new HelloForm(formTitle);
86
87 // Это приложение просто отображает единственную форму,
88 // созданную ранее.
89 display = Display.getDisplay(this);
90 display.setCurrent(form);
91 }
92
93 /**
94 Выдает значение, связанное с указанным
95 ключом из списка определяемых пользователем
96 ресурсов MID-лета в файле JAD приложения.
97
98 @param key — ключ пары «ключ-значение».
99
100 @выдает значение, связанное с указанным
101 ключом.
102 */
103 public String getResource(String key)
104 {
105 StringBuffer index = new
106 StringBuffer(«ttrPrefix);
107 String value;
108
109 index.append(key);
110 index.append(-);
111 index.append(locale);
112
113 value = getAppProperty(index.toString ());
Читать дальше