PluralFormat クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 は、各メッセージに数値の間隔を添付し、その間隔に特定の番号が含まれるメッセージを選択するため、この処理を適切に行いません。 これは、有限の間隔のみを処理できます。 ただし、ポーランド語などの一部の言語では、1 つの複数形のケースが無限に多くの間隔に適用されます (たとえば、12、13、または 14 で終わる数値を除き、2、3、または 4 で終わる数値に一時停止ケースが適用されます)。 したがって、 ChoiceFormat は十分ではありません。
PluralFormat これは、問題を 2 つの部分に分割することによって対処します。 <ul><li>単一の間隔よりも複数形のケースに対してより複雑な条件を定義できる PluralRules を使用します。 これらの複数形の規則は、言語に存在する複数形のケースと、これらのケースに適用される数値の両方を定義します。
<li>多くの言語に対して定義済みの複数形ルールを提供します。 したがって、プログラマは言語の複数形のケースについて心配する必要はありませんし、複数形のケースを定義する必要はありません。定義済みのキーワードを使用できます。 メッセージの複数形全体の書式設定は、リソース バンドルのローカライズされたパターンを使用して行うことができます。 定義済みの複数形ルールについては、「CLDR 言語の複数形ルール 」ページ ( https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html</ul) を参照してください。>
<h4>PluralFormat</h4 の使用>
注: 通常、複数形の書式設定は、スタンドアロンの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 は無視されます。{中かっこ} とそのサブメッセージの間、および '=' と explicitValue の数の間を除きます。
CLDR/ICU には、"zero"、"one"、"two"、"few"、"many"、"other" の 6 つの定義済みのケース キーワードがあります。 すべてのルール セットに含まれる既定の複数形ケース "other" のメッセージ テキストを常に定義する必要があります。 特定の複数形のケースにメッセージ テキストを指定しない場合は、複数形のケース "other" のメッセージ テキストがこの複数形のケースに割り当てられます。
書式設定時に、最初に入力番号が explicitValue 句と照合されます。 正確な数値が一致しない場合は、オフセットPluralRules/em<の入力番号>em<minus で>を呼び出すことによってキーワードが選択されます。 (パターン文字列から省略すると、オフセットの既定値は 0 になります)。そのキーワードを持つ句がない場合は、"other" 句が返されます。
選択したサブメッセージ自体 (つまり、サブメッセージに入れ子になった引数の外側) の引用符で囲まれていないシャープ記号 (#) は、入力番号からオフセットを引いた値に置き換えられます。 数値マイナス オフセット値は、NumberFormatのロケールのPluralFormatを使用して書式設定されます。 特殊な数値書式が必要な場合は、 MessageFormat を使用し、 NumberFormat 引数を明示的に指定する必要があります。
<strong>Note:</strong> この引数はオフセットを減算せずに書式設定されます。 カスタム形式が必要で、オフセットが 0 以外の場合は、数値から負のオフセット値を別のパラメーターとして渡す必要があります。
使用例については、 MessageFormat クラスのドキュメントを参照してください。
<h4>カスタム複数形ルールの定義</h4>
カスタム 規則で PluralFormat を使用する必要がある場合は、 PluralRules オブジェクトを作成し、それを PluralFormatのコンストラクターに渡すことができます。 このコンストラクターでロケールも指定した場合、このロケールはメッセージ テキスト内の数値の書式設定に使用されます。
PluralRules の詳細については、「PluralRules」を参照してください。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| PluralFormat() |
既定の |
| PluralFormat(IntPtr, JniHandleOwnership) |
|
| PluralFormat(Locale, PluralRules) |
特定の規則のセットに対して新しいカーディナル番号 |
| PluralFormat(Locale, PluralRules+PluralType) |
複数形型の新しい PluralFormat を作成します。 |
| PluralFormat(Locale) |
特定の |
| PluralFormat(PluralRules, String) |
特定のルールセットとパターンの新しいカーディナル番号 |
| PluralFormat(PluralRules) |
特定の規則のセットに対して新しいカーディナル番号 |
| PluralFormat(String) |
指定されたパターン文字列の新しいカーディナル番号 |
| PluralFormat(ULocale, PluralRules, String) |
特定のルール、パターン、ロケールの新しいカーディナル番号 |
| PluralFormat(ULocale, PluralRules) |
特定の規則のセットに対して新しいカーディナル番号 |
| PluralFormat(ULocale, PluralRules+PluralType, String) |
複数形の型、パターン、およびロケールの新しい PluralFormat を作成します。 |
| PluralFormat(ULocale, PluralRules+PluralType) |
複数形型の新しい PluralFormat を作成します。 |
| PluralFormat(ULocale, String) |
指定されたパターン文字列とロケールの新しいカーディナル番号 |
| PluralFormat(ULocale) |
特定のロケールの新しいカーディナル番号 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
|
| ThresholdType |
|
メソッド
| 名前 | 説明 |
|---|---|
| ApplyPattern(String) |
この複数形の形式で使用されるパターンを設定します。 |
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| Equals(PluralFormat) |
指定された PluralFormat と等しい場合は true を返します。 |
| Format(Double) |
指定した数値の複数形メッセージを書式設定します。 |
| Format(Object, StringBuffer, FieldPosition) |
指定した数値の複数形メッセージを書式設定し、書式設定されたメッセージを指定した |
| Format(Object) |
文字列を生成するオブジェクトを書式設定します。 (継承元 _Format) |
| FormatToCharacterIterator(Object) |
|
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
古い.
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| Parse(String, ParsePosition) |
このメソッドは、 |
| ParseObject(String, ParsePosition) |
このメソッドは、 |
| ParseObject(String) |
指定された文字列の先頭からテキストを解析して、オブジェクトを生成します。 (継承元 _Format) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetNumberFormat(NumberFormat) |
このフォーマッタで使用される数値書式を設定します。 |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToPattern() |
この PluralFormat のパターンを返します。 |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|