The JavaTM Tutorial
Previous Page Lesson Contents Next Page

Урок: Выделение данных, зависящих от локализации

Подготовка к использованию ResourceBundle

Определение объектов, зависящих от локализации

Если ваше приложение имеет пользовательский интерфейс, он содержит много объектов, зависящих от локализации. Для начала вы должны просмотреть весь свой исходный код и найти объекты, которые изменяются с Locale. Ваш список может включать объекты, являющиеся экземплярами следующих классов:

Вы заметите, что этот список не содержит объектов, представляющих числа, даты, времена или валюты. Формат отображения этих объектов изменяется с Locale, но сами объекты - нет. Например, вы форматируете Date в соответствии с Locale, но вы используете тот же самый объект Date независимо от Locale. Вместо выделения этих объектов в ResourceBundle, вы форматируете их специальными, чувствительными к локализации классами формата. Вы узнаете, как делать это в разделе Даты и времена урока Форматирование.

В общем случае объекты, сохраненные в ResourceBundle, предопределены и продаются вместе с продуктом. Эти объекты не модифицируются при выполнении программы. Например, вы должны сохранить метку Menu в ResourceBundle, потому что она чувствительна к локализации и не будет меняться в течение сеанса программы. Однако вы не должны выделять в ResourceBundle объект String, ввода конечного пользователя в TextField. Данные, такие как String, могут изменяться изо дня в день. Они специфичны для программного сеанса, а не для Locale, в которой программа выполняется.

Обычно большинство объектов, которые вам нужно выделить в ResourceBundle это объекты String. Однако не все объекты String зависят от локализации. Например, если String является элементом протокола, используемого для взаимодействия между процессами, ее не нужно локализовать, потому что конечный пользователь никогда ее не увидит.

Решение о локализации некоторых объектов String не всегда очевидно. Хороший пример - журнальные файлы. Если журнальный файл пишется одной программой и читается другой, обе программы используют этот файл как буфер для коммуникации. Предположим, что конечный пользователь иногда проверяет содержимое этого журнального файла. Должен ли журнальный файл быть локализован? С другой стороны, если конечный пользователь часто проверяет журнальный файл, стоимость перевода может не показаться значительной. Ваше решение локализовать этот журнальный файл зависит от многих факторов: конструкции программы, легкости использования, стоимости перевода и возможности сопровождения.

Организация объектов ResourceBundle

Вы можете организовать ваши объекты ResourceBundle по категориям объектов, которые они содержат. Например, вы можете захотеть загрузить все метки GUI для окна ввода заказа в ResourceBundle, названный OrderLabelsBundle. Использование множественных объектов ResourceBundle дает несколько преимуществ:

Previous Page Lesson Contents Next Page

Copyright 1995-2002 Sun Microsystems, Inc. All rights reserved.