|
|
Если ваше приложение имеет пользовательский интерфейс, он содержит много объектов, зависящих от локализации. Для начала вы должны просмотреть весь свой исходный код и найти объекты, которые изменяются сLocale. Ваш список может включать объекты, являющиеся экземплярами следующих классов:
StringImageColorAudioClipВы заметите, что этот список не содержит объектов, представляющих числа, даты, времена или валюты. Формат отображения этих объектов изменяется с
Locale, но сами объекты - нет. Например, вы форматируетеDateв соответствии сLocale, но вы используете тот же самый объектDateнезависимо отLocale. Вместо выделения этих объектов вResourceBundle, вы форматируете их специальными, чувствительными к локализации классами формата. Вы узнаете, как делать это в разделе Даты и времена урока Форматирование.В общем случае объекты, сохраненные в
ResourceBundle, предопределены и продаются вместе с продуктом. Эти объекты не модифицируются при выполнении программы. Например, вы должны сохранить меткуMenuвResourceBundle, потому что она чувствительна к локализации и не будет меняться в течение сеанса программы. Однако вы не должны выделять вResourceBundleобъектString, ввода конечного пользователя вTextField. Данные, такие какString, могут изменяться изо дня в день. Они специфичны для программного сеанса, а не дляLocale, в которой программа выполняется.Обычно большинство объектов, которые вам нужно выделить в
ResourceBundleэто объектыString. Однако не все объектыStringзависят от локализации. Например, еслиStringявляется элементом протокола, используемого для взаимодействия между процессами, ее не нужно локализовать, потому что конечный пользователь никогда ее не увидит.Решение о локализации некоторых объектов
Stringне всегда очевидно. Хороший пример - журнальные файлы. Если журнальный файл пишется одной программой и читается другой, обе программы используют этот файл как буфер для коммуникации. Предположим, что конечный пользователь иногда проверяет содержимое этого журнального файла. Должен ли журнальный файл быть локализован? С другой стороны, если конечный пользователь часто проверяет журнальный файл, стоимость перевода может не показаться значительной. Ваше решение локализовать этот журнальный файл зависит от многих факторов: конструкции программы, легкости использования, стоимости перевода и возможности сопровождения.
Вы можете организовать ваши объектыResourceBundleпо категориям объектов, которые они содержат. Например, вы можете захотеть загрузить все метки GUI для окна ввода заказа вResourceBundle, названныйOrderLabelsBundle. Использование множественных объектовResourceBundleдает несколько преимуществ:
- Ваш код легче читается и корректируется.
- Вы избегаете огромных объектов
ResourceBundle, которые могут слишком долго загружаться в память.- Вы можете уменьшить объем используемой памяти загрузкой каждого
ResourceBundleтолько при необходимости.
|
|
Copyright 1995-2002 Sun Microsystems, Inc. All rights reserved.