Рисунок 9.3.Последовательности переключения уникода легко поддерживают все письменные языки. С помощью простого текстового редактора вы можете создавать локализованные ресурсы для языков, которые не представлены на вашей компьютерной клавиатуре
Листинг 9.12.Файл русского локализированного ресурса также содержит последовательности переключения уникода, которые дают вам возможность представлять символы кириллицы без использования каких-либо специальных текстовых редакторов или инструментов
import javax.microedition.Icdui.Image;
import Java.io.lOException;
/*
Данный класс определяет локализованные ресурсы для приложения I18NDemo3. Вы извлекаете ресурс, вызывая метод getObject() в классе ResourceBundle.
*/
public class I18NDemoResources_ru_RU
extends ListResourceBundle
{
// Содержит один из локализованных ресурсов. Нам необходимо
// инициализировать эту переменную в статическом инициализаторе
// данного класса.
private static Image applcon;
private Object [][] contents =
// "Привет, мир".
("title", "\u0417\u0434\u0440\u0430\u0441\u0442\u0432\u0443\u0439,
\u041c\u0446\uO*440!"),
// "Мой третий MID-лет".
{"greeting", "\u041c\043e\u0439 \u0442\u0440\u0435\u0442\u0438\u0439 MIDlet!"},
// "Кнопка нажата".
{"alert_title",
"\u041a\u043d\u043e\u043f\u043a\u0430 \u041d\u0430\u0436\u0430\u0442\u0430"},
// "Кнопка была нажата!".
("alert_text", "\u041a\u043e\u043e\u043f\u043a\u0430
\u0411\u044b\u043b\u0430 \u043d\u0430\u0436\u0430\u0442\u0430!"},
// Экранная клавиша «Выход».
("exit", "\u0412\u044b\u0445\u043e\u0434"},
{
// Экранная клавиша «Меню».
("menu", "\u041c\u0435\u043d\u044e"},
// Пункт меню «Отмена».
{"cancel",
"\u041f\u0440\u0435\u043a\u0440\u0430\u0442\u0446\u0442\u044c"),
// Пункт меню «Стоп».
("stop", "\u0421\u0442\u043e\u043f"},
// Пункт меню «ОК». {"ok", "OK"},
// Экранная клавиша «Предупреждение».
("alert", "\u0412\u043d\u0446\u043c\u0430\u043d\u0446\u0435"),
// Пункт меню "Скажи привет".
("sayhi","\u0421\u043a\u0430\u0436\u0446
\u043f\u0440\u0446\u0432\u0435\u0442"),
it Пункт меню «Экран».
{"screen", "\u042d\u043a\u0440\u0430\u043d"),
// Пункт меню «Предмет».
("item", "\u041f\u0440\u0435\u0434\u04c3\u0435\u0442"),
// Пункт меню «Помощь».
("help", "\u041f\u043e\u043c\u043e\u0449\u044c"},
// Значок приложения. ("app_icon", applcon} };
/**
Конструктор No-arg.
*/
public I18NDemoResources_ru_RU()
super();
}
public Object [][] getContents()
}
return contents;
}
// Необходим статический инициализатор для инициализации
// переменной, которая не может быть инициализирована
// в массиве содержимого. Например, мы не можем выделить
// что-либо в массиве содержимого для создания изображения и
// выполнить требуемую обработку исключений.
static
{
try
{
applcon = Image.createlmage("i!8n-ru_RU.png");
}
catch (lOExce'ption ioe)
{
System.out.print In(ioe.getMessage());
ioe.printStackTrace();
}
}
}
Если вы все еще не убеждены, взгляните на листинг 9.13, который показывает ресурсы того же самого приложения, локализованные на японский язык. Класс I18NdemoResources_ja JP был создан с помощью того же текстового редактора, основанного на ASCII. Японские символы не могут быть введены в традиционном текстовом редакторе без поддержки IME. И, если вы используете IME, вы должны убедиться, что используете уникод для записи строковых литералов в файл. В противном случае вашему приложению придется выполнять преобразование посимвольной кодировки.
Листинг 9.13.Последовательности переключения уникода работают со всеми элементами всех письменных языков мира, включая восгочноазиатские языки, такие, как японский
import javax.microedition.Icdui.Image;
import Java.io.lOException;
/**
Данный класс определяет локализованные ресурсы для приложения I18NDemo3.
Вы извлекаете ресурс, вызывая метод getObject() в классе ResourceBundle.
*/
public class I18NDemoResources_ja_JP
extends ListResourceBundle
{
// Содержит один из локализованных ресурсов. Нам необходимо
// инициализировать эту переменную в статическом инициализаторе
// данного класса.
private static Image applcon;
private Object [][] contents =
{
// "Привет, мир"
{"title", "\u24f64\u3055\u3093, \u3053\u3093\u306b\u3061\u306f"),
// "Мой третий MID-лет".
("greeting", "\u79cl\u306e 3 \u3063\u3081\u306e MIDlet"},
// "Кнопка нажата".
{"alert_title")
"\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u307e\u3057\u305f"},
// "Кнопка была нажата".
"alert_text",
"\u30dc\u30bf\u30f3\u304c\u62bc\u3055\u308c\u3C7e\u3057\u305f!"}
// Пункт меню «Выход», {"exit", "\u51fa\53e3"},
// Экранная клавиша «Меню».
("menu", "\u30el\u30cb\u30e6\u30fc"),
// Пункт меню «Отмена».
("cancel", "\u3Cad\u30e4\u30f3\u30bb\u30eb"),
// Пункт меню «Стоп». {"stop", "\u505c\u6b62"),
// Пункт меню «ОК». ("ok", "OK"},
// Экранная клавиша «Предупреждение», {"alert", "Alert"),
// Пункт меню "Скажи привет", ("sayhi","\u30cf\u30a4"},
// Пункт меню «Экран».
{"screen", "\u30b9\u30af\u30ea\u30f3"),
// Пункт меню «Предмет», {"item", "\u9805\u76ee"),
// Пункт меню «Помощь».
Читать дальше