Класс Locale.LanguageRange
- Внешний класс:
Locale
public static final class Locale.LanguageRange extends Object
Существует два типа языковых диапазонов: базовые и расширенные. В 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
- Внешние спецификации
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final double |
MAX_WEIGHT |
Константа, содержащая максимальное значение веса — 1.0, которое указывает, что языковой диапазон хорошо подходит пользователю. |
static final double |
MIN_WEIGHT |
Константа, содержащая минимальное значение веса — 0.0, которое указывает, что языковой диапазон не подходит пользователю. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LanguageRange |
Создает LanguageRange с использованием указанного range. |
LanguageRange |
Создает LanguageRange с использованием указанного range и weight. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот объект с указанным объектом. |
String |
getRange() |
Возвращает языковой диапазон этого LanguageRange. |
double |
getWeight() |
Возвращает вес этого LanguageRange. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
static List |
mapEquivalents |
Создает новый настраиваемый список приоритетов языков с использованием указанных priorityList и map. |
static List |
parse |
Разбирает указанный ranges, чтобы создать список приоритетов языков. |
static List |
parse |
Разбирает указанный 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 |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
MAX_WEIGHT
public static final double MAX_WEIGHT
- См. также:
MIN_WEIGHT
public static final double MIN_WEIGHT
- См. также:
Подробное описание конструкторов
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, имеют неверный формат - Внешние спецификации
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, имеют неверный формат - Внешние спецификации
- См. также:
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 - См. также:
hashCode
equals
public boolean equals(Object obj)
null и является объектом LanguageRange, содержащим те же значения range и weight, что и этот объект.toString
© 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.