|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public static final class Locale.LanguageRange extends Object
Есть два типа диапазонов языка: основной и расширенный. В RFC 4647 синтаксис диапазонов языка выражается в следующим образом:
basic-language-range = (1*8ALPHA *("-" 1*8alphanum)) / "*"
extended-language-range = (1*8ALPHA / "*")
*("-" (1*8alphanum / "*"))
alphanum = ALPHA / DIGIT
Например, "en" (Английский язык), "ja-JP" (Японский язык, Япония), "*" (специальный диапазон языка, который соответствует любой тег языка) диапазоны языка Бэйсик, тогда как "*-CH" (любые языки, Швейцария), "es-*" (Испанский язык, любые области), и "zh-Hant-*" (Традиционные китайцы, любые области), расширенные диапазоны языка.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, который указывает, что диапазон языка не является подходящим вариантом для пользователя.
|
| Конструктор и Описание |
|---|
Locale.LanguageRange(String range)
Конструкции a
LanguageRange использование данного range. |
Locale.LanguageRange(String range, double weight)
Конструкции a
LanguageRange использование данного range и weight. |
| Модификатор и Тип | Метод и Описание |
|---|---|
boolean |
equals(Object obj)
Сравнивает этот объект с указанным объектом.
|
Строка |
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. |
public static final double MAX_WEIGHT
public static final double MIN_WEIGHT
public Locale.LanguageRange(String range)
LanguageRange использование данного range. Отметьте, что никакая проверка допустимости не делается против Реестра Подтега Языка IANA во время конструкции. Это эквивалентно LanguageRange(range, MAX_WEIGHT).
range - диапазон языкаNullPointerException - если данный range nullpublic Locale.LanguageRange(String range, double weight)
LanguageRange использование данного range и weight. Отметьте, что никакая проверка допустимости не делается против Реестра Подтега Языка IANA во время конструкции.range - диапазон языкаweight - значение веса между MIN_WEIGHT и MAX_WEIGHTNullPointerException - если данный range nullIllegalArgumentException - если данный weight меньше чем MIN_WEIGHT или больше чем MAX_WEIGHTpublic String getRange()
LanguageRange.public double getWeight()
LanguageRange.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)Во взвешенном списке каждому диапазону языка дают значение веса. Значение веса идентично "качественному значению" в , и это выражает, насколько пользователь предпочитает язык. Значение веса определяется после соответствующего диапазона языка, сопровождаемого
";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 - список разделенного от запятой языка располагается или список диапазонов языка в форме заголовка "Принимать-языка", определенного в ranges и их эквивалентный язык располагается при наличии. Список является поддающимся изменению.NullPointerException - если ranges нульIllegalArgumentException - если диапазон языка или вес находятся в данном ranges плохо формируетсяpublic static List<Locale.LanguageRange> parse(String ranges, Map<String,List<String>> map)
ranges генерировать Приоритетный Список Языка, и затем настраивает список, используя данный map. Этот метод эквивалентен mapEquivalents(parse(ranges), map).ranges - список разделенного от запятой языка располагается или список диапазонов языка в форме заголовка "Принимать-языка", определенного в map - карта, содержащая информацию, чтобы настроить диапазоны языкаNullPointerException - если ranges нульIllegalArgumentException - если диапазон языка или вес находятся в данном ranges плохо формируетсяparse(String), mapEquivalents(java.util.List<java.util.Locale.LanguageRange>, java.util.Map<java.lang.String, java.util.List<java.lang.String>>)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 nullparse(String, Map)public int hashCode()
hashCode в class ObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public boolean equals(Object obj)
null и a LanguageRange объект, который содержит то же самое range и weight значения как этот объект.equals в class Objectobj - объект сравниться сtrue если этот объект range и weight то же самое как obj's; false иначе.Object.hashCode(), HashMap
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92