mx.resourcesLocale Locale クラスを使用すると、"en_US_MAC" などのロケールストリングの、言語コード、国コードおよびバリアントの 3 つの部分を解析できます。Object Locale クラスを使用すると、"en_US_MAC" などのロケールストリングの、言語コード、国コードおよびバリアントの 3 つの部分を解析できます。

IResourceManager インタフェースと IResourceBundle インタフェースのローカリゼーション API は、ロケールインスタンスの代わりにロケールストリングを使用するので、アプリケーションでこのクラスを使用することはほとんどありません。

mx.resources.IResourceBundlemx.resources.IResourceManagerLocale コンストラクターです。localeString"en""en_US""en_US_MAC" のように、1 つ、2 つまたは 3 つの部分から成るロケールストリングです。 各部分はアンダースコア(_)で区切ります。 最初の部分は、ISO-639 で定義されている小文字 2 文字の言語コード(英語の場合は "en" など)です。 2 番目の部分は、ISO-3166 で定義されている大文字 2 文字の国コード(米国の場合は "US" など)です。 3 番目の部分はバリアントストリングで、同じ言語および国の複数のロケールを区別するために必要に応じて使用できます。 バリアントストリングは、そのロケールが使用されるオペレーティングシステム("MAC""WIN""UNIX" など)を示すために使用される場合があります。 コンストラクターです。 toString このロケールインスタンスの作成に使用されたロケールストリングを返します。このロケールインスタンスの作成に使用されたロケールストリングを返します。 このロケールインスタンスの作成に使用されたロケールストリングを返します。 次に実際の使用例を示します。
      var locale:Locale = new Locale("en_US_MAC");
      trace(locale.toString()); // outputs "en_US_MAC"
      
country このロケールインスタンスの国コードです。 このロケールインスタンスの国コードです。 [読み取り専用]
      var locale:Locale = new Locale("en_US_MAC");
      trace(locale.country); // outputs "US"
      
language このロケールインスタンスの言語コードです。 このロケールインスタンスの言語コードです。 [読み取り専用]
      var locale:Locale = new Locale("en_US_MAC");
      trace(locale.language); // outputs "en"
      
variant このロケールインスタンスのバリアント部分です。 このロケールインスタンスのバリアント部分です。 [読み取り専用]
      var locale:Locale = new Locale("en_US_MAC");
      trace(locale.variant); // outputs "MAC"
      
IResourceManager IResourceManager インタフェースは、Flex アプリケーションに対するローカライズサポートを提供します。flash.events:IEventDispatcher IResourceManager インタフェースは、Flex アプリケーションに対するローカライズサポートを提供します。

ローカライズには、ロケール、リソースおよびリソースバンドルの 3 つの主要な概念が関係します。

ロケールは、アプリケーションをローカライズした後の言語と国を指定します。 たとえば、ロケール "en_US" は、米国で使用される英語を指定します。 詳細については、mx.resources.Locale クラスを参照してください。

リソースは、ロケールに依存した名前付きの値です。 たとえば、アプリケーションに "OPEN" という名前のリソースがある場合、英語ロケールでのそのリソースの値は "Open" です。一方、フランス語ロケールの場合、値は "Ouvrir" です。

リソースバンドルは、値が特定のロケール用にローカライズされたリソースの、名前付きのグループです。 リソースバンドルは、bundleNamelocale の組み合わせによって識別され、バンドルのリソースの名前と値のペアを含む content オブジェクトを持っています。 プロパティファイルからリソースバンドルを作成する一般的な方法については、mx.resources.IResourceBundle のドキュメントを参照してください。

IResourceManager インタフェースを実装した単一の ResourceManager オブジェクトは、(場合によっては複数のロケールの)複数のリソースバンドルを管理し、リソースバンドルに含まれるリソースへのアクセスを提供します。 例えば、resourceManager.getString(bundleName, resourceName) を呼び出すことにより、特定のリソースをストリングとして取得できます。

UIComponent、Formatter または Validator を拡張するクラスはすべて、このインタフェースを実装するオブジェクトへの参照を提供する resourceManager プロパティを持っています。 それ以外のクラスは、ResourceManager.getInstance() を呼び出すことでこのオブジェクトを取得できます。

リソースを取得する getString() などのメソッドは、localeChain プロパティに指定されたロケールのリソースを検索します。 このプロパティを変更すると、例えばアプリケーションで使用している英語リソースを、即座に日本語リソースに切り替えることができます。

アプリケーションを起動すると、アプリケーションにコンパイルされたリソースバンドルを使用して、ResourceManager が自動的に設定されます。 コードモジュールを作成すると、クラスに必要なリソースがデフォルトでモジュールにコンパイルされます。 モジュールがアプリケーションにロードされると、まだアプリケーションにないバンドルが ResourceManager に追加されます。

リソースのみを持つ "リソースモジュール" をコンパイルし、IResourceManager の loadResourceModule() メソッドを使用してそれらをロードできます。リソースモジュールを使用すると、リソースをアプリケーションにコンパイルする代わりに、実行時に必要なリソースをロードして複数のロケールをサポートできます。

通常、ResourceManager は、アプリケーションにコンパイルされているかモジュールからロードしたリソースバンドルを使用して設定されますが、プログラムでリソースバンドルを作成し、addResourceBundle() メソッドを使用して ResourceManager に追加することもできます。

mx.resources.ResourceManagermx.resources.IResourceBundlemx.resources.ResourceBundleaddResourceBundle 指定された ResourceBundle が ResourceManager に追加され、getString() などの ResourceManager メソッドでそのリソースにアクセスできるようになります。resourceBundlemx.resources:IResourceBundle追加するリソースバンドルです。 useWeakReferencefalseResourceManager でリソースバンドルへの弱参照を維持するかどうかを決定します。useWeakReferencetrue にした場合、ResourceManager でリソースバンドルへの弱参照が提供されます。呼び出し側で弱参照の使用を選択した場合、呼び出し側でリソースバンドルへの強参照を維持し、リソースバンドルが早期にガベージコレクションされないようにする必要があります。useWeakReferencefalse にした場合、ResourceManager でリソースバンドルへの強参照が維持され、リソースバンドルはガベージコレクションされません。

Flex サブアプリケーションまたはモジュールでコンパイル済みのリソースバンドルを ResourceManager に自動的に追加する場合は、メモリ内で位置が固定化されないように、useWeakReferencetrue に設定した状態で addResourceBundle() を呼び出します。サブアプリケーションまたはモジュールで実行時にリソースバンドルを作成する場合も、同じようにする必要があります。次に強参照を使用してこれらのリソースバンドルを保持し、リソースバンドルがガベージコレクションされないようにします。

指定された ResourceBundle が ResourceManager に追加され、getString() などの ResourceManager メソッドでそのリソースにアクセスできるようになります。
findResourceBundleWithResource 指定されたリソースの localeChain 内のロケールを検索し、最初に検出したリソースバンドルを返します。指定されたリソースが含まれた localeChain 内の最初の ResourceBundle、または null です。 mx.resources:IResourceBundlebundleName"MyResources" などのバンドル名です。 resourceNameリソースバンドルのリソースの名前です。 指定されたリソースの localeChain 内のロケールを検索し、最初に検出したリソースバンドルを返します。 リソースが見つからなかった場合、このメソッドは null を返します。 getBoolean ブール型として指定されているリソースの値を取得します。ブール値としてのリソース値、または、リソースが見つからない場合は false です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 ブール型として指定されているリソースの値を取得します。

このメソッドは最初に getString() を呼び出し、結果を小文字に変換します。 次に、結果が "true" であった場合は true を返します。 それ以外の場合は false を返します。

指定されたリソースが見つからない場合、このメソッドは false を返します。

getBundleNamesForLocale ResourceManager に存在し、指定されたロケールに属するすべての ResourceBundle オブジェクトのバンドル名を指定するストリングの配列を返します。バンドル名の配列です。 locale"en_US" などのロケールストリングです。 ResourceManager に存在し、指定されたロケールに属するすべての ResourceBundle オブジェクトのバンドル名を指定するストリングの配列を返します。

この配列内でのバンドル名の順序は決まっていません。

mx.resources.IResourceBundle
getClass クラスとして指定されているリソースの値を取得します。Class としてのリソース値、または、リソースが見つからない場合は null です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 クラスとして指定されているリソースの値を取得します。

このメソッドは getObject() を呼び出し、as 演算子を使用して値をクラス型に強制的に変換します。 リソース値がクラス参照でなかった場合、結果は null になります。 このメソッドは、.properties ファイルに次のような行が書き込まれていて、

      IMAGE=Embed("image.jpg")
      BUTTON_SKIN=ClassReference("skins.ButtonSkin_en_US")
      

Embed() ディレクティブまたは ClassReference() ディレクティブで作成されたクラスを取得する場合に役立ちます。

指定されたリソースが見つからない場合、このメソッドは null を返します。

getInt 指定されたリソースの値を int として取得します。int で表されたリソース値です。リソースが見つからない場合は 0 です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 指定されたリソースの値を int として取得します。

このメソッドは getObject() を呼び出し、結果を int にキャストします。このメソッドは、プロパティファイル内に次のような行があり、

      MINIMUM=5
      

5 という値("5" ではなく)を取得する場合に役立ちます。

指定されたリソースが見つからない場合、このメソッドは 0 を返します。

getLocales ResourceManager に存在する ResourceBundle オブジェクトのすべてのロケールを指定するストリングの配列を返します。ロケールストリングの配列です。 ResourceManager に存在する ResourceBundle オブジェクトのすべてのロケールを指定するストリングの配列を返します。

この配列内でのロケールの順序は決まっていません。

getNumber 数値として指定されているリソースの値を取得します。数値としてのリソース値、または、リソースが見つからない場合は NaN です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 数値として指定されているリソースの値を取得します。

このメソッドは getObject() を呼び出し、結果を数値にキャストします。 このメソッドは、プロパティファイル内に次のような行があり、

      LONGITUDE=170.3
      

プロパティファイル内にこのような行があり、170.3 という値("170.3" ではなく)を取得する場合に役立ちます。

指定されたリソースが見つからない場合、このメソッドは NaN を返します。

getObject オブジェクトとして指定されているリソースの値を取得します。content オブジェクトに格納されているそのままの状態のリソース値です。リソースが見つからない場合は undefined です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 オブジェクトとして指定されているリソースの値を取得します。

ResourceBundle の content オブジェクトに格納されているそのままの状態の値を、変換せずに返します。 リソースがプロパティファイルからコンパイルされた場合、content オブジェクトのリソース値は常にストリングです。ただし、Embed() ディレクティブまたは ClassReference() ディレクティブを使用した場合、リソース値はクラスになります。 getString()getStringArray()getNumber()getInt()getUint()getBoolean()getClass() の各メソッドを使用して、値をより具体的な型に変換します。

指定されたリソースが見つからない場合、このメソッドは undefined を返します。

getPreferredLocaleChain Capabilities.language または Capabilities.languages により報告されたように、ユーザー環境設定を使用して順序付けられた、ResourceManager に存在する ResourceBundle オブジェクトのすべてのロケールを指定するストリングの配列を返します。ロケールストリングの配列です。 Capabilities.language または Capabilities.languages により報告されたように、ユーザー環境設定を使用して順序付けられた、ResourceManager に存在する ResourceBundle オブジェクトのすべてのロケールを指定するストリングの配列を返します。 getResourceBundle 以前に addResourceBundle() を使用して ResourceManager に追加された、指定された locale と bundleName を持つ ResourceBundle を返します。指定された locale および bundleName を持つ(存在する場合)ResourceBundle です。見つからない場合は null です。 mx.resources:IResourceBundlelocale"en_US" などのロケールストリングです。 bundleName"MyResources" などのバンドル名です。 指定された localebundleName を持つ ResourceBundle(以前に addResourceBundle() を使用して ResourceManager に追加されたもの)を返します。 該当する ResourceBundle がない場合、このメソッドは null を返します。 mx.resources.IResourceBundlegetStringArray ストリングの配列として指定されているリソースの値を取得します。ストリングの配列としてのリソース値、または、リソースが見つからない場合は null です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 ストリングの配列として指定されているリソースの値を取得します。

このメソッドは、カンマで区切られた項目のリストが格納されたストリングをリソース値と見なします。 このメソッドは、getString() メソッドを呼び出し、ストリングをカンマの位置で項目に分割して、各項目の前後にある空白を除去します。 このメソッドは、プロパティファイル内に次のような行があり、

      COUNTRIES=India, China, Japan
      

[ "India", "China", "Japan" ] という値("India, China, Japan" という値ではなく)を取得する場合に役立ちます。

指定されたリソースが見つからない場合、このメソッドは null を返します。

getString ストリングとして指定されたリソースの値を、プレースホルダーを指定された値に置き換えた後で取得します。ストリングとしてのリソース値、または、リソースが見つからない場合は null です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 parametersnullプレースホルダーの置き換えとなるパラメーターの配列です。 各パラメーターは、toString() メソッドを使用してストリングに変換された後で置き換えられます。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 ストリングとして指定されたリソースの値を、プレースホルダーを指定された値に置き換えた後で取得します。

このメソッドは getObject() を呼び出し、結果をストリングにキャストします。

parameters 配列をこのメソッドに渡すと、配列の中のパラメーターがストリングに変換され、プレースホルダー("{0}""{1}" など)がそれらのストリングに順番どおりに置き換えられた後、結果のストリングが返されます。

指定されたリソースが見つからない場合、このメソッドは null を返します。

getUint 指定されたリソースの値を uint として取得します。uint で表されたリソース値です。リソースが見つからない場合は 0 です。 bundleNameリソースバンドルの名前です。 resourceNameリソースバンドルのリソースの名前です。 localenull参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメーターはオプションであり、デフォルトは null です。このパラメーターの指定が必要になることはほとんどありません。 指定されたリソースの値を uint として取得します。

このメソッドは getObject() メソッドを呼び出し、結果を uint にキャストします。 このメソッドは、プロパティファイル内に次のような行があり、

      MINIMUM=5
      

5 という値("5" ではなく)を取得する場合に役立ちます。

指定されたリソースが見つからない場合、このメソッドは 0 を返します。

initializeLocaleChain オペレーティングシステムのユーザー推奨ロケールを SWF の使用可能なロケールのリストと比較するアルゴリズムを使用して、ResourceManager の localeChain プロパティを初期化します。compiledLocalesSWF がコンパイルされたロケールを指定するストリングの配列です。 オペレーティングシステムのユーザー推奨ロケールを SWF の使用可能なロケールのリストと比較するアルゴリズムを使用して、ResourceManager の localeChain プロパティを初期化します。

例えば、ユーザーがオペレーティングシステムでフランス語を使用するように指定していた場合に、SWF が en_US、fr_FR および de_DE のロケールでコンパイルされた場合は、localeChain の最初のロケールが fr_FR になるように設定されます。

このメソッドは、IFlexModuleFactory インターフェイスを実装するクラスのみによって使用されます。

mx.core.IFlexModuleFactory
installCompiledResourceBundles SWF にコンパイルされたすべての ResourceBundle サブクラスのインスタンスを作成して、ResourceManager に追加します。作成されて ResourceManager に追加された ResourceBundle インスタンスの配列です。 applicationDomain リソースバンドルクラスを名前で参照するために使用される ApplicationDomain です。 localesSWF がコンパイルされたロケールを指定するストリングの配列です。 bundleNamesSWF にコンパイルされたリソースバンドルの名前を指定するストリングの配列です。 useWeakReferencefalse弱参照を使用してリソースバンドルを ResourceManager にインストールするかどうかを指定するフラグです。 SWF にコンパイルされたすべての ResourceBundle サブクラスのインスタンスを作成して、ResourceManager に追加します。

例えば、locales パラメーターが [ "en_US", "ja_JP" ] で、bundleNames パラメーターが [ "core", "controls" ] の場合は、4 つのリソースバンドルがインストールされます。

このメソッドは、IFlexModuleFactory インターフェイスを実装するクラスのみによって使用されます。

mx.core.IFlexModuleFactory
loadResourceModule リソースバンドルを含むリソースモジュールのロードを開始します。ResourceEvent.PROGRESSResourceEvent.COMPLETEResourceEvent.ERROR の各イベントを送出するこの特定のロード操作に関連付けられたオブジェクトです。 urlリソースモジュールのロード元の URL です。 updatetrueモジュールのロードが終了したときに update() メソッドを呼び出すかどうかを指定します。 applicationDomainnullリソースモジュールをロードする IModuleInfo クラスの load() メソッドに渡される ApplicationDomain です。 このパラメーターはオプションで、デフォルトは null です。 securityDomainnullリソースモジュールをロードする IModuleInfo クラスの load() メソッドに渡される SecurityDomain です。 このパラメーターはオプションで、デフォルトは null です。 リソースバンドルを含むリソースモジュールのロードを開始します。

このメソッドを呼び出すたびに、新しいイベント送出オブジェクトが返されます。そのオブジェクトを使用すると、ロードの進捗状況およびロードが正常に完了したかまたはエラーが発生したかを確認できます。 このオブジェクトは、ResourceEvent.PROGRESSResourceEvent.COMPLETEResourceEvent.ERROR の各イベントを送出します。

モジュールがロードされると、リソースバンドルが ResourceManager に追加されますが、localeChain は変更されません。 update パラメーターが true の場合、update() メソッドが呼び出されます。

mx.events.ResourceEventmx.resources.IResourceManager.update()
removeResourceBundle 指定された ResourceBundle が ResourceManager から削除され、getString() などの ResourceManager メソッドでそのリソースにアクセスできなくなります。locale"en_US" などのロケールストリングです。 bundleName"MyResources" などのバンドル名です。 指定された ResourceBundle が ResourceManager から削除され、getString() などの ResourceManager メソッドでそのリソースにアクセスできなくなります。 mx.resources.IResourceBundleremoveResourceBundlesForLocale 指定されたロケールのすべての ResourceBundle が ResourceManager から削除され、getString() などの ResourceManager メソッドでそのリソースにアクセスできなくなります。locale"en_US" などのロケールストリングです。 指定されたロケールのすべての ResourceBundle が ResourceManager から削除され、getString() などの ResourceManager メソッドでそのリソースにアクセスできなくなります。 mx.resources.IResourceBundleunloadResourceModule ロード済みのリソースモジュールのアンロードを開始します。urlリソースモジュールのロードに使用された URL です。 updatetrueモジュールのアンロードが終了したときに update() メソッドを呼び出すかどうかを指定します。 ロード済みのリソースモジュールのアンロードを開始します。

モジュールがアンロードされると、そのリソースバンドルは ResourceManager から削除されますが、localeChain は変更されません。update パラメーターが true の場合、update() メソッドが呼び出されます。

update ResourceManager から change イベントを送出します。 ResourceManager から change イベントを送出します。

これにより、バインディング式に ResourceManager メソッドの getObject()getString()getStringArray()getNumber()getInt()getUint()getBoolean()getClass() のいずれかが含まれる場合に、それらのバインディング式が再評価されます。

また、UIComponent、Formatter または Validator の resourcesChanged() メソッドも実行されます。 多くのコンポーネントがこのメソッドを実装し、最新のリソースに基づいてその状態を更新します。

localeChain リソースに対する検索で検索対象の 1 つまたは複数のロケールを指定する、[ "en_US" ] などのロケールストリングの配列です。 リソースに対する検索で検索対象の 1 つまたは複数のロケールを指定する、[ "en_US" ] などのロケールストリングの配列です。

ResourceManager の getObject()getString()getStringArray()getNumber()getInt()getUint()getBoolean()getClass() のいずれかのメソッドを呼び出してリソースの値を取得する場合、バンドル名とリソース名を指定しますが、ロケールは指定しません。 ResourceManager は、localeChain 内の最初のロケールから順に、そのロケールの指定されたバンドル名を持つ ResourceBundle を検索します。 該当する ResourceBundle が存在し、その中に指定されたリソースが存在する場合、そのリソースの値が返されます。 それ以外の場合は、localeChain 内の別のロケールに検索が進みます。

このような方法でリソースが検索されるので、ローカライズされたリソースの完全なセットがロケールに含まれていなくてもかまいません。 例えば、米国英語ではなくインド英語用にアプリケーションをローカライズする場合は、米国英語とはスペルまたは用法が異なる en_IN ロケール用のリソースのみを提供し、localeChain プロパティを [ "en_IN", "en_US" ] に設定するだけで済みます。

多くのフレームワーククラスは、いくつかのロケールから必要なリソースを常に取得可能であることを前提としており、取得できない場合はエラーをスローします。 したがって、リソースの完全なセットが localeChain に常に含まれるようにする必要があります。 独自のアプリケーションのリソースを含む、フレームワークのすべてのリソースのローカライズが完了していない場合は、"en_US" ロケールを localeChain の末尾に保持しておくことにより、必要なリソースを取得できます。

このプロパティを設定すると、ResourceManager によって "change" イベントが送出されます。

ResourceManager このクラスは、IResourceManager 実装の単一のインスタンスを取得するために使用されます。Object このクラスは、IResourceManager 実装の単一のインスタンスを取得するために使用されます。 IResourceManager インタフェースと IResourceBundle インタフェースは連携して、Flex アプリケーションに対する国際化サポートを提供します。

IResourceManager 実装の単一のインスタンスで、Flex アプリケーションのローカライズされたすべてのリソースを管理します。

mx.resources.IResourceManagermx.resources.IResourceBundlegetInstance ResourceManager クラスの単一のインスタンスを取得します。IResourceManager を実装するオブジェクトです。 mx.resources:IResourceManager ResourceManager クラスの単一のインスタンスを取得します。 このオブジェクトは、Flex アプリケーションのローカライズされたすべてのリソースを管理します。
ResourceBundle IResourceBundle インタフェースの実装を提供します。mx.resources:IResourceBundleObject IResourceBundle インタフェースの実装を提供します。 IResourceManager インタフェースと IResourceBundle インタフェースは連携して、Flex アプリケーションに対する国際化サポートを提供します。

通常、Flex アプリケーションはこのクラスの複数のインスタンスを持ち、それらのすべてが ResourceManager クラスの単一のインスタンスによって管理されます。 ResourceBundle インスタンスは、それぞれが 1 つのロケールに対応する複数のバージョンが作成されます。 バンドル名の異なる複数の ResourceBundle インスタンスを共存させることができます。

mx.resources.IResourceBundlemx.resources.IResourceManagerResourceBundle コンストラクターです。localenull"en_US" などのロケールストリングです。 bundleNamenullこのバンドルを識別する名前("MyResources" など)です。 コンストラクターです。 getContent プロパティファイルをリソースバンドルにコンパイルすると、MXML コンパイラーによって ResourceBundle のサブクラスが自動的に生成されます。バンドルのリソースのキーと値のペアを含むオブジェクトです。 プロパティファイルをリソースバンドルにコンパイルすると、MXML コンパイラーによって ResourceBundle のサブクラスが自動的に生成されます。 このサブクラスはこのメソッドをオーバーライドし、バンドルのリソースのキーと値のペアを含むオブジェクトを返します。

独自の ResourceBundle インスタンスを作成する場合は、content オブジェクトにキーと値のペアを設定します。

bundleName content locale
IResourceBundle IResourceBundle インタフェースと IResourceManager インタフェースは連携して、Flex アプリケーションに対するローカライズサポートを提供します。 IResourceBundle インタフェースと IResourceManager インタフェースは連携して、Flex アプリケーションに対するローカライズサポートを提供します。

ローカライズには、ロケール、リソースおよびリソースバンドルの 3 つの主要な概念が関係します。

ロケールは、アプリケーションをローカライズした後の言語と国を指定します。 たとえば、ロケール "en_US" は、米国で使用される英語を指定します。 詳細については、mx.resources.Locale クラスを参照してください。

リソースは、ロケールに依存した名前付きの値です。 たとえば、アプリケーションに "OPEN" という名前のリソースがある場合、英語ロケールでのそのリソースの値は "Open" です。一方、フランス語ロケールの場合、値は "Ouvrir" です。

リソースバンドルは、値が特定のロケール用にローカライズされたリソースの、名前付きのグループです。 リソースバンドルは、bundleNamelocale の組み合わせによって識別され、バンドルのリソースの名前と値のペアを含む content オブジェクトを持っています。

IResourceBundle インタフェースは、特定のリソースバンドルを表します。 ただし、ほとんどのアプリケーションで使用する必要があるのは IResourceManager のみです。 このインタフェースを実装した単一の ResourceManager オブジェクトは、(場合によっては複数のロケールの)複数のリソースバンドルを管理し、リソースバンドルに含まれるリソースへのアクセスを提供します。 たとえば、resourceManager.getString(bundleName, resourceName) を呼び出すことにより、特定のリソースをストリングとして取得できます。 ResourceManager の localeChain プロパティを変更すると、リソースバンドルの検索対象のリソース値を変更できます。

通常、リソースバンドルを作成する必要はありません。リソースバンドルは ~~.properties ファイルから自動的にコンパイルされます。 MyResources.properties という名前のプロパティファイルの場合、"MyResources"bundleName であるリソースバンドルが生成されます。 プロパティファイルは通常、複数のバージョン(アプリケーションがサポートするロケールごとに 1 つずつ)を作成します。

Flex のプロパティファイルは Java のプロパティファイルと似ていますが、Flex では MXML の Embed() ディレクティブと ClassReference() ディレクティブもサポートされます。 これらのディレクティブは、プロパティファイル内でも、CSS ファイル内に記述した場合と同じようにクラス参照を作成します。 また、Flex プロパティファイルは常に UTF-8 にエンコードされているものと見なされます。

Flex フレームワークのリソースは、米国英語("en_US" ロケール)用と日本語("ja_JP" ロケール)用にローカライズされています。 フレームワークリソースは、フレームワークパッケージに対応する複数のバンドルに編成されます。たとえば、"formatters" バンドルは mx.formatters パッケージのクラスで使用されます。 複数のパッケージで使用されるリソース用の "SharedResources" バンドルもあります。

フレームワークリソース用のプロパティファイル(formatters.properties など)は、Flex SDK の frameworks/projects/framework/bundles/{locale}/src ディレクトリにあります。 通常、アプリケーションは、frameworks/libs ディレクトリ内の、Flex フレームワークのコンパイル済みライブラリである framework.swc にリンクします。 このライブラリ内にリソースはありません。 代わりに、フレームワークリソースは、framework_rb.swc などの個別のリソースバンドルライブラリにコンパイルされています。 これらのライブラリは frameworks/locales/{locale} ディレクトリにあり、アプリケーションもこれらの 1 つまたは複数のライブラリにリンクする必要があります。

アプリケーションの独自のリソースを、使いやすい任意のバンドルに編成できます。 "en_US""ja_JP" 以外のロケールのアプリケーションをローカライズする場合は、それらのロケールのフレームワークのプロパティファイルもローカライズし、そのリソースバンドルライブラリをコンパイルする必要があります。

アプリケーションを起動すると、アプリケーションにコンパイルされたリソースバンドルを使用して、ResourceManager が自動的に設定されます。 コードモジュールを作成すると、クラスに必要なリソースがデフォルトでモジュールにコンパイルされます。 モジュールがアプリケーションにロードされると、まだアプリケーションにないバンドルが ResourceManager に追加されます。

リソースのみを持つ "リソースモジュール" をコンパイルし、ResourceManager の loadResourceModule() メソッドを使用してそれらをロードできます。 リソースモジュールを使用すると、リソースをアプリケーションにコンパイルする代わりに、実行時に必要なリソースをロードして複数のロケールをサポートできます。

通常、ResourceManager は、アプリケーションにコンパイルされているかモジュールからロードしたリソースバンドルを使用して設定されますが、プログラムでリソースバンドルを作成し、addResourceBundle() メソッドを使用して ResourceManager に追加することもできます。

mx.resources.ResourceBundlemx.resources.IResourceManagermx.resources.ResourceManagerbundleName このリソースバンドルを識別する "MyResources" などの名前です。 このリソースバンドルを識別する "MyResources" などの名前です。

この読み取り専用のプロパティは、リソースバンドルを作成するときに設定されます。

コンパイル済みのプロパティファイルから自動的に作成されるリソースバンドルには、それらのファイルの名前に基づいてバンドル名が付けられます。 例えば、MyResources.properties という名前のプロパティファイルの場合、bundleName"MyResources" であるリソースバンドルが作成されます。

ResourceManager は、同じ bundleName を持つ複数のバンドルを管理できますが、各バンドルの locale プロパティの値が異なっている場合に限ります。

content このリソースバンドルのリソースのキーと値のペアを含むオブジェクトです。 このリソースバンドルのリソースのキーと値のペアを含むオブジェクトです。

リソースにアクセスするときは通常、リソースバンドル内のリソースに直接アクセスする代わりに、getString() などの IResourceManager メソッドを使用します。 ただし、プログラムで独自のリソースバンドルを作成している場合は、リソースを使用して次のようにリソースバンドルを初期化できます。

      var rb:IResourceBundle = new ResourceBundle("fr_FR", "MyResources");
      rb.content["LANGUAGE"] = "Francais";
      rb.content["GREETING"] = "Bonjour";
      

プロパティファイルをコンパイルしてリソースバンドルを作成すると、リソースの値は String 型または Class 型のいずれかになります。 例えば、プロパティファイルに次の内容が格納されているとします。

      LANGUAGE=English
      MINIMUM_AGE=18
      ENABLED=true
      LOGO=Embed("logo.png")
      

この場合、LANGUAGE リソースの値はストリング "English" になり、MINIMUM_AGE リソースの値はストリング "18" になります。また、ENABLED リソースの値はストリング "true" になり、LOGO リソースの値は埋め込まれた PNG ファイルを表すクラスになります。

getInt()getBoolean() などの IResourceManager メソッドを使用すると、"18""true" などのリソースストリングをコードに適した型に変換できます。

locale ローカライズされたこのバンドルのリソースのロケールです。 ローカライズされたこのバンドルのリソースのロケールです。 米国英語の場合の "en_US" などのストリングです。

この読み取り専用のプロパティは、リソースバンドルを作成するときに設定されます。

コンパイル済みのプロパティファイルから自動的に作成されるリソースバンドルには、mxmlc または compc -compiler.locale オプションに基づいてロケールが設定されます。 たとえば、-compiler.locale=en_US,ja_JP オプションを使用してアプリケーションをコンパイルし、resources/en_US/MyResources.properties および resources/ja_JP/MyResources.properties にあるアプリケーションのリソースが検出されるように -compiler.source-path=resources/{locale} と指定したとします。 この場合、bundleName"MyResources" の 2 つのリソースバンドルがアプリケーションに作成されます。1 つは locale"en_US" に設定され、もう 1 つは locale"ja_JP" に設定されます。