Класс 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 или числовой код области ООН М.49. Полный список допустимых кодов стран и регионов можно найти в реестре подтегов языка IANA (поищите «Тип: регион»). Поле страны (региона) нечувствительно к регистру, но Locale всегда приводится к верхнему регистру.
Корректные значения страны/региона имеют вид [a-zA-Z]{2} | [0-9]{3}
Пример: «US» (Соединённые Штаты), «FR» (Франция), «029» (Карибский регион)
вариант
Любое произвольное значение, используемое для указания варианта Locale. Если существует два или более значений варианта, каждое из которых указывает свою семантику, эти значения должны быть упорядочены по важности, с наибольшей важностью в начале, разделенные символом подчёркивания('_'). Поле варианта чувствительно к регистру.
Примечание: IETF BCP 47 устанавливает синтаксические ограничения на подтеги варианта. Также подтеги BCP 47 используются строго для указания дополнительных вариаций, которые определяют язык или его диалекты, не покрываемые никакими сочетаниями подтегов языка, шрифта и региона. Полный список допустимых кодов варианта можно найти в реестре подтегов языка IANA (поищите «Тип: вариант»).

Однако, поле варианта в Locale исторически использовалось для любого вида вариаций, а не только вариаций языка. Например, некоторые поддерживаемые варианты, доступные в средах выполнения Java SE Runtime Environments, указывают альтернативные культурные особенности, такие как тип календаря или шрифт цифр. В 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' допускает подтеги из одного символа).
Пример: key="u"/value="ca-japanese" (японский календарь), key="x"/value="java-1-7"
Примечание: Хотя BCP 47 требует, чтобы значения полей были зарегистрированы в реестре подтегов языка IANA, класс Locale не предоставляет функций проверки. Класс Builder только проверяет, удовлетворяет ли отдельное поле синтаксическим требованиям (является ли оно правильным с точки зрения синтаксиса), но не проверяет само значение. Подробности см. в Locale.Builder.

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

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

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

Таким образом, когда объект 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 предоставляет ряд классов, выполняющих локализованные операции. Например, класс 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. Это означает, что преобразования между некоторыми локалями и тегами языка 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. Это по-прежнему делается для сохранения обратной совместимости.

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

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

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

Since:
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.IsoCountryCode

Перечисление для указания типа, определённого в ISO 3166.

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, если эта локаль равна другому объекту.

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, либо трехзначным кодом ООН M.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 Set<String> getISOCountries​(Locale.IsoCountryCode type)

Возвращает Set кодов стран ISO3166 для указанного типа.

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 newLocale)

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

static void setDefault​(Locale.Category category, 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

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

ROOT

public static final Locale ROOT

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

Since:
1.6

Расширение частного использования

public static final char PRIVATE_USE_EXTENSION

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

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

Расширение языка Юникод

public static final char UNICODE_LOCALE_EXTENSION

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

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

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

Locale

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

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

Примечание:

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

Locale

public Locale(String language,
              String country)

Создаёт объект Locale по языку и стране. Этот конструктор приводит язык к нижнему регистру и страну к верхнему регистру.

Примечание:

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

Locale

public Locale(String language)

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

Примечание:

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

Методы

getDefault

public static Locale getDefault()

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

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

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

getDefault

public static Locale getDefault(Locale.Category category)

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

Виртуальная машина Java устанавливает значения по умолчанию для региональных настроек во время запуска, основываясь на среде хоста. Они используются многими методами, чувствительными к региональным настройкам, если явно не задан регион. Их можно изменить с помощью метода setDefault(Locale.Category, Locale).

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

setDefault

public static void setDefault(Locale newLocale)

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

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

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

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

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

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

setDefault

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

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

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

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

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

Параметры:
category - - указанная категория для установки значения региональных настроек по умолчанию
newLocale - - новое значение региональных настроек по умолчанию
Выбрасывает:
SecurityException - если менеджер безопасности существует и его метод checkPermission не разрешает операцию.
NullPointerException - если category и/или 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. Этот метод эквивалентен getISOCountries(Locale.IsoCountryCode type) с type Locale.IsoCountryCode.PART1_ALPHA2.

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

Обратите внимание, что этот метод не возвращает устаревшие двухбуквенные коды стран. Коды ISO3166-3, которые обозначают коды стран для устаревших кодов, могут быть получены из getISOCountries(Locale.IsoCountryCode type) с type Locale.IsoCountryCode.PART3.

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

getISOCountries

public static Set<String> getISOCountries(Locale.IsoCountryCode type)

Возвращает Set кодов стран ISO3166 для указанного типа.

Параметры:
type - Locale.IsoCountryCode указанный тип ISO-кода.
Возвращает:
a Set кодов стран ISO для указанного типа.
Выбрасывает:
NullPointerException - если тип равен null
С тех пор:
9
См. также:
Locale.IsoCountryCode

getISOLanguages

public static String[] getISOLanguages()

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

Примечание:

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

getLanguage

public String getLanguage()

Возвращает код языка для этого объекта Locale.

Примечание: 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, либо трёхзначным кодом ООН 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()

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

Возвращает:
Набор атрибутов.
С момента:
1.7

getUnicodeLocaleType

public String getUnicodeLocaleType(String key)

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

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

getUnicodeLocaleKeys

public Set<String> getUnicodeLocaleKeys()

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

Возвращает:
Набор ключей локальной настройки Юникода или пустой набор, если в этой локальной настройке нет ключей локальной настройки Юникода.
С момента:
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
Возвращает:
Строковое представление Locale для отладки.
См. также:
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, если этот Locale равен другому объекту. Locale считается равным другому Locale с идентичным языком, письмом, страной, вариантом и расширениями, и неравным всем другим объектам.

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

filter

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

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

Параметры:
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. Эта операция фильтрации по заданному locales гарантирует, что возвращаются только уникальные совпадающие языковые локали.

Параметры:
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. Эта операция фильтрации по заданному tags гарантирует, что возвращаются только уникальные совпадающие теги с сохраненным регистром. В случае дублирующихся совпадающих тегов с разным регистром возвращается первый совпадающий тег с сохраненным регистром. Например, "de-ch" возвращается из дублирующихся совпадающих тегов "de-ch" и "de-CH", если "de-ch" проверяется на соответствие в заданном tags. Обратите внимание, что если заданный tags является неупорядоченным Collection, возвращаемый совпадающий тег из дублирующихся тегов может меняться в зависимости от реализации Collection.

Параметры:
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. Эта операция фильтрации по заданному tags гарантирует, что возвращаются только уникальные совпадающие теги с сохраненным регистром. В случае дублирующихся совпадающих тегов с разным регистром возвращается первый совпадающий тег с сохраненным регистром. Например, "de-ch" возвращается из дублирующихся совпадающих тегов "de-ch" и "de-CH", если "de-ch" проверяется на соответствие в заданном tags. Обратите внимание, что если заданный tags является неупорядоченным Collection, возвращаемый совпадающий тег из дублирующихся тегов может меняться в зависимости от реализации Collection.

Параметры:
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. Эта операция поиска по заданному tags гарантирует, что возвращается первый совпадающий тег с сохраненным регистром.

Параметры:
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Locale.html

Spec-Zone .ru
спецификации, руководства, описания, API