Module  java.base
软件包  java.util

Class Locale.LanguageRange

    • 字段详细信息

      • MAX_WEIGHT

        public static final double MAX_WEIGHT
        持有权重最大值的常数为1.0,表示语言范围适合用户。
        另请参见:
        Constant Field Values
      • MIN_WEIGHT

        public static final double MIN_WEIGHT
        保持最小权重值的常数为0.0,表示语言范围不适合用户。
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • LanguageRange

        public LanguageRange​(String range)
        构造一个LanguageRange使用给定的range 请注意,在建造时,不对IANA语言分条登记处进行验证。

        这相当于LanguageRange(range, MAX_WEIGHT)

        参数
        range - 一个语言范围
        异常
        NullPointerException - 如果给定的 rangenull
        IllegalArgumentException - 如果给定的 range不符合RFC 4647中提到的语言范围的语法
      • LanguageRange

        public LanguageRange​(String range,
                             double weight)
        构造一个LanguageRange使用给定rangeweight 请注意,在建造时,不对IANA语言分条登记处进行验证。
        参数
        range - 一个语言范围
        weight - 权重值在 MIN_WEIGHTMAX_WEIGHT之间
        异常
        NullPointerException - 如果给定的 rangenull
        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) 
        在加权列表中,每个语言范围都被赋予权重值。 权重值与RFC 2616中的“质量值” 相同 ,它表示用户喜欢的语言多少。 重量值在相应的语言范围后面指定为";q=" ,默认权重值为MAX_WEIGHT ,省略。

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

        在任一种情况下,语言范围按照优先级或权重在语言优先级列表中按降序进行排序。 如果一个语言范围ranges出现在给定的ranges ,则只有第一个包含在语言优先级列表中。

        返回的列表包括来自给定的ranges的语言范围及其在IANA语言小标签注册表中的等同物。 例如,如果给定的ranges"Accept-Language: iw,en-us;q=0.7,en;q=0.3""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中定义的“接受语言”标题的 形式
        结果
        由给定的ranges包含的语言范围组成的语言优先级列表及其等效语言范围(如果可用)。 列表是可修改的。
        异常
        NullPointerException - 如果 ranges为空
        IllegalArgumentException - 如果在给定的 ranges找到的语言范围或重量是不正确的
      • mapEquivalents

        public static List<Locale.LanguageRange> mapEquivalents​(List<Locale.LanguageRange> priorityList,
                                                                Map<String,List<String>> map)
        使用给定的priorityListmap生成新的自定义语言优先级列表。 如果给定的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 - 如果 priorityListnull
        另请参见:
        parse(String, Map)
      • equals

        public boolean equals​(Object obj)
        将此对象与指定的对象进行比较。 如果且仅当参数不是null且是LanguageRange对象,其值包含与此对象相同的rangeweight值,则结果为真。
        重写:
        equalsObject
        参数
        obj - 要比较的对象
        结果
        true如果这个对象的rangeweight是相同的obj的; false否则。
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString​()
        返回此 LanguageRange对象的信息字符串表示形式,如果范围被加权且重量小于最大权重, LanguageRange语言范围和权重组成。
        重写:
        toStringObject
        结果
        这个 LanguageRange对象的字符串表示形式。