パッケージmx.resources
インターフェイスpublic interface IResourceManager extends IEventDispatcher
実装者 ResourceManagerImpl

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.ResourceManager
mx.resources.IResourceBundle
mx.resources.ResourceBundle


パブリックプロパティ
 プロパティ定義元
  localeChain : Array
リソースに対する検索で検索対象の 1 つまたは複数のロケールを指定する、[ "en_US" ] などのロケールストリングの配列です。
IResourceManager
パブリックメソッド
 メソッド定義元
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
IEventDispatcher
  
指定された ResourceBundle が ResourceManager に追加され、getString() などの ResourceManager メソッドでそのリソースにアクセスできるようになります。
IResourceManager
 Inherited
イベントをイベントフローに送出します。
IEventDispatcher
  
指定されたリソースの localeChain 内のロケールを検索し、最初に検出したリソースバンドルを返します。
IResourceManager
  
getBoolean(bundleName:String, resourceName:String, locale:String = null):Boolean
ブール型として指定されているリソースの値を取得します。
IResourceManager
  
ResourceManager に存在し、指定されたロケールに属するすべての ResourceBundle オブジェクトのバンドル名を指定するストリングの配列を返します。
IResourceManager
  
getClass(bundleName:String, resourceName:String, locale:String = null):Class
クラスとして指定されているリソースの値を取得します。
IResourceManager
  
getInt(bundleName:String, resourceName:String, locale:String = null):int
整数として指定されているリソースの値を取得します。
IResourceManager
  
ResourceManager に存在する ResourceBundle オブジェクトのすべてのロケールを指定するストリングの配列を返します。
IResourceManager
  
getNumber(bundleName:String, resourceName:String, locale:String = null):Number
数値として指定されているリソースの値を取得します。
IResourceManager
  
getObject(bundleName:String, resourceName:String, locale:String = null):*
オブジェクトとして指定されているリソースの値を取得します。
IResourceManager
  
Capabilities.language または Capabilities.languages により報告されたように、ユーザー環境設定を使用して順序付けられた、ResourceManager に存在する ResourceBundle オブジェクトのすべてのロケールを指定するストリングの配列を返します。
IResourceManager
  
以前に addResourceBundle() を使用して ResourceManager に追加された、指定された locale と bundleName を持つ ResourceBundle を返します。
IResourceManager
  
getString(bundleName:String, resourceName:String, parameters:Array = null, locale:String = null):String
プレースホルダを指定された値に置き換えた後で、ストリングとして指定されたリソースの値を取得します。
IResourceManager
  
getStringArray(bundleName:String, resourceName:String, locale:String = null):Array
ストリングの配列として指定されているリソースの値を取得します。
IResourceManager
  
getUint(bundleName:String, resourceName:String, locale:String = null):uint
指定されたリソースの値を uint として取得します。
IResourceManager
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
IEventDispatcher
  
IFlexModuleFactory を実装するクラスでのみ使用されます。
IResourceManager
  
installCompiledResourceBundles(applicationDomain:ApplicationDomain, locales:Array, bundleNames:Array):void
IFlexModuleFactory を実装するクラスでのみ使用されます。
IResourceManager
  
loadResourceModule(url:String, update:Boolean = true, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null):IEventDispatcher
リソースバンドルを含むリソースモジュールのロードを開始します。
IResourceManager
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
IEventDispatcher
  
指定された ResourceBundle が ResourceManager から削除され、getString() などの ResourceManager メソッドでそのリソースにアクセスできなくなります。
IResourceManager
  
指定されたロケールのすべての ResourceBundle が ResourceManager から削除され、getString() などの ResourceManager メソッドでそのリソースにアクセスできなくなります。
IResourceManager
  
このメソッドはまだ実装されていません。
IResourceManager
  
ResourceManager から change イベントを送出します。
IResourceManager
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
IEventDispatcher
プロパティの詳細
localeChainプロパティ
localeChain:Array

リソースに対する検索で検索対象の 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" イベントが送出されます。



実装
    public function get localeChain():Array
    public function set localeChain(value:Array):void
メソッドの詳細
addResourceBundle()メソッド
public function addResourceBundle(resourceBundle:IResourceBundle):void

指定された ResourceBundle が ResourceManager に追加され、getString() () などの ResourceManager メソッドでそのリソースにアクセスできるようになります。

パラメータ

resourceBundle:IResourceBundle — 追加するリソースバンドルです。

findResourceBundleWithResource()メソッド 
public function findResourceBundleWithResource(bundleName:String, resourceName:String):IResourceBundle

指定されたリソースの localeChain 内のロケールを検索し、最初に検出したリソースバンドルを返します。 リソースが見つからなかった場合、このメソッドは null を返します。

パラメータ

bundleName:String"MyResources" などのバンドル名です。
 
resourceName:String — リソースバンドルのリソースの名前です。

戻り値
IResourceBundle — 指定されたリソースが含まれた localeChain 内の最初の ResourceBundle、または null です。
getBoolean()メソッド 
public function getBoolean(bundleName:String, resourceName:String, locale:String = null):Boolean

ブール型として指定されているリソースの値を取得します。

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

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

パラメータ

bundleName:String — リソースバンドルの名前です。
 
resourceName:String — リソースバンドルのリソースの名前です。
 
locale:String (default = null) — 参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメータはオプションであり、デフォルトは null です。このパラメータの指定が必要になることはほとんどありません。

戻り値
Boolean — ブール値としてのリソース値、または、リソースが見つからない場合は false です。
getBundleNamesForLocale()メソッド 
public function getBundleNamesForLocale(locale:String):Array

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

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

パラメータ

locale:String"en_US" などのロケールストリングです。

戻り値
Array — バンドル名の配列です。

関連項目

getClass()メソッド 
public function getClass(bundleName:String, resourceName:String, locale:String = null):Class

クラスとして指定されているリソースの値を取得します。

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

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

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

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

パラメータ

bundleName:String — リソースバンドルの名前です。
 
resourceName:String — リソースバンドルのリソースの名前です。
 
locale:String (default = null) — 参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメータはオプションであり、デフォルトは null です。このパラメータの指定が必要になることはほとんどありません。

戻り値
ClassClass としてのリソース値、または、リソースが見つからない場合は null です。
getInt()メソッド 
public function getInt(bundleName:String, resourceName:String, locale:String = null):int

指定されたリソースの値を int として取得します。

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

      MINIMUM=5
      

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

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

パラメータ

bundleName:String — リソースバンドルの名前です。
 
resourceName:String — リソースバンドルのリソースの名前です。
 
locale:String (default = null) — 参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメータはオプションであり、デフォルトは null です。このパラメータの指定が必要になることはほとんどありません。

戻り値
int — int で表されたリソース値です。リソースが見つからない場合は 0 です。
getLocales()メソッド 
public function getLocales():Array

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

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

戻り値
Array — ロケールストリングの配列です。
getNumber()メソッド 
public function getNumber(bundleName:String, resourceName:String, locale:String = null):Number

数値として指定されているリソースの値を取得します。

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

      LONGITUDE=170.3
      

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

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

パラメータ

bundleName:String — リソースバンドルの名前です。
 
resourceName:String — リソースバンドルのリソースの名前です。
 
locale:String (default = null) — 参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメータはオプションであり、デフォルトは null です。このパラメータの指定が必要になることはほとんどありません。

戻り値
Number — 数値としてのリソース値、または、リソースが見つからない場合は NaN です。
getObject()メソッド 
public function getObject(bundleName:String, resourceName:String, locale:String = null):*

オブジェクトとして指定されているリソースの値を取得します。

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

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

パラメータ

bundleName:String — リソースバンドルの名前です。
 
resourceName:String — リソースバンドルのリソースの名前です。
 
locale:String (default = null) — 参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメータはオプションであり、デフォルトは null です。このパラメータの指定が必要になることはほとんどありません。

戻り値
*content オブジェクトに格納されているそのままの状態のリソース値です。リソースが見つからない場合は undefined です。
getPreferredLocaleChain()メソッド 
public function getPreferredLocaleChain():Array

Capabilities.language または Capabilities.languages により報告されたように、ユーザー環境設定を使用して順序付けられた、ResourceManager に存在する ResourceBundle オブジェクトのすべてのロケールを指定するストリングの配列を返します。

戻り値
Array — ロケールストリングの配列です。
getResourceBundle()メソッド 
public function getResourceBundle(locale:String, bundleName:String):IResourceBundle

指定された localebundleName を持つ ResourceBundle(以前に addResourceBundle() () を使用して ResourceManager に追加されたもの)を返します。 該当する ResourceBundle がない場合、このメソッドは null を返します。

パラメータ

locale:String"en_US" などのロケールストリングです。
 
bundleName:String"MyResources" などのバンドル名です。

戻り値
IResourceBundle — 指定された locale および bundleName を持つ(存在する場合)ResourceBundle です。見つからない場合は null です。

関連項目

getString()メソッド 
public function getString(bundleName:String, resourceName:String, parameters:Array = null, locale:String = null):String

ストリングとして指定されたリソースの値を、プレースホルダを指定された値に置き換えた後で取得します。

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

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

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

パラメータ

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

戻り値
String — ストリングとしてのリソース値、または、リソースが見つからない場合は null です。
getStringArray()メソッド 
public function getStringArray(bundleName:String, resourceName:String, locale:String = null):Array

ストリングの配列として指定されているリソースの値を取得します。

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

      COUNTRIES=India, China, Japan
      

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

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

パラメータ

bundleName:String — リソースバンドルの名前です。
 
resourceName:String — リソースバンドルのリソースの名前です。
 
locale:String (default = null) — 参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメータはオプションであり、デフォルトは null です。このパラメータの指定が必要になることはほとんどありません。

戻り値
Array — ストリングの配列としてのリソース値、または、リソースが見つからない場合は null です。
getUint()メソッド 
public function getUint(bundleName:String, resourceName:String, locale:String = null):uint

指定されたリソースの値を uint として取得します。

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

      MINIMUM=5
      

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

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

パラメータ

bundleName:String — リソースバンドルの名前です。
 
resourceName:String — リソースバンドルのリソースの名前です。
 
locale:String (default = null) — 参照に使用する特定のロケールです。null の場合は、localeChain 内のすべてのロケールを検索します。 このパラメータはオプションであり、デフォルトは null です。このパラメータの指定が必要になることはほとんどありません。

戻り値
uint — uint で表されたリソース値です。リソースが見つからない場合は 0 です。
initializeLocaleChain()メソッド 
public function initializeLocaleChain(compiledLocales:Array):void

IFlexModuleFactory を実装するクラスでのみ使用されます。

パラメータ

compiledLocales:Array

installCompiledResourceBundles()メソッド 
public function installCompiledResourceBundles(applicationDomain:ApplicationDomain, locales:Array, bundleNames:Array):void

IFlexModuleFactory を実装するクラスでのみ使用されます。

パラメータ

applicationDomain:ApplicationDomain
 
locales:Array
 
bundleNames:Array

loadResourceModule()メソッド 
public function loadResourceModule(url:String, update:Boolean = true, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null):IEventDispatcher

リソースバンドルを含むリソースモジュールのロードを開始します。

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

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

パラメータ

url:String — リソースモジュールのロード元の URL です。
 
update:Boolean (default = true) — モジュールのロードが終了したときに update() メソッドを呼び出すかどうかを指定します。
 
applicationDomain:ApplicationDomain (default = null) — リソースモジュールをロードする IModuleInfo クラスの load() メソッドに渡される ApplicationDomain です。このパラメータはオプションであり、デフォルトは null です。
 
securityDomain:SecurityDomain (default = null) — リソースモジュールをロードする IModuleInfo クラスの load() メソッドに渡される SecurityDomain です。このパラメータはオプションであり、デフォルトは null です。

戻り値
IEventDispatcherResourceEvent.PROGRESSResourceEvent.COMPLETE および ResourceEvent.ERROR の各イベントを送出するこの特定のロード操作に関連付けられたオブジェクトです。

関連項目

removeResourceBundle()メソッド 
public function removeResourceBundle(locale:String, bundleName:String):void

指定された ResourceBundle が ResourceManager から削除され、getString() () などの ResourceManager メソッドでそのリソースにアクセスできなくなります。

パラメータ

locale:String"en_US" などのロケールストリングです。
 
bundleName:String"MyResources" などのバンドル名です。

関連項目

removeResourceBundlesForLocale()メソッド 
public function removeResourceBundlesForLocale(locale:String):void

指定されたロケールのすべての ResourceBundle が ResourceManager から削除され、getString() () などの ResourceManager メソッドでそのリソースにアクセスできなくなります。

パラメータ

locale:String"en_US" などのロケールストリングです。

関連項目

unloadResourceModule()メソッド 
public function unloadResourceModule(url:String, update:Boolean = true):void

このメソッドはまだ実装されていません。

パラメータ

url:String
 
update:Boolean (default = true)

update()メソッド 
public function update():void

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

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

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





 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/mx/resources/IResourceManager.html