Spec-Zone.ru › OpenJDK 8

Класс 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 double MAX_WEIGHT

Константа, хранящая максимальное значение веса, 1.0, которое указывает, что диапазон языка хорошо подходит для пользователя.

static 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.

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

clone, finalize, getClass, notify, notifyAll, toString, 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

LanguageRange

public LanguageRange(String range,
                     double weight)

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

Параметры:
range - диапазон языков
weight - значение веса между MIN_WEIGHT и MAX_WEIGHT
Исключения:
NullPointerException - если заданный range null
IllegalArgumentException - если заданное 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"-в-"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

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

Spec-Zone.ru

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