SelectFormat クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SelectFormat は、キーワードに基づいてフレーズを選択することで、国際化されたメッセージの作成をサポートします。
[Android.Runtime.Register("android/icu/text/SelectFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class SelectFormat : Java.Text._Format
[<Android.Runtime.Register("android/icu/text/SelectFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type SelectFormat = class
inherit _Format
- 継承
- 属性
注釈
SelectFormat は、キーワードに基づいてフレーズを選択することで、国際化されたメッセージの作成をサポートします。 このパターンは、キーワードを語句にマップする方法を指定し、既定のフレーズを提供します。 format メソッドに提供されるオブジェクトは、キーワードと一致する文字列です。 一致する語句がある場合は、対応する語句が選択されます。それ以外の場合は、既定の語句が使用されます。
<h3>性別協定の SelectFormat の使用</h3>
注: 通常、選択の書式設定は、スタンドアロンのMessageFormatを使用するのではなく、select引数型のSelectFormatを使用して行われます。
選択形式の主なユース ケースは、性別ベースの変曲です。 名前または名詞を文に挿入すると、その性別が代名詞、動詞の形式、記事、形容詞に影響を与える可能性があります。 性別が特定できない場合には、特別な注意が必要です。 影響は言語によって異なります。
<ul><li>English には 3 つの性別があり、不明な性別は特別なケースとして扱われます。 名前は名前付き人物の性別 (既知の場合) を使用し、人を参照する名詞は自然な性別を使用し、無生物オブジェクトは通常は中立です。 性別は代名詞 "he"、"she"、"it"、"they" にのみ影響します。
<li>German は、名詞の性別が人を指す名詞 ("Mädchen", 女の子, 中立です). 性別は代名詞 ("er"、"sie"、"es")、記事 ("der"、"die"、"das")、形容詞形式 ("guter Mann"、"gute Frau"、"gutes Mä に影響します。dchen")。
<li>Frenchには2つの性別しかありません。ドイツ語のように名詞の性別はかなり恣意的です。太陽と月の場合、性別はドイツ語の性別とは反対です。 性別は代名詞 ("il"、"elle")、記事 ("le"、"la")、形容詞形式 ("bon"、"bonne")、時には動詞の形式 ("allé"、"allé に影響します。e").
<li>Polishは、5つの性別(または名詞クラス)、人間の男性、非人間の男性、無生物の男性、女性的、ノイターをアニメーション化します。 </ul>
他の一部の言語には、性別に関連しない名詞クラスがありますが、文法的な使用では似ています。 一部のアフリカ言語には約 20 の名詞クラスがあります。
<b>Note:</b>特定の文に含まれる人の性別では、通常、女性、男性、その他/不明な 人 のみを区別する必要があります。
ローカライザーが言語の性別の依存関係を考慮に入れる文パターンを作成できるようにするには、ソフトウェアは名詞または名前に関連付けられた性別に関する情報を MessageFormatに提供する必要があります。 次の 2 つの主なケースを区別できます。
<ul><li>人の場合、自然な性別情報は人ごとに維持する必要があります。 "male"、"female"、"mixed" (人のグループの場合) や "unknown" などのキーワードを使用できます。
<li>名詞の場合、文法上の性別情報は、各名詞と言語ごとに維持する必要があります (例: リソース バンドル)。 キーワード "masculine"、"womene"、"neuter" が一般的に使用されますが、一部の言語では他のキーワードが必要な場合があります。 </ul>
結果のキーワードは、関連付けられている名前または名詞とは別のパラメーターとして MessageFormat するために提供されます。 たとえば、"Jean went to Paris" などのメッセージを生成するには、引数 0 のユーザーの名前、引数 1 としての人物の性別、引数 2 としての市区町村の名前の 3 つの個別の引数が指定されます。 人の性別がこの単純な文に影響を与えない英語の文パターンは、引数 1 をまったく参照しません。
{0} went to {2}.
<b>Note:</b> 各フレーズ内に文全体を含める (および部分的に繰り返す) 必要があります。 それ以外の場合、トランスレーターは、メッセージの select 引数に対して文のビットを移動する方法についてトレーニングする必要があります。 (以下の例は、この推奨事項に従っていません)。
フランス語の文パターン。その人の性別が分詞の形式に影響を与える場合、引数 1 に基づいて選択形式が使用されます。
{0} est {1, select, female {allée} other {allé}} à {2}.
パターンを入れ子にして、必要に応じて数と性別の相互作用を処理できるようにします。 たとえば、上記の文で複数のユーザーの名前を挿入できるようにする必要がある場合は、次の文パターンを使用できます (引数 0 は人の名前のリスト、引数 1 は人の数、引数 2 は結合された性別、引数 3 は都市名)。
{0} {1, plural,
one {est {2, select, female {allée} other {allé}}}
other {sont {2, select, female {allées} other {allés}}}
}à {3}.
<h4>パターンとその解釈</h4>
SelectFormat パターン文字列は、各ユーザー定義キーワードのフレーズ出力を定義します。 このパターンは、(キーワード、メッセージ) ペアのシーケンスです。 キーワードが "パターン識別子": [^[[:P attern_Syntax:][:P attern_White_Space:]]] +
各メッセージは、{中かっこ} で囲まれた MessageFormat パターン文字列です。
既定のキーワード otherの語句は常に定義する必要があります。この語句は、 format メソッドに指定されたキーワードが他のキーワードと一致しない場合に返されます。 パターンが otherの語句を提供しない場合、指定されたメソッドはエラー U_DEFAULT_KEYWORD_MISSINGを返します。
<キーワードとメッセージの間の br> Pattern_White_Space は無視されます。 メッセージ内のPattern_White_Spaceは保持され、出力されます。
Example:
MessageFormat msgFmt = new MessageFormat("{0} est " +
"{1, select, female {allée} other {allé}} à Paris.",
new ULocale("fr"));
Object args[] = {"Kirti","female"};
System.out.println(msgFmt.format(args));
output:<br を生成します。>Kirti est allée à Paris.
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| SelectFormat(IntPtr, JniHandleOwnership) |
|
| SelectFormat(String) |
特定のパターン文字列の新しい |
プロパティ
| 名前 | 説明 |
|---|---|
| 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) |
| Format(Object, StringBuffer, FieldPosition) |
指定されたキーワードの語句を選択します。 |
| Format(Object) |
文字列を生成するオブジェクトを書式設定します。 (継承元 _Format) |
| Format(String) |
指定されたキーワードの語句を選択します。 |
| FormatToCharacterIterator(Object) |
|
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
古い.
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| ParseObject(String, ParsePosition) |
このメソッドは、 |
| ParseObject(String) |
指定された文字列の先頭からテキストを解析して、オブジェクトを生成します。 (継承元 _Format) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToPattern() |
このパターンを返します。 |
| 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) |
|