В этой главе обсуждается поддержка интернационализации, предоставляемая JavaFX Scene Builder.

Инструмент JavaFX Scene Builder позволяет адаптировать макет FXML к различным языкам и регионам с помощью файлов пакетов ресурсов. Когда вы добавляете новый элемент на панель «Content»(Содержимое), для видимых значений свойств элемента устанавливаются значения по умолчанию. Например, элемент кнопки имеет значение свойства Text по умолчанию, равное Button. Это значение по умолчанию можно изменить на интернационализированную строку, наведя курсор на правую часть текстового поля свойства Text, щелкнув появившийся круглый значок шестеренки, а затем выбрав «Replace with Internationalized String»(Заменить интернационализированной строкой), как показано на рисунке 10-1. Обратите внимание, что значение по умолчанию затем заменяется на %key.unspecified, которое необходимо заменить на соответствующее имя ключа ресурса, определенное в файле ресурсов. Префикс знака процента (%) является видимым индикатором того, что значение свойства Text, следующее за ним, является именем ключа ресурса. Вы по-прежнему можете использовать знак процента в качестве первого символа для значения свойства Text. Если вы не выбрали параметр «Replace with Internationalized String»(Заменить интернационализированной строкой), то в файле FXML знак процента будет отображаться как \%. Это указывает на то, что остальная часть значения свойства не связана с интернационализацией и не является именем ключа.

Рисунок 10-1 Интернационализация кнопочного элемента

Description of Figure 10-1 follows

Пример HelloI18N может помочь показать поддержку интернационализации. Образец включен в комплект примеров JavaFX Scene Builder. Его класс Main показывает, как загрузить пакет ресурсов. Пример включает файлы Bundle.properties и Bundle_fr_FR.properties. Когда вы открываете файл <javafx-scenebuilder-samples-2_0-install-dir>/HelloI18N/src/helloi18n/HelloI18N.fxml, файл FXML открывается в отдельном окне, и вы видите кнопку с надписью% button.text . Чтобы локализовать эту метку, выберите «Предварительный просмотр» в строке меню, выберите «Internationalization»(Интернационализация), «Set Resource»(Установить ресурс), а затем откройте файл <javafx-scenebuilder-samples-2_0-install-dir>/HelloI18N/src/helloi18n Bundle.properties.

На рис. 10-2 показано, что значение свойства Text элемента кнопки было установлено для использования ключа ресурса button.text, который определен в файле Bundle.properties как имеющий значение HelloI18N. Знак процента перед текстовым полем свойства Text является видимым индикатором того, что значение в текстовом поле является именем ресурса. Если вы замените значение, присвоенное button.text в файле Bundles.properties, и сохраните изменение, новое значение немедленно отобразится на кнопке, отображаемой на панели «Content». Вы можете определить дополнительные ключи ресурсов в файлах пакетов ресурсов и использовать их в создаваемом макете FXML.

Выберите «Preview» в главном меню, затем выберите команду «Internationalization» и затем «Set Resource»(Установить ресурс). В диалоговом окне «Выбор файла ресурсов интернационализации» выберите файл Bundle_fr_FR.properties, чтобы увидеть, как образец приложения HelloI18N выглядит при использовании французского файла ресурсов. Обратите внимание, что текст, отображаемый на кнопке, теперь называется Bonjour. Изменения, которые вы вносите и сохраняете в файле ресурсов, отражаются в макете FXML, над которым вы работаете в инструменте JavaFX Scene Builder.

Рисунок 10-2 Использование значения ключа ресурса для интернационализации значения свойства текста

Description of Figure 10-2 follows

 

Предыдущая   Следующая