Spec-Zone .ru
спецификации, руководства, описания, API
|
Специфичные для локали данные должны быть адаптированы согласно соглашениям языка конечного пользователя и области. Текст, выведенный на экран пользовательским интерфейсом, является самым очевидным примером специфичных для локали данных. Например, у приложения с кнопкой Cancel в США будет кнопка Abbrechen в Германии. В других странах у этой кнопки будут другие метки. Очевидно, Вы не хотите к hardcode это название кнопки. Не был бы это быть хорошим, если Вы могли бы автоматически получить корректную метку для данного Locale
? К счастью, Вы можете, при условии, что Вы изолируете специфичные для локали объекты в a ResourceBundle
.
В этом уроке Вы изучите, как создать и получить доступ ResourceBundle
объекты. Если Вы спешите исследовать некоторые примеры кодирования, идти вперед и проверять последние два раздела в этом уроке. Затем можно возвратиться к первым двум разделам, чтобы получить некоторую концептуальную информацию о ResourceBundle
объекты.
ResourceBundle
объекты содержат специфичные для локали объекты. Когда Вы нуждаетесь в специфичном для локали объекте, Вы выбираете его от a ResourceBundle
, который возвращает объект, который соответствует конечного пользователя Locale
. Этот раздел объясняет как a ResourceBundle
связывается с a Locale
, и описывает ResourceBundle
подклассы.
Прежде, чем Вы создадите Ваш ResourceBundle
объекты, следует сделать небольшое планирование. Во-первых, идентифицируйте специфичные для локали объекты в своей программе. Затем организуйте их в категории и сохраните их в различном ResourceBundle
объекты соответственно.
Если Ваше приложение содержит String
объекты, которые должны быть преобразованы на различные языки, можно сохранить их String
объекты в a PropertyResourceBundle
, который поддерживается рядом файлов свойств. Так как файлы свойств являются простыми текстовыми файлами, они могут быть созданы и сохраняться Вашими трансляторами. Вы не должны изменить исходный код. В этом разделе Вы изучите, как установить файлы свойств, которые поддерживают a PropertyResourceBundle
.
ListResourceBundle
class, который является подклассом ResourceBundle
, управляет специфичными для локали объектами со списком. A ListResourceBundle
поддерживается файлом class, что означает, что следует кодировать и скомпилировать новый исходный файл каждый раз поддержка дополнительного Locale
необходим. Однако, ListResourceBundle
объекты полезны, потому что в отличие от файлов свойств, они могут сохранить любой тип специфичного для локали объекта. Ступая через пример программы, этот раздел демонстрирует, как использовать a ListResourceBundle
.
Этот раздел представляет новые возможности улучшиться ResourceBundle.getBundle
гибкость фабрики. ResourceBundle.Control
class сотрудничает с методами фабрики для того, чтобы загрузить пакеты ресурса. Это позволяет рассматривать каждый существенный шаг процесса загрузки пакета ресурса и его управления кэшем как отдельный метод.