Жанры

Страница 67

20 августа 2026, 03:04

Конструктор No-arg.

*/

public I18NDemoResources_en_US()

{

super();

}

public Object ij[] getContents()

{

return contents;

}

// Необходим статический инициализатор для инициализации

// переменных, которые не могут быть инициализированы в

// массиве содержимого. Например, мы не можем выделить что-либо

// в массиве содержимого для создания изображения и,

// выполнить требуемую обработку исключений.

static

{

try

{

applcon = Image.createlmage("i!8n-en_US.png");

}

catch (lOException ioe)

{

System.оut.println(ioe.getMessage)));

ioe.printStackTrace();

}

}

}

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

Если класс определяет другие ресурсы кроме текстовых строк, тогда при создании экземпляра класса должны быть созданы объекты, соответствующие региональной настройке. Последний объект в списке является примером нетекстового ресурса, который инициализируется при создании экземпляра класса. Класс использует статический инициализатор Java для создания экземпляра статических нестроковых объектов при загрузке класса. Наша программа должна использовать статический инициализатор, потому что каждый класс локализованного ресурса создает определяемое региональной настройкой изображение.

Листинг 9.10. Ресурс каждой региональной настройки определяется в своем собственном соответствующем подклассе ListResourceBundle. Данный подкласс определяет атрибуты, локализованные для франкоязычного региона

import javax.microedition.lcdui.Image;

import Java.io.lOException;

/ **

Класс, представляющий локализованные ресурсы для французского языка региона Франции.

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

*/

public class I18NDemoResources_fr_FR

extends ListResourceBundle

{

// Содержит один из локализованных ресурсов. Нам необходимо

// инициализировать данную переменную в статическом

// инициализаторе данного класса.

private static Image applcon;

private Object [][] contents =

{ {"title", "AlluOOf4, tout le Monde"), // Form title.

// Создаем текст: "My third MIDlet". ("greeting", "Mon troisiuOOe8me MIDlet"),

// «Кнопка была нажата» ("Button was Pressed").

{"alert_title", "Bouton a uCOe9tuOOe9 pressuOOe9"),

// «Кнопка была нажата» ("The button was pressed").

{"alert_text", "Le bouton a uOOe9tuOOe9 pressuOOe9!"},

("exit", "Sortie"), // Пункт меню «Выход» ("Exit").

("menu", "Menu"), // Экранная клавиша «Меню» ("Menu").

("cancel", "Quitter"), // Пункт меню «Отмена» ("Cancel").

("stop", "Arreter"), // Пункт меню «Стоп» ("Stop").

("ok", "OK"), // Пункт меню «OK».

("alert", "Alerte"), // Экранная клавиша «Уведомление» ("Alert").

i" sayhi","Dis bonjour"), // Пункт меню «Скажи- привет» ("Say Hi").

("screen", "Ecran"), // Пункт меню «Экран» ("Screen").

{"item", "Item"), //.Пункт меню «Предмет» ("Item").

("help", "Aider"), // Пункт меню «Помощь» ("Help").

("app_icon", applcon) // Значок приложения.

};

/**

Конструктор No-arg.

*/

public I18NDemoResources_fr_FR()

{

super();

/**

Пока нет комментариев. Авторизуйтесь, чтобы оставить свой отзыв первым!