Spec-Zone .ru
спецификации, руководства, описания, API
|
Если у Вашего приложения есть пользовательский интерфейс, оно содержит много специфичных для локали объектов. Чтобы начать, следует пройти через свой исходный код и искать объекты, которые меняются Locale
. Ваш список мог бы включать объекты, которые инстанцируют от следующих классов:
String
Image
Color
AudioClip
Вы заметите, что этот список не содержит объекты, представляющие числа, даты, времена, или валюты. Формат дисплея этих объектов меняется Locale
, но сами объекты не делают. Например, Вы формат a Date
согласно Locale
, но Вы используете то же самое Date
объект независимо от Locale
. Вместо того, чтобы изолировать эти объекты в a ResourceBundle
, Вы форматируете их со специальными чувствительными к локали классами форматирования. Вы изучите, как сделать это в разделе Дат и Времен урока Форматирования.
Вообще, объекты хранятся в a ResourceBundle
предопределяются и поставка с продуктом. Эти объекты не изменяются, в то время как программа работает. Например, следует сохранить a Menu
метка в a ResourceBundle
потому что это специфично для локали и не будет изменяться во время сеанса программы. Однако, недопустимо изолировать в a ResourceBundle
a String
возразите, что конечный пользователь входит в a TextField
. Данные, такие как это String
может измениться со дня на день. Это является определенным для сеанса программы, не для Locale
в котором работает программа.
Обычно большинство объектов Вы должны изолировать в a ResourceBundle
String
объекты. Однако, не все String
объекты специфичны для локали. Например, если a String
элемент протокола, используемый межпроцессным взаимодействием, это не должно быть локализовано, потому что конечные пользователи никогда не видят это.
Решение, локализовать ли некоторых String
объекты являются не всегда четкими. Файлы журнала являются хорошим примером. Если файл журнала пишется одной программой и чтением другим, обе программы используют файл журнала в качестве буфера для передачи. Предположите, что конечные пользователи иногда проверяют содержание этого файла журнала. Разве файл журнала не должен быть локализован? С другой стороны, если конечные пользователи редко проверяют файл журнала, стоимость преобразования, возможно, не стоит. Ваше решение локализовать этот файл журнала зависит в ряде факторов: проектирование программы, простота использования, стоимость преобразования, и обеспеченность.
Можно организовать Ваш ResourceBundle
объекты согласно категории объектов они содержат. Например, Вы могли бы хотеть загрузить все метки GUI для окна записи порядка в a ResourceBundle
вызванный OrderLabelsBundle
. Используя многократный ResourceBundle
объекты предлагают несколько преимуществ:
ResourceBundle
объекты, которые могут взять слишком долго, чтобы загрузиться в память.ResourceBundle
только при необходимости.