ResourceBundle クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リソース バンドルには、ロケール固有のオブジェクトが含まれています。
[Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)]
public abstract class ResourceBundle : Java.Lang.Object
[<Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)>]
type ResourceBundle = class
inherit Object
- 継承
- 派生
- 属性
注釈
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 たとえば、 String
プログラムにロケール固有のリソースが必要な場合、プログラムは現在のユーザーのロケールに適したリソース バンドルから読み込むことができます。 これにより、リソース バンドル内のロケール固有の情報のほとんど (すべてではないにしても) を分離するユーザーのロケールに大きく依存しないプログラム コードを記述できます。
これにより、UL>LI をさまざまな言語<に簡単にローカライズまたは翻訳できるプログラム<を記述できます。LI> は、一度に複数のロケールを一度<>に処理し、後で簡単に変更して、さらに多くのロケール </UL をサポートできます><>
リソース バンドルは、メンバーが共通の基本名を共有しているが、その名前にはロケールを識別する追加のコンポーネントも含まれるファミリに属します。 たとえば、リソース バンドルのファミリの基本名は"MyResources" である場合があります。 ファミリには、ファミリと同じ名前 ("MyResources" ) を持つ既定のリソース バンドルが必要です。特定のロケールがサポートされていない場合は、最後のリゾートのバンドルとして使用されます。 その後、ファミリは、必要に応じてロケール固有のメンバー ("MyResources_de" という名前のドイツ人メンバーなど) を提供できます。
ファミリ内の各リソース バンドルには同じアイテムが含まれていますが、そのアイテムは、そのリソース バンドルによって表されるロケール用に翻訳されています。 たとえば、"MyResources" と "MyResources_de" の両方に、操作を取り消すボタンで使用される が含まれる場合があります String
。 "MyResources" では、 String
に "Cancel" を含め、"MyResources_de" には "Abbrechen" が含まれる場合があります。
国ごとに異なるリソースがある場合は、特殊化を行うことができます。たとえば、"MyResources_de_CH" にはスイス (CH) のドイツ語 (de) のオブジェクトが含まれています。 特殊化の一部のリソースのみを変更する場合は、変更できます。
プログラムでロケール固有のオブジェクトが必要な場合は、 メソッド <blockquote をResourceBundle
使用して クラスを#getBundle(java.lang.String, java.util.Locale) getBundle
読み込みます。>
ResourceBundle myResources =
ResourceBundle.getBundle("MyResources", currentLocale);
</blockquote>
リソース バンドルには、キーと値のペアが含まれています。 キーは、バンドル内のロケール固有のオブジェクトを一意に識別します。 2 つのキーと値のペアを含む の ListResourceBundle
例を次に示します。 <blockquote>
public class MyResources extends ListResourceBundle {
protected Object[][] getContents() {
return new Object[][] {
// LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
{"OkKey", "OK"},
{"CancelKey", "Cancel"},
// END OF MATERIAL TO LOCALIZE
};
}
}
</blockquote> キーは常に String
s です。 この例では、キーは "OkKey" と "CancelKey" です。 上記の例では、値も String
s--"OK" と "Cancel"--ですが、そうである必要はありません。 値には、任意の種類のオブジェクトを指定できます。
適切な getter メソッドを使用して、リソース バンドルからオブジェクトを取得します。 "OkKey" と "CancelKey" は両方とも文字列であるため、それらを<取得するには blockquote を使用getString
します。>
button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));
</blockquote> getter メソッドはすべて引数としてキーを必要とし、見つかった場合は オブジェクトを返します。 オブジェクトが見つからない場合、getter メソッドは を MissingResourceException
スローします。
に加getString
ResourceBundle
えて、getStringArray
文字列配列を取得するためのメソッド、および他の種類のオブジェクトのジェネリック getObject
メソッドも提供します。 を使用 getObject
する場合は、結果を適切な型にキャストする必要があります。 例: <blockquote>
int[] myIntegers = (int[]) myResources.getObject("intList");
</blockquote>
Java プラットフォームには、 と の ResourceBundle
ListResourceBundle
2 つのサブクラスが用意されていますPropertyResourceBundle
。これは、リソースを作成する非常に簡単な方法を提供します。 前の例で簡単に説明したように、 ListResourceBundle
そのリソースはキーと値のペアの一覧として管理されます。 PropertyResourceBundle
では、プロパティ ファイルを使用してそのリソースを管理します。
必要に応じて、またはPropertyResourceBundle
ニーズに合わない場合ListResourceBundle
は、独自ResourceBundle
のサブクラスを記述できます。 サブクラスは、 と getKeys()
の 2 つのメソッドをオーバーライドするhandleGetObject
必要があります。
サブクラスを複数のスレッドで ResourceBundle
同時に使用する場合、サブクラスの実装はスレッド セーフである必要があります。 このクラスの非抽象メソッドの既定の実装と、直接の既知の具象サブクラス ListResourceBundle
内の メソッドと PropertyResourceBundle
はスレッド セーフです。
<h3>ResourceBundle.Control</h3>
クラスは ResourceBundle.Control
、インスタンスを取得するファクトリ メソッドによってバンドルの読み込みプロセスを getBundle
実行するために必要な情報を ResourceBundle.Control
提供します。 標準以外のリソース バンドル形式を有効にしたり、検索戦略を変更したり、キャッシュ パラメーターを定義したりするために、独自のサブクラスを実装できます。 詳細については、 クラスとファクトリ メソッドの #getBundle(String, Locale, ClassLoader, Control) getBundle
説明を参照してください。
<h3>キャッシュ管理</h3>
ファクトリ メソッドによって getBundle
作成されたリソース バンドル インスタンスは既定でキャッシュされ、ファクトリ メソッドはキャッシュされている場合に同じリソース バンドル インスタンスを複数回返します。 getBundle
クライアントは、キャッシュをクリアしたり、キャッシュされたリソース バンドル インスタンスの有効期間を Time-to-Live 値を使用して管理したり、リソース バンドル インスタンスをキャッシュしないように指定したりできます。 詳細については、#getBundle(String、Locale、ClassLoader、Control) <コード>getBundle</code> factory メソッド、、、#clearCache(ClassLoader) clearCache
Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLive
および Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload
の説明を参照してください。
<h3>Example</h3>
2 つのリソースを ResourceBundle
管理するサブクラス MyResources
の非常に単純な例を次に示します (より多くのリソースの場合は、 Map
を使用する可能性があります)。 "親レベル" ResourceBundle
が同じ値を持つ同じキーを処理する場合は、値を指定する必要はありません (以下の okKey の場合と同様)。 <blockquote>
// default (English language, United States)
public class MyResources extends ResourceBundle {
public Object handleGetObject(String key) {
if (key.equals("okKey")) return "Ok";
if (key.equals("cancelKey")) return "Cancel";
return null;
}
public Enumeration<String> getKeys() {
return Collections.enumeration(keySet());
}
// Overrides handleKeySet() so that the getKeys() implementation
// can rely on the keySet() value.
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("okKey", "cancelKey"));
}
}
// German language
public class MyResources_de extends MyResources {
public Object handleGetObject(String key) {
// don't need okKey, since parent level handles it.
if (key.equals("cancelKey")) return "Abbrechen";
return null;
}
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("cancelKey"));
}
}
</blockquote> 単一のファミリを ResourceBundle
使用するように自分自身を制限する必要はありません。 たとえば、例外メッセージ (、ExceptionResources_de
...) のバンドルのセットと、 ExceptionResources
ウィジェット用のバンドル (WidgetResources_fr
ExceptionResources_fr
、 WidgetResource
、WidgetResources_de
...)、リソースを好きなように分割することができます。
1.1 で追加されました。
の Java ドキュメント java.util.ResourceBundle
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
ResourceBundle() |
唯一のコンストラクター。 |
ResourceBundle(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
BaseBundleName |
既知の場合、または |
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
JniPeerMembers |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 |
Keys |
この |
Locale |
このリソース バンドルのロケールを返します。 |
Parent |
このバンドルの親バンドル。 |
PeerReference |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
メソッド
ClearCache() |
呼び出し元のクラス ローダーを使用して読み込まれたキャッシュからすべてのリソース バンドルを削除します。 |
ClearCache(ClassLoader) |
指定されたクラス ローダーによって読み込まれたすべてのリソース バンドルをキャッシュから削除します。 |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
ContainsKey(String) |
指定 |
Dispose() |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
Dispose(Boolean) |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
GetBundle(String) |
指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。 |
GetBundle(String, Locale) |
指定した基本名とロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。 |
GetBundle(String, Locale, ClassLoader) |
指定した基本名、ロケール、およびクラス ローダーを使用してリソース バンドルを取得します。 |
GetBundle(String, Locale, ClassLoader, ResourceBundle+Control) |
指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。 |
GetBundle(String, Locale, ResourceBundle+Control) |
指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。 |
GetBundle(String, ResourceBundle+Control) |
指定した基本名、既定のロケール、および呼び出し元のクラス ローダーを使用して、リソース バンドルを取得します。 |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
GetObject(String) |
このリソース バンドルまたはその親の 1 つから、指定されたキーのオブジェクトを取得します。 |
GetString(String) |
このリソース バンドルまたはその親の 1 つから、指定されたキーの文字列を取得します。 |
GetStringArray(String) |
このリソース バンドルまたはその親の 1 つから、指定されたキーの文字列配列を取得します。 |
HandleGetObject(String) |
このリソース バンドルから、指定されたキーの オブジェクトを取得します。 |
HandleKeySet() |
|
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
KeySet() |
|
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetParent(ResourceBundle) |
このバンドルの親バンドルを設定します。 |
ToArray<T>() |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
IJavaPeerable.Finalized() |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 |
GetJniTypeName(IJavaPeerable) |
リソース バンドルには、ロケール固有のオブジェクトが含まれています。 |