树叶云鸿蒙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。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/201388.html<

(0)
运维的头像运维
上一篇2025-04-05 17:57
下一篇 2025-04-05 17:59

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注