Locale.ToLanguageTag 方法

定义

返回表示此区域设置的格式正确的 IETF BCP 47 语言标记。

[Android.Runtime.Register("toLanguageTag", "()Ljava/lang/String;", "")]
public string ToLanguageTag ();
[<Android.Runtime.Register("toLanguageTag", "()Ljava/lang/String;", "")>]
member this.ToLanguageTag : unit -> string

返回

表示区域设置的 BCP47 语言标记

属性

注解

返回表示此区域设置的格式正确的 IETF BCP 47 语言标记。

如果具有 Locale 不符合 IETF BCP 47 语言标记语法要求的语言、国家/地区或变体,此方法将处理以下字段:

<b>Language:</b> 如果语言为空或格式不正确(例如“a”或“e2”),它将发出为“und”(未确定)。

<b>Country:</b> 如果国家/地区格式不正确(例如“12”或“USA”),则将省略它。

<b>Variant:</>b> 如果变体 <b>格式<良好,则每个子段(由“-”或“_”分隔)将作为子标记发出。 否则: <ul>

<li>如果所有子段匹配 [0-9a-zA-Z]{1,8} (例如“WIN”或“Oracle_JDK_Standard_Edition”),则第一个格式不正确的子段,以下所有项都将追加到专用使用子标记中。 第一个追加的子标记将是“lvariant”,后跟子段的顺序,用连字符分隔。 例如,“x-lvariant-WIN”、“Oracle-x-lvariant-JDK-Standard-Edition”。

<li>如果任何子段不匹配 [0-9a-zA-Z]{1,8},则变体将被截断,并省略以下子段和所有以下子段。 如果余数为非空,则它将作为上述专用使用子标记发出(即使余数看起来格式良好)。 例如,“Solaris_isjustthecoolestthing”作为“x-lvariant-Solaris”发出,而不是“solaris”。</li></ul>

<b>特殊转换:</b> Java 支持一些旧的区域设置表示形式,包括已弃用的 ISO 语言代码,以便兼容。 此方法执行以下转换: <ul>

<li>已弃用的 ISO 语言代码“iw”、“ji”和“in”分别转换为“he”、“yi”和“id”。

<li>A locale with language “no”, country “NO”, and variant “NY”, representing Norwegian Nynorsk (挪威), is converted to a language tag “nn-NO” .</li></ul>

<b>注意:</b> 虽然此方法创建的语言标记格式良好(满足 IETF BCP 47 规范定义的语法要求),但它不一定是有效的 BCP 47 语言标记。 例如,

new Locale("xx", "YY").toLanguageTag();

将返回“xx-YY”,但语言子标记“xx”和区域子标记“YY”无效,因为它们未在 IANA 语言子标记注册表中注册。

已在 1.7 中添加。

适用于 . 的 java.util.Locale.toLanguageTag()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于