語言

PluralFormat 類別

定義

PluralFormat 支持創造具有複數屈折的國際化訊息。

[Android.Runtime.Register("android/icu/text/PluralFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class PluralFormat : Android.Icu.Text.UFormat
[<Android.Runtime.Register("android/icu/text/PluralFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type PluralFormat = class
    inherit UFormat
繼承
屬性

備註

PluralFormat 支持創造具有複數屈折的國際化訊息。 它是基於 複數選擇,也就是說,呼叫者會指定每個複數大小寫的訊息,並 PluralFormat 根據號碼選擇合適的訊息。

<h3>國際化訊息<中複數形式問題/h3>

不同語言對複數詞的屈折方式各不相同。 只有當框架能正確處理 所有 語言的複數形式時,才能創造包含複數形式的國際訊息。 ChoiceFormat 處理不好,因為它會為每個訊息附加一個數字區間,並選擇區間中包含特定數字的訊息。 此方法只能處理有限數量的區間。 但在某些語言中,如波蘭語,複數格位適用於無限多個區間(例如,低格適用於以2、3或4結尾的數字,除了以12、13或14結尾的數字)。 因此 ChoiceFormat ,並不足夠。

PluralFormat 透過將問題分為兩部分來處理此問題: <ul><li>它使用 PluralRules 了可以定義比單一區間更複雜的複數條件。 這些複數規則定義了語言中存在哪些複數格,以及這些複數格適用於哪些數字。 <它>為許多語言提供了預先定義的複數規則。 因此,程式設計師不必擔心語言的複數格,也不必定義複數格;他們可以直接使用預先定義的關鍵字。 訊息的複數格式化可以透過資源包的在地化模式來完成。 關於預先定義的複數規則,請參閱 CLDR 語言複 數規則 頁面 https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html</ul>

<h4>/h4 的 PluralFormat<用法>

注意:通常複數格式是透過 MessageFormat 參數 plural 類型來完成,而非使用獨立的 PluralFormat。

這個討論假設你使用 PluralFormat 一套預先定義的複數規則。 你可以用其中一個取 ULocale 物的建構子來建立一個。 要指定訊息模式,你可以把它傳給建構子,或是用這個 applyPattern() 方法明確設定。 此 format() 方法會選取一個數字物件,並選擇匹配複數格的訊息。 此訊息將被回覆。

<h5>模式及其詮釋</h5>

模式文本定義了指定地點中每個複數情況的訊息輸出。 語法: <blockquote>

pluralStyle = [offsetValue] (selector '{' message '}')+
            offsetValue = "offset:" number
            selector = explicitValue | keyword
            explicitValue = '=' number  // adjacent, no white space in between
            keyword = [^[[:Pattern_Syntax:][:Pattern_White_Space:]]]+
            message: see {@link MessageFormat}

</blockquote> Pattern_White_Space語法元素間會被忽略,除了 {curly 大括號} 與其子訊息之間,以及 '=' 與 explicitValue 的編號之間。

CLDR/ICU 中有六個預設病例關鍵字——「零」、「一」、「二」、「少數」、「多」及「其他」。 你必須為預設複數大小寫other「」定義訊息文字,這在每個規則集中都有。 若未指定特定複數格的訊息文字,複數格「other」的訊息文字會分配給該複數格。

格式化時,輸入數字會先與 explicitValue 子句相匹配。 若無精確數字匹配,則透過呼叫 PluralRules 輸入數 <em>減去偏移量</em> 來選擇關鍵字。 (若模式字串中省略偏移量,則預設為 0。)若沒有包含該關鍵字的子句,則回傳「其他」子句。

所選子訊息本身(即子訊息中巢狀參數之外)中的未引號磅號(#)會被輸入數字減去偏移量所取代。 數字減去偏移量的值以 a NumberFormat 作為 PluralFormat的 位置格式化。 如果你需要特殊的數字格式,你必須使用 並 MessageFormat 明確指定一個 NumberFormat 參數。 <強>注意:</強烈> 這個論點是在格式上不減去偏移量! 如果你需要自訂格式且偏移量非零,那你需要將數字減去偏移值作為獨立參數傳遞。

使用範例請參考 MessageFormat 類別文件。

<h4>定義自訂複數規則</h4>

如果你需要用 PluralFormat 自訂規則,可以建立 PluralRules 一個物件並傳給 PluralFormat的建構子。 如果你在這個建構器中也指定一個地點,這個地點將用來格式化訊息文字中的數字。

如需 PluralRules 的詳細資訊,請參閱PluralRules。

Java 文件 android.icu.text.PluralFormat。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
PluralFormat()

為預設PluralFormat地點建立新的基數FORMAT。

PluralFormat(IntPtr, JniHandleOwnership)

PluralFormat 支持創造具有複數屈折的國際化訊息。

PluralFormat(Locale, PluralRules)

為給定規則集創造一個新的基數 PluralFormat 。

PluralFormat(Locale, PluralRules+PluralType)

為複數類型建立新的複數格式。

PluralFormat(Locale)

為給定PluralFormat的 創造一個新的基數java.util.Locale。

PluralFormat(PluralRules, String)

為給定規則組和模式創造一個新的基數 PluralFormat 。

PluralFormat(PluralRules)

為給定規則集創造一個新的基數 PluralFormat 。

PluralFormat(String)

為給定的模式字串建立一個新的基 PluralFormat 數。

PluralFormat(ULocale, PluralRules, String)

為給定規則組、模式及區域創建新的基數 PluralFormat 。

PluralFormat(ULocale, PluralRules)

為給定規則集創造一個新的基數 PluralFormat 。

PluralFormat(ULocale, PluralRules+PluralType, String)

為複數類型、模式和地點建立新的複數格式。

PluralFormat(ULocale, PluralRules+PluralType)

為複數類型建立新的複數格式。

PluralFormat(ULocale, String)

為給定的模式字串和位置建立新的基數 PluralFormat 。

PluralFormat(ULocale)

為特定地點建立一個新的基數 PluralFormat 。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
JniPeerMembers

PluralFormat 支持創造具有複數屈折的國際化訊息。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

PluralFormat 支持創造具有複數屈折的國際化訊息。

ThresholdType

PluralFormat 支持創造具有複數屈折的國際化訊息。

方法

名稱 Description
ApplyPattern(String)

奠定了複數格式所採用的模式。

Clone()

建立並回傳此物件的副本。

(繼承來源 _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
Equals(Object)

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
Equals(PluralFormat)

若此值等於所提供的複數格式,則回傳為真。

Format(Double)

為特定號碼格式化複數訊息。

Format(Object, StringBuffer, FieldPosition)

格式化給定數字的複數訊息,並將格式化後的訊息附加於給定 StringBuffer的 。

Format(Object)

格式化物件以產生字串。

(繼承來源 _Format)
FormatToCharacterIterator(Object)

格式化物件產生 AttributedCharacterIterator。

(繼承來源 _Format)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Parse(String, ParsePosition)

此方法尚未被支援。PluralFormat

ParseObject(String, ParsePosition)

此方法尚未被支援。PluralFormat

ParseObject(String)

解析給定字串開頭的文字以產生物件。

(繼承來源 _Format)
SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetNumberFormat(NumberFormat)

設定此格式化器所使用的數字格式。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToPattern()

回傳此複數格式的圖案。

ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

PluralFormat 支持創造具有複數屈折的國際化訊息。

(繼承來源 _Format)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

PluralFormat 支持創造具有複數屈折的國際化訊息。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於