Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Интернационализация приложения






    Класс java.util.Locale позволяет учесть особенности региональных представлений алфавита, символов, чисел, дат и проч. Автоматически виртуальная машина использует текущие региональные установки операционной системы, но при необходимости их можно изменять. Для некоторых стран региональные параметры устанавливаются с помощью констант, например: Locale.US, Locale.FRANCE. Для всех остальных объект Locale нужно создавать с помощью конструктора, например:

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

    Определить текущий вариант региональных параметров можно следующим образом:

    Locale current = Locale.getDefault();

    А можно и изменить для текущего экземпляра (instance) JVM:

    Locale.setDefault(Locale.CANADA);

    Если, например, в ОС установлен регион «Беларусь» или в приложении с помощью new Locale(" be", " BY"), то следующий код (при выводе результатов выполнения на консоль)

    current.getCountry(); // код региона

    current.getDisplayCountry(); // название региона

    current.getLanguage(); // код языка региона

    current.getDisplayLanguage(); // название языка региона

    позволяет получить информацию о регионе в виде:

    BY

    Беларусь

    be

    белорусский

    Для создания приложений, поддерживающих несколько языков, существует целый ряд решений. Самое логичное из них — дублирование сообщений на разных языках в разных файлах с эквивалентными ключами с последующим извлечением информации на основе значения заданной локали. Данное решение основано на взаимодействии классов java.util.ResourceBundle и Locale. Класс ResourceBundle предназначен для взаимодействия с текстовыми файлами свойств (расширение.properties). Каждый объект ResourceBundle представляет собой набор соответствующих подтипов, которые разделяют одно и то же базовое имя, к которому можно получить доступ через поле parent. Следующий список показывает возможный набор соответствующих ресурсов с базовым именем text. Символы, следующие за базовым именем, показывают код языка, код страны и тип операционной системы. Например, файл text_it_CH.properties соответствует объекту Locale, заданному кодом итальянского языка (it) и кодом страны Швейцарии (CH).

    text.properties

    text_ru_RU.properties

    text_it_CH.properties

    text_fr_CA.properties

    Чтобы выбрать определенный объект ResourceBundle, следует вызвать один из статических перегруженных методов getBundle(параметры).

    Следующий фрагмент выбирает text объекта ResourceBundle для объекта Locale, который соответствует французскому языку и стране Канада.

    Locale locale = new Locale(" fr", " CA");

    ResourceBundle rb = ResourceBundle.getBundle(" text", locale);

    Если объект ResourceBundle для заданного объекта Locale не существует, то метод getBundle() извлечет наиболее общий. Если общее определение файла ресурсов не задано, то метод getBundle() генерирует исключительную ситуацию MissingResourceException. Чтобы это не произошло, необходимо обеспечить наличие базового файла ресурсов без суффиксов, а именно: text.properties в дополнение к частным случаям вида:

    text_en_US.properties

    text_ru_RU.properties

    В файлах свойств информация должна быть организована по принципу:

    #Комментарий

    group1.key1 = value1

    group1.key2 = value2

    group2.key1 = value3…

    Например:

    label.button = submit

    label.field = login

    message.welcome = Welcome!

    или

    label.button = принять

    label.field = логин

    message.welcome = Добро пожаловать!

    В классе ResourceBundle определен ряд полезных методов, в том числе метод getKeys(), возвращающий объект Enumeration, который применяется для последовательного обращения к элементам. Множество Set< String> всех ключей — методом keySet(). Конкретное значение по конкретному ключу извлекается методом getString(String key). Отсутствие запрашиваемого ключа приводит к генерации исключения. Проверить наличие ключа в файле можно методом boolean containsKey(String key). Методы getObject(String key) и getStringArray(String key) извлекают соответственно объект и массив строк по передаваемому ключу.

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.