Класс Locale
- java.lang.Object
-
- java.util.Locale
- Все реализованные интерфейсы:
- Serializable, Cloneable
public final class Locale extends Object implements Cloneable, Serializable
Объект Locale представляет собой определенный географический, политический или культурный регион. Операция, для выполнения которой требуется Locale, называется зависимой от локали и использует Locale, чтобы адаптировать информацию для пользователя. Например, отображение числа — это операция, зависящая от локали; число должно быть отформатировано в соответствии с обычаями и соглашениями страны, региона или культуры пользователя.
Класс Locale реализует спецификацию IETF BCP 47, которая состоит из RFC 4647 "Сопоставление тегов языка" и RFC 5646 "Теги для идентификации языков" с поддержкой совместимых с BCP 47 расширений LDML (UTS#35, "Язык разметки данных локали Unicode") для обмена данными локали.
Объект Locale логически состоит из полей, описанных ниже.
- язык
- Код языка ISO 639 alpha-2 или alpha-3, или зарегистрированные подтеги языка длиной до 8 букв (для будущих улучшений). Если язык имеет как код alpha-2, так и код alpha-3, должен использоваться код alpha-2. Полный список допустимых кодов языка можно найти в Реестре подтегов языка IANA (поищите "Тип: язык"). Поле языка нечувствительно к регистру, но
Localeвсегда приводит к нижнему регистру. - Правильно сформированные значения языка имеют вид
[a-zA-Z]{2,8}. Обратите внимание, что это не полная грамматика языка BCP47, так как она исключает extlang. Они не нужны, так как современные трёхбуквенные коды языка их заменяют. - Пример: "en" (английский), "ja" (японский), "kok" (конкани)
- шрифт
- Код шрифта ISO 15924 alpha-4. Полный список допустимых кодов шрифтов можно найти в Реестре подтегов языка IANA (поищите "Тип: шрифт"). Поле шрифта нечувствительно к регистру, но
Localeвсегда приводит к строчному регистру (первая буква заглавная, остальные строчные). - Правильно сформированные значения шрифта имеют вид
[a-zA-Z]{4} - Пример: "Latn" (латинский), "Cyrl" (кириллический)
- страна (регион)
- Код страны ISO 3166 alpha-2 или числовой код области ООН M.49. Полный список допустимых кодов стран и регионов можно найти в Реестре подтегов языка IANA (поищите "Тип: регион"). Поле страны (региона) нечувствительно к регистру, но
Localeвсегда приводит к верхнему регистру. - Правильно сформированные значения страны/региона имеют вид
[a-zA-Z]{2} | [0-9]{3} - Пример: "US" (Соединённые Штаты), "FR" (Франция), "029" (Карибский бассейн)
- вариант
- Любое произвольное значение, используемое для указания варианта
Locale. Если существует два или более значений варианта, каждое из которых указывает свою семантику, эти значения должны быть упорядочены по важности, начиная с самого важного, разделенные символом подчёркивания('_'). Поле варианта чувствительно к регистру. - Примечание: IETF BCP 47 накладывает синтаксические ограничения на подтеги варианта. Кроме того, подтеги BCP 47 строго используются для указания дополнительных вариаций, которые определяют язык или его диалекты, не покрытые никакими комбинациями подтегов языка, шрифта и региона. Полный список допустимых кодов вариантов можно найти в Реестре подтегов языка IANA (поищите "Тип: вариант").
Однако, поле варианта в
Localeисторически использовалось для любого типа вариаций, а не только вариаций языка. Например, некоторые поддерживаемые варианты, доступные в средах выполнения Java SE Runtime, указывают альтернативное культурное поведение, такое как тип календаря или шрифт чисел. В BCP 47 такая информация, которая не идентифицирует язык, поддерживается расширенными подтегами или подтегами частного использования. - Правильно сформированные значения варианта имеют вид
SUBTAG (('_'|'-') SUBTAG)*гдеSUBTAG = [0-9][0-9a-zA-Z]{3} | [0-9a-zA-Z]{5,8}. (Примечание: BCP 47 использует только дефис ('-') в качестве разделителя, это более гибко). - Пример: "polyton" (политоническое греческое), "POSIX"
- расширения
- Карта из ключей, состоящих из одной буквы, к строковым значениям, указывающим расширения, отличные от идентификации языка. Расширения в
Localeреализуют семантику и синтаксис подтегов расширений BCP 47 и подтегов частного использования. Расширения нечувствительны к регистру, ноLocaleприводит все ключи и значения расширений к нижнему регистру. Обратите внимание, что расширения не могут иметь пустые значения. - Правильно сформированные ключи — это одиночные символы из набора
[0-9a-zA-Z]. Правильно сформированные значения имеют видSUBTAG ('-' SUBTAG)*где для ключа 'x'SUBTAG = [0-9a-zA-Z]{1,8}и для других ключейSUBTAG = [0-9a-zA-Z]{2,8}(то есть 'x' допускает подтеги из одной буквы). - Пример: ключ="u"/значение="ca-japanese" (японский календарь), ключ="x"/значение="java-1-7"
Locale не предоставляет никаких функций проверки. Класс Builder только проверяет, удовлетворяет ли отдельное поле синтаксическим требованиям (является ли оно правильно сформированным), но не проверяет само значение. Подробности см. в Locale.Builder. Расширение локали/языка Unicode
UTS#35, "Язык разметки данных локали Unicode", определяет необязательные атрибуты и ключевые слова для переопределения или уточнения поведения по умолчанию, связанного с локалью. Ключевое слово представлено парой ключ-тип. Например, "nu-thai" указывает, что для форматирования чисел (ключ:"nu") должны использоваться тайские локальные цифры (значение:"thai").
Ключевые слова сопоставляются со значением расширения BCP 47, используя ключ расширения 'u' (UNICODE_LOCALE_EXTENSION). Приведённый выше пример "nu-thai" преобразуется в расширение "u-nu-thai".code
Таким образом, когда объект Locale содержит атрибуты и ключевые слова локали Unicode, getExtension(UNICODE_LOCALE_EXTENSION) вернёт строку, представляющую эту информацию, например, "nu-thai". Класс Locale также предоставляет getUnicodeLocaleAttributes(), getUnicodeLocaleKeys() и getUnicodeLocaleType(java.lang.String), которые позволяют напрямую получить доступ к атрибутам локали Unicode и парам ключ/тип. При представлении в виде строки расширение локали Unicode перечисляет атрибуты в алфавитном порядке, за которым следуют последовательности ключ/тип с ключами в алфавитном порядке (порядок подтегов, составляющих тип ключа, фиксирован при определении типа).
Правильно сформированный ключ локали имеет вид [0-9a-zA-Z]{2}. Правильно сформированный тип локали имеет вид "" | [0-9a-zA-Z]{3,8} ('-' [0-9a-zA-Z]{3,8})* (он может быть пустым или представлять собой серию подтегов длиной от 3 до 8 буквенно-цифровых символов). Правильно сформированный атрибут локали имеет вид [0-9a-zA-Z]{3,8} (это один подтег с той же формой, что и подтег типа локали).
Расширение локали Unicode задаёт необязательное поведение в локально-чувствительных сервисах. Хотя спецификация LDML определяет различные ключи и значения, фактические реализации локально-чувствительных сервисов в среде выполнения Java могут не поддерживать какие-либо конкретные атрибуты локали Unicode или пары ключ/тип.
Создание локали
Существует несколько способов создания объекта Locale.
Конструктор
Используя Locale.Builder, можно создать объект Locale, соответствующий синтаксису BCP 47.
Конструкторы
Класс Locale предоставляет три конструктора:
Locale(String language) Locale(String language, String country) Locale(String language, String country, String variant)Эти конструкторы позволяют создать объект
Locale с языком, страной и вариантом, но не позволяют указать шрифт или расширения. Методы-фабрики
Метод forLanguageTag(java.lang.String) создаёт объект Locale для правильно сформированного тега языка BCP 47.
Константы локали
Класс Locale предоставляет ряд удобных констант, которые можно использовать для создания объектов Locale для широко распространённых локалей. Например, следующее создаёт объект Locale для Соединённых Штатов:
Locale.US
Сопоставление локалей
Если приложение или система интернационализированы и предоставляют локализованные ресурсы для нескольких локалей, иногда требуется найти одну или несколько локалей (или тегов языка), соответствующих конкретным предпочтениям пользователя. Обратите внимание, что термин "тег языка" используется взаимозаменяемо с "локалью" в данном документе по сопоставлению локалей.
Для сопоставления предпочтительных локалей пользователя с набором тегов языка RFC 4647 Сопоставление тегов языка определяет два механизма: фильтрацию и поиск. Фильтрация используется для получения всех соответствующих локалей, а поиск — для выбора лучшей соответствующей локали. Сопоставление выполняется без учёта регистра. Эти механизмы сопоставления описаны в следующих разделах.
Предпочтения пользователя называются списком приоритетов языка и выражаются в виде списка языковых диапазонов. Синтаксически существуют два типа языковых диапазонов: базовый и расширенный. Подробности см. в Locale.LanguageRange.
Фильтрация
Операция фильтрации возвращает все соответствующие теги языка. В RFC 4647 она определена следующим образом: "При фильтрации каждый языковой диапазон представляет собой наименее специфический тег языка (то есть тег языка с наименьшим числом подтегов), который является приемлемым соответствием. Все теги языка в наборе соответствующих тегов будут иметь равное или большее число подтегов, чем языковой диапазон. Каждый подтег без звёздочки в языковом диапазоне будет появляться в каждом из соответствующих тегов языка".
Существует два типа фильтрации: фильтрация по базовым языковым диапазонам ("базовая фильтрация") и фильтрация по расширенным языковым диапазонам ("расширенная фильтрация"). Они могут возвращать разные результаты в зависимости от того, какие языковые диапазоны включены в данный список приоритетов языка. Locale.FilteringMode — параметр для указания способа выполнения фильтрации.
Поиск
Операция поиска возвращает лучшие соответствующие теги языка. В RFC 4647 она определена следующим образом: "В отличие от фильтрации, каждый языковой диапазон представляет собой наиболее специфичный тег, который является приемлемым соответствием. Первый найденный соответствующий тег, в соответствии с приоритетом пользователя, считается наиболее близким соответствием и возвращается как результат".
Например, если список приоритетов языка состоит из двух языковых диапазонов, "zh-Hant-TW" и "en-US", в порядке приоритета, метод поиска последовательно проверяет теги языка ниже, чтобы найти лучший соответствующий тег языка.
1. zh-Hant-TW 2. zh-Hant 3. zh 4. en-US 5. enЕсли существует тег языка, который полностью соответствует языковому диапазону выше, возвращается тег языка.
"*" — специальный языковой диапазон, и он игнорируется в поиске.
Если несколько тегов языка соответствуют в результате включения подтега '*' в языковой диапазон, первый соответствующий тег языка, возвращаемый итератором Iterator над Collection тегов языка, рассматривается как лучший соответствующий тег.
Использование локали
После создания Locale вы можете запросить информацию о нём. Используйте getCountry для получения кода страны (или региона) и getLanguage для получения кода языка. Вы можете использовать getDisplayCountry для получения имени страны, подходящего для отображения пользователю. Аналогично, вы можете использовать getDisplayLanguage для получения имени языка, подходящего для отображения пользователю. Интересно, что методы getDisplayXXX сами по себе чувствительны к региону и имеют две версии: одна использует локаль по умолчанию DISPLAY, а другая — локаль, указанную в качестве аргумента.
Java Platform предоставляет ряд классов, выполняющих операции, чувствительные к региону. Например, класс NumberFormat форматирует числа, валюты и проценты в соответствии с регионом. Такие классы, как NumberFormat, имеют несколько удобных методов для создания объекта по умолчанию этого типа. Например, класс NumberFormat предоставляет эти три удобных метода для создания объекта NumberFormat по умолчанию:
NumberFormat.getInstance() NumberFormat.getCurrencyInstance() NumberFormat.getPercentInstance()Каждый из этих методов имеет две вариации; одна с явной локалью, а другая без; последняя использует локаль по умолчанию
FORMAT: NumberFormat.getInstance(myLocale) NumberFormat.getCurrencyInstance(myLocale) NumberFormat.getPercentInstance(myLocale)Локаль — это механизм для идентификации типа объекта (
NumberFormat), который вы хотите получить. Локаль — только механизм идентификации объектов, а не контейнер для самих объектов.
Совместимость
Для поддержания совместимости с существующим использованием конструкторы Locale сохраняют своё поведение до версии Java Runtime Environment 1.7. То же самое в значительной степени верно для метода toString. Таким образом, объекты Locale можно продолжать использовать так же, как и раньше. В частности, клиенты, которые анализируют вывод toString на поля языка, страны и варианта, могут продолжать это делать (хотя это настоятельно не рекомендуется), хотя поле варианта будет содержать дополнительную информацию, если присутствуют сценарий или расширения.
Кроме того, BCP 47 накладывает ограничения синтаксиса, которые не накладываются конструкторами Locale. Это означает, что преобразования между некоторыми объектами Locale и тегами языка BCP 47 не могут быть выполнены без потери информации. Таким образом, toLanguageTag не может представить состояние локалей, язык, страна или вариант которых не соответствуют BCP 47.
Из-за этих проблем рекомендуется, чтобы клиенты перешли от создания несоответствующих локалей и вместо этого использовали API forLanguageTag и Locale.Builder. Клиенты, желающие получить строковое представление полной локали, всегда могут положиться на toLanguageTag для этой цели.
Особые случаи
По соображениям совместимости две несоответствующие локали рассматриваются как особые случаи. Это ja_JP_JP и th_TH_TH. Эти локали имеют неправильный формат в BCP 47, так как варианты слишком короткие. Для облегчения миграции в BCP 47 эти локали обрабатываются особым образом при создании. Эти два случая (и только они) вызывают генерацию расширения конструктором, все остальные значения ведут себя точно так же, как и до Java 7.
Java использовала ja_JP_JP для представления японского языка, используемого в Японии, вместе с японским императорским календарем. Сейчас это можно представить с помощью расширения локали Unicode, указав ключ локали Unicode ca ("календарь") и тип japanese. При вызове конструктора Locale с аргументами "ja", "JP", "JP" расширение "u-ca-japanese" добавляется автоматически.
Java использовала th_TH_TH для представления тайского языка, используемого в Таиланде, вместе с тайскими цифрами. Это также можно представить с помощью расширения локали Unicode, указав ключ локали Unicode nu ("число") и значение thai. При вызове конструктора Locale с аргументами "th", "TH", "TH" расширение "u-nu-thai" добавляется автоматически.
Сериализация
Во время сериализации writeObject записывает все поля в поток вывода, включая расширения.
Во время десериализации readResolve добавляет расширения, как описано в разделе Особые случаи, только для двух случаев th_TH_TH и ja_JP_JP.
Устаревшие коды языка
Конструктор Locale всегда преобразовывал три кода языка в их более ранние, устаревшие формы: he отображается как iw, yi отображается как ji, и id отображается как in. Это по-прежнему делается, чтобы не нарушить обратную совместимость.
API, добавленные в версии 1.7, преобразуют старые и новые коды языка, сохраняя старые коды внутри Locale (чтобы getLanguage и toString отражали старый код), но используя новые коды в API тегов языка BCP 47 (чтобы toLanguageTag отражал новый). Это сохраняет эквивалентность объектов Locale независимо от того, какой код или API используется для их построения. Механизм поиска ресурсов по умолчанию Java также реализует это отображение, так что ресурсы могут быть названы с использованием любой из этих соглашений, см. ResourceBundle.Control.
Трехбуквенные коды языка/страны (региона)
Конструкторы Locale всегда указывали, что параметр языка и параметр страны должны иметь длину две буквы, хотя на практике они принимали любую длину. Теперь спецификация ослаблена, чтобы разрешить коды языка длиной от двух до восьми символов и коды страны (региона) длиной от двух до трёх символов, а также, в частности, трёхбуквенные коды языка и трёхзначные коды региона, как указано в реестре суффиксов языка IANA. Для совместимости реализация по-прежнему не накладывает ограничений на длину.
- С:
- 1.1
- См. также:
-
Locale.Builder,ResourceBundle,Format,NumberFormat,Collator, Serialized Form
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
static class |
Locale.Builder
|
static class |
Locale.Category Перечисление категорий локалей. |
static class |
Locale.FilteringMode Это перечисление предоставляет константы для выбора режима фильтрации при сопоставлении локалей. |
static class |
Locale.LanguageRange Этот класс выражает диапазон языков, определённый в RFC 4647 Сопоставление тегов языков. |
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static Locale |
CANADA Полезная константа для страны. |
static Locale |
CANADA_FRENCH Полезная константа для страны. |
static Locale |
CHINA Полезная константа для страны. |
static Locale |
CHINESE Полезная константа для языка. |
static Locale |
ENGLISH Полезная константа для языка. |
static Locale |
FRANCE Полезная константа для страны. |
static Locale |
FRENCH Полезная константа для языка. |
static Locale |
GERMAN Полезная константа для языка. |
static Locale |
GERMANY Полезная константа для страны. |
static Locale |
ITALIAN Полезная константа для языка. |
static Locale |
ITALY Полезная константа для страны. |
static Locale |
JAPAN Полезная константа для страны. |
static Locale |
JAPANESE Полезная константа для языка. |
static Locale |
KOREA Полезная константа для страны. |
static Locale |
KOREAN Полезная константа для языка. |
static Locale |
PRC Полезная константа для страны. |
static char |
PRIVATE_USE_EXTENSION Ключ для расширения частного использования ('x'). |
static Locale |
ROOT Полезная константа для корневой локали. |
static Locale |
SIMPLIFIED_CHINESE Полезная константа для языка. |
static Locale |
TAIWAN Полезная константа для страны. |
static Locale |
TRADITIONAL_CHINESE Полезная константа для языка. |
static Locale |
UK Полезная константа для страны. |
static char |
UNICODE_LOCALE_EXTENSION Ключ для расширения локали Unicode ('u'). |
static Locale |
US Полезная константа для страны. |
Конструкторы
| Конструктор и описание |
|---|
Locale(String language) Создать локаль из кода языка. |
Locale(String language,
String country) Создать локаль из языка и страны. |
Locale(String language,
String country,
String variant) Создать локаль из языка, страны и варианта. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Object |
clone() Переопределяет Cloneable. |
boolean |
equals(Object obj) Возвращает true, если этот Locale равен другому объекту. |
static List<Locale> |
filter(List<Locale.LanguageRange> priorityList,
Collection<Locale> locales) Возвращает список соответствующих |
static List<Locale> |
filter(List<Locale.LanguageRange> priorityList,
Collection<Locale> locales,
Locale.FilteringMode mode) Возвращает список соответствующих |
static List<String> |
filterTags(List<Locale.LanguageRange> priorityList,
Collection<String> tags) Возвращает список соответствующих тегов языков, используя базовый механизм фильтрации, определенный в RFC 4647. |
static List<String> |
filterTags(List<Locale.LanguageRange> priorityList,
Collection<String> tags,
Locale.FilteringMode mode) Возвращает список соответствующих тегов языков, используя базовый механизм фильтрации, определенный в RFC 4647. |
static Locale |
forLanguageTag(String languageTag) Возвращает локаль для указанной строки тега языка IETF BCP 47. |
static Locale[] |
getAvailableLocales() Возвращает массив всех установленных локалей. |
String |
getCountry() Возвращает код страны/региона для этой локали, который должен быть либо пустой строкой, либо заглавным двухбуквенным кодом ISO 3166, либо трехзначным кодом ООН М.49. |
static Locale |
getDefault() Получает текущее значение локали по умолчанию для этого экземпляра виртуальной машины Java. |
static Locale |
getDefault(Locale.Category category) Получает текущее значение локали по умолчанию для указанной категории для этого экземпляра виртуальной машины Java. |
String |
getDisplayCountry() Возвращает имя страны локали, подходящее для отображения пользователю. |
String |
getDisplayCountry(Locale inLocale) Возвращает имя страны локали, подходящее для отображения пользователю. |
String |
getDisplayLanguage() Возвращает имя языка локали, подходящее для отображения пользователю. |
String |
getDisplayLanguage(Locale inLocale) Возвращает имя языка локали, подходящее для отображения пользователю. |
String |
getDisplayName() Возвращает имя локали, подходящее для отображения пользователю. |
String |
getDisplayName(Locale inLocale) Возвращает имя локали, подходящее для отображения пользователю. |
String |
getDisplayScript() Возвращает имя скрипта локали, подходящее для отображения пользователю. |
String |
getDisplayScript(Locale inLocale) Возвращает имя скрипта локали, подходящее для отображения пользователю. |
String |
getDisplayVariant() Возвращает имя кода варианта локали, подходящее для отображения пользователю. |
String |
getDisplayVariant(Locale inLocale) Возвращает имя кода варианта локали, подходящее для отображения пользователю. |
String |
getExtension(char key) Возвращает значение расширения (или использования по умолчанию), связанное с указанным ключом, или null, если нет расширения, связанного с ключом. |
Set<Character> |
getExtensionKeys() Возвращает набор ключей расширения, связанных с этой локалью, или пустой набор, если у неё нет расширений. |
String |
getISO3Country() Возвращает трехбуквенное сокращение для страны этой локали. |
String |
getISO3Language() Возвращает трехбуквенное сокращение языка этой локали. |
static String[] |
getISOCountries() Возвращает список всех двухбуквенных кодов стран, определённых в ISO 3166. |
static String[] |
getISOLanguages() Возвращает список всех двухбуквенных кодов языков, определенных в ISO 639. |
String |
getLanguage() Возвращает код языка этой локали. |
String |
getScript() Возвращает скрипт для этой локали, который должен быть либо пустой строкой, либо четырехбуквенным кодом скрипта ISO 15924. |
Set<String> |
getUnicodeLocaleAttributes() Возвращает набор атрибутов локали Юникода, связанных с этой локалью, или пустой набор, если у нее нет атрибутов. |
Set<String> |
getUnicodeLocaleKeys() Возвращает набор ключей локали Юникода, определённых этой локалью, или пустой набор, если у этой локали их нет. |
String |
getUnicodeLocaleType(String key) Возвращает тип локали Юникода, связанный с указанным ключом локали Юникода для этой локали. |
String |
getVariant() Возвращает код варианта для этой локали. |
boolean |
hasExtensions() Возвращает |
int |
hashCode() Переопределяет hashCode. |
static Locale |
lookup(List<Locale.LanguageRange> priorityList,
Collection<Locale> locales) Возвращает |
static String |
lookupTag(List<Locale.LanguageRange> priorityList,
Collection<String> tags) Возвращает наиболее подходящий тег языка, используя механизм поиска, определенный в RFC 4647. |
static void |
setDefault(Locale.Category category,
Locale newLocale) Устанавливает локаль по умолчанию для указанной категории для этого экземпляра виртуальной машины Java. |
static void |
setDefault(Locale newLocale) Устанавливает локаль по умолчанию для этого экземпляра виртуальной машины Java. |
Locale |
stripExtensions() Возвращает копию этого |
String |
toLanguageTag() Возвращает правильно сформированный тег языка IETF BCP 47, представляющий эту локаль. |
String |
toString() Возвращает строковое представление этого объекта |
Методы, унаследованные от класса java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Поля
АНГЛИЙСКИЙ
public static final Locale ENGLISH
Полезная константа для языка.
ФРАНЦУЗСКИЙ
public static final Locale FRENCH
Полезная константа для языка.
НЕМЕЦКИЙ
public static final Locale GERMAN
Полезная константа для языка.
ИТАЛЬЯНСКИЙ
public static final Locale ITALIAN
Полезная константа для языка.
ЯПОНСКИЙ
public static final Locale JAPANESE
Полезная константа для языка.
КОРЕЙСКИЙ
public static final Locale KOREAN
Полезная константа для языка.
КИТАЙСКИЙ
public static final Locale CHINESE
Полезная константа для языка.
УПРОЩЁННЫЙ_КИТАЙСКИЙ
public static final Locale SIMPLIFIED_CHINESE
Полезная константа для языка.
ТРАДИЦИОННЫЙ_КИТАЙСКИЙ
public static final Locale TRADITIONAL_CHINESE
Полезная константа для языка.
ФРАНЦИЯ
public static final Locale FRANCE
Полезная константа для страны.
ГЕРМАНИЯ
public static final Locale GERMANY
Полезная константа для страны.
ИТАЛИЯ
public static final Locale ITALY
Полезная константа для страны.
ЯПОНИЯ
public static final Locale JAPAN
Полезная константа для страны.
КОРЕЯ
public static final Locale KOREA
Полезная константа для страны.
КИТАЙ
public static final Locale CHINA
Полезная константа для страны.
КНР
public static final Locale PRC
Полезная константа для страны.
ТАЙВАНЬ
public static final Locale TAIWAN
Полезная константа для страны.
ВЕЛИКОБРИТАНИЯ
public static final Locale UK
Полезная константа для страны.
США
public static final Locale US
Полезная константа для страны.
КАНАДА
public static final Locale CANADA
Полезная константа для страны.
КАНАДА_ФРАНЦУЗСКИЙ
public static final Locale CANADA_FRENCH
Полезная константа для страны.
КОРНЕВОЙ
public static final Locale ROOT
Полезная константа для корневого локали. Корневой локали — это локали, у которой язык, страна и вариант пусты ("") . Он рассматривается как базовая локали для всех локали и используется как нейтральная локали языка/страны для локали-зависимых операций.
- С момента:
- 1.6
РАЗШИРЕНИЕ_ЧАСТНОГО_ИСПОЛЬЗОВАНИЯ
public static final char PRIVATE_USE_EXTENSION
Ключ для расширения частного использования ('x').
- С момента:
- 1.7
- См. также:
-
getExtension(char),Locale.Builder.setExtension(char, String), Значения постоянных полей
РАЗШИРЕНИЕ_ЛОКАЛИ_UNICODE
public static final char UNICODE_LOCALE_EXTENSION
Ключ для расширения локали Unicode ('u').
- С момента:
- 1.7
- См. также:
-
getExtension(char),Locale.Builder.setExtension(char, String), Значения постоянных полей
Конструкторы
Locale
public Locale(String language,
String country,
String variant) Создаёт локали из языка, страны и варианта. Этот конструктор приводит значение языка к нижнему регистру, а значение страны — к верхнему регистру.
Примечание:
- ISO 639 — не стабильный стандарт; некоторые из определённых им кодов языка (в частности, "iw", "ji" и "in") изменились. Этот конструктор принимает как старые коды ("iw", "ji" и "in"), так и новые коды ("he", "yi" и "id"), но все остальные API в Locale вернут только СТАРЫЕ коды.
- По соображениям обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
- Два случая ("ja", "JP", "JP") и ("th", "TH", "TH") обрабатываются особо, см. Особые случаи для получения дополнительной информации.
- Параметры:
-
language- Код языка ISO 639 alpha-2 или alpha-3, или тег языка длиной до 8 символов. См. описание классаLocaleо допустимых значениях языка. -
country- Код страны ISO 3166 alpha-2 или числовой код области UN M.49. См. описание классаLocaleо допустимых значениях страны. -
variant- Любое произвольное значение, используемое для обозначения вариантаLocale. См. описание классаLocaleдля получения подробностей. - Исключения:
-
NullPointerException- выбрасывается, если какой-либо аргумент имеет значение null.
Locale
public Locale(String language,
String country) Создаёт локали из языка и страны. Этот конструктор приводит значение языка к нижнему регистру, а значение страны — к верхнему регистру.
Примечание:
- ISO 639 — не стабильный стандарт; некоторые из определённых им кодов языка (в частности, "iw", "ji" и "in") изменились. Этот конструктор принимает как старые коды ("iw", "ji" и "in"), так и новые коды ("he", "yi" и "id"), но все остальные API в Locale вернут только СТАРЫЕ коды.
- По соображениям обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
- Параметры:
-
language- Код языка ISO 639 alpha-2 или alpha-3, или тег языка длиной до 8 символов. См. описание классаLocaleо допустимых значениях языка. -
country- Код страны ISO 3166 alpha-2 или числовой код области UN M.49. См. описание классаLocaleо допустимых значениях страны. - Исключения:
-
NullPointerException- выбрасывается, если любой из аргументов имеет значение null.
Locale
public Locale(String language)
Создаёт локали из кода языка. Этот конструктор приводит значение языка к нижнему регистру.
Примечание:
- ISO 639 — не стабильный стандарт; некоторые из определённых им кодов языка (в частности, "iw", "ji" и "in") изменились. Этот конструктор принимает как старые коды ("iw", "ji" и "in"), так и новые коды ("he", "yi" и "id"), но все остальные API в Locale вернут только СТАРЫЕ коды.
- По соображениям обратной совместимости этот конструктор не выполняет никаких синтаксических проверок входных данных.
- Параметры:
-
language- Код языка ISO 639 alpha-2 или alpha-3, или тег языка длиной до 8 символов. См. описание классаLocaleо допустимых значениях языка. - Исключения:
-
NullPointerException- выбрасывается, если аргумент имеет значение null. - С момента:
- 1.4
Методы
getDefault
public static Locale getDefault()
Возвращает текущее значение локали по умолчанию для данной инстанции Java Virtual Machine.
Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали. Её можно изменить с помощью метода setDefault.
- Возвращает:
- локали по умолчанию для данной инстанции Java Virtual Machine
getDefault
public static Locale getDefault(Locale.Category category)
Возвращает текущее значение локали по умолчанию для указанной категории для данной инстанции Java Virtual Machine.
Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали. Её можно изменить с помощью метода setDefault(Locale.Category, Locale).
- Параметры:
-
category- указанная категория, для которой требуется получить локали по умолчанию - Возвращает:
- локали по умолчанию для указанной категории для данной инстанции Java Virtual Machine
- Исключения:
-
NullPointerException- если категория имеет значение null - С момента:
- 1.7
- См. также:
setDefault(Locale.Category, Locale)
setDefault
public static void setDefault(Locale newLocale)
Устанавливает локали по умолчанию для данной инстанции Java Virtual Machine. Это не влияет на локаль хоста.
Если существует менеджер безопасности, его метод checkPermission вызывается с разрешением PropertyPermission("user.language", "write") перед изменением локали по умолчанию.
Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали.
Поскольку изменение локали по умолчанию может повлиять на многие области функциональности, этот метод следует использовать только в том случае, если вызывающая сторона готова переинициализировать локали-чувствительный код, работающий в той же Java Virtual Machine.
Установка локали по умолчанию с помощью этого метода также устанавливает все значения локали по умолчанию для каждой категории в указанную локали по умолчанию.
- Параметры:
-
newLocale- новая локали по умолчанию - Исключения:
-
SecurityException- если существует менеджер безопасности, и его методcheckPermissionне разрешает операцию. -
NullPointerException- еслиnewLocaleимеет значение null - См. также:
-
SecurityManager.checkPermission(java.security.Permission),PropertyPermission
setDefault
public static void setDefault(Locale.Category category,
Locale newLocale) Устанавливает локали по умолчанию для указанной категории для данной инстанции Java Virtual Machine. Это не влияет на локаль хоста.
Если существует менеджер безопасности, его метод checkPermission вызывается с разрешением PropertyPermission("user.language", "write") перед изменением локали по умолчанию.
Java Virtual Machine устанавливает локали по умолчанию во время запуска на основе среды хоста. Она используется многими локали-чувствительными методами, если явно не указана локали.
Поскольку изменение локали по умолчанию может повлиять на многие области функциональности, этот метод следует использовать только в том случае, если вызывающая сторона готова переинициализировать локали-чувствительный код, работающий в той же Java Virtual Machine.
- Параметры:
-
category- - указанная категория, для которой требуется установить локали по умолчанию -
newLocale- - новая локали по умолчанию - Исключения:
-
SecurityException- - если существует менеджер безопасности, и его метод checkPermission не разрешает операцию. -
NullPointerException- - если категория и/или newLocale имеют значение null - С момента:
- 1.7
- См. также:
-
SecurityManager.checkPermission(java.security.Permission),PropertyPermission,getDefault(Locale.Category)
getAvailableLocales
public static Locale[] getAvailableLocales()
Возвращает массив всех установленных языковых локалей. Возвращаемый массив представляет собой объединение локалей, поддерживаемых средой выполнения Java, и установленных LocaleServiceProvider реализаций. Он должен содержать по крайней мере один элемент Locale равный Locale.US.
- Возвращает:
- Массив установленных локалей.
getISOCountries
public static String[] getISOCountries()
Возвращает список всех двухбуквенных кодов стран, определенных в ISO 3166. Может использоваться для создания локалей.
Примечание: Класс Locale также поддерживает другие коды для стран (регионов), такие как трехбуквенные числовые коды зон ООН М.49. Поэтому список, возвращаемый этим методом, не содержит ВСЕХ допустимых кодов, которые могут использоваться для создания локалей.
- Возвращает:
- Массив двухбуквенных кодов стран ISO 3166.
getISOLanguages
public static String[] getISOLanguages()
Возвращает список всех двухбуквенных кодов языков, определенных в ISO 639. Может использоваться для создания локалей.
Примечание:
- ISO 639 — не стабильный стандарт; некоторые коды языков изменились. Список, который возвращает эта функция, включает как новые, так и старые коды для языков, коды которых изменились.
- Класс
Localeтакже поддерживает коды языков длиной до 8 символов. Поэтому список, возвращаемый этим методом, не содержит ВСЕХ допустимых кодов, которые могут использоваться для создания локалей.
- Возвращает:
- Массив двухбуквенных кодов языков ISO 639.
getLanguage
public String getLanguage()
Возвращает код языка этой локали.
Примечание: ISO 639 — не стабильный стандарт; некоторые коды языков изменились. Конструктор Locale распознаёт как новые, так и старые коды для языков, коды которых изменились, но эта функция всегда возвращает старый код. Если вы хотите проверить наличие конкретного языка, код которого изменился, не делайте
if (locale.getLanguage().equals("he")) // BAD!
... Вместо этого сделайте if (locale.getLanguage().equals(new Locale("he").getLanguage()))
...
- Возвращает:
- Код языка или пустую строку, если он не определён.
- См. также:
getDisplayLanguage()
getScript
public String getScript()
Возвращает сценарий для этой локали, который должен быть либо пустой строкой, либо четырёхбуквенным кодом сценария ISO 15924. Первая буква заглавная, остальные — строчные, например, 'Latn', 'Cyrl'.
- Возвращает:
- Код сценария или пустую строку, если он не определён.
- С тех пор:
- 1.7
- См. также:
getDisplayScript()
getCountry
public String getCountry()
Возвращает код страны/региона для этой локали, который должен быть либо пустой строкой, либо двухбуквенным кодом ISO 3166 в верхнем регистре, либо трёхзначным кодом UN M.49.
- Возвращает:
- Код страны/региона или пустую строку, если он не определён.
- См. также:
getDisplayCountry()
getVariant
public String getVariant()
Возвращает код варианта для этой локали.
- Возвращает:
- Код варианта или пустую строку, если он не определён.
- См. также:
getDisplayVariant()
hasExtensions
public boolean hasExtensions()
Возвращает true, если у этой Locale есть какие-либо расширения.
- Возвращает:
-
trueесли у этойLocaleесть какие-либо расширения - С тех пор:
- 1.8
stripExtensions
public Locale stripExtensions()
Возвращает копию этой Locale без расширений. Если у этой Locale нет расширений, возвращается эта Locale.
- Возвращает:
- копию этой
Localeбез расширений илиthisесли уthisнет расширений - С тех пор:
- 1.8
getExtension
public String getExtension(char key)
Возвращает значение расширения (или частного использования), связанное с указанным ключом, или null, если расширение, связанное с ключом, отсутствует. Для корректной работы ключ должен быть одним из [0-9A-Za-z]. Регистр ключей не учитывается, поэтому, например, «z» и «Z» представляют одно и то же расширение.
- Параметры:
-
key- ключ расширения - Возвращает:
- Расширение или null, если эта локаль не определяет расширение для указанного ключа.
- Выбрасывает:
-
IllegalArgumentException- если ключ не имеет правильного формата - С тех пор:
- 1.7
- См. также:
-
PRIVATE_USE_EXTENSION,UNICODE_LOCALE_EXTENSION
getExtensionKeys
public Set<Character> getExtensionKeys()
Возвращает множество ключей расширений, связанных с этой локалью, или пустое множество, если расширений нет. Возвращаемое множество неизменяемо. Все ключи будут в нижнем регистре.
- Возвращает:
- Множество ключей расширений или пустое множество, если у этой локали нет расширений.
- С тех пор:
- 1.7
getUnicodeLocaleAttributes
public Set<String> getUnicodeLocaleAttributes()
Возвращает множество атрибутов локали Unicode, связанных с этой локалью, или пустое множество, если атрибутов нет. Возвращаемое множество неизменяемо.
- Возвращает:
- Множество атрибутов.
- С тех пор:
- 1.7
getUnicodeLocaleType
public String getUnicodeLocaleType(String key)
Возвращает тип локали Unicode, связанный с указанным ключом локали Unicode для этой локали. Возвращает пустую строку для ключей, определённых без типа. Возвращает null, если ключ не определён. Ключи нечувствительны к регистру. Ключ должен содержать две буквенно-цифровых символа ([0-9a-zA-Z]), в противном случае выбрасывается IllegalArgumentException.
- Параметры:
-
key- ключ локали Unicode - Возвращает:
- Тип локали Unicode, связанный с ключом, или null, если локаль не определяет ключ.
- Выбрасывает:
-
IllegalArgumentException- если ключ не имеет правильного формата -
NullPointerException- еслиkeyравно null - С тех пор:
- 1.7
getUnicodeLocaleKeys
public Set<String> getUnicodeLocaleKeys()
Возвращает множество ключей локали Unicode, определённых этой локалью, или пустое множество, если ключей нет. Возвращаемое множество неизменяемо. Ключи — все в нижнем регистре.
- Возвращает:
- Множество ключей локали Unicode или пустое множество, если у этой локали нет ключей локали Unicode.
- С тех пор:
- 1.7
toString
public final String toString()
Возвращает строковое представление этого объекта Locale, состоящее из языка, страны, варианта, сценария и расширений, как показано ниже:
язык + «_» + страна + «_» + (вариант + «_#» | «#») + сценарий + «-» + расширенияЯзык всегда в нижнем регистре, страна — всегда в верхнем регистре, сценарий — всегда в стиле заглавной буквы, а расширения — всегда в нижнем регистре. Расширения и подтеги частного использования будут в каноническом порядке, как описано в
toLanguageTag().
Когда у локали нет сценария или расширений, результат такой же, как в Java 6 и ранее.
Если отсутствуют как поле языка, так и поле страны, эта функция вернёт пустую строку, даже если присутствуют поле варианта, сценария или расширений (у локали не может быть только варианта, вариант должен сопровождаться корректным кодом языка или страны).
Если сценарий или расширения присутствуют, а вариант отсутствует, перед «#» не добавляется знак нижнего подчёркивания.
Это поведение предназначено для отладки и совместимости с предыдущими использованиями toString , которые ожидали только полей языка, страны и варианта. Чтобы представить Locale в виде строки для обмена, используйте toLanguageTag().
Примеры:
ende_DE_GBen_US_WINde__POSIXzh_CN_#Hanszh_TW_#Hant-x-javath_TH_TH_#u-nu-thai
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Строковое представление локали, для отладки.
- См. также:
-
getDisplayName(),toLanguageTag()
toLanguageTag
public String toLanguageTag()
Возвращает корректный тег языка IETF BCP 47, представляющий эту локаль.
Если у этой Locale есть язык, страна или вариант, которые не соответствуют требованиям синтаксиса тега языка IETF BCP 47, этот метод обрабатывает эти поля, как описано ниже:
Язык: Если язык пустой или не имеет корректного формата (например, «a» или «e2»), он будет выведен как «und» (неопределённый).
Страна: Если страна не имеет корректного формата (например, «12» или «USA»), она будет опущена.
Вариант: Если вариант имеет корректный формат, каждый подсегмент (разделенный дефисом или нижним подчёркиванием) выводится как подтег. В противном случае:
- Если все подсегменты соответствуют
[0-9a-zA-Z]{1,8}(например, «WIN» или «Oracle_JDK_Standard_Edition»), первый некорректный подсегмент и все последующие будут добавлены к тегу частного использования. Первый добавленный подтег будет «lvariant», за которым следуют подсегменты в порядке, разделенные дефисом. Например, «x-lvariant-WIN», «Oracle-x-lvariant-JDK-Standard-Edition». - Если какой-либо подсегмент не соответствует
[0-9a-zA-Z]{1,8}, вариант будет усечён, а проблемный подсегмент и все последующие подсегменты будут опущены. Если оставшаяся часть не пустая, она будет выведена как тег частного использования, как указано выше (даже если оставшаяся часть окажется правильной). Например, «Solaris_isjustthecoolestthing» выводится как «x-lvariant-Solaris», а не как «solaris».
Специальные преобразования: Java поддерживает некоторые старые представления локалей, включая устаревшие коды языков ISO, для совместимости. Этот метод выполняет следующие преобразования:
- Устаревшие коды языков ISO «iw», «ji» и «in» преобразуются в «he», «yi» и «id» соответственно.
- Локаль с языком «no», страной «NO» и вариантом «NY», представляющая норвежский нюнорск (Норвегия), преобразуется в тег языка «nn-NO».
Примечание: Хотя тег языка, созданный этим методом, имеет правильный формат (удовлетворяет требованиям синтаксиса, определённым спецификацией IETF BCP 47), он не обязательно является корректным тегом языка BCP 47. Например,
new Locale("xx", "YY").toLanguageTag(); вернёт «xx-YY», но подтег языка «xx» и подтег региона «YY» некорректны, поскольку они не зарегистрированы в реестре подтегов языков IANA.- Возвращает:
- метку языка BCP47, представляющую локаль
- С тех пор:
- 1.7
- См. также:
forLanguageTag(String)
forLanguageTag
public static Locale forLanguageTag(String languageTag)
Возвращает локаль для указанной строки тега языка IETF BCP 47.
Если указанный тег языка содержит какие-либо неправильно сформированные подтеги, такой подтег и все последующие подтеги игнорируются. Сравните с Locale.Builder.setLanguageTag(java.lang.String), которая в этом случае выбрасывает исключение.
Выполняются следующие преобразования:
- Код языка "und" отображается в язык "".
- Коды языков "he", "yi" и "id" отображаются в "iw", "ji" и "in" соответственно. (Это та же канонизация, которая выполняется в конструкторах Locale.)
- Часть подтега для частного использования, начинающаяся с префикса "lvariant", если он есть, удаляется и добавляется к полю варианта в результирующей локали (без нормализации регистра). Если она становится пустой, подтег для частного использования отбрасывается:
Locale loc; loc = Locale.forLanguageTag("en-US-x-lvariant-POSIX"); loc.getVariant(); // returns "POSIX" loc.getExtension('x'); // returns null loc = Locale.forLanguageTag("de-POSIX-x-URP-lvariant-Abc-Def"); loc.getVariant(); // returns "POSIX_Abc_Def" loc.getExtension('x'); // returns "urp" - Когда аргумент languageTag содержит подтег extlang, используется первый такой подтег в качестве языка, и основной подтег языка и другие подтеги extlang игнорируются:
Locale.forLanguageTag("ar-aao").getLanguage(); // returns "aao" Locale.forLanguageTag("en-abc-def-us").toString(); // returns "abc_US" - Регистр нормализуется, за исключением тегов вариантов, которые остаются неизменными. Язык нормализуется до нижнего регистра, сценарий до верхнего регистра, страна до верхнего регистра, а расширения до нижнего регистра.
- Если после обработки локаль будет точно совпадать с ja_JP_JP или th_TH_TH без расширений, соответствующие расширения добавляются так, как будто был вызван конструктор:
Locale.forLanguageTag("ja-JP-x-lvariant-JP").toLanguageTag(); // returns "ja-JP-u-ca-japanese-x-lvariant-JP" Locale.forLanguageTag("th-TH-x-lvariant-TH").toLanguageTag(); // returns "th-TH-u-nu-thai-x-lvariant-TH"
Это реализует производство 'Language-Tag' BCP47, и поэтому поддерживает унаследованные (обычные и нестандартные), а также частные метки языка. Самостоятельные метки частного использования представляются как пустой язык и расширение 'x-whatever', а унаследованные метки преобразуются в свои канонические замены, если они существуют.
Унаследованные метки с каноническими заменами приведены ниже:
| унаследованный тег | современная замена | |
|---|---|---|
| art-lojban | jbo | |
| i-ami | ami | |
| i-bnn | bnn | |
| i-hak | hak | |
| i-klingon | tlh | |
| i-lux | lb | |
| i-navajo | nv | |
| i-pwn | pwn | |
| i-tao | tao | |
| i-tay | tay | |
| i-tsu | tsu | |
| no-bok | nb | |
| no-nyn | nn | |
| sgn-BE-FR | sfb | |
| sgn-BE-NL | vgt | |
| sgn-CH-DE | sgg | |
| zh-guoyu | cmn | |
| zh-hakka | hak | |
| zh-min-nan | nan | |
| zh-xiang | hsn |
Унаследованные метки без современной замены будут преобразованы следующим образом:
| унаследованный тег | преобразуется в | |
|---|---|---|
| cel-gaulish | xtg-x-cel-gaulish | |
| en-GB-oed | en-GB-x-oed | |
| i-default | en-x-i-default | |
| i-enochian | und-x-i-enochian | |
| i-mingo | see-x-i-mingo | |
| zh-min | nan-x-zh-min |
Список всех унаследованных меток см. в реестре подтегов языка IANA (поиск по «Тип: унаследованный»).
Примечание: нет гарантии, что toLanguageTag и forLanguageTag будут обработаны корректно.
- Параметры:
-
languageTag- тег языка - Возвращает:
- Локаль, которая наилучшим образом представляет тег языка.
- Выбрасывает:
-
NullPointerException- еслиlanguageTagимеетnullзначение - С тех пор:
- 1.7
- См. также:
-
toLanguageTag(),Locale.Builder.setLanguageTag(String)
getISO3Language
public String getISO3Language()
throws MissingResourceException Возвращает трехбуквенное сокращение языка этой локали. Если язык соответствует двухбуквенному коду ISO 639-1, возвращается соответствующий трехбуквенный код ISO 639-2/T в нижнем регистре. Коды языков ISO 639-2 можно найти онлайн, см. "Codes for the Representation of Names of Languages Part 2: Alpha-3 Code". Если локаль указывает трехбуквенный язык, язык возвращается как есть. Если локаль не указывает язык, возвращается пустая строка.
- Возвращает:
- Трехбуквенное сокращение языка этой локали.
- Выбрасывает:
-
MissingResourceException- Выбрасывает MissingResourceException, если трехбуквенное сокращение языка недоступно для этой локали.
getISO3Country
public String getISO3Country()
throws MissingResourceException Возвращает трехбуквенное сокращение страны этой локали. Если страна соответствует коду ISO 3166-1 alpha-2, возвращается соответствующий код ISO 3166-1 alpha-3 в верхнем регистре. Если локаль не указывает страну, возвращается пустая строка.
Коды ISO 3166-1 можно найти онлайн.
- Возвращает:
- Трехбуквенное сокращение страны этой локали.
- Выбрасывает:
-
MissingResourceException- Выбрасывает MissingResourceException, если трехбуквенное сокращение страны недоступно для этой локали.
getDisplayLanguage
public final String getDisplayLanguage()
Возвращает имя языка локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано для локали по умолчанию DISPLAY. Например, если локаль fr_FR, а локаль по умолчанию DISPLAY — en_US, getDisplayLanguage() вернет «Французский»; если локаль en_US, а локаль по умолчанию DISPLAY — fr_FR, getDisplayLanguage() вернет «английский». Если имя не может быть локализовано для локали по умолчанию DISPLAY (например, у нас нет японского названия для хорватского языка), эта функция обращается к английскому имени и использует код ISO в качестве значения по умолчанию. Если локаль не указывает язык, эта функция возвращает пустую строку.
- Возвращает:
- Имя отображаемого языка.
getDisplayLanguage
public String getDisplayLanguage(Locale inLocale)
Возвращает имя языка локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано в соответствии с inLocale. Например, если локаль fr_FR, а inLocale — en_US, getDisplayLanguage() вернет «Французский»; если локаль en_US, а inLocale — fr_FR, getDisplayLanguage() вернет «английский». Если имя не может быть локализовано в соответствии с inLocale (например, у нас нет японского названия для хорватского языка), эта функция обращается к английскому имени и, наконец, к коду ISO в качестве значения по умолчанию. Если локаль не указывает язык, эта функция возвращает пустую строку.
- Параметры:
-
inLocale- Локаль, для которой необходимо получить отображаемый язык. - Возвращает:
- Имя отображаемого языка, подходящее для заданной локали.
- Выбрасывает:
-
NullPointerException- еслиinLocaleимеет значениеnull
getDisplayScript
public String getDisplayScript()
Возвращает имя сценария локали, подходящее для отображения пользователю. Если возможно, имя будет локализовано для локали по умолчанию DISPLAY. Возвращает пустую строку, если в этой локали нет кода сценария.
- Возвращает:
- отображаемое имя кода сценария для локали по умолчанию
DISPLAY - С тех пор:
- 1.7
getDisplayScript
public String getDisplayScript(Locale inLocale)
Возвращает имя сценария локали, подходящее для отображения пользователю. Если возможно, имя будет локализовано для заданной локали. Возвращает пустую строку, если в этой локали нет кода сценария.
- Параметры:
-
inLocale- Локаль, для которой необходимо получить отображаемый сценарий. - Возвращает:
- отображаемое имя кода сценария для локали по умолчанию
DISPLAY - Выбрасывает:
-
NullPointerException- еслиinLocaleимеет значениеnull - С тех пор:
- 1.7
getDisplayCountry
public final String getDisplayCountry()
Возвращает имя страны локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано для локали по умолчанию DISPLAY. Например, если локаль fr_FR, а локаль по умолчанию DISPLAY — en_US, getDisplayCountry() вернет «Франция»; если локаль en_US, а локаль по умолчанию DISPLAY — fr_FR, getDisplayCountry() вернет «Соединённые Штаты». Если имя не может быть локализовано для локали по умолчанию DISPLAY (например, у нас нет японского названия для Хорватии), эта функция обращается к английскому имени и использует код ISO в качестве значения по умолчанию. Если локаль не указывает страну, эта функция возвращает пустую строку.
- Возвращает:
- Имя страны, подходящее для локали.
getDisplayCountry
public String getDisplayCountry(Locale inLocale)
Возвращает имя страны локали, подходящее для отображения пользователю. Если возможно, возвращаемое имя будет локализовано в соответствии с inLocale. Например, если локаль fr_FR, а inLocale — en_US, getDisplayCountry() вернет «Франция»; если локаль en_US, а inLocale — fr_FR, getDisplayCountry() вернет «Соединённые Штаты». Если имя не может быть локализовано в соответствии с inLocale (например, у нас нет японского названия для Хорватии), эта функция обращается к английскому имени и, наконец, к коду ISO в качестве значения по умолчанию. Если локаль не указывает страну, эта функция возвращает пустую строку.
- Параметры:
-
inLocale- Локаль, для которой необходимо получить отображаемую страну. - Возвращает:
- Имя страны, подходящее для заданной локали.
- Выбрасывает:
-
NullPointerException- еслиinLocaleимеет значениеnull
getDisplayVariant
public final String getDisplayVariant()
Возвращает имя кода варианта локали, подходящее для отображения пользователю. Если возможно, имя будет локализовано для стандартной DISPLAY локали. Если локаль не указывает код варианта, эта функция возвращает пустую строку.
- Возвращает:
- Имя кода отображаемого варианта, соответствующее локали.
getDisplayVariant
public String getDisplayVariant(Locale inLocale)
Возвращает имя кода варианта локали, подходящее для отображения пользователю. Если возможно, имя будет локализовано для inLocale. Если локаль не указывает код варианта, эта функция возвращает пустую строку.
- Параметры:
-
inLocale- Локаль, для которой необходимо получить код отображаемого варианта. - Возвращает:
- Имя кода отображаемого варианта, соответствующее заданной локали.
- Выбрасывает:
-
NullPointerException- еслиinLocaleявляетсяnull
getDisplayName
public final String getDisplayName()
Возвращает имя локали, подходящее для отображения пользователю. Это будет значения, возвращаемые getDisplayLanguage(), getDisplayScript(), getDisplayCountry() и getDisplayVariant(), собранные в одну строку. Непустые значения используются в порядке следования, а второе и последующие имена заключаются в скобки. Например:
язык (шрифт, страна, вариант)в зависимости от того, какие поля указаны в локали. Если поля языка, шрифта, страны и варианта все пусты, эта функция возвращает пустую строку.
язык (страна)
язык (вариант)
шрифт (страна)
страна
- Возвращает:
- Имя локали, подходящее для отображения.
getDisplayName
public String getDisplayName(Locale inLocale)
Возвращает имя локали, подходящее для отображения пользователю. Это будет значения, возвращаемые getDisplayLanguage(), getDisplayScript(),getDisplayCountry() и getDisplayVariant(), собранные в одну строку. Непустые значения используются в порядке следования, а второе и последующие имена заключаются в скобки. Например:
язык (шрифт, страна, вариант)в зависимости от того, какие поля указаны в локали. Если поля языка, шрифта, страны и варианта все пусты, эта функция возвращает пустую строку.
язык (страна)
язык (вариант)
шрифт (страна)
страна
- Параметры:
-
inLocale- Локаль, для которой необходимо получить имя для отображения. - Возвращает:
- Имя локали, подходящее для отображения.
- Выбрасывает:
-
NullPointerException- еслиinLocaleявляетсяnull
clone
public Object clone()
Переопределяет Cloneable.
hashCode
public int hashCode()
Переопределяет hashCode. Поскольку Locales часто используются в хэш-таблицах, кэширует значение для повышения скорости.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
equals
public boolean equals(Object obj)
Возвращает true, если эта локаль равна другому объекту. Локаль считается равной другой локали с идентичным языком, шрифтом, страной, вариантом и расширениями, и неравной всем другим объектам.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект-ссылка, с которым нужно сравнить. - Возвращает:
- true, если эта локаль равна указанному объекту.
- См. также:
-
Object.hashCode(),HashMap
filter
public static List<Locale> filter(List<Locale.LanguageRange> priorityList,
Collection<Locale> locales,
Locale.FilteringMode mode) Возвращает список совпадающих экземпляров Locale с использованием механизма фильтрации, определенного в RFC 4647.
- Параметры:
-
priorityList- Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса -
locales- экземплярыLocaleиспользуемые для сопоставления -
mode- режим фильтрации - Возвращает:
- список экземпляров
Localeдля сопоставления тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем. - Выбрасывает:
-
NullPointerException- еслиpriorityListилиlocalesявляетсяnull -
IllegalArgumentException- если один или несколько расширенных диапазонов языков включены в данный список, когдаLocale.FilteringMode.REJECT_EXTENDED_RANGESзадан - С:
- 1.8
filter
public static List<Locale> filter(List<Locale.LanguageRange> priorityList,
Collection<Locale> locales) Возвращает список совпадающих экземпляров Locale с использованием механизма фильтрации, определенного в RFC 4647. Это эквивалентно filter(List, Collection, FilteringMode), когда mode является Locale.FilteringMode.AUTOSELECT_FILTERING.
- Параметры:
-
priorityList- Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса -
locales- экземплярыLocaleиспользуемые для сопоставления - Возвращает:
- список экземпляров
Localeдля сопоставления тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем. - Выбрасывает:
-
NullPointerException- еслиpriorityListилиlocalesявляетсяnull - С:
- 1.8
filterTags
public static List<String> filterTags(List<Locale.LanguageRange> priorityList,
Collection<String> tags,
Locale.FilteringMode mode) Возвращает список совпадающих тегов языка с использованием базового механизма фильтрации, определенного в RFC 4647.
- Параметры:
-
priorityList- Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса -
tags- теги языка -
mode- режим фильтрации - Возвращает:
- список совпадающих тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем.
- Выбрасывает:
-
NullPointerException- еслиpriorityListилиtagsявляетсяnull -
IllegalArgumentException- если один или несколько расширенных диапазонов языков включены в данный список, когдаLocale.FilteringMode.REJECT_EXTENDED_RANGESзадан - С:
- 1.8
filterTags
public static List<String> filterTags(List<Locale.LanguageRange> priorityList,
Collection<String> tags) Возвращает список совпадающих тегов языка с использованием базового механизма фильтрации, определенного в RFC 4647. Это эквивалентно filterTags(List, Collection, FilteringMode), когда mode является Locale.FilteringMode.AUTOSELECT_FILTERING.
- Параметры:
-
priorityList- Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса -
tags- теги языка - Возвращает:
- список совпадающих тегов языка, отсортированных в порядке убывания приоритета или веса, или пустой список, если ничего не совпадает. Список изменяем.
- Выбрасывает:
-
NullPointerException- еслиpriorityListилиtagsявляетсяnull - С:
- 1.8
lookup
public static Locale lookup(List<Locale.LanguageRange> priorityList,
Collection<Locale> locales) Возвращает экземпляр Locale для наилучшего совпадения тега языка с использованием механизма поиска, определенного в RFC 4647.
- Параметры:
-
priorityList- Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса -
locales- экземплярыLocaleиспользуемые для сопоставления - Возвращает:
- экземпляр наилучшего совпадающего
Locale, выбранный на основе приоритета или веса, илиnullесли ничего не совпадает. - Выбрасывает:
-
NullPointerException- еслиpriorityListилиtagsявляетсяnull - С:
- 1.8
lookupTag
public static String lookupTag(List<Locale.LanguageRange> priorityList,
Collection<String> tags) Возвращает наилучший совпадающий тег языка с использованием механизма поиска, определенного в RFC 4647.
- Параметры:
-
priorityList- Список приоритетов языка пользователя, в котором каждый тег языка отсортирован в порядке убывания приоритета или веса -
tags- теги языка - Возвращает:
- наилучший совпадающий тег языка, выбранный на основе приоритета или веса, или
nullесли ничего не совпадает. - Выбрасывает:
-
NullPointerException- еслиpriorityListилиtagsявляетсяnull - С:
- 1.8
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.