Localizer オブジェクトの
getString()
メソッドは、特定のロケールでリソースとして定義されているストリングを返します。このメソッドを呼び出すときに、
locale
値を指定する必要はありません。この場合、メソッドはロケールチェーン全体を検索し、特定のリソース名を提供する最初のロケールのストリングを返します。このメソッドのパラメーターは次のとおりです。
パラメーター
|
説明
|
|
リソースを含むバンドル。これは、.properties 拡張子を除いたプロパティファイルのファイル名です。(例えば、このパラメーターが
「alerts」
に設定されている場合、Localizer コードは alerts.properties という名前のローカリゼーションファイル内を検索します。
|
|
リソース名。
|
|
オプション。代替ストリング内の番号付きのタグを置き換えるストリングの配列。例えば、
templateArgs
パラメーターが
["Raúl", "4"]
であり、一致するリソースストリングが
"Hello, {0}. You have {1} new messages." である関数呼び出しを考えてみます。
. この場合、この関数は
"Hello, Raúl. You have 4 new messages." を返します。
この設定を無視するには、
null
値を渡します。
|
|
オプション。使用するロケールコード(
「en」
、
「en_us」
または
「fr」
など)。ロケールが指定されており、一致する値が見つからなかった場合、このメソッドはロケールチェーン内の他のロケールの値を検索しません。ロケールコードが指定されていない場合、この関数はロケールチェーン内で、指定されたリソース名に対応する値を持つ最初のロケールにあるストリングを返します。
|
ローカリゼーションフレームワークでは、マークされた HTML DOM 属性を更新できます。ただし、他の方法でもローカライズされたストリングを使用できます。例えば、動的に生成される HTML でストリングを使用したり、関数呼び出しのパラメーター値としてストリングを使用したりすることができます。例えば、次のコードは
alert()
関数を呼び出します。このとき、fr_FR ロケールのデフォルトプロパティファイルの
error114
リソースで定義されているストリングを使用します。
alert(air.Localizer.localizer.getString("default", "error114", null, "fr_FR"));
getString()
メソッドは、指定されたバンドル内でリソースが見つからなかった場合、
resourceNotFound
イベントを送出します。
air.Localizer.RESOURCE_NOT_FOUND
定数は、ストリング
「resourceNotFound」
を定義します。このイベントには、
bundleName
、
resourceName
および
locale
の 3 つのプロパティがあります。
bundleName
プロパティは、リソースが見つからないバンドルの名前です。
resourceName
プロパティは、リソースが見つからないバンドルの名前です。
locale
プロパティは、リソースが見つからないロケールの名前です。
getString()
メソッドは、指定されたバンドルが見つからなかった場合、
bundleNotFound
イベントを送出します。
air.Localizer.BUNDLE_NOT_FOUND
定数は、ストリング
「bundleNotFound」
を定義します。このイベントには、
bundleName
と
locale
の 2 つのプロパティがあります。
bundleName
プロパティは、リソースが見つからないバンドルの名前です。
locale
プロパティは、リソースが見つからないロケールの名前です。
getString()
メソッドは非同期に動作します(
resourceNotFound
イベントと
bundleNotFound
イベントを非同期に送出します)。次のコードは、
resourceNotFound
イベントと
bundleNotFound
イベントのイベントリスナーを設定します。
air.Localizerlocalizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler);
air.Localizerlocalizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, bnfHandler);
var str = air.Localizer.localizer.getString("default", "error114", null, "fr_FR");
function rnfHandler(event)
{
alert(event.bundleName + ": " + event.resourceName + ":." + event.locale);
}
function bnfHandler(event)
{
alert(event.bundleName + ":." + event.locale);
}
Localizer オブジェクトの
getResourceBundle()
メソッドは、特定のロケールの指定されたバンドルを返します。メソッドの戻り値は、バンドルのキーに一致するプロパティを持つオブジェクトです(アプリケーションで指定されたバンドルが見つからなかった場合、メソッドは
null
を返します)。
メソッドは、
locale
と
bundleName
の 2 つのパラメーターを使用します。
パラメーター
|
説明
|
|
ロケール(
"fr"
など)
|
|
バンドル名
|
例えば、次のコードは、
document.write()
メソッドを呼び出して、fr ロケールのデフォルトのバンドルを読み込みます。次に、
document.write()
メソッドを呼び出して、そのバンドル内の
str1
キーと
str2
キーの値を書き込みます。
var aboutWin = window.open();
var bundle = localizer.getResourceBundle("fr", "default");
aboutWin.document.write(bundle.str1);
aboutWin.document.write("<br/>");
aboutWin.document.write(bundle.str2);
aboutWin.document.write("<br/>");
getResourceBundle()
メソッドは、指定されたバンドルが見つからなかった場合、
bundleNotFound
イベントを送出します。
air.Localizer.BUNDLE_NOT_FOUND
定数は、ストリング
「bundleNotFound」
を定義します。このイベントには、
bundleName
と
locale
の 2 つのプロパティがあります。
bundleName
プロパティは、リソースが見つからないバンドルの名前です。
locale
プロパティは、リソースが見つからないロケールの名前です。
Localizer オブジェクトの
getFile()
メソッドは、特定のロケールのバンドルの内容をストリングとして返します。バンドルファイルは UTF-8 ファイルとして読み取られます。このメソッドのパラメーターは次のとおりです。
パラメーター
|
説明
|
|
リソースファイルのファイル名(
「about.html」
など)。
|
|
オプション。代替ストリング内の番号付きのタグを置き換えるストリングの配列。例えば、
templateArgs
パラメーターが
["Raúl", "4"]
であり、一致するリソースファイルに 2 つの行が含まれている関数呼び出しを考えてみます。
<html>
<body>Hello, {0}. You have {1} new messages.</body>
</html>
この場合、関数は 2 行のストリングを返します。
<html>
<body>Hello, Raúl. You have 4 new messages. </body>
</html>
|
|
使用するロケールコード(
「en_GB」
など)。ロケールが指定されており、一致するファイルが見つからなかった場合、このメソッドはロケールチェーン内の他のロケールで検索を続行しません。ロケールコードが指定されていない場合は、ロケールチェーン内で、
resourceFileName
に一致するファイルが存在する最初のロケールからテキストを返します。
|
例えば、次のコードは、fr ロケールの about.html ファイルの内容を使用して、
document.write()
メソッドを呼び出します。
var aboutWin = window.open();
var aboutHtml = localizer.getFile("about.html", null, "fr");
aboutWin.document.close();
aboutWin.document.write(aboutHtml);
getFile()
メソッドは、ロケールチェーン内でリソースが見つからなかった場合、
fileNotFound
イベントを送出します。
air.Localizer.FILE_NOT_FOUND
定数は、ストリング
「resourceNotFound」
を定義します。
getFile()
メソッドは非同期に動作します(
fileNotFound
イベントを非同期に送出します)。このイベントには、
fileName
と
locale
の 2 つのプロパティがあります。
fileName
プロパティは、見つからなかったファイルの名前です。
locale
プロパティは、リソースが見つからないロケールの名前です。次のコードは、このイベントのイベントリスナーを設定します。
air.Localizer.localizer.addEventListener(air.Localizer.FILE_NOT_FOUND, fnfHandler);
air.Localizer.localizer.getFile("missing.html", null, "fr");
function fnfHandler(event)
{
alert(event.fileName + ": " + event.locale);
}