Spec-Zone.ru › OpenJDK 17

Класс 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 Environment указывают альтернативные культурные поведения, такие как тип календаря или тип числового алфавита. В 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».

Таким образом, когда объект 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.

Построитель

Используя 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 для Соединённых Штатов:

     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

После создания 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. С Java SE 17 это больше не так. Каждый язык отображается в его новую форму; iw отображается в he, ji отображается в yi, и in отображается в id.

Для обратной совместимости системная переменная java.locale.useOldISOCodes возвращает поведение обратно к состоянию до Java SE 17. Если системная переменная установлена в true, эти три текущих кода языка отображаются в их формы обратной совместимости. Переменная считывается только при запуске Java и последующие вызовы System.setProperty() не окажут никакого влияния.

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

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

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

С:
1.1
См. также:
  • Locale.Builder
  • ResourceBundle
  • Format
  • NumberFormat
  • Collator
  • Сериализованная форма

Краткое описание вложенных классов

Modifier and Type Class Описание
static final class  Locale.Builder
Builder используется для построения экземпляров Locale из значений, сконфигурированных установщиками.
static enum  Locale.Category
Перечисление категорий локалей.
static enum  Locale.FilteringMode
Это перечисление предоставляет константы для выбора режима фильтрации для соответствия локалей.
static enum  Locale.IsoCountryCode
Перечисление для указания типа, определенного в ISO 3166.
static final class  Locale.LanguageRange
Этот класс выражает диапазон языков, определенный в RFC 4647 Сопоставление тегов языка.

Краткое описание полей

Modifier and Type Поле Описание
static final Locale CANADA
Полезная константа для страны.
static final Locale CANADA_FRENCH
Полезная константа для страны.
static final Locale CHINA
Полезная константа для страны.
static final Locale CHINESE
Полезная константа для языка.
static final Locale ENGLISH
Полезная константа для языка.
static final Locale FRANCE
Полезная константа для страны.
static final Locale FRENCH
Полезная константа для языка.
static final Locale GERMAN
Полезная константа для языка.
static final Locale GERMANY
Полезная константа для страны.
static final Locale ITALIAN
Полезная константа для языка.
static final Locale ITALY
Полезная константа для страны.
static final Locale JAPAN
Полезная константа для страны.
static final Locale JAPANESE
Полезная константа для языка.
static final Locale KOREA
Полезная константа для страны.
static final Locale KOREAN
Полезная константа для языка.
static final Locale PRC
Полезная константа для страны.
static final char PRIVATE_USE_EXTENSION
Ключ для расширения частного использования ('x').
static final Locale ROOT
Полезная константа для корневой локали.
static final Locale SIMPLIFIED_CHINESE
Полезная константа для языка.
static final Locale TAIWAN
Полезная константа для страны.
static final Locale TRADITIONAL_CHINESE
Полезная константа для языка.
static final Locale UK
Полезная константа для страны.
static final char UNICODE_LOCALE_EXTENSION
Ключ для расширения локали Unicode ('u').
static final Locale US
Полезная константа для страны.

Краткое описание конструкторов

Конструктор Описание
Locale(String language)
Создать локаль из кода языка.
Locale(String language, String country)
Создать локаль из языка и страны.
Locale(String language, String country, String variant)
Создать локаль из языка, страны и варианта.

Краткое описание методов

Modifier and Type Method Description
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 2-буквенного кода (заглавными буквами), либо 3-значным кодом UN M.49.
static Locale getDefault()
Получает текущее значение локали по умолчанию для этого экземпляра виртуальной машины Java.
static Locale getDefault(Locale.Category category)
Получает текущее значение локали по умолчанию для указанной категории для этого экземпляра виртуальной машины Java.
final String getDisplayCountry()
Возвращает имя страны локали, подходящее для отображения пользователю.
String getDisplayCountry(Locale inLocale)
Возвращает имя страны локали, подходящее для отображения пользователю.
final String getDisplayLanguage()
Возвращает имя языка локали, подходящее для отображения пользователю.
String getDisplayLanguage(Locale inLocale)
Возвращает имя языка локали, подходящее для отображения пользователю.
final String getDisplayName()
Возвращает имя локали, подходящее для отображения пользователю.
String getDisplayName(Locale inLocale)
Возвращает имя локали, подходящее для отображения пользователю.
String getDisplayScript()
Возвращает имя скрипта локали, подходящее для отображения пользователю.
String getDisplayScript(Locale inLocale)
Возвращает имя скрипта локали, подходящее для отображения пользователю.
final String getDisplayVariant()
Возвращает имя кода варианта локали, подходящее для отображения пользователю.
String getDisplayVariant(Locale inLocale)
Возвращает имя кода варианта локали, подходящее для отображения пользователю.
String getExtension(char key)
Возвращает значение расширения (или частного использования), связанное с указанным ключом, или null, если расширение, связанное с ключом, отсутствует.
Set<Character> getExtensionKeys()
Возвращает набор ключей расширений, связанных с этой локалью, или пустой набор, если у нее нет расширений.
String getISO3Country()
Возвращает трехбуквенное сокращение для страны этой локали.
String getISO3Language()
Возвращает трехбуквенное сокращение языка этой локали.
static String[] getISOCountries()
Возвращает список всех 2-буквенных кодов стран, определенных в ISO 3166.
static Set<String> getISOCountries(Locale.IsoCountryCode type)
Возвращает Set кодов стран ISO3166 для указанного типа.
static String[] getISOLanguages()
Возвращает список всех 2-буквенных кодов языков, определенных в ISO 639.
String getLanguage()
Возвращает код языка этой локали.
String getScript()
Возвращает скрипт для этой локали, который должен быть либо пустой строкой, либо 4-буквенным кодом скрипта ISO 15924.
Set<String> getUnicodeLocaleAttributes()
Возвращает набор атрибутов локали Unicode, связанных с этой локалью, или пустой набор, если у нее нет атрибутов.
Set<String> getUnicodeLocaleKeys()
Возвращает набор ключей локали Unicode, определенных этой локалью, или пустой набор, если у этой локали их нет.
String getUnicodeLocaleType(String key)
Возвращает тип локали Unicode, связанный с указанным ключом локали Unicode для этой локали.
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, представляющий эту локаль.
final 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 UK
Полезная константа для страны.

США

public static final Locale US
Полезная константа для страны.

КАНАДА

public static final Locale CANADA
Полезная константа для страны.

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

public static final Locale CANADA_FRENCH
Полезная константа для страны.

ROOT

public static final Locale ROOT
Полезная константа для корневого региона. Корневой регион — это регион, у которого язык, страна и вариант пусты (""). Он считается базовым регионом всех регионов и используется в качестве региона, нейтрального к языку/стране, для операций, чувствительных к региону.
С момента:
1.6

КИТАЙ

public static final Locale CHINA
Полезная константа для страны.

КНР

public static final Locale PRC
Полезная константа для страны.

ТАЙВАНЬ

public static final Locale TAIWAN
Полезная константа для страны.

PRIVATE_USE_EXTENSION

public static final char PRIVATE_USE_EXTENSION
Ключ для расширения для частного использования ('x').
С момента:
1.7
См. также:
  • getExtension(char)
  • Locale.Builder.setExtension(char, String)
  • Значения константных полей

UNICODE_LOCALE_EXTENSION

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") отображаются в их современных формах. Подробную информацию см. в разделе Устаревшие коды языков.
  • В целях обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
  • Два случая ("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") отображаются в их современных формах. Подробную информацию см. в разделе Устаревшие коды языков.
  • В целях обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
Параметры:
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") отображаются в их современных формах. Подробную информацию см. в разделе Устаревшие коды языков.
  • В целях обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
Параметры:
language - код языка ISO 639 alpha-2 или alpha-3, или тег языка длиной до 8 символов. См. описание класса Locale для информации о допустимых значениях языка.
Исключения:
NullPointerException - выбрасывается, если аргумент равен null.
С момента:
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 - если категория равна null
С момента:
1.7
См. также:
  • setDefault(Locale.Category, Locale)

УстановитьПоУмолчанию

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

УстановитьПоУмолчанию

public static void setDefault(Locale.Category category, Locale newLocale)
Устанавливает локаль по умолчанию для указанной категории для данного экземпляра виртуальной машины Java. Это не влияет на локаль хоста.

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

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

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

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

ПолучитьДоступныеЛокали

public static Locale[] getAvailableLocales()
Возвращает массив всех установленных локалей. Возвращаемый массив представляет собой объединение локалей, поддерживаемых средой выполнения Java и установленными реализациями LocaleServiceProvider. Он должен содержать по меньшей мере один экземпляр Locale равный Locale.US.
Возвращает:
Массив установленных локалей.

ПолучитьISOСтраны

public static String[] getISOCountries()
Возвращает список всех двухбуквенных кодов стран, определенных в ISO 3166. Может быть использован для создания локалей. Этот метод эквивалентен getISOCountries(Locale.IsoCountryCode type) с type Locale.IsoCountryCode.PART1_ALPHA2.

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

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

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

ПолучитьISOСтраны

public static Set<String> getISOCountries(Locale.IsoCountryCode type)
Возвращает Set кодов стран ISO3166 для указанного типа.
Параметры:
type - Locale.IsoCountryCode указанный тип ISO-кода.
Возвращает:
a Set кодов стран ISO для указанного типа.
Исключения:
NullPointerException - если type равно null
С:
9
См. также:
  • Locale.IsoCountryCode

ПолучитьISOLanguages

public static String[] getISOLanguages()
Возвращает список всех двухбуквенных кодов языков, определенных в ISO 639. Может быть использован для создания локалей.

Примечание:

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

ПолучитьЯзык

public String getLanguage()
Возвращает код языка этой локали.
Примечание реализации:
Этот метод возвращает новые формы устаревших кодов ISO 639 ("iw", "ji" и "in"). См. Устаревшие коды языков для получения дополнительной информации.
Возвращает:
Код языка или пустую строку, если он не определен.
См. также:
  • getDisplayLanguage()

ПолучитьСкрипт

public String getScript()
Возвращает сценарий для этой локали, который должен быть либо пустой строкой, либо четырёхбуквенным кодом сценария ISO 15924. Первый символ — заглавная буква, а остальные — строчные, например, 'Latn', 'Cyrl'.
Возвращает:
Код сценария или пустую строку, если он не определен.
С:
1.7
См. также:
  • getDisplayScript()

ПолучитьСтрану

public String getCountry()
Возвращает код страны/региона для этой локали, который должен быть либо пустой строкой, либо заглавным двухбуквенным кодом ISO 3166, либо трёхзначным кодом ООН М.49.
Возвращает:
Код страны/региона или пустую строку, если он не определен.
См. также:
  • getDisplayCountry()

ПолучитьВариант

public String getVariant()
Возвращает код варианта для этой локали.
Возвращает:
Код варианта или пустую строку, если он не определен.
См. также:
  • getDisplayVariant()

ИмеетРасширения

public boolean hasExtensions()
Возвращает true если у этой Locale есть какие-либо расширения.
Возвращает:
true если у этой Locale есть какие-либо расширения
С:
1.8

УдалитьРасширения

public Locale stripExtensions()
Возвращает копию этой Locale без расширений. Если у этой Locale нет расширений, возвращается эта Locale.
Возвращает:
копию этой Locale без расширений или this если у this нет расширений
С:
1.8

ПолучитьРасширение

public String getExtension(char key)
Возвращает значение расширения (или использования по умолчанию), связанное с указанным ключом, или null, если расширение, связанное с ключом, отсутствует. Для корректной формы ключ должен быть одним из [0-9A-Za-z]. Ключи нечувствительны к регистру, поэтому, например, 'z' и 'Z' представляют одно и то же расширение.
Параметры:
key - ключ расширения
Возвращает:
Расширение или null, если эта локаль не определяет расширение для указанного ключа.
Исключения:
IllegalArgumentException - если ключ имеет неправильный формат
С:
1.7
См. также:
  • PRIVATE_USE_EXTENSION
  • UNICODE_LOCALE_EXTENSION

ПолучитьКлючиРасширений

public Set<Character> getExtensionKeys()
Возвращает множество ключей расширений, связанных с этой локалью, или пустое множество, если у неё нет расширений. Возвращаемое множество неизменяемо. Все ключи будут в нижнем регистре.
Возвращает:
Множество ключей расширений или пустое множество, если у этой локали нет расширений.
С:
1.7

ПолучитьUnicodeЛокальныеАтрибуты

public Set<String> getUnicodeLocaleAttributes()
Возвращает множество атрибутов unicode локали, связанных с этой локалью, или пустое множество, если атрибуты отсутствуют. Возвращаемое множество неизменяемо.
Возвращает:
Множество атрибутов.
С:
1.7

getUnicodeLocaleType

public String getUnicodeLocaleType(String key)
Возвращает тип локали Юникода, связанный с указанным ключом локали Юникода для этой локали. Возвращает пустую строку для ключей, определённых без типа. Возвращает null, если ключ не определён. Ключи нечувствительны к регистру. Ключ должен содержать два буквенно-цифровых символа ([0-9a-zA-Z]), в противном случае выбрасывается исключение IllegalArgumentException.
Parameters:
key - ключ локали Юникода
Returns:
Тип локали Юникода, связанный с ключом, или null, если локаль не определяет ключ.
Throws:
IllegalArgumentException - если ключ имеет неправильный формат
NullPointerException - если key равно null
Since:
1.7

getUnicodeLocaleKeys

public Set<String> getUnicodeLocaleKeys()
Возвращает набор ключей локали Юникода, определённых в этой локали, или пустой набор, если таковых нет. Возвращаемый набор неизменяемый. Все ключи представлены в нижнем регистре.
Returns:
Набор ключей локали Юникода, или пустой набор, если в этой локали нет ключей локали Юникода.
Since:
1.7

toString

public final String toString()
Возвращает строковое представление объекта Locale, состоящее из языка, страны, варианта, письма и расширений следующим образом:
язык + "_" + страна + "_" + (вариант + "_#" | "#") + письмо + "_" + расширения
Язык всегда в нижнем регистре, страна — в верхнем, письмо — в заглавном, а расширения — в нижнем. Расширения и подтеги личного использования будут в каноническом порядке, как описано в toLanguageTag().

Если в локали отсутствуют как письмо, так и расширения, результат будет таким же, как в Java 6 и ранее.

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

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

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

Примеры:

  • en
  • de_DE
  • _GB
  • en_US_WIN
  • de__POSIX
  • zh_CN_#Hans
  • zh_TW_#Hant_x-java
  • th_TH_TH_#u-nu-thai
Overrides:
toString в классе Object
Returns:
Строковое представление локали для отладки.
See Also:
  • 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.
Returns:
тег языка BCP47, представляющий локаль
Since:
1.7
See Also:
  • forLanguageTag(String)

forLanguageTag

public static Locale forLanguageTag(String languageTag)
Возвращает локаль для указанной строки тега языка IETF BCP 47.

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

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

  • Код языка "und" отображается как пустой язык.
  • Коды языка "iw", "ji" и "in" отображаются как "he", "yi" и "id" соответственно. (Это то же самое каноническое преобразование, что и в конструкторах 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 и поэтому поддерживает устаревшие (обычные и необычные, в BCP47 называемые «Type: grandfathered») и теги личного использования. Отдельные теги личного использования представлены как пустой язык и расширение '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 (поиск по «Type: grandfathered»).

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

Parameters:
languageTag - тег языка
Returns:
Локаль, которая наилучшим образом представляет тег языка.
Throws:
NullPointerException - если languageTag равно null
Since:
1.7
See Also:
  • toLanguageTag()
  • Locale.Builder.setLanguageTag(String)

getISO3Language

public String getISO3Language() throws MissingResourceException
Возвращает трехбуквенный код языка для данной локали. Если язык соответствует двухбуквенному коду ISO 639-1, возвращается соответствующий трехбуквенный код ISO 639-2 (строчные буквы). Коды 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, возвращается соответствующий трехбуквенный код ISO 3166-1 (заглавные буквы). Если страна не задана в локали, возвращается пустая строка.

Коды 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() и дополнительные Unicode-расширения, собранные в одну строку. Непустые значения используются в порядке следования, а последующие имена заключены в скобки. Например:
язык (письмо, страна, вариант(, расширение)*)
язык (страна(, расширение)*)
язык (вариант(, расширение)*)
письмо (страна(, расширение)*)
страна (расширение)*
в зависимости от того, какие поля указаны в локали. Разделитель поля в скобках, обозначенный запятой, может быть локализован в зависимости от локали. Если язык, письмо, страна и вариант все пусты, функция возвращает пустую строку.
Возвращает:
Имя локали, подходящее для отображения.

getDisplayName

public String getDisplayName(Locale inLocale)
Возвращает имя локали, подходящее для отображения пользователю. Это будут значения, возвращаемые getDisplayLanguage(), getDisplayScript(), getDisplayCountry(), getDisplayVariant() и дополнительные Unicode-расширения, собранные в одну строку. Непустые значения используются в порядке следования, а последующие имена заключены в скобки. Например:
язык (письмо, страна, вариант(, расширение)*)
язык (страна(, расширение)*)
язык (вариант(, расширение)*)
письмо (страна(, расширение)*)
страна (расширение)*
в зависимости от того, какие поля указаны в локали. Разделитель поля в скобках, обозначенный запятой, может быть локализован в зависимости от локали. Если язык, письмо, страна и вариант все пусты, функция возвращает пустую строку.
Параметры:
inLocale - Локаль, для которой необходимо получить имя для отображения.
Возвращает:
Имя локали, подходящее для отображения.
Выбрасывает:
NullPointerException - если inLocale имеет null

clone

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

hashCode

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

equals

public boolean equals(Object obj)
Возвращает true, если эта локаль равна другому объекту. Локаль считается равной другой локали с идентичным языком, письмом, страной, вариантом и расширениями, и неравной всем другим объектам.
Overrides:
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. Данная операция фильтрации по заданному списку 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, 2021, 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/17/docs/api/java.base/java/util/Locale.html

Spec-Zone.ru

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