Spec-Zone .ru
спецификации, руководства, описания, API
|
Можно создать a Locale
с любой комбинацией допустимого языка и кодов страны, но это не означает, что можно использовать это. Помните, a Locale
объект является только идентификатором. Вы передаете Locale
возразите против других объектов, которые тогда делают реальную работу. Эти другие объекты, которые мы вызываем чувствительный к локали, не знают, как иметь дело со всеми возможными Locale
определения.
Узнать который типы Locale
определения, которые распознает чувствительный к локали class, Вы вызываете getAvailableLocales
метод. Например, чтобы узнать, который Locale
определения поддерживаются DateFormat
class, Вы могли записать подпрограмму, такую как следующее:
import java.util.*; import java.text.*; public class Available { static public void main(String[] args) { Locale list[] = DateFormat.getAvailableLocales(); for (Locale aLocale : list) { System.out.println(aLocale.toString()); } } }
Отметьте что String
возвращенный toString
содержит язык и коды страны, разделенные подчеркиванием:
ar_EG be_BY bg_BG ca_ES cs_CZ da_DK de_DE ...
Если Вы хотите вывести на экран список Locale
имена к конечным пользователям, следует показать им что-то более легкое, чтобы понять чем язык и коды страны, возвращенные toString
. Вместо этого можно вызвать Locale.getDisplayName
метод, который получает локализованный String
из a Locale
объект. Например, когда toString
заменяется getDisplayName
в предыдущем коде программа печатает следующие строки:
Arabic (Egypt) Belarussian (Belarus) Bulgarian (Bulgaria) Catalan (Spain) Czech (Czech Republic) Danish (Denmark) German (Germany) ...
Можно видеть различные списки локали в зависимости от реализаций Платформы Java.