Афоризм
Ничто не вечно по луною,
завел мой врач издалека.
Последние статьи

 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Пример MVVM
Пример использования MVVM в Android
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Пример TreeTable
Пример использования TreeTable
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • Визуальные компоненты
Улучшен компонент выбора даты из календаря
 • Анимация jQuery
Описание и примеры анимации элементов DOM
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Урок 5. Локализация интерфейса

Для наглядной локализации интерфейса необходимо в приложение JaBricks включить бандлы, имеющие метки, кнопки, таблицы. Бандлы при старте должны устанавливать интерфейсные надписи, соответствующие текущему объекту локализации (Locale). Используем в данном уроке бандлы, которые не только при старте, но и в режиме run-time могут изменять локализованные интерфейсные надписи.

Структура приложения JaBricks для пятого урока, представленная на следующем сриншоте, включает :

  • набор бандлов «configuration/bundles»;
  • набор изображений configuration/resources/images»;
  • ресурсные файлы «configuration/resources/properties»;
  • список инсталлируемых бандлов «configuration/bundles.ini»;
  • описание структуры панели инструментов «configuration/toolbar.xml»;
  • файл инициализации jabricks.ini и приложение jabricks.jar;
  • файл старта приложения из командной строки run.bat (для Windows).

Для динамической локализации интерфейса в конфигурацию включим следующие бандлы :

БандлОписание
templ-jpanela Бандл с размещаемой в контейнере фрейма интерфейсной панелью типа JPanel. Описание бандла приведено в 13 уроке.
templ-jdialoga Бандл с окном типа JDialog.
form-about Бандл с окном «О программе».
form-locale Бандл, определяющий текущее значение языка локализации и рассылающее сообщение «jabricks/LocaleEvent».

Представленные в таблице бандлы (за исключением последнего) подписываются на рассылку сообщений «jabricks/LocaleEvent» о смене текущего объекта локализации, т.е. реализуют механизм «подписки» на «публикацию» сообщения.

Для вызова (старта) бандлов используем панель инструментов главного фрейма, создаваемую модулем gui-toolbar. Структура панели инструментов описывается в файле «configuration/toolbar.xml». Формат описания панели инструментов позволяет размещать кнопки как с левой стороны, так и с правой стороны панели инструментов. Кроме этого, на кнопки помимо изображений можно нанести локализуемые надписи. К кнопкам можно «привязать» бандлы, которые приложение будет стартовать при нажатии на кнопки.

Листинг файла bundles.ini

Листинг файла с описанием инсталлируемых бандлов имеет следующий вид :


bundles=org.apache.felix.eventadmin-1.4.8.jar@start, \
org.apache.felix.log-1.0.1.jar@start, \
util-resources-1.0.0.jar@start, \
util-logger-1.0.0.jar@start, \
base-jframe-1.0.0.jar, \
base-jpanel-1.0.0.jar, \
base-jdialog-1.0.0.jar, \
gui-menu-1.0.0.jar, \
gui-toolbar-1.0.0.jar, \
gui-widgets-1.0.0.jar, \
templ-jdialoga-1.0.0.jar, \
templ-jpanela-1.0.0.jar, \
form-about-1.0.0.jar, \
form-locale-1.0.0.jar, \
templ-jframe-1.0.0.jar@main
 

Описание формата и назначение артибутов представлено в первом уроке.

Листинг toolbar.xml

Листинг файла описания структуры панели инструментов «configuration/toolbar.xml» имеет следующий вид :

Листинг
<?xml version="1.0" encoding="UTF-8"?>
<root name="root" rollover="true" borderpainted="true">
  <toolbar>
     <item
        name="toolbar.jpanel" 
        type="button" 
        image="configuration/resources/images/database.png"
        text="toolbar.jpanel" textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.templates"
        artifactId="templ-jpanela"
        version="1.0.0" />
     <item
        name="toolbar.jdialog" 
        type="button" 
        image="configuration/resources/images/database.png"
        text="toolbar.jdialog" textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.templates"
        artifactId="templ-jdialoga"
        version="1.0.0" />
  </toolbar>
  <toolbar>
     <item
        name="toolbar.settings"
        type="button"
        image="configuration/resources/images/gear.png"
        text="toolbar.settings"
        textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.locale"
        artifactId="form-locale"
        version="1.0.0" />
     <item
        name="toolbar.about" 
        type="button"
        image="configuration/resources/images/question.png"
        text="toolbar.about"
        textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.about" 
        artifactId="form-about" 
        version="1.0.0"/>
     <item
        name="toolbar.exit"
        type="button"
        image="configuration/resources/images/exit.png"
        text="toolbar.exit"
        textposition="bottom"
        width="96" height="64" />
  </toolbar>
</root>

С форматом описания структуры панели инструментов можно познакомиться здесь. Во втором уроке приводилось краткое описание структуры панели инструментов. Поскольку структура изменилась, то здесь повторим.

В описание структуры панель инструментов разделена на 2 части тегами <toolbar>. В левой панели размещается две кнопки, в правой – 3 кнопки. Описание кнопки определяется тегом <item> с атрибутами. Наименования атрибутов имеют интуитивно-понятные обозначения. Атрибуты rollover и borderpainted относятся к настройкам панели JToolbar. Свойства остальных атрибутов :

  • name – наименование кнопки, используется в локализации текстовой надписи;
  • image – отображаемое на кнопке изображение;
  • text – текст на кнопке;
  • textposition – положение текста на кнопке;
  • width, height – размер кнокпи;
  • groupId, artifactId, version – связанный с кнопкой бандл;
  • guimode – режим представления интерфейсной части бандла, созданного с использованием базового модуля base-universal; может принимать одно из значений "jdialog" и "jpanel".

Старт приложения

После старта приложения и нажатия на кнопки панели инструментов Вы должны увидеть следующий интерфейс :

На заметку
1. При динамической смене язака локализации автоматически обновляется соответствующее значение в файле инициализации приложения jabricks.ini.
2. Динамическая смена языка практически не используется. Но, Вам предоставляется возможность увидеть взаимодействия бандлов между собой с использованием механизма «публикация/подписка».

Бандлы для изучения

В данном уроке были использованы следующие бандлы :

  • form-locale – бандл динамической локализации;
  • form-about – бандл представления информации «О программе»;
  • util-resources – модуль управления внешними ресурсами.

Связанные страницы

Список уроков
Предыдующий, 4-й урок
Следующий, 6-й урок

Скачивание файлов

После выполненных ранее уроков Вы должны уже свободно ориентироваться в конфигурации приложения JaBricks. Для выполнения данного задания Вам необходимо только скачать необходимые бандлы, ресурсные файлы, файл описания панели инструментов и файл описания инсталлируемых бандлов. Перечисленные файлы собраны и упакованы в один архивный файл configuration.lesson05.zip (458 Кб).

Скачайте и «разверните» архив configuration.lesson05.zip, перенесите файлы в структуру, представленную на верхнем скриншоте.

  Рейтинг@Mail.ru