flash.globalization パッケージの概要

Flash Player 10.1 以降、Adobe AIR 2.0 以降

flash.globalization パッケージは、基になるオペレーティングシステムの文化サポート機能を利用します。これによって、個別のユーザーの文化上の表記規則に準拠したアプリケーションの記述が容易になります。

パッケージに含まれる主なクラスは、次のとおりです。

  • 文字列の並べ替えと照合を管理する Collator クラス

  • 数値を通貨の金額文字列の形式に変更し、入力文字列から通貨の金額と記号を解釈する CurrencyFormatter クラス

  • 日付の値の形式を設定する DateTimeFormatter クラス

  • 特定のロケールに関する情報を取得する LocaleID クラス

  • 数値の形式の設定および解釈を行う NumberFormatter クラス

  • ロケールに基づいた文字列の大文字と小文字の変換を処理する StringTools クラス

flash.globalization パッケージとリソースのローカリゼーション

flash.globalization パッケージはリソースのローカリゼーションを処理しません。ただし、他のテクニックを使用して、ローカライズされたリソースを取得するためのキー値として、flash.globalization ロケール ID を使用できます。例えば、ResourceManager クラスおよび ResourceBundle クラスを使用して、Flex で作成されたアプリケーションリソースをローカライズできます。詳しくは、「 Flex アプリケーションのローカライズ 」を参照してください。

AIR アプリケーションのローカライズ で説明しているように、Adobe AIR 1.1 には、AIR アプリケーションのローカライズに役立ついくつかの機能が用意されています。

アプリケーション国際化の一般的な方法

次の手順は、flash.globalization パッケージを使用してアプリケーションを国際化するための高レベルな共通の手順を示しています。

  1. ロケールを決定または設定します。

  2. サーバークラスのインスタンス(Collator、CurrencyFormatter、DateTimeFormatter、NumberFormatter または StringTools)を作成します。

  3. lastOperationStatus プロパティを使用してエラーと代替を確認します。

  4. ロケールに固有の設定を使用して、情報の形式を設定し、表示します。

次の手順では、ロケールに固有の文字列およびユーザーインターフェイスリソースをロードおよび表示します。この手順には次のようなタスクを含めることができます。

  • 自動レイアウト機能を使用して、文字列の長さに合わせて UI のサイズを変更する

  • 適切なフォントを選択し、フォントの代替をサポートする

  • FTE テキストエンジンを使用して他の書き込みシステムをサポートする

  • 入力方式エディターが正しく処理されることを確認する

エラーと代替の確認

flash.globalization サービスクラスではすべて、同様のパターンに従ってエラーを識別します。また、要求されているロケールが使用できない場合に、その代わりとして、ユーザーのオペレーティングシステムがサポートしているロケールを使用するときの代替パターンも共有しています。

次の例は、サービスクラスをインスタンス化するときのエラーと代替の確認方法を示しています。各サービスクラスには、直前のメソッド呼び出しでエラーまたは警告がトリガーされたかどうかを示す lastOperationStatus プロパティがあります。

var nf:NumberFormatter = new NumberFormatter("de-DE"); 
if(nf.lastOperationStatus != LastOperationStatus.NO_ERROR) 
{ 
    if(nf.lastOperationStatus == LastOperationStatus.USING_FALLBACK_WARNING) 
    { 
        // perform fallback logic here, if needed 
        trace("Warning - Fallback locale ID: " + nf.actualLocaleIDName); 
    } 
    else 
    { 
        // perform error handling logic here, if needed 
        trace("Error: " + nf.lastOperationStatus); 
    } 
}

この例では、代替ロケール ID が使用されたか、エラーがある場合に、単純にメッセージをトレースします。アプリケーションでは、必要に応じて追加のエラー処理ロジックを実行できます。例えば、メッセージをユーザーに表示して、サポートされている特定のロケールを使用するようにアプリケーションに強制することができます。