Вход/Регистрация
Программирование на Java
вернуться

Вязовик Н.А.

Шрифт:

r.nextBytes(randArray);

test.dumpArray(randArray);

}

void dumpArray(byte[] arr) {

for(int cnt=0;cnt< arr.length;cnt++) {

System.out.print(arr[cnt]);

}

System.out.println;

}

}

Пример 14.24.

Результатом будет:

– 1193959466 -1139614796 837415749 -1220615319 -1429538713 118249332 -951589224 -1193959466 -1139614796 837415749 -1220615319 -1429538713 118249332 -951589224 81;-6;-107;77;118;17;93; -98;

Пример 14.25.

Локализация

Класс Locale

Класс Locale предназначен для отображения определенного региона. Под регионом принято понимать не только географическое положение, но также языковую и культурную среду. Например, помимо того, что указывается страна Швейцария, можно указать также и язык - французский или немецкий.

Определено два варианта конструкторов в классе Locale:

Locale(String language, String country)

Locale(String language, String country,

String variant)

Первые два параметра в обоих конструкторах определяют язык и страну, для которой определяется локаль, согласно кодировке ISO. Список поддерживаемых стран и языков можно получить и с помощью вызова статических методов Locale.getISOLanguages Locale.getISOCountries, соответственно. Во втором варианте конструктора указан также строковый параметр variant, в котором кодируется информация о платформе. Если здесь необходимо указать дополнительные параметры, то их требуется разделить символом подчеркивания, причем, более важный параметр должен следовать первым.

Пример использования:

Locale l = new Locale("ru","RU");

Locale l = new Locale("en","US","WINDOWS");

Статический метод getDefault возвращает текущую локаль, сконструированную на основе настроек операционной системы, под управлением которой функционирует JVM.

Для наиболее часто использующихся локалей заданы константы. Например, Locale.US или Locale.GERMAN.

После того как экземпляр класса Locale создан, с помощью различных методов можно получить дополнительную информацию о локали.

public class Test {

public Test {

}

public static void main(String[] args) {

Test test = new Test;

Locale l = Locale.getDefault;

System.out.println(l.getCountry + " " +

l.getDisplayCountry + " " + l.getISO3Country);

System.out.println(l.getLanguage + " " +

l.getDisplayLanguage + " " + l.getISO3Language);

System.out.println(l.getVariant + " " +

l.getDisplayVariant);

l = new Locale("ru","RU","WINDOWS");

System.out.println(l.getCountry + " " +

l.getDisplayCountry + " " + l.getISO3Country);

System.out.println(l.getLanguage + " " +

l.getDisplayLanguage + " " + l.getISO3Language);

System.out.println(l.getVariant + " " +

l.getDisplayVariant);

}

}

Пример 14.26.

Результатом будет:

US United States USA

en English eng

RU Russia RUS

ru Russian rus

WINDOWS WINDOWS

Пример 14.27.

Класс ResourceBundle

Абстрактный класс ResourceBundle предназначен для хранения объектов, специфичных для локали. Например, когда необходимо получить набор строк, зависящих от локали, используют ResourceBundle.

Применение ResourceBundle настоятельно рекомендуется, если предполагается использовать программу в многоязыковой среде. С помощью этого класса легко манипулировать наборами ресурсов, зависящих от локалей, их можно менять, добавлять новые и т.д.

Набор ресурсов - это фактически набор классов, имеющих одно базовое имя. Далее наименование класса дополняется наименованием локали, с которой связывается этот класс. Например, если имя базового класса будет MyResources, то для английской локали имя класса будет MyResources_en, для русской - MyResources_ru. Помимо этого, может добавляться идентификатор языка, если для данного региона определено несколько языков. Например, MyResources_de_CH - так будет выглядеть швейцарский вариант немецкого языка. Кроме того, можно указать дополнительный признак variant (см. описание Locale ). Так, описанный раннее пример для платформы UNIX будет выглядеть следующим образом: MyResources_de_CH_UNIX .

Загрузка объекта для нужной локали производится с помощью статического метода getBundle.:

ResourceBundle myResources =

ResourceBundle.getBundle("MyResources",

someLocale);

На основе указанного базового имени (первый параметр), указанной локали (второй параметр) и локали по умолчанию (задается настройками ОС или JVM) генерируется список возможных имен ресурса. Причем, указанная локаль имеет более высокий приоритет, чем локаль по умолчанию. Если обозначить составляющие указанной локали (язык, страна, вариант) как 1, а локали по умолчанию - 2, то список примет следующий вид:

  • Читать дальше
  • 1
  • ...
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: