Spec-Zone.ru › OpenJDK 27

Класс Locale.LanguageRange

java.lang.Object
java.util.Locale.LanguageRange
Внешний класс:
Locale
public static final class Locale.LanguageRange extends Object
Этот класс представляет языковой диапазон, определенный в RFC 4647 «Сопоставление языковых тегов». Языковой диапазон — это идентификатор, который используется для выбора языковых тегов, соответствующих определенным требованиям, с помощью механизмов, описанных в разделе Сопоставление локалей. Список языковых диапазонов, представляющий предпочтения пользователя, называется списком приоритетов языков.

Существует два типа языковых диапазонов: базовые и расширенные. В RFC 4647 синтаксис языковых диапазонов выражен в ABNF следующим образом:

    basic-language-range    = (1*8ALPHA *("-" 1*8alphanum)) / "*"
    extended-language-range = (1*8ALPHA / "*")
                              *("-" (1*8alphanum / "*"))
    alphanum                = ALPHA / DIGIT
Например, "en" (английский), "ja-JP" (японский, Япония), "*" (специальный языковой диапазон, соответствующий любому языковому тегу) — это базовые языковые диапазоны, тогда как "*-CH" (любой язык, Швейцария), "es-*" (испанский, любой регион) и "zh-Hant-*" (традиционный китайский, любой регион) — расширенные языковые диапазоны.
С:
1.8
Внешние спецификации
  • RFC 4234: дополненная форма Бэкуса — Наура для описания синтаксиса: ABNF
  • RFC 4647: сопоставление языковых тегов
См. также:
  • Locale.filter(List, Collection, FilteringMode)
  • Locale.filterTags(List, Collection, FilteringMode)
  • Locale.lookup(List, Collection)
  • Locale.lookupTag(List, Collection)

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

Модификатор и тип Поле Описание
static final double MAX_WEIGHT
Константа, содержащая максимальное значение веса — 1.0, которое указывает, что языковой диапазон хорошо подходит пользователю.
static final double MIN_WEIGHT
Константа, содержащая минимальное значение веса — 0.0, которое указывает, что языковой диапазон не подходит пользователю.

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

Конструктор Описание
LanguageRange(String range)
Создает LanguageRange с использованием указанного range.
LanguageRange(String range, double weight)
Создает LanguageRange с использованием указанного range и weight.

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

Модификатор и тип Метод Описание
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
String getRange()
Возвращает языковой диапазон этого LanguageRange.
double getWeight()
Возвращает вес этого LanguageRange.
int hashCode()
Возвращает хеш-код этого объекта.
static List<Locale.LanguageRange> mapEquivalents(List<Locale.LanguageRange> priorityList, Map<String, List<String>> map)
Создает новый настраиваемый список приоритетов языков с использованием указанных priorityList и map.
static List<Locale.LanguageRange> parse(String ranges)
Разбирает указанный ranges, чтобы создать список приоритетов языков.
static List<Locale.LanguageRange> parse(String ranges, Map<String, List<String>> map)
Разбирает указанный ranges, чтобы создать список приоритетов языков, а затем настраивает список с использованием указанного map.
String toString()
Возвращает информативное строковое представление объекта LanguageRange, состоящее из языкового диапазона и веса, если для диапазона задан вес, меньший максимального.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание полей

MAX_WEIGHT

public static final double MAX_WEIGHT
Константа, содержащая максимальное значение веса — 1.0, которое указывает, что языковой диапазон хорошо подходит пользователю.
См. также:
  • Значения константных полей

MIN_WEIGHT

public static final double MIN_WEIGHT
Константа, содержащая минимальное значение веса — 0.0, которое указывает, что языковой диапазон не подходит пользователю.
См. также:
  • Значения константных полей

Подробное описание конструкторов

LanguageRange

public LanguageRange(String range)
Создает LanguageRange с использованием указанного range. Обратите внимание, что при создании проверка по реестру языковых подтипов IANA не выполняется.

Это эквивалентно LanguageRange(range, MAX_WEIGHT).

Параметры:
range — языковой диапазон
Исключения:
NullPointerException — если указанный range равен null
IllegalArgumentException — если указанный range не соответствует синтаксису языкового диапазона, описанному в RFC 4647

LanguageRange

public LanguageRange(String range, double weight)
Создает LanguageRange с использованием указанных range и weight. Обратите внимание, что при создании проверка по реестру языковых подтипов IANA не выполняется.
Параметры:
range — языковой диапазон
weight — значение веса в диапазоне от MIN_WEIGHT до MAX_WEIGHT
Исключения:
NullPointerException — если указанный range равен null
IllegalArgumentException — если указанный range не соответствует синтаксису языкового диапазона, описанному в RFC 4647, или если указанное weight меньше MIN_WEIGHT или больше MAX_WEIGHT

Подробное описание методов

getRange

public String getRange()
Возвращает языковой диапазон этого LanguageRange.
Возвращает:
языковой диапазон.

getWeight

public double getWeight()
Возвращает вес этого LanguageRange.
Возвращает:
значение веса.

parse

public static List<Locale.LanguageRange> parse(String ranges)
Разбирает указанный ranges, чтобы создать список приоритетов языков.

Этот метод выполняет синтаксическую проверку каждого языкового диапазона в указанном ranges, но не выполняет проверку с использованием реестра языковых подтипов IANA.

Передаваемый ranges может иметь одну из следующих форм:

  "Accept-Language: ja,en;q=0.4"  (weighted list with Accept-Language prefix)
  "ja,en;q=0.4"                   (weighted list)
  "ja,en"                         (prioritized list)
В списке с весами каждому языковому диапазону присваивается значение веса. Значение веса совпадает со значением «quality» в RFC 2616 и выражает степень предпочтения пользователя к языку. Значение веса указывается после соответствующего языкового диапазона, за которым следует ";q="; если оно не задано, используется значение веса по умолчанию MAX_WEIGHT.

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

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

Возвращаемый список состоит из языковых диапазонов из указанного ranges и их эквивалентов, найденных в реестре языковых подтипов IANA. Например, если указанный ranges — "Accept-Language: iw,en-us;q=0.7,en;q=0.3", возвращаемый список будет содержать следующие элементы:

 Range                                   Weight
   "iw" (older tag for Hebrew)             1.0
   "he" (new preferred code for Hebrew)    1.0
   "en-us" (English, United States)        0.7
   "en" (English)                          0.3
Два языковых диапазона, "iw" и "he", имеют одинаковый наивысший приоритет в списке. Добавив "he" в список приоритетов языков пользователя, метод сопоставления локалей сможет найти иврит в качестве соответствующей локали (или языкового тега), даже если приложение или система поддерживает только "he" в качестве локали (или языкового тега).
Параметры:
ranges — список языковых диапазонов, разделенных запятыми, или список языковых диапазонов в форме заголовка «Accept-Language», определенного в RFC 2616
Возвращает:
список приоритетов языков, состоящий из языковых диапазонов, включенных в указанный ranges, и их эквивалентных языковых диапазонов, если они доступны. Список допускает изменение.
Исключения:
NullPointerException — если ranges равен null
IllegalArgumentException — если языковой диапазон или вес, найденные в указанном ranges, имеют неверный формат
Внешние спецификации
  • RFC 2616: протокол передачи гипертекста — HTTP/1.1

parse

public static List<Locale.LanguageRange> parse(String ranges, Map<String, List<String>> map)
Разбирает указанный ranges, чтобы создать список приоритетов языков, а затем настраивает список с использованием указанного map. Этот метод эквивалентен mapEquivalents(parse(ranges), map).
Параметры:
ranges — список языковых диапазонов, разделенных запятыми, или список языковых диапазонов в форме заголовка «Accept-Language», определенного в RFC 2616
map — карта, содержащая сведения для настройки языковых диапазонов
Возвращает:
настроенный список приоритетов языков. Список допускает изменение.
Исключения:
NullPointerException — если ranges равен null
IllegalArgumentException — если языковой диапазон или вес, найденные в указанном ranges, имеют неверный формат
Внешние спецификации
  • RFC 2616: протокол передачи гипертекста — HTTP/1.1
См. также:
  • parse(String)
  • mapEquivalents(List, Map)

mapEquivalents

public static List<Locale.LanguageRange> mapEquivalents(List<Locale.LanguageRange> priorityList, Map<String, List<String>> map)
Создает новый настраиваемый список приоритетов языков с использованием указанных priorityList и map. Если указанный map пуст, этот метод возвращает копию указанного priorityList.

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

 An example of map:
   Key                            Value
     "zh" (Chinese)                 "zh",
                                    "zh-Hans"(Simplified Chinese)
     "zh-HK" (Chinese, Hong Kong)   "zh-HK"
     "zh-TW" (Chinese, Taiwan)      "zh-TW"
Настройка выполняется после изменений с использованием реестра языковых подтипов IANA.

Например, если список приоритетов языков пользователя состоит из пяти языковых диапазонов ("zh", "zh-CN", "en", "zh-TW" и "zh-HK"), новый список приоритетов языков, настроенный с помощью приведенного выше примера карты, будет состоять из "zh", "zh-Hans", "zh-CN", "zh-Hans-CN", "en", "zh-TW" и "zh-HK".

"zh-HK" и "zh-TW" не преобразуются ни в "zh-Hans-HK", ни в "zh-Hans-TW", даже если они включены в список приоритетов языков. В этом примере сопоставление используется для четкого разграничения упрощенного и традиционного китайского.

Если сопоставление "zh" с "zh" не включено в карту, будет выполнена простая замена, и настроенный список не будет включать "zh" и "zh-CN".

Параметры:
priorityList — список приоритетов языков пользователя
map — карта, содержащая сведения для настройки языковых диапазонов
Возвращает:
новый настроенный список приоритетов языков. Список допускает изменение.
Исключения:
NullPointerException — если priorityList равен null
См. также:
  • parse(String, Map)

hashCode

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

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Результат равен true тогда и только тогда, когда аргумент не является null и является объектом LanguageRange, содержащим те же значения range и weight, что и этот объект.
Переопределяет:
equals в классе Object
Параметры:
obj — объект для сравнения
Возвращает:
true, если range и weight этого объекта совпадают с соответствующими значениями объекта obj; в противном случае — false.
См. также:
  • Object.hashCode()
  • HashMap

toString

public String toString()
Возвращает информативное строковое представление объекта LanguageRange, состоящее из языкового диапазона и веса, если для диапазона задан вес, меньший максимального.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта LanguageRange.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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