Spec-Zone.ru › OpenJDK 8

Класс Locale

  • java.lang.Object
    • java.util.Locale
Все реализованные интерфейсы:
Serializable, Cloneable

public final class Locale
extends Object
implements Cloneable, Serializable

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

Класс Locale реализует спецификацию IETF BCP 47, которая состоит из RFC 4647 "Сопоставление тегов языка" и RFC 5646 "Теги для идентификации языков" с поддержкой совместимых с BCP 47 расширений LDML (UTS#35, "Язык разметки данных локали Unicode") для обмена данными локали.

Объект Locale логически состоит из полей, описанных ниже.

язык
Код языка ISO 639 alpha-2 или alpha-3, или зарегистрированные подтеги языка длиной до 8 букв (для будущих улучшений). Если язык имеет как код alpha-2, так и код alpha-3, должен использоваться код alpha-2. Полный список допустимых кодов языка можно найти в Реестре подтегов языка IANA (поищите "Тип: язык"). Поле языка нечувствительно к регистру, но Locale всегда приводит к нижнему регистру.
Правильно сформированные значения языка имеют вид [a-zA-Z]{2,8}. Обратите внимание, что это не полная грамматика языка BCP47, так как она исключает extlang. Они не нужны, так как современные трёхбуквенные коды языка их заменяют.
Пример: "en" (английский), "ja" (японский), "kok" (конкани)
шрифт
Код шрифта ISO 15924 alpha-4. Полный список допустимых кодов шрифтов можно найти в Реестре подтегов языка IANA (поищите "Тип: шрифт"). Поле шрифта нечувствительно к регистру, но Locale всегда приводит к строчному регистру (первая буква заглавная, остальные строчные).
Правильно сформированные значения шрифта имеют вид [a-zA-Z]{4}
Пример: "Latn" (латинский), "Cyrl" (кириллический)
страна (регион)
Код страны ISO 3166 alpha-2 или числовой код области ООН M.49. Полный список допустимых кодов стран и регионов можно найти в Реестре подтегов языка IANA (поищите "Тип: регион"). Поле страны (региона) нечувствительно к регистру, но Locale всегда приводит к верхнему регистру.
Правильно сформированные значения страны/региона имеют вид [a-zA-Z]{2} | [0-9]{3}
Пример: "US" (Соединённые Штаты), "FR" (Франция), "029" (Карибский бассейн)
вариант
Любое произвольное значение, используемое для указания варианта Locale. Если существует два или более значений варианта, каждое из которых указывает свою семантику, эти значения должны быть упорядочены по важности, начиная с самого важного, разделенные символом подчёркивания('_'). Поле варианта чувствительно к регистру.
Примечание: IETF BCP 47 накладывает синтаксические ограничения на подтеги варианта. Кроме того, подтеги BCP 47 строго используются для указания дополнительных вариаций, которые определяют язык или его диалекты, не покрытые никакими комбинациями подтегов языка, шрифта и региона. Полный список допустимых кодов вариантов можно найти в Реестре подтегов языка IANA (поищите "Тип: вариант").

Однако, поле варианта в Locale исторически использовалось для любого типа вариаций, а не только вариаций языка. Например, некоторые поддерживаемые варианты, доступные в средах выполнения Java SE Runtime, указывают альтернативное культурное поведение, такое как тип календаря или шрифт чисел. В BCP 47 такая информация, которая не идентифицирует язык, поддерживается расширенными подтегами или подтегами частного использования.

Правильно сформированные значения варианта имеют вид SUBTAG (('_'|'-') SUBTAG)* где SUBTAG = [0-9][0-9a-zA-Z]{3} | [0-9a-zA-Z]{5,8}. (Примечание: BCP 47 использует только дефис ('-') в качестве разделителя, это более гибко).
Пример: "polyton" (политоническое греческое), "POSIX"
расширения
Карта из ключей, состоящих из одной буквы, к строковым значениям, указывающим расширения, отличные от идентификации языка. Расширения в Locale реализуют семантику и синтаксис подтегов расширений BCP 47 и подтегов частного использования. Расширения нечувствительны к регистру, но Locale приводит все ключи и значения расширений к нижнему регистру. Обратите внимание, что расширения не могут иметь пустые значения.
Правильно сформированные ключи — это одиночные символы из набора [0-9a-zA-Z]. Правильно сформированные значения имеют вид SUBTAG ('-' SUBTAG)* где для ключа 'x' SUBTAG = [0-9a-zA-Z]{1,8} и для других ключей SUBTAG = [0-9a-zA-Z]{2,8} (то есть 'x' допускает подтеги из одной буквы).
Пример: ключ="u"/значение="ca-japanese" (японский календарь), ключ="x"/значение="java-1-7"
Примечание: Хотя BCP 47 требует, чтобы значения полей были зарегистрированы в Реестре подтегов языка IANA, класс Locale не предоставляет никаких функций проверки. Класс Builder только проверяет, удовлетворяет ли отдельное поле синтаксическим требованиям (является ли оно правильно сформированным), но не проверяет само значение. Подробности см. в Locale.Builder.

Расширение локали/языка Unicode

UTS#35, "Язык разметки данных локали Unicode", определяет необязательные атрибуты и ключевые слова для переопределения или уточнения поведения по умолчанию, связанного с локалью. Ключевое слово представлено парой ключ-тип. Например, "nu-thai" указывает, что для форматирования чисел (ключ:"nu") должны использоваться тайские локальные цифры (значение:"thai").

Ключевые слова сопоставляются со значением расширения BCP 47, используя ключ расширения 'u' (UNICODE_LOCALE_EXTENSION). Приведённый выше пример "nu-thai" преобразуется в расширение "u-nu-thai".code

Таким образом, когда объект Locale содержит атрибуты и ключевые слова локали Unicode, getExtension(UNICODE_LOCALE_EXTENSION) вернёт строку, представляющую эту информацию, например, "nu-thai". Класс Locale также предоставляет getUnicodeLocaleAttributes(), getUnicodeLocaleKeys() и getUnicodeLocaleType(java.lang.String), которые позволяют напрямую получить доступ к атрибутам локали Unicode и парам ключ/тип. При представлении в виде строки расширение локали Unicode перечисляет атрибуты в алфавитном порядке, за которым следуют последовательности ключ/тип с ключами в алфавитном порядке (порядок подтегов, составляющих тип ключа, фиксирован при определении типа).

Правильно сформированный ключ локали имеет вид [0-9a-zA-Z]{2}. Правильно сформированный тип локали имеет вид "" | [0-9a-zA-Z]{3,8} ('-' [0-9a-zA-Z]{3,8})* (он может быть пустым или представлять собой серию подтегов длиной от 3 до 8 буквенно-цифровых символов). Правильно сформированный атрибут локали имеет вид [0-9a-zA-Z]{3,8} (это один подтег с той же формой, что и подтег типа локали).

Расширение локали Unicode задаёт необязательное поведение в локально-чувствительных сервисах. Хотя спецификация LDML определяет различные ключи и значения, фактические реализации локально-чувствительных сервисов в среде выполнения Java могут не поддерживать какие-либо конкретные атрибуты локали Unicode или пары ключ/тип.

Создание локали

Существует несколько способов создания объекта Locale.

Конструктор

Используя Locale.Builder, можно создать объект Locale, соответствующий синтаксису BCP 47.

Конструкторы

Класс Locale предоставляет три конструктора:

Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
Эти конструкторы позволяют создать объект Locale с языком, страной и вариантом, но не позволяют указать шрифт или расширения.
Методы-фабрики

Метод forLanguageTag(java.lang.String) создаёт объект Locale для правильно сформированного тега языка BCP 47.

Константы локали

Класс Locale предоставляет ряд удобных констант, которые можно использовать для создания объектов Locale для широко распространённых локалей. Например, следующее создаёт объект Locale для Соединённых Штатов:

Locale.US

Сопоставление локалей

Если приложение или система интернационализированы и предоставляют локализованные ресурсы для нескольких локалей, иногда требуется найти одну или несколько локалей (или тегов языка), соответствующих конкретным предпочтениям пользователя. Обратите внимание, что термин "тег языка" используется взаимозаменяемо с "локалью" в данном документе по сопоставлению локалей.

Для сопоставления предпочтительных локалей пользователя с набором тегов языка RFC 4647 Сопоставление тегов языка определяет два механизма: фильтрацию и поиск. Фильтрация используется для получения всех соответствующих локалей, а поиск — для выбора лучшей соответствующей локали. Сопоставление выполняется без учёта регистра. Эти механизмы сопоставления описаны в следующих разделах.

Предпочтения пользователя называются списком приоритетов языка и выражаются в виде списка языковых диапазонов. Синтаксически существуют два типа языковых диапазонов: базовый и расширенный. Подробности см. в Locale.LanguageRange.

Фильтрация

Операция фильтрации возвращает все соответствующие теги языка. В RFC 4647 она определена следующим образом: "При фильтрации каждый языковой диапазон представляет собой наименее специфический тег языка (то есть тег языка с наименьшим числом подтегов), который является приемлемым соответствием. Все теги языка в наборе соответствующих тегов будут иметь равное или большее число подтегов, чем языковой диапазон. Каждый подтег без звёздочки в языковом диапазоне будет появляться в каждом из соответствующих тегов языка".

Существует два типа фильтрации: фильтрация по базовым языковым диапазонам ("базовая фильтрация") и фильтрация по расширенным языковым диапазонам ("расширенная фильтрация"). Они могут возвращать разные результаты в зависимости от того, какие языковые диапазоны включены в данный список приоритетов языка. Locale.FilteringMode — параметр для указания способа выполнения фильтрации.

Поиск

Операция поиска возвращает лучшие соответствующие теги языка. В RFC 4647 она определена следующим образом: "В отличие от фильтрации, каждый языковой диапазон представляет собой наиболее специфичный тег, который является приемлемым соответствием. Первый найденный соответствующий тег, в соответствии с приоритетом пользователя, считается наиболее близким соответствием и возвращается как результат".

Например, если список приоритетов языка состоит из двух языковых диапазонов, "zh-Hant-TW" и "en-US", в порядке приоритета, метод поиска последовательно проверяет теги языка ниже, чтобы найти лучший соответствующий тег языка.

1. zh-Hant-TW
2. zh-Hant
3. zh
4. en-US
5. en
Если существует тег языка, который полностью соответствует языковому диапазону выше, возвращается тег языка.

"*" — специальный языковой диапазон, и он игнорируется в поиске.

Если несколько тегов языка соответствуют в результате включения подтега '*' в языковой диапазон, первый соответствующий тег языка, возвращаемый итератором Iterator над Collection тегов языка, рассматривается как лучший соответствующий тег.

Использование локали

После создания Locale вы можете запросить информацию о нём. Используйте getCountry для получения кода страны (или региона) и getLanguage для получения кода языка. Вы можете использовать getDisplayCountry для получения имени страны, подходящего для отображения пользователю. Аналогично, вы можете использовать getDisplayLanguage для получения имени языка, подходящего для отображения пользователю. Интересно, что методы getDisplayXXX сами по себе чувствительны к региону и имеют две версии: одна использует локаль по умолчанию DISPLAY, а другая — локаль, указанную в качестве аргумента.

Java Platform предоставляет ряд классов, выполняющих операции, чувствительные к региону. Например, класс NumberFormat форматирует числа, валюты и проценты в соответствии с регионом. Такие классы, как NumberFormat, имеют несколько удобных методов для создания объекта по умолчанию этого типа. Например, класс NumberFormat предоставляет эти три удобных метода для создания объекта NumberFormat по умолчанию:

NumberFormat.getInstance()
NumberFormat.getCurrencyInstance()
NumberFormat.getPercentInstance()
Каждый из этих методов имеет две вариации; одна с явной локалью, а другая без; последняя использует локаль по умолчанию FORMAT:
NumberFormat.getInstance(myLocale)
NumberFormat.getCurrencyInstance(myLocale)
NumberFormat.getPercentInstance(myLocale)
Локаль — это механизм для идентификации типа объекта (NumberFormat), который вы хотите получить. Локаль — только механизм идентификации объектов, а не контейнер для самих объектов.

Совместимость

Для поддержания совместимости с существующим использованием конструкторы Locale сохраняют своё поведение до версии Java Runtime Environment 1.7. То же самое в значительной степени верно для метода toString. Таким образом, объекты Locale можно продолжать использовать так же, как и раньше. В частности, клиенты, которые анализируют вывод toString на поля языка, страны и варианта, могут продолжать это делать (хотя это настоятельно не рекомендуется), хотя поле варианта будет содержать дополнительную информацию, если присутствуют сценарий или расширения.

Кроме того, BCP 47 накладывает ограничения синтаксиса, которые не накладываются конструкторами Locale. Это означает, что преобразования между некоторыми объектами Locale и тегами языка BCP 47 не могут быть выполнены без потери информации. Таким образом, toLanguageTag не может представить состояние локалей, язык, страна или вариант которых не соответствуют BCP 47.

Из-за этих проблем рекомендуется, чтобы клиенты перешли от создания несоответствующих локалей и вместо этого использовали API forLanguageTag и Locale.Builder. Клиенты, желающие получить строковое представление полной локали, всегда могут положиться на toLanguageTag для этой цели.

Особые случаи

По соображениям совместимости две несоответствующие локали рассматриваются как особые случаи. Это ja_JP_JP и th_TH_TH. Эти локали имеют неправильный формат в BCP 47, так как варианты слишком короткие. Для облегчения миграции в BCP 47 эти локали обрабатываются особым образом при создании. Эти два случая (и только они) вызывают генерацию расширения конструктором, все остальные значения ведут себя точно так же, как и до Java 7.

Java использовала ja_JP_JP для представления японского языка, используемого в Японии, вместе с японским императорским календарем. Сейчас это можно представить с помощью расширения локали Unicode, указав ключ локали Unicode ca ("календарь") и тип japanese. При вызове конструктора Locale с аргументами "ja", "JP", "JP" расширение "u-ca-japanese" добавляется автоматически.

Java использовала th_TH_TH для представления тайского языка, используемого в Таиланде, вместе с тайскими цифрами. Это также можно представить с помощью расширения локали Unicode, указав ключ локали Unicode nu ("число") и значение thai. При вызове конструктора Locale с аргументами "th", "TH", "TH" расширение "u-nu-thai" добавляется автоматически.

Сериализация

Во время сериализации writeObject записывает все поля в поток вывода, включая расширения.

Во время десериализации readResolve добавляет расширения, как описано в разделе Особые случаи, только для двух случаев th_TH_TH и ja_JP_JP.

Устаревшие коды языка

Конструктор Locale всегда преобразовывал три кода языка в их более ранние, устаревшие формы: he отображается как iw, yi отображается как ji, и id отображается как in. Это по-прежнему делается, чтобы не нарушить обратную совместимость.

API, добавленные в версии 1.7, преобразуют старые и новые коды языка, сохраняя старые коды внутри Locale (чтобы getLanguage и toString отражали старый код), но используя новые коды в API тегов языка BCP 47 (чтобы toLanguageTag отражал новый). Это сохраняет эквивалентность объектов Locale независимо от того, какой код или API используется для их построения. Механизм поиска ресурсов по умолчанию Java также реализует это отображение, так что ресурсы могут быть названы с использованием любой из этих соглашений, см. ResourceBundle.Control.

Трехбуквенные коды языка/страны (региона)

Конструкторы Locale всегда указывали, что параметр языка и параметр страны должны иметь длину две буквы, хотя на практике они принимали любую длину. Теперь спецификация ослаблена, чтобы разрешить коды языка длиной от двух до восьми символов и коды страны (региона) длиной от двух до трёх символов, а также, в частности, трёхбуквенные коды языка и трёхзначные коды региона, как указано в реестре суффиксов языка IANA. Для совместимости реализация по-прежнему не накладывает ограничений на длину.

С:
1.1
См. также:
Locale.Builder, ResourceBundle, Format, NumberFormat, Collator, Serialized Form

Вложенные классы

Модификатор и тип Класс и описание
static class  Locale.Builder

Builder используется для построения экземпляров Locale из значений, настроенных установщиками.

static class  Locale.Category

Перечисление категорий локалей.

static class  Locale.FilteringMode

Это перечисление предоставляет константы для выбора режима фильтрации при сопоставлении локалей.

static class  Locale.LanguageRange

Этот класс выражает диапазон языков, определённый в RFC 4647 Сопоставление тегов языков.

Поля

Модификатор и тип Поле и описание
static Locale CANADA

Полезная константа для страны.

static Locale CANADA_FRENCH

Полезная константа для страны.

static Locale CHINA

Полезная константа для страны.

static Locale CHINESE

Полезная константа для языка.

static Locale ENGLISH

Полезная константа для языка.

static Locale FRANCE

Полезная константа для страны.

static Locale FRENCH

Полезная константа для языка.

static Locale GERMAN

Полезная константа для языка.

static Locale GERMANY

Полезная константа для страны.

static Locale ITALIAN

Полезная константа для языка.

static Locale ITALY

Полезная константа для страны.

static Locale JAPAN

Полезная константа для страны.

static Locale JAPANESE

Полезная константа для языка.

static Locale KOREA

Полезная константа для страны.

static Locale KOREAN

Полезная константа для языка.

static Locale PRC

Полезная константа для страны.

static char PRIVATE_USE_EXTENSION

Ключ для расширения частного использования ('x').

static Locale ROOT

Полезная константа для корневой локали.

static Locale SIMPLIFIED_CHINESE

Полезная константа для языка.

static Locale TAIWAN

Полезная константа для страны.

static Locale TRADITIONAL_CHINESE

Полезная константа для языка.

static Locale UK

Полезная константа для страны.

static char UNICODE_LOCALE_EXTENSION

Ключ для расширения локали Unicode ('u').

static Locale US

Полезная константа для страны.

Конструкторы

Конструктор и описание
Locale(String language)

Создать локаль из кода языка.

Locale(String language, String country)

Создать локаль из языка и страны.

Locale(String language, String country, String variant)

Создать локаль из языка, страны и варианта.

Методы

Модификатор и тип Метод и описание
Object clone()

Переопределяет Cloneable.

boolean equals(Object obj)

Возвращает true, если этот Locale равен другому объекту.

static List<Locale> filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)

Возвращает список соответствующих Locale экземпляров, используя механизм фильтрации, определенный в RFC 4647.

static List<Locale> filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode)

Возвращает список соответствующих Locale экземпляров, используя механизм фильтрации, определенный в RFC 4647.

static List<String> filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags)

Возвращает список соответствующих тегов языков, используя базовый механизм фильтрации, определенный в RFC 4647.

static List<String> filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags, Locale.FilteringMode mode)

Возвращает список соответствующих тегов языков, используя базовый механизм фильтрации, определенный в RFC 4647.

static Locale forLanguageTag(String languageTag)

Возвращает локаль для указанной строки тега языка IETF BCP 47.

static Locale[] getAvailableLocales()

Возвращает массив всех установленных локалей.

String getCountry()

Возвращает код страны/региона для этой локали, который должен быть либо пустой строкой, либо заглавным двухбуквенным кодом ISO 3166, либо трехзначным кодом ООН М.49.

static Locale getDefault()

Получает текущее значение локали по умолчанию для этого экземпляра виртуальной машины Java.

static Locale getDefault(Locale.Category category)

Получает текущее значение локали по умолчанию для указанной категории для этого экземпляра виртуальной машины Java.

String getDisplayCountry()

Возвращает имя страны локали, подходящее для отображения пользователю.

String getDisplayCountry(Locale inLocale)

Возвращает имя страны локали, подходящее для отображения пользователю.

String getDisplayLanguage()

Возвращает имя языка локали, подходящее для отображения пользователю.

String getDisplayLanguage(Locale inLocale)

Возвращает имя языка локали, подходящее для отображения пользователю.

String getDisplayName()

Возвращает имя локали, подходящее для отображения пользователю.

String getDisplayName(Locale inLocale)

Возвращает имя локали, подходящее для отображения пользователю.

String getDisplayScript()

Возвращает имя скрипта локали, подходящее для отображения пользователю.

String getDisplayScript(Locale inLocale)

Возвращает имя скрипта локали, подходящее для отображения пользователю.

String getDisplayVariant()

Возвращает имя кода варианта локали, подходящее для отображения пользователю.

String getDisplayVariant(Locale inLocale)

Возвращает имя кода варианта локали, подходящее для отображения пользователю.

String getExtension(char key)

Возвращает значение расширения (или использования по умолчанию), связанное с указанным ключом, или null, если нет расширения, связанного с ключом.

Set<Character> getExtensionKeys()

Возвращает набор ключей расширения, связанных с этой локалью, или пустой набор, если у неё нет расширений.

String getISO3Country()

Возвращает трехбуквенное сокращение для страны этой локали.

String getISO3Language()

Возвращает трехбуквенное сокращение языка этой локали.

static String[] getISOCountries()

Возвращает список всех двухбуквенных кодов стран, определённых в ISO 3166.

static String[] getISOLanguages()

Возвращает список всех двухбуквенных кодов языков, определенных в ISO 639.

String getLanguage()

Возвращает код языка этой локали.

String getScript()

Возвращает скрипт для этой локали, который должен быть либо пустой строкой, либо четырехбуквенным кодом скрипта ISO 15924.

Set<String> getUnicodeLocaleAttributes()

Возвращает набор атрибутов локали Юникода, связанных с этой локалью, или пустой набор, если у нее нет атрибутов.

Set<String> getUnicodeLocaleKeys()

Возвращает набор ключей локали Юникода, определённых этой локалью, или пустой набор, если у этой локали их нет.

String getUnicodeLocaleType(String key)

Возвращает тип локали Юникода, связанный с указанным ключом локали Юникода для этой локали.

String getVariant()

Возвращает код варианта для этой локали.

boolean hasExtensions()

Возвращает true , если у этого Locale есть расширения.

int hashCode()

Переопределяет hashCode.

static Locale lookup(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)

Возвращает Locale экземпляр для наиболее подходящего тега языка, используя механизм поиска, определенный в RFC 4647.

static String lookupTag(List<Locale.LanguageRange> priorityList, Collection<String> tags)

Возвращает наиболее подходящий тег языка, используя механизм поиска, определенный в RFC 4647.

static void setDefault(Locale.Category category, Locale newLocale)

Устанавливает локаль по умолчанию для указанной категории для этого экземпляра виртуальной машины Java.

static void setDefault(Locale newLocale)

Устанавливает локаль по умолчанию для этого экземпляра виртуальной машины Java.

Locale stripExtensions()

Возвращает копию этого Locale без расширений.

String toLanguageTag()

Возвращает правильно сформированный тег языка IETF BCP 47, представляющий эту локаль.

String toString()

Возвращает строковое представление этого объекта Locale, состоящее из языка, страны, варианта, скрипта и расширений, как показано ниже: язык + «_» + страна + «_» + (вариант + «_#» | «#») + скрипт + «-» + расширения. Язык всегда в нижнем регистре, страна — всегда в верхнем регистре, скрипт — всегда в названии, а расширения — всегда в нижнем регистре.

Методы, унаследованные от класса java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Поля

АНГЛИЙСКИЙ

public static final Locale ENGLISH

Полезная константа для языка.

ФРАНЦУЗСКИЙ

public static final Locale FRENCH

Полезная константа для языка.

НЕМЕЦКИЙ

public static final Locale GERMAN

Полезная константа для языка.

ИТАЛЬЯНСКИЙ

public static final Locale ITALIAN

Полезная константа для языка.

ЯПОНСКИЙ

public static final Locale JAPANESE

Полезная константа для языка.

КОРЕЙСКИЙ

public static final Locale KOREAN

Полезная константа для языка.

КИТАЙСКИЙ

public static final Locale CHINESE

Полезная константа для языка.

УПРОЩЁННЫЙ_КИТАЙСКИЙ

public static final Locale SIMPLIFIED_CHINESE

Полезная константа для языка.

ТРАДИЦИОННЫЙ_КИТАЙСКИЙ

public static final Locale TRADITIONAL_CHINESE

Полезная константа для языка.

ФРАНЦИЯ

public static final Locale FRANCE

Полезная константа для страны.

ГЕРМАНИЯ

public static final Locale GERMANY

Полезная константа для страны.

ИТАЛИЯ

public static final Locale ITALY

Полезная константа для страны.

ЯПОНИЯ

public static final Locale JAPAN

Полезная константа для страны.

КОРЕЯ

public static final Locale KOREA

Полезная константа для страны.

КИТАЙ

public static final Locale CHINA

Полезная константа для страны.

КНР

public static final Locale PRC

Полезная константа для страны.

ТАЙВАНЬ

public static final Locale TAIWAN

Полезная константа для страны.

ВЕЛИКОБРИТАНИЯ

public static final Locale UK

Полезная константа для страны.

США

public static final Locale US

Полезная константа для страны.

КАНАДА

public static final Locale CANADA

Полезная константа для страны.

КАНАДА_ФРАНЦУЗСКИЙ

public static final Locale CANADA_FRENCH

Полезная константа для страны.

КОРНЕВОЙ

public static final Locale ROOT

Полезная константа для корневого локали. Корневой локали — это локали, у которой язык, страна и вариант пусты ("") . Он рассматривается как базовая локали для всех локали и используется как нейтральная локали языка/страны для локали-зависимых операций.

С момента:
1.6

РАЗШИРЕНИЕ_ЧАСТНОГО_ИСПОЛЬЗОВАНИЯ

public static final char PRIVATE_USE_EXTENSION

Ключ для расширения частного использования ('x').

С момента:
1.7
См. также:
getExtension(char), Locale.Builder.setExtension(char, String), Значения постоянных полей

РАЗШИРЕНИЕ_ЛОКАЛИ_UNICODE

public static final char UNICODE_LOCALE_EXTENSION

Ключ для расширения локали Unicode ('u').

С момента:
1.7
См. также:
getExtension(char), Locale.Builder.setExtension(char, String), Значения постоянных полей

Конструкторы

Locale

public Locale(String language,
              String country,
              String variant)

Создаёт локали из языка, страны и варианта. Этот конструктор приводит значение языка к нижнему регистру, а значение страны — к верхнему регистру.

Примечание:

  • ISO 639 — не стабильный стандарт; некоторые из определённых им кодов языка (в частности, "iw", "ji" и "in") изменились. Этот конструктор принимает как старые коды ("iw", "ji" и "in"), так и новые коды ("he", "yi" и "id"), но все остальные API в Locale вернут только СТАРЫЕ коды.
  • По соображениям обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
  • Два случая ("ja", "JP", "JP") и ("th", "TH", "TH") обрабатываются особо, см. Особые случаи для получения дополнительной информации.
Параметры:
language - Код языка ISO 639 alpha-2 или alpha-3, или тег языка длиной до 8 символов. См. описание класса Locale о допустимых значениях языка.
country - Код страны ISO 3166 alpha-2 или числовой код области UN M.49. См. описание класса Locale о допустимых значениях страны.
variant - Любое произвольное значение, используемое для обозначения варианта Locale. См. описание класса Locale для получения подробностей.
Исключения:
NullPointerException - выбрасывается, если какой-либо аргумент имеет значение null.

Locale

public Locale(String language,
              String country)

Создаёт локали из языка и страны. Этот конструктор приводит значение языка к нижнему регистру, а значение страны — к верхнему регистру.

Примечание:

  • ISO 639 — не стабильный стандарт; некоторые из определённых им кодов языка (в частности, "iw", "ji" и "in") изменились. Этот конструктор принимает как старые коды ("iw", "ji" и "in"), так и новые коды ("he", "yi" и "id"), но все остальные API в Locale вернут только СТАРЫЕ коды.
  • По соображениям обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
Параметры:
language - Код языка ISO 639 alpha-2 или alpha-3, или тег языка длиной до 8 символов. См. описание класса Locale о допустимых значениях языка.
country - Код страны ISO 3166 alpha-2 или числовой код области UN M.49. См. описание класса Locale о допустимых значениях страны.
Исключения:
NullPointerException - выбрасывается, если любой из аргументов имеет значение null.

Locale

public Locale(String language)

Создаёт локали из кода языка. Этот конструктор приводит значение языка к нижнему регистру.

Примечание:

  • ISO 639 — не стабильный стандарт; некоторые из определённых им кодов языка (в частности, "iw", "ji" и "in") изменились. Этот конструктор принимает как старые коды ("iw", "ji" и "in"), так и новые коды ("he", "yi" и "id"), но все остальные API в Locale вернут только СТАРЫЕ коды.
  • По соображениям обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
Параметры:
language - Код языка ISO 639 alpha-2 или alpha-3, или тег языка длиной до 8 символов. См. описание класса Locale о допустимых значениях языка.
Исключения:
NullPointerException - выбрасывается, если аргумент имеет значение null.
С момента:
1.4

Методы

getDefault

public static Locale getDefault()

Возвращает текущее значение локали по умолчанию для данной инстанции Java Virtual Machine.

Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали. Её можно изменить с помощью метода setDefault.

Возвращает:
локали по умолчанию для данной инстанции Java Virtual Machine

getDefault

public static Locale getDefault(Locale.Category category)

Возвращает текущее значение локали по умолчанию для указанной категории для данной инстанции Java Virtual Machine.

Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали. Её можно изменить с помощью метода setDefault(Locale.Category, Locale).

Параметры:
category - указанная категория, для которой требуется получить локали по умолчанию
Возвращает:
локали по умолчанию для указанной категории для данной инстанции Java Virtual Machine
Исключения:
NullPointerException - если категория имеет значение null
С момента:
1.7
См. также:
setDefault(Locale.Category, Locale)

setDefault

public static void setDefault(Locale newLocale)

Устанавливает локали по умолчанию для данной инстанции Java Virtual Machine. Это не влияет на локаль хоста.

Если существует менеджер безопасности, его метод checkPermission вызывается с разрешением PropertyPermission("user.language", "write") перед изменением локали по умолчанию.

Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали.

Поскольку изменение локали по умолчанию может повлиять на многие области функциональности, этот метод следует использовать только в том случае, если вызывающая сторона готова переинициализировать локали-чувствительный код, работающий в той же Java Virtual Machine.

Установка локали по умолчанию с помощью этого метода также устанавливает все значения локали по умолчанию для каждой категории в указанную локали по умолчанию.

Параметры:
newLocale - новая локали по умолчанию
Исключения:
SecurityException - если существует менеджер безопасности, и его метод checkPermission не разрешает операцию.
NullPointerException - если newLocale имеет значение null
См. также:
SecurityManager.checkPermission(java.security.Permission), PropertyPermission

setDefault

public static void setDefault(Locale.Category category,
                              Locale newLocale)

Устанавливает локали по умолчанию для указанной категории для данной инстанции Java Virtual Machine. Это не влияет на локаль хоста.

Если существует менеджер безопасности, его метод checkPermission вызывается с разрешением PropertyPermission("user.language", "write") перед изменением локали по умолчанию.

Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали.

Поскольку изменение локали по умолчанию может повлиять на многие области функциональности, этот метод следует использовать только в том случае, если вызывающая сторона готова переинициализировать локали-чувствительный код, работающий в той же Java Virtual Machine.

Параметры:
category - - указанная категория, для которой требуется установить локали по умолчанию
newLocale - - новая локали по умолчанию
Исключения:
SecurityException - - если существует менеджер безопасности, и его метод checkPermission не разрешает операцию.
NullPointerException - - если категория и/или newLocale имеют значение null
С момента:
1.7
См. также:
SecurityManager.checkPermission(java.security.Permission), PropertyPermission, getDefault(Locale.Category)

getAvailableLocales

public static Locale[] getAvailableLocales()

Возвращает массив всех установленных языковых локалей. Возвращаемый массив представляет собой объединение локалей, поддерживаемых средой выполнения Java, и установленных LocaleServiceProvider реализаций. Он должен содержать по крайней мере один элемент Locale равный Locale.US.

Возвращает:
Массив установленных локалей.

getISOCountries

public static String[] getISOCountries()

Возвращает список всех двухбуквенных кодов стран, определенных в ISO 3166. Может использоваться для создания локалей.

Примечание: Класс Locale также поддерживает другие коды для стран (регионов), такие как трехбуквенные числовые коды зон ООН М.49. Поэтому список, возвращаемый этим методом, не содержит ВСЕХ допустимых кодов, которые могут использоваться для создания локалей.

Возвращает:
Массив двухбуквенных кодов стран ISO 3166.

getISOLanguages

public static String[] getISOLanguages()

Возвращает список всех двухбуквенных кодов языков, определенных в ISO 639. Может использоваться для создания локалей.

Примечание:

  • ISO 639 — не стабильный стандарт; некоторые коды языков изменились. Список, который возвращает эта функция, включает как новые, так и старые коды для языков, коды которых изменились.
  • Класс Locale также поддерживает коды языков длиной до 8 символов. Поэтому список, возвращаемый этим методом, не содержит ВСЕХ допустимых кодов, которые могут использоваться для создания локалей.
Возвращает:
Массив двухбуквенных кодов языков ISO 639.

getLanguage

public String getLanguage()

Возвращает код языка этой локали.

Примечание: ISO 639 — не стабильный стандарт; некоторые коды языков изменились. Конструктор Locale распознаёт как новые, так и старые коды для языков, коды которых изменились, но эта функция всегда возвращает старый код. Если вы хотите проверить наличие конкретного языка, код которого изменился, не делайте

if (locale.getLanguage().equals("he")) // BAD!
    ...
Вместо этого сделайте
if (locale.getLanguage().equals(new Locale("he").getLanguage()))
    ...
Возвращает:
Код языка или пустую строку, если он не определён.
См. также:
getDisplayLanguage()

getScript

public String getScript()

Возвращает сценарий для этой локали, который должен быть либо пустой строкой, либо четырёхбуквенным кодом сценария ISO 15924. Первая буква заглавная, остальные — строчные, например, 'Latn', 'Cyrl'.

Возвращает:
Код сценария или пустую строку, если он не определён.
С тех пор:
1.7
См. также:
getDisplayScript()

getCountry

public String getCountry()

Возвращает код страны/региона для этой локали, который должен быть либо пустой строкой, либо двухбуквенным кодом ISO 3166 в верхнем регистре, либо трёхзначным кодом UN M.49.

Возвращает:
Код страны/региона или пустую строку, если он не определён.
См. также:
getDisplayCountry()

getVariant

public String getVariant()

Возвращает код варианта для этой локали.

Возвращает:
Код варианта или пустую строку, если он не определён.
См. также:
getDisplayVariant()

hasExtensions

public boolean hasExtensions()

Возвращает true, если у этой Locale есть какие-либо расширения.

Возвращает:
true если у этой Locale есть какие-либо расширения
С тех пор:
1.8

stripExtensions

public Locale stripExtensions()

Возвращает копию этой Locale без расширений. Если у этой Locale нет расширений, возвращается эта Locale.

Возвращает:
копию этой Locale без расширений или this если у this нет расширений
С тех пор:
1.8

getExtension

public String getExtension(char key)

Возвращает значение расширения (или частного использования), связанное с указанным ключом, или null, если расширение, связанное с ключом, отсутствует. Для корректной работы ключ должен быть одним из [0-9A-Za-z]. Регистр ключей не учитывается, поэтому, например, «z» и «Z» представляют одно и то же расширение.

Параметры:
key - ключ расширения
Возвращает:
Расширение или null, если эта локаль не определяет расширение для указанного ключа.
Выбрасывает:
IllegalArgumentException - если ключ не имеет правильного формата
С тех пор:
1.7
См. также:
PRIVATE_USE_EXTENSION, UNICODE_LOCALE_EXTENSION

getExtensionKeys

public Set<Character> getExtensionKeys()

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

Возвращает:
Множество ключей расширений или пустое множество, если у этой локали нет расширений.
С тех пор:
1.7

getUnicodeLocaleAttributes

public Set<String> getUnicodeLocaleAttributes()

Возвращает множество атрибутов локали Unicode, связанных с этой локалью, или пустое множество, если атрибутов нет. Возвращаемое множество неизменяемо.

Возвращает:
Множество атрибутов.
С тех пор:
1.7

getUnicodeLocaleType

public String getUnicodeLocaleType(String key)

Возвращает тип локали Unicode, связанный с указанным ключом локали Unicode для этой локали. Возвращает пустую строку для ключей, определённых без типа. Возвращает null, если ключ не определён. Ключи нечувствительны к регистру. Ключ должен содержать две буквенно-цифровых символа ([0-9a-zA-Z]), в противном случае выбрасывается IllegalArgumentException.

Параметры:
key - ключ локали Unicode
Возвращает:
Тип локали Unicode, связанный с ключом, или null, если локаль не определяет ключ.
Выбрасывает:
IllegalArgumentException - если ключ не имеет правильного формата
NullPointerException - если key равно null
С тех пор:
1.7

getUnicodeLocaleKeys

public Set<String> getUnicodeLocaleKeys()

Возвращает множество ключей локали Unicode, определённых этой локалью, или пустое множество, если ключей нет. Возвращаемое множество неизменяемо. Ключи — все в нижнем регистре.

Возвращает:
Множество ключей локали Unicode или пустое множество, если у этой локали нет ключей локали Unicode.
С тех пор:
1.7

toString

public final String toString()

Возвращает строковое представление этого объекта Locale, состоящее из языка, страны, варианта, сценария и расширений, как показано ниже:

язык + «_» + страна + «_» + (вариант + «_#» | «#») + сценарий + «-» + расширения
Язык всегда в нижнем регистре, страна — всегда в верхнем регистре, сценарий — всегда в стиле заглавной буквы, а расширения — всегда в нижнем регистре. Расширения и подтеги частного использования будут в каноническом порядке, как описано в toLanguageTag().

Когда у локали нет сценария или расширений, результат такой же, как в Java 6 и ранее.

Если отсутствуют как поле языка, так и поле страны, эта функция вернёт пустую строку, даже если присутствуют поле варианта, сценария или расширений (у локали не может быть только варианта, вариант должен сопровождаться корректным кодом языка или страны).

Если сценарий или расширения присутствуют, а вариант отсутствует, перед «#» не добавляется знак нижнего подчёркивания.

Это поведение предназначено для отладки и совместимости с предыдущими использованиями toString , которые ожидали только полей языка, страны и варианта. Чтобы представить Locale в виде строки для обмена, используйте toLanguageTag().

Примеры:

  • en
  • de_DE
  • _GB
  • en_US_WIN
  • de__POSIX
  • zh_CN_#Hans
  • zh_TW_#Hant-x-java
  • th_TH_TH_#u-nu-thai
Переопределяет:
toString в классе Object
Возвращает:
Строковое представление локали, для отладки.
См. также:
getDisplayName(), toLanguageTag()

toLanguageTag

public String toLanguageTag()

Возвращает корректный тег языка IETF BCP 47, представляющий эту локаль.

Если у этой Locale есть язык, страна или вариант, которые не соответствуют требованиям синтаксиса тега языка IETF BCP 47, этот метод обрабатывает эти поля, как описано ниже:

Язык: Если язык пустой или не имеет корректного формата (например, «a» или «e2»), он будет выведен как «und» (неопределённый).

Страна: Если страна не имеет корректного формата (например, «12» или «USA»), она будет опущена.

Вариант: Если вариант имеет корректный формат, каждый подсегмент (разделенный дефисом или нижним подчёркиванием) выводится как подтег. В противном случае:

  • Если все подсегменты соответствуют [0-9a-zA-Z]{1,8} (например, «WIN» или «Oracle_JDK_Standard_Edition»), первый некорректный подсегмент и все последующие будут добавлены к тегу частного использования. Первый добавленный подтег будет «lvariant», за которым следуют подсегменты в порядке, разделенные дефисом. Например, «x-lvariant-WIN», «Oracle-x-lvariant-JDK-Standard-Edition».
  • Если какой-либо подсегмент не соответствует [0-9a-zA-Z]{1,8}, вариант будет усечён, а проблемный подсегмент и все последующие подсегменты будут опущены. Если оставшаяся часть не пустая, она будет выведена как тег частного использования, как указано выше (даже если оставшаяся часть окажется правильной). Например, «Solaris_isjustthecoolestthing» выводится как «x-lvariant-Solaris», а не как «solaris».

Специальные преобразования: Java поддерживает некоторые старые представления локалей, включая устаревшие коды языков ISO, для совместимости. Этот метод выполняет следующие преобразования:

  • Устаревшие коды языков ISO «iw», «ji» и «in» преобразуются в «he», «yi» и «id» соответственно.
  • Локаль с языком «no», страной «NO» и вариантом «NY», представляющая норвежский нюнорск (Норвегия), преобразуется в тег языка «nn-NO».

Примечание: Хотя тег языка, созданный этим методом, имеет правильный формат (удовлетворяет требованиям синтаксиса, определённым спецификацией IETF BCP 47), он не обязательно является корректным тегом языка BCP 47. Например,

new Locale("xx", "YY").toLanguageTag();
вернёт «xx-YY», но подтег языка «xx» и подтег региона «YY» некорректны, поскольку они не зарегистрированы в реестре подтегов языков IANA.
Возвращает:
метку языка BCP47, представляющую локаль
С тех пор:
1.7
См. также:
forLanguageTag(String)

forLanguageTag

public static Locale forLanguageTag(String languageTag)

Возвращает локаль для указанной строки тега языка IETF BCP 47.

Если указанный тег языка содержит какие-либо неправильно сформированные подтеги, такой подтег и все последующие подтеги игнорируются. Сравните с Locale.Builder.setLanguageTag(java.lang.String), которая в этом случае выбрасывает исключение.

Выполняются следующие преобразования:

  • Код языка "und" отображается в язык "".
  • Коды языков "he", "yi" и "id" отображаются в "iw", "ji" и "in" соответственно. (Это та же канонизация, которая выполняется в конструкторах Locale.)
  • Часть подтега для частного использования, начинающаяся с префикса "lvariant", если он есть, удаляется и добавляется к полю варианта в результирующей локали (без нормализации регистра). Если она становится пустой, подтег для частного использования отбрасывается:
    Locale loc;
         loc = Locale.forLanguageTag("en-US-x-lvariant-POSIX");
         loc.getVariant(); // returns "POSIX"
         loc.getExtension('x'); // returns null
    
         loc = Locale.forLanguageTag("de-POSIX-x-URP-lvariant-Abc-Def");
         loc.getVariant(); // returns "POSIX_Abc_Def"
         loc.getExtension('x'); // returns "urp"
  • Когда аргумент languageTag содержит подтег extlang, используется первый такой подтег в качестве языка, и основной подтег языка и другие подтеги extlang игнорируются:
    Locale.forLanguageTag("ar-aao").getLanguage(); // returns "aao"
         Locale.forLanguageTag("en-abc-def-us").toString(); // returns "abc_US"
  • Регистр нормализуется, за исключением тегов вариантов, которые остаются неизменными. Язык нормализуется до нижнего регистра, сценарий до верхнего регистра, страна до верхнего регистра, а расширения до нижнего регистра.
  • Если после обработки локаль будет точно совпадать с ja_JP_JP или th_TH_TH без расширений, соответствующие расширения добавляются так, как будто был вызван конструктор:
    Locale.forLanguageTag("ja-JP-x-lvariant-JP").toLanguageTag();
        // returns "ja-JP-u-ca-japanese-x-lvariant-JP"
        Locale.forLanguageTag("th-TH-x-lvariant-TH").toLanguageTag();
        // returns "th-TH-u-nu-thai-x-lvariant-TH"

Это реализует производство 'Language-Tag' BCP47, и поэтому поддерживает унаследованные (обычные и нестандартные), а также частные метки языка. Самостоятельные метки частного использования представляются как пустой язык и расширение 'x-whatever', а унаследованные метки преобразуются в свои канонические замены, если они существуют.

Унаследованные метки с каноническими заменами приведены ниже:

унаследованный тег современная замена
art-lojban jbo
i-ami ami
i-bnn bnn
i-hak hak
i-klingon tlh
i-lux lb
i-navajo nv
i-pwn pwn
i-tao tao
i-tay tay
i-tsu tsu
no-bok nb
no-nyn nn
sgn-BE-FR sfb
sgn-BE-NL vgt
sgn-CH-DE sgg
zh-guoyu cmn
zh-hakka hak
zh-min-nan nan
zh-xiang hsn

Унаследованные метки без современной замены будут преобразованы следующим образом:

унаследованный тег преобразуется в
cel-gaulish xtg-x-cel-gaulish
en-GB-oed en-GB-x-oed
i-default en-x-i-default
i-enochian und-x-i-enochian
i-mingo see-x-i-mingo
zh-min nan-x-zh-min

Список всех унаследованных меток см. в реестре подтегов языка IANA (поиск по «Тип: унаследованный»).

Примечание: нет гарантии, что toLanguageTag и forLanguageTag будут обработаны корректно.

Параметры:
languageTag - тег языка
Возвращает:
Локаль, которая наилучшим образом представляет тег языка.
Выбрасывает:
NullPointerException - если languageTag имеет null значение
С тех пор:
1.7
См. также:
toLanguageTag(), Locale.Builder.setLanguageTag(String)

getISO3Language

public String getISO3Language()
                       throws MissingResourceException

Возвращает трехбуквенное сокращение языка этой локали. Если язык соответствует двухбуквенному коду ISO 639-1, возвращается соответствующий трехбуквенный код ISO 639-2/T в нижнем регистре. Коды языков ISO 639-2 можно найти онлайн, см. "Codes for the Representation of Names of Languages Part 2: Alpha-3 Code". Если локаль указывает трехбуквенный язык, язык возвращается как есть. Если локаль не указывает язык, возвращается пустая строка.

Возвращает:
Трехбуквенное сокращение языка этой локали.
Выбрасывает:
MissingResourceException - Выбрасывает MissingResourceException, если трехбуквенное сокращение языка недоступно для этой локали.

getISO3Country

public String getISO3Country()
                      throws MissingResourceException

Возвращает трехбуквенное сокращение страны этой локали. Если страна соответствует коду ISO 3166-1 alpha-2, возвращается соответствующий код ISO 3166-1 alpha-3 в верхнем регистре. Если локаль не указывает страну, возвращается пустая строка.

Коды ISO 3166-1 можно найти онлайн.

Возвращает:
Трехбуквенное сокращение страны этой локали.
Выбрасывает:
MissingResourceException - Выбрасывает MissingResourceException, если трехбуквенное сокращение страны недоступно для этой локали.

getDisplayLanguage

public final String getDisplayLanguage()

Возвращает имя языка локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано для локали по умолчанию DISPLAY. Например, если локаль fr_FR, а локаль по умолчанию DISPLAY — en_US, getDisplayLanguage() вернет «Французский»; если локаль en_US, а локаль по умолчанию DISPLAY — fr_FR, getDisplayLanguage() вернет «английский». Если имя не может быть локализовано для локали по умолчанию DISPLAY (например, у нас нет японского названия для хорватского языка), эта функция обращается к английскому имени и использует код ISO в качестве значения по умолчанию. Если локаль не указывает язык, эта функция возвращает пустую строку.

Возвращает:
Имя отображаемого языка.

getDisplayLanguage

public String getDisplayLanguage(Locale inLocale)

Возвращает имя языка локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано в соответствии с inLocale. Например, если локаль fr_FR, а inLocale — en_US, getDisplayLanguage() вернет «Французский»; если локаль en_US, а inLocale — fr_FR, getDisplayLanguage() вернет «английский». Если имя не может быть локализовано в соответствии с inLocale (например, у нас нет японского названия для хорватского языка), эта функция обращается к английскому имени и, наконец, к коду ISO в качестве значения по умолчанию. Если локаль не указывает язык, эта функция возвращает пустую строку.

Параметры:
inLocale - Локаль, для которой необходимо получить отображаемый язык.
Возвращает:
Имя отображаемого языка, подходящее для заданной локали.
Выбрасывает:
NullPointerException - если inLocale имеет значение null

getDisplayScript

public String getDisplayScript()

Возвращает имя сценария локали, подходящее для отображения пользователю. Если возможно, имя будет локализовано для локали по умолчанию DISPLAY. Возвращает пустую строку, если в этой локали нет кода сценария.

Возвращает:
отображаемое имя кода сценария для локали по умолчанию DISPLAY
С тех пор:
1.7

getDisplayScript

public String getDisplayScript(Locale inLocale)

Возвращает имя сценария локали, подходящее для отображения пользователю. Если возможно, имя будет локализовано для заданной локали. Возвращает пустую строку, если в этой локали нет кода сценария.

Параметры:
inLocale - Локаль, для которой необходимо получить отображаемый сценарий.
Возвращает:
отображаемое имя кода сценария для локали по умолчанию DISPLAY
Выбрасывает:
NullPointerException - если inLocale имеет значение null
С тех пор:
1.7

getDisplayCountry

public final String getDisplayCountry()

Возвращает имя страны локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано для локали по умолчанию DISPLAY. Например, если локаль fr_FR, а локаль по умолчанию DISPLAY — en_US, getDisplayCountry() вернет «Франция»; если локаль en_US, а локаль по умолчанию DISPLAY — fr_FR, getDisplayCountry() вернет «Соединённые Штаты». Если имя не может быть локализовано для локали по умолчанию DISPLAY (например, у нас нет японского названия для Хорватии), эта функция обращается к английскому имени и использует код ISO в качестве значения по умолчанию. Если локаль не указывает страну, эта функция возвращает пустую строку.

Возвращает:
Имя страны, подходящее для локали.

getDisplayCountry

public String getDisplayCountry(Locale inLocale)

Возвращает имя страны локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано в соответствии с inLocale. Например, если локаль fr_FR, а inLocale — en_US, getDisplayCountry() вернет «Франция»; если локаль en_US, а inLocale — fr_FR, getDisplayCountry() вернет «Соединённые Штаты». Если имя не может быть локализовано в соответствии с inLocale (например, у нас нет японского названия для Хорватии), эта функция обращается к английскому имени и, наконец, к коду ISO в качестве значения по умолчанию. Если локаль не указывает страну, эта функция возвращает пустую строку.

Параметры:
inLocale - Локаль, для которой необходимо получить отображаемую страну.
Возвращает:
Имя страны, подходящее для заданной локали.
Выбрасывает:
NullPointerException - если inLocale имеет значение null

getDisplayVariant

public final String getDisplayVariant()

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

Возвращает:
Имя кода отображаемого варианта, соответствующее локали.

getDisplayVariant

public String getDisplayVariant(Locale inLocale)

Возвращает имя кода варианта локали, подходящее для отображения пользователю. Если возможно, имя будет локализовано для inLocale. Если локаль не указывает код варианта, эта функция возвращает пустую строку.

Параметры:
inLocale - Локаль, для которой необходимо получить код отображаемого варианта.
Возвращает:
Имя кода отображаемого варианта, соответствующее заданной локали.
Выбрасывает:
NullPointerException - если inLocale является null

getDisplayName

public final String getDisplayName()

Возвращает имя локали, подходящее для отображения пользователю. Это будет значения, возвращаемые getDisplayLanguage(), getDisplayScript(), getDisplayCountry() и getDisplayVariant(), собранные в одну строку. Непустые значения используются в порядке следования, а второе и последующие имена заключаются в скобки. Например:

язык (шрифт, страна, вариант)
язык (страна)
язык (вариант)
шрифт (страна)
страна
в зависимости от того, какие поля указаны в локали. Если поля языка, шрифта, страны и варианта все пусты, эта функция возвращает пустую строку.

Возвращает:
Имя локали, подходящее для отображения.

getDisplayName

public String getDisplayName(Locale inLocale)

Возвращает имя локали, подходящее для отображения пользователю. Это будет значения, возвращаемые getDisplayLanguage(), getDisplayScript(),getDisplayCountry() и getDisplayVariant(), собранные в одну строку. Непустые значения используются в порядке следования, а второе и последующие имена заключаются в скобки. Например:

язык (шрифт, страна, вариант)
язык (страна)
язык (вариант)
шрифт (страна)
страна
в зависимости от того, какие поля указаны в локали. Если поля языка, шрифта, страны и варианта все пусты, эта функция возвращает пустую строку.

Параметры:
inLocale - Локаль, для которой необходимо получить имя для отображения.
Возвращает:
Имя локали, подходящее для отображения.
Выбрасывает:
NullPointerException - если inLocale является null

clone

public Object clone()

Переопределяет Cloneable.

Переопределяет:
clone в классе Object
Возвращает:
клон этого экземпляра.
См. также:
Cloneable

hashCode

public int hashCode()

Переопределяет hashCode. Поскольку Locales часто используются в хэш-таблицах, кэширует значение для повышения скорости.

Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого объекта.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object obj)

Возвращает true, если эта локаль равна другому объекту. Локаль считается равной другой локали с идентичным языком, шрифтом, страной, вариантом и расширениями, и неравной всем другим объектам.

Переопределяет:
equals в классе Object
Параметры:
obj - объект-ссылка, с которым нужно сравнить.
Возвращает:
true, если эта локаль равна указанному объекту.
См. также:
Object.hashCode(), HashMap

filter

public static List<Locale> filter(List<Locale.LanguageRange> priorityList,
                                  Collection<Locale> locales,
                                  Locale.FilteringMode mode)

Возвращает список совпадающих экземпляров Locale с использованием механизма фильтрации, определенного в RFC 4647.

Параметры:
priorityList - Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса
locales - экземпляры Locale используемые для сопоставления
mode - режим фильтрации
Возвращает:
список экземпляров Locale для сопоставления тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем.
Выбрасывает:
NullPointerException - если priorityList или locales является null
IllegalArgumentException - если один или несколько расширенных диапазонов языков включены в данный список, когда Locale.FilteringMode.REJECT_EXTENDED_RANGES задан
С:
1.8

filter

public static List<Locale> filter(List<Locale.LanguageRange> priorityList,
                                  Collection<Locale> locales)

Возвращает список совпадающих экземпляров Locale с использованием механизма фильтрации, определенного в RFC 4647. Это эквивалентно filter(List, Collection, FilteringMode), когда mode является Locale.FilteringMode.AUTOSELECT_FILTERING.

Параметры:
priorityList - Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса
locales - экземпляры Locale используемые для сопоставления
Возвращает:
список экземпляров Locale для сопоставления тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем.
Выбрасывает:
NullPointerException - если priorityList или locales является null
С:
1.8

filterTags

public static List<String> filterTags(List<Locale.LanguageRange> priorityList,
                                      Collection<String> tags,
                                      Locale.FilteringMode mode)

Возвращает список совпадающих тегов языка с использованием базового механизма фильтрации, определенного в RFC 4647.

Параметры:
priorityList - Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса
tags - теги языка
mode - режим фильтрации
Возвращает:
список совпадающих тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем.
Выбрасывает:
NullPointerException - если priorityList или tags является null
IllegalArgumentException - если один или несколько расширенных диапазонов языков включены в данный список, когда Locale.FilteringMode.REJECT_EXTENDED_RANGES задан
С:
1.8

filterTags

public static List<String> filterTags(List<Locale.LanguageRange> priorityList,
                                      Collection<String> tags)

Возвращает список совпадающих тегов языка с использованием базового механизма фильтрации, определенного в RFC 4647. Это эквивалентно filterTags(List, Collection, FilteringMode), когда mode является Locale.FilteringMode.AUTOSELECT_FILTERING.

Параметры:
priorityList - Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса
tags - теги языка
Возвращает:
список совпадающих тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем.
Выбрасывает:
NullPointerException - если priorityList или tags является null
С:
1.8

lookup

public static Locale lookup(List<Locale.LanguageRange> priorityList,
                            Collection<Locale> locales)

Возвращает экземпляр Locale для наилучшего совпадения тега языка с использованием механизма поиска, определенного в RFC 4647.

Параметры:
priorityList - Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса
locales - экземпляры Locale используемые для сопоставления
Возвращает:
экземпляр наилучшего совпадающего Locale , выбранный на основе приоритета или веса, или null если ничего не совпадает.
Выбрасывает:
NullPointerException - если priorityList или tags является null
С:
1.8

lookupTag

public static String lookupTag(List<Locale.LanguageRange> priorityList,
                               Collection<String> tags)

Возвращает наилучший совпадающий тег языка с использованием механизма поиска, определенного в RFC 4647.

Параметры:
priorityList - Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса
tags - теги языка
Возвращает:
наилучший совпадающий тег языка, выбранный на основе приоритета или веса, или null если ничего не совпадает.
Выбрасывает:
NullPointerException - если priorityList или tags является null
С:
1.8

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API