Spec-Zone.ru › OpenJDK 17

Класс 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
См. также:
  • Locale.filter(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.util.Locale>, java.util.Locale.FilteringMode)
  • Locale.filterTags(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.lang.String>, java.util.Locale.FilteringMode)
  • Locale.lookup(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.util.Locale>)
  • Locale.lookupTag(java.util.List<java.util.Locale.LanguageRange>, java.util.Collection<java.lang.String>)

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

Модификатор и тип Поле Описание
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 , состоящее из диапазона языка и веса, если диапазон взвешен, а вес меньше максимального веса.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

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 value» в 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, имеют неправильный формат

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 имеют неправильный формат
См. также:
  • parse(String)
  • mapEquivalents(java.util.List<java.util.Locale.LanguageRange>, java.util.Map<java.lang.String, java.util.List<java.lang.String>>)

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"-to-"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(java.lang.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 объекта, состоящую из диапазона языка и веса, если диапазон весовой, а вес меньше максимального веса.
Overrides:
toString в классе Object
Возвращает:
строковое представление этого LanguageRange объекта.

© 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.LanguageRange.html

Spec-Zone.ru

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