Класс 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"
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
- См. также:
Краткое описание вложенных классов
| 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 |
Создать локаль из кода языка. |
Locale |
Создать локаль из языка и страны. |
Locale |
Создать локаль из языка, страны и варианта. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
Object |
clone() |
Переопределяет Cloneable. |
boolean |
equals |
Возвращает true, если этот Locale равен другому объекту. |
static List<Locale> |
filter |
Возвращает список совпадающих Locale экземпляров с использованием механизма фильтрации, определенного в RFC 4647. |
static List<Locale> |
filter |
Возвращает список совпадающих Locale экземпляров с использованием механизма фильтрации, определенного в RFC 4647. |
static List<String> |
filterTags |
Возвращает список совпадающих тегов языков с использованием базового механизма фильтрации, определенного в RFC 4647. |
static List<String> |
filterTags |
Возвращает список совпадающих тегов языков с использованием базового механизма фильтрации, определенного в RFC 4647. |
static Locale |
forLanguageTag |
Возвращает локаль для указанной строки тега языка IETF BCP 47. |
static Locale[] |
getAvailableLocales() |
Возвращает массив всех установленных локалей. |
String |
getCountry() |
Возвращает код страны/региона для этой локали, который должен быть либо пустой строкой, либо кодом ISO 3166 2-буквенного кода (заглавными буквами), либо 3-значным кодом UN M.49. |
static Locale |
getDefault() |
Получает текущее значение локали по умолчанию для этого экземпляра виртуальной машины Java. |
static Locale |
getDefault |
Получает текущее значение локали по умолчанию для указанной категории для этого экземпляра виртуальной машины Java. |
final String |
getDisplayCountry() |
Возвращает имя страны локали, подходящее для отображения пользователю. |
String |
getDisplayCountry |
Возвращает имя страны локали, подходящее для отображения пользователю. |
final String |
getDisplayLanguage() |
Возвращает имя языка локали, подходящее для отображения пользователю. |
String |
getDisplayLanguage |
Возвращает имя языка локали, подходящее для отображения пользователю. |
final String |
getDisplayName() |
Возвращает имя локали, подходящее для отображения пользователю. |
String |
getDisplayName |
Возвращает имя локали, подходящее для отображения пользователю. |
String |
getDisplayScript() |
Возвращает имя скрипта локали, подходящее для отображения пользователю. |
String |
getDisplayScript |
Возвращает имя скрипта локали, подходящее для отображения пользователю. |
final String |
getDisplayVariant() |
Возвращает имя кода варианта локали, подходящее для отображения пользователю. |
String |
getDisplayVariant |
Возвращает имя кода варианта локали, подходящее для отображения пользователю. |
String |
getExtension |
Возвращает значение расширения (или частного использования), связанное с указанным ключом, или null, если расширение, связанное с ключом, отсутствует. |
Set<Character> |
getExtensionKeys() |
Возвращает набор ключей расширений, связанных с этой локалью, или пустой набор, если у нее нет расширений. |
String |
getISO3Country() |
Возвращает трехбуквенное сокращение для страны этой локали. |
String |
getISO3Language() |
Возвращает трехбуквенное сокращение языка этой локали. |
static String[] |
getISOCountries() |
Возвращает список всех 2-буквенных кодов стран, определенных в ISO 3166. |
static Set<String> |
getISOCountries |
Возвращает 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 |
Возвращает тип локали Unicode, связанный с указанным ключом локали Unicode для этой локали. |
String |
getVariant() |
Возвращает код варианта для этой локали. |
boolean |
hasExtensions() |
|
int |
hashCode() |
Переопределяет hashCode. |
static Locale |
lookup |
Возвращает экземпляр Locale для тега языка с наилучшим соответствием, используя механизм поиска, определенный в RFC 4647. |
static String |
lookupTag |
Возвращает тег языка с наилучшим соответствием, используя механизм поиска, определенный в RFC 4647. |
static void |
setDefault |
Устанавливает локаль по умолчанию для этого экземпляра виртуальной машины Java. |
static void |
setDefault |
Устанавливает локаль по умолчанию для указанной категории для этого экземпляра виртуальной машины Java. |
Locale |
stripExtensions() |
Возвращает копию этого Locale без расширений. |
String |
toLanguageTag() |
Возвращает правильно сформированный тег языка IETF BCP 47, представляющий эту локаль. |
final String |
toString() |
Возвращает строковое представление этого объекта Locale, состоящее из языка, страны, варианта, скрипта и расширений, как показано ниже: язык + «_» + страна + «_» + (вариант + «_#» | «#») + скрипт + «_» + расширения Язык всегда в нижнем регистре, страна всегда в верхнем регистре, скрипт всегда в заглавных буквах, а расширения всегда в нижнем регистре. |
Подробное описание полей
АНГЛИЙСКИЙ
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
- С момента:
- 1.7
- См. также:
UNICODE_LOCALE_EXTENSION
public static final char UNICODE_LOCALE_EXTENSION
- С момента:
- 1.7
- См. также:
Подробное описание конструкторов
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 устанавливает значение по умолчанию для региона во время запуска, основываясь на среде хоста. Оно используется многими методами, чувствительными к региону, если регион явно не указан. Его можно изменить с помощью метода setDefault.
- Возвращает:
- значение региона по умолчанию для этой виртуальной машины Java
getDefault
public static Locale getDefault(Locale.Category category)
Виртуальная машина Java устанавливает значение по умолчанию для региона во время запуска, основываясь на среде хоста. Оно используется многими методами, чувствительными к региону, если регион явно не указан. Его можно изменить с помощью метода setDefault(Locale.Category, Locale).
- Параметры:
-
category- указанная категория для получения региона по умолчанию - Возвращает:
- значение региона по умолчанию для указанной категории в этой виртуальной машине Java
- Исключения:
-
NullPointerException- если категория равна null - С момента:
- 1.7
- См. также:
УстановитьПоУмолчанию
public static void setDefault(Locale newLocale)
Если существует менеджер безопасности, его метод checkPermission вызывается с разрешением PropertyPermission("user.language", "write") перед изменением локали по умолчанию.
Виртуальная машина Java устанавливает локаль по умолчанию во время запуска на основе среды хоста. Она используется многими методами, чувствительными к локали, если локаль не указана явно.
Поскольку изменение локали по умолчанию может повлиять на многие области функциональности, этот метод следует использовать только в том случае, если вызывающий объект готов повторно инициализировать чувствительный к локали код, работающий в той же виртуальной машине Java.
Установив локаль по умолчанию с помощью этого метода, все локальные значения по умолчанию для каждой категории также устанавливаются в указанную локаль по умолчанию.
- Параметры:
-
newLocale- новая локаль по умолчанию - Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckPermissionне разрешает операцию. -
NullPointerException- еслиnewLocaleравно null - См. также:
УстановитьПоУмолчанию
public static void setDefault(Locale.Category category, Locale newLocale)
Если существует менеджер безопасности, его метод checkPermission вызывается с разрешением PropertyPermission("user.language", "write") перед изменением локали по умолчанию.
Виртуальная машина Java устанавливает локаль по умолчанию во время запуска на основе среды хоста. Она используется многими методами, чувствительными к локали, если локаль не указана явно.
Поскольку изменение локали по умолчанию может повлиять на многие области функциональности, этот метод следует использовать только в том случае, если вызывающий объект готов повторно инициализировать чувствительный к локали код, работающий в той же виртуальной машине.
- Параметры:
-
category- указанная категория для установки локали по умолчанию -
newLocale- новая локаль по умолчанию - Исключения:
-
SecurityException- если менеджер безопасности существует и его метод checkPermission не разрешает операцию. -
NullPointerException- если category и/или newLocale равны null - С:
- 1.7
- См. также:
ПолучитьДоступныеЛокали
public static Locale[] getAvailableLocales()
LocaleServiceProvider. Он должен содержать по меньшей мере один экземпляр Locale равный Locale.US.- Возвращает:
- Массив установленных локалей.
ПолучитьISOСтраны
public static String[] getISOCountries()
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
- См. также:
ПолучитьISOLanguages
public static String[] getISOLanguages()
Примечание:
- ISO 639 — не стабичный стандарт; некоторые коды языков изменились. Список, возвращаемый этой функцией, включает как новые, так и старые коды языков, коды которых изменились.
- Класс
Localeтакже поддерживает коды языков длиной до 8 символов. Следовательно, список, возвращаемый этим методом, не содержит ВСЕХ допустимых кодов, которые могут быть использованы для создания локалей.
- Возвращает:
- Массив двухбуквенных кодов языков ISO 639.
ПолучитьЯзык
public String getLanguage()
- Примечание реализации:
- Этот метод возвращает новые формы устаревших кодов ISO 639 ("iw", "ji" и "in"). См. Устаревшие коды языков для получения дополнительной информации.
- Возвращает:
- Код языка или пустую строку, если он не определен.
- См. также:
ПолучитьСкрипт
public String getScript()
- Возвращает:
- Код сценария или пустую строку, если он не определен.
- С:
- 1.7
- См. также:
ПолучитьСтрану
public String getCountry()
- Возвращает:
- Код страны/региона или пустую строку, если он не определен.
- См. также:
ПолучитьВариант
public String getVariant()
- Возвращает:
- Код варианта или пустую строку, если он не определен.
- См. также:
ИмеетРасширения
public boolean hasExtensions()
- Возвращает:
-
trueесли у этойLocaleесть какие-либо расширения - С:
- 1.8
УдалитьРасширения
public Locale stripExtensions()
Locale без расширений. Если у этой Locale нет расширений, возвращается эта Locale.- Возвращает:
- копию этой
Localeбез расширений илиthisесли уthisнет расширений - С:
- 1.8
ПолучитьРасширение
public String getExtension(char key)
[0-9A-Za-z]. Ключи нечувствительны к регистру, поэтому, например, 'z' и 'Z' представляют одно и то же расширение.- Параметры:
-
key- ключ расширения - Возвращает:
- Расширение или null, если эта локаль не определяет расширение для указанного ключа.
- Исключения:
-
IllegalArgumentException- если ключ имеет неправильный формат - С:
- 1.7
- См. также:
ПолучитьКлючиРасширений
public Set<Character> getExtensionKeys()
- Возвращает:
- Множество ключей расширений или пустое множество, если у этой локали нет расширений.
- С:
- 1.7
ПолучитьUnicodeЛокальныеАтрибуты
public Set<String> getUnicodeLocaleAttributes()
- Возвращает:
- Множество атрибутов.
- С:
- 1.7
getUnicodeLocaleType
public String getUnicodeLocaleType(String key)
- 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().
Примеры:
ende_DE_GBen_US_WINde__POSIXzh_CN_#Hanszh_TW_#Hant_x-javath_TH_TH_#u-nu-thai
- Overrides:
-
toStringв классеObject - Returns:
- Строковое представление локали для отладки.
- See Also:
toLanguageTag
public String toLanguageTag()
Если у этой 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
public static Locale forLanguageTag(String languageTag)
Если указанный тег языка содержит некорректные подтеги, такой подтег и все последующие подтеги игнорируются. Сравните с 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:
getISO3Language
public String getISO3Language() throws MissingResourceException
- Возвращает:
- Трехбуквенный код языка этой локали.
- Выбрасывает:
-
MissingResourceException- Выбрасывает MissingResourceException, если трехбуквенный код языка недоступен для данной локали.
getISO3Country
public String getISO3Country() throws MissingResourceException
Коды 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- Локаль, для которой необходимо получить имя языка для отображения. - Возвращает:
- Название языка для отображения, соответствующее заданной локали.
- Выбрасывает:
-
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- Локаль, для которой необходимо получить имя страны для отображения. - Возвращает:
- Название страны, соответствующее заданной локали.
- Выбрасывает:
-
NullPointerException- еслиinLocaleимеетnull
getDisplayVariant
public final String getDisplayVariant()
DISPLAY. Если вариант не задан в локали, функция возвращает пустую строку.- Возвращает:
- Название варианта, соответствующее локали.
getDisplayVariant
public String getDisplayVariant(Locale inLocale)
- Параметры:
-
inLocale- Локаль, для которой необходимо получить имя варианта для отображения. - Возвращает:
- Название варианта, соответствующее заданной локали.
- Выбрасывает:
-
NullPointerException- еслиinLocaleимеетnull
getDisplayName
public final String getDisplayName()
язык (письмо, страна, вариант(, расширение)*)в зависимости от того, какие поля указаны в локали. Разделитель поля в скобках, обозначенный запятой, может быть локализован в зависимости от локали. Если язык, письмо, страна и вариант все пусты, функция возвращает пустую строку.
язык (страна(, расширение)*)
язык (вариант(, расширение)*)
письмо (страна(, расширение)*)
страна (расширение)*
- Возвращает:
- Имя локали, подходящее для отображения.
getDisplayName
public String getDisplayName(Locale inLocale)
язык (письмо, страна, вариант(, расширение)*)в зависимости от того, какие поля указаны в локали. Разделитель поля в скобках, обозначенный запятой, может быть локализован в зависимости от локали. Если язык, письмо, страна и вариант все пусты, функция возвращает пустую строку.
язык (страна(, расширение)*)
язык (вариант(, расширение)*)
письмо (страна(, расширение)*)
страна (расширение)*
- Параметры:
-
inLocale- Локаль, для которой необходимо получить имя для отображения. - Возвращает:
- Имя локали, подходящее для отображения.
- Выбрасывает:
-
NullPointerException- еслиinLocaleимеетnull
clone
public Object clone()
- Переопределяет:
-
cloneв классеObject - Возвращает:
- клон данного экземпляра.
- См. также:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
equals
public boolean equals(Object obj)
- Overrides:
-
equalsв классеObject - Параметры:
-
obj- объект ссылки для сравнения. - Возвращает:
- true, если эта локаль равна указанному объекту.
- См. также:
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)
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)
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)
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