Locale.ToLanguageTag 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回格式正確的 IETF BCP 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 BCP 47 語言標記,代表此地區設定。
如果此 Locale
語言、國家/地區或變體不符合 IETF BCP BCP 47 語言標記語法需求,此方法會處理這些字段,如下所示:
<b>Language:</b> 如果語言是空的,或格式不正確(例如 “a” 或 “e2”),則會發出為 “und” (Undemined)。
<b>Country:</b> 如果國家/地區格式不正確(例如 “12” 或 “USA”),則會省略。
<b>Variant:</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>具有語言 「no」、country 「NO」 和 variant “NY” 的地區設定,代表挪威文 Nynorsk (挪威),會轉換成語言標籤 “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 屬性授權中所述的詞彙使用。