创新互联鸿蒙OS教程:鸿蒙OS Locale.LanguageRange

Locale.LanguageRange

专注于为中小企业提供成都网站建设、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业武山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

java.lang.Object

|---java.util.Locale.LanguageRange

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-”(繁体中文,任何地区)是扩展的语言范围。

字段摘要

修饰符喝类型字段描述
static doubleMAX_WEIGHT保持权重最大值 1.0 的常数,表示语言范围非常适合用户。
static doubleMIN_WEIGHT保持权重最小值 0.0 的常数,表示语言范围不适合用户。

构造函数摘要

构造函数描述
LanguageRange(String range)使用给定范围构造 LanguageRange。
LanguageRange(String range, double weight)使用给定的范围和权重构造 LanguageRange。

方法总结

修饰符喝类型方法描述
booleanequals(Object obj)将此对象与指定对象进行比较。
StringgetRange()返回此 LanguageRange 的语言范围。
doublegetWeight()返回此 LanguageRange 的权重。
inthashCode()返回对象的哈希码值。
static ListLocale.LanguageRangemapEquivalents(ListLocale.LanguageRange priorityList, MapString,ListString map)使用给定的 priorityList 和映射生成新的自定义语言优先级列表。
static ListLocale.LanguageRangeparse(String ranges)解析给定的范围以生成语言优先级列表。
static ListLocale.LanguageRangeparse(String ranges, MapString,ListString 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。 请注意,在构建时不会针对 IANA 语言子标签注册表进行验证。

这相当于 LanguageRange(range, MAX_WEIGHT)。

参数:

参数名称参数描述
range语言范围

Throws:

Throw名称Throw描述
NullPointerException如果给定范围为空

LanguageRange

public LanguageRange(String range, double weight)

使用给定的范围和权重构造 LanguageRange。 请注意,在构建时不会针对 IANA 语言子标签注册表进行验证。

参数:

参数名称参数描述
range语言范围
weight介于 MIN_WEIGHT 和 MAX_WEIGHT 之间的权重值

Throws:

Throw名称Throw描述
NullPointerException如果给定范围为空
IllegalArgumentException如果给定的重量小于 MIN_WEIGHT 或大于 MAX_WEIGHT

方法详情

getRange

public String getRange()

返回此 LanguageRange 的语言范围。

返回:

语言范围。

getWeight

public double getWeight()

返回此 LanguageRange 的权重。

返回:

weight 值。

parse

public static ListLocale.LanguageRange parse(String ranges)

解析给定的范围以生成语言优先级列表。

此方法对给定范围内的每个语言范围执行语法检查,但不使用 IANA 语言子标签注册表进行验证。

要给出的范围可以采用以下形式之一:

   "Accept-Language: ja,en;q=0.4"  (weighted list with Accept-Language prefix)
   "ja,en;q=0.4"                   (weighted list)
   "ja,en"                         (prioritized list)

在加权列表中,每个语言范围都有一个权重值。权重值与 RFC 2616 中的“质量值”相同,它表示用户对语言的偏好程度。在对应的语言范围后面加上“;q=”指定权重值,省略时默认权重值为MAX_WEIGHT。

与加权列表不同,优先列表中的语言范围根据其优先级按降序排列。第一语言范围的优先级最高,最符合用户的偏好。

在任何一种情况下,语言范围都会根据优先级或权重在语言优先级列表中按降序排序。如果一个语言范围多次出现在给定的范围中,则只有第一个包含在语言优先级列表中。

返回的列表由给定范围中的语言范围及其在 IANA 语言子标签注册表中找到的等价物组成。例如,如果给定的范围是“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以逗号分隔的语言范围列表或以 RFC 2616 中定义的“Accept-Language”标头形式的语言范围列表

返回:

语言优先级列表,包括给定范围内的语言范围及其等效的语言范围(如果有)。 该列表是可修改的。

Throws:

Throw名称Throw描述
NullPointerException如果 ranges 为空
IllegalArgumentException如果在给定范围内找到的语言范围或权重格式不正确

parse

public static ListLocale.LanguageRange parse(String ranges, MapString,ListString map)

解析给定范围以生成语言优先级列表,然后使用给定映射自定义列表。 该方法等价于 mapEquivalents(parse(ranges), map)。

参数:

参数名称参数描述
ranges以逗号分隔的语言范围列表或以 RFC 2616 中定义的“Accept-Language”标头形式的语言范围列表
map包含自定义语言范围信息的 map

返回:

带有自定义的语言优先级列表。 该列表是可修改的。

Throws:

Throw名称Throw描述
NullPointerException如果 ranges 为空
IllegalArgumentException如果在给定范围内找到的语言范围或权重格式不正确

mapEquivalents

public static ListLocale.LanguageRange mapEquivalents(ListLocale.LanguageRange priorityList, MapString,ListString map)

使用给定的 priorityList 和映射生成新的自定义语言优先级列表。 如果给定映射为空,则此方法返回给定 priorityList 的副本。

在 map 中,键表示语言范围,而值是它的等价物列表。 '*' 不能在 map 中使用。 每个等效语言范围具有与其原始语言范围相同的权重值。

  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”)组成,则新生成的语言优先级列表 使用上面的 map 示例自定义将由“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包含自定义语言范围信息的 map

返回:

具有自定义功能的新语言优先级列表。 该列表是可修改的。

Throws:

Throw名称Throw描述
NullPointerException如果 priorityList 为空

hashCode

public int hashCode()

返回对象的哈希码值。

覆盖:

类 Object 中的 hashCode

返回:

此对象的哈希码值。

equals

public boolean equals(Object obj)

将此对象与指定对象进行比较。 当且仅当参数不为 null 并且是包含与此对象相同的范围和权重值的 LanguageRange 对象时,结果才为 true。

覆盖:

类 Object 中的等于

参数:

参数名称参数描述
obj比较的对象

返回:

如果此对象的范围和权重与 obj 相同,则为 true; 否则为 false。

当前标题:创新互联鸿蒙OS教程:鸿蒙OS Locale.LanguageRange
文章位置:http://www.gawzjz.com/qtweb2/news23/23.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联