- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Платформа J2Me - Автор неизвестен
Шрифт:
Интервал:
Закладка:
Исследование листингов 9.9 и 9.10 может не убедить вас в выгодах использования последовательностей переключения уникода. Как-никак, большинство текстовых редакторов и операционных систем изначально поддерживают западноевропейские языки, такие, как французский. По этой причине легче создавать локализованные ресурсы для западноевропейских региональных настроек без повторной сортировки последовательностей переключения уникода. Например, пользователи могут создавать французские символы, вводя двухклавишные последовательности переключения в большинстве текстовых редакторов или вставляя их с помощью специальной функции меню.
Возможно, следующий пример более явно отразит выгоды использования последовательностей переключения уникода. В листинге 9.12 показан класс I18NDemoResources_ru_RU, который определяет локализованные ресурсы для русского языка. На рисунке 9.3 показан внешний вид экрана, показанного на рисунке 9.2, когда региональная настройка устанавливается на ru_RU, которая представляет собой русский язык. Ввод русских символов с помощью системы западных языков более сложен, чем ввод французских символов. Однако структуру класса I18NDemoResources_ru_RU и инструменты, требуемые для его создания, не приходится изменять для поддержки использования кириллицы.
Рисунок 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", "u0417u0434u0440u0430u0441u0442u0432u0443u0439,
u041cu0446uO*440!"),
// "Мой третий MID-лет".
{"greeting", "u041c 43eu0439 u0442u0440u0435u0442u0438u0439 MIDlet!"},
// "Кнопка нажата".
{"alert_title",
"u041au043du043eu043fu043au0430 u041du0430u0436u0430u0442u0430"},
// "Кнопка была нажата!".
("alert_text", "u041au043eu043eu043fu043au0430
u0411u044bu043bu0430 u043du0430u0436u0430u0442u0430!"},
// Экранная клавиша «Выход».
("exit", "u0412u044bu0445u043eu0434"},
{
// Экранная клавиша «Меню».
("menu", "u041cu0435u043du044e"},
// Пункт меню «Отмена».
{"cancel",
"u041fu0440u0435u043au0440u0430u0442u0446u0442u044c"),
// Пункт меню «Стоп».
("stop", "u0421u0442u043eu043f"},
// Пункт меню «ОК». {"ok", "OK"},
// Экранная клавиша «Предупреждение».
("alert", "u0412u043du0446u043cu0430u043du0446u0435"),
// Пункт меню "Скажи привет".
("sayhi","u0421u043au0430u0436u0446
u043fu0440u0446u0432u0435u0442"),
it Пункт меню «Экран».
{"screen", "u042du043au0440u0430u043d"),
// Пункт меню «Предмет».
("item", "u041fu0440u0435u0434u04c3u0435u0442"),
// Пункт меню «Помощь».
("help", "u041fu043eu043cu043eu0449u044c"},
// Значок приложения. ("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", "u24f64u3055u3093, u3053u3093u306bu3061u306f"),
// "Мой третий MID-лет".
("greeting", "u79clu306e 3 u3063u3081u306e MIDlet"},
// "Кнопка нажата".
{"alert_title")
"u30dcu30bfu30f3u304cu62bcu3055u308cu307eu3057u305f"},
// "Кнопка была нажата".
"alert_text",
"u30dcu30bfu30f3u304cu62bcu3055u308cu3C7eu3057u305f!"}
// Пункт меню «Выход», {"exit", "u51fa53e3"},
// Экранная клавиша «Меню».
("menu", "u30elu30cbu30e6u30fc"),
// Пункт меню «Отмена».
("cancel", "u3Cadu30e4u30f3u30bbu30eb"),
// Пункт меню «Стоп». {"stop", "u505cu6b62"),
// Пункт меню «ОК». ("ok", "OK"},
// Экранная клавиша «Предупреждение», {"alert", "Alert"),
// Пункт меню "Скажи привет", ("sayhi","u30cfu30a4"},
// Пункт меню «Экран».
{"screen", "u30b9u30afu30eau30f3"),
// Пункт меню «Предмет», {"item", "u9805u76ee"),
// Пункт меню «Помощь».
("help", "u308d"},
// Значок приложения.
{"app_icon", applcon)
/**
Конструктор No-arg.
*/
public I18NDemoResources_ja JP()
{
super();
)
public Object [][] getContents ()
{
return contents;
{
// Необходим статический инициализатор для инициализации
// переменной, которая не может быть инициализирована в
// массиве содержимого. Например, мы не можем выделить что-либо
// в массиве содержимого для создания изображения и выполнить
// требуемую обработку исключений.
static
{
try
{
applcon = Image.createlmage("i!8n-ja_JP.png");
{
catch (lOException ioe)
{
System.out.println(ioe.getMessage());
ioe.printStackTrace();
}
}
}
В листинге 9.14 показан файл I18NDemoResources_zh_CH. Java, который определяет локализованные ресурсы для упрощенного китайского языка.
Листинг 9.14. Этот файл определяет локализованные ресурсы для региональной настройки zh_CN, Китай, приложения I18NDemo3
import javax.microedition.Icdui.Image; import Java.io.lOException;
/**
Данный класс определяет локализованные ресурсы для приложения I18NDemo3.
Вы извлекаете ресурс, вызывая метод getObjectO в классе ResourceBundle.
*/
public class I18NDemoResources_zh_CN
extends ListResourceBundle
{
// Содержит один из локализованных ресурсов. Нам необходимо
// инициализировать эту переменную в статическом инициализаторе
// данного класса.
private static Image applcon;
private Object [][] contents =
{
// Заголовок формы "Hello, World".
("title", "u54c8u7f57u4el6754c"),
// Текст формы "My third MIDlet".
("greeting", "u62llu76847b2cu4e09u4187 MIDlet"},
// Заголовок уведомления "Button Pressed". ("alert_title", "u6309u4eObu6309u9215"],
// Текст уведомления "A button was pressed!". ("alert_text", "u6309u4eOOu4187u6309u9215!"},
// Пункт меню «Exit».
("exit", "u767bu51fa"},
// Экранная клавиша «Menu», ("menu", "u76eeu5f54"},
// Пункт меню «Cancel», {"cancel", "u53d6u6d88"j,
// Пункт меню «Stop», ("stop", "u505cu6b62"},
// Пункт меню «OK». {"ok", "OK"),
// Экранная клавиша «Alert», {"alert", "u8b66u793a"),
// Пункт меню "Say Hi", ("sayhi", "u55e8"},
// Пункт меню «Screen». ("screen", "u87a2u5e55"),
// Пункт меню «Item», ("item", "u9879u76ee"},
// Пункт меню «Help», {"help", "u8bf4u660e"},
// Значок приложения. {"app_icon", applcon}
};
/**
Конструктор No-arg.
*/
public I18NDemoResources_zh CN()
{
super!);
{
public Object [][] getContents ()
{
return contents;
}
// Необходим статический инициализатор для инициализации
// переменной, которая не может быть инициализирована в
// массиве содержимого. Например, мы не можем выделить что-либо

