Spec-Zone .ru
спецификации, руководства, описания, API
|
Платформа Java не требует, чтобы Вы использовали то же самое Locale
всюду по Вашей программе. Если Вы желаете, можно присвоить различное Locale
к каждому чувствительному к локали объекту в Вашей программе. Эта гибкость позволяет Вам разрабатывать многоязычные приложения, которые могут вывести на экран информацию на нескольких языках.
Однако, большинство приложений не многоязычно, и их чувствительные к локали объекты полагаются на значение по умолчанию Locale
. Установленный виртуальной машиной Java, когда это запускает, значение по умолчанию Locale
соответствует локали платформы узла. Определить значение по умолчанию Locale
из Вашей виртуальной машины Java вызовите Locale.getDefault
метод.
Возможно независимо установить локаль значения по умолчанию для двух типов использования: установка формата используется для того, чтобы отформатировать ресурсы, и установка дисплея используется в меню и диалоговых окнах. Представленный в Java SE 7 выпусков, Locale.getDefault(Locale.Category)
метод берет a Locale.Category
FORMAT
перечисление к getDefault(Locale.Category)
метод возвращает локаль значения по умолчанию для того, чтобы отформатировать ресурсы. Similiarly, передавая DISPLAY
перечисление возвращает локаль значения по умолчанию, используемую UI. Соответствие setDefault(Locale.Category, Locale)
getDefault
метод возвращается DISPLAY
значение по умолчанию.
На платформе Windows эти значения по умолчанию инициализируются согласно "Стандартам и Форматам" и настройкам "Display Language" в панели управления Windows.
Недопустимо установить значение по умолчанию Locale
программно, потому что это совместно используется всеми чувствительными к локали классами.
Распределенные вычисления повышают некоторые интересные проблемы. Например, предположите, что Вы разрабатываете сервер приложений, который получит запросы от клиентов в различных странах. Если Locale
поскольку каждый клиент отличается, что должно быть Locale
из сервера? Возможно, сервер является многопоточным с каждым набором потока к Locale
из клиента это обслуживает. Или возможно все данные, которые передают между сервером и клиентами, должны быть независимыми от локали.
Которые разрабатывают подход, следует взять? Если возможный, данные, которые передают между сервером и клиентами, должны быть независимыми от локали. Это упрощает проект сервера, делая клиенты, ответственные за отображение данных чувствительным к локали способом. Однако, этот подход не будет работать, если сервер должен хранить данные в специфичной для локали форме. Например, сервер мог бы сохранить испанский, английский, и французские версии тех же самых данных в различных столбцах базы данных. В этом случае сервер мог бы хотеть запросить клиент для Locale
, начиная с Locale
возможно, изменился начиная с последнего запроса.