アプリケーションのローカライズ

Flash Player 9 以降、Adobe AIR 1.0 以降

ローカリゼーションは、複数のロケールをサポートするアセットを含む処理です。ロケールは、言語と国コードの組み合わせです。例えば、en_US は米国で話されている英語を指し、fr_FR はフランスで話されているフランス語を指します。これらのロケールのアプリケーションをローカライズするには、2 セットのアセットを指定します。1 つは en_US ロケール用でもう 1 つは fr_FR ロケール用のものです。

ロケールでは言語を共有できます。例えば、en_US と en_GB(英国)は異なるロケールです。この場合は両方のロケールで英語を使用していますが、国コードでは両方のロケールが別のロケールであることが示されているので、別のアセットを使用している可能性があります。例えば、アプリケーションは en_US ロケールでは「color」という単語の綴りを使用しますが、en_GB ロケールでは単語の綴りは「colour」になります。また、通貨単位はロケールに応じてドルまたはポンドで表され、日付と時刻の形式も異なっている可能性があります。

国コードを指定せずに、言語アセットのセットを提供することもできます。例えば、英語用に en アセットを提供し、米国英語に固有の en_US ロケール用に追加アセットを提供できます。

ローカリゼーションは、単にアプリケーションで使用されているストリングを翻訳することではありません。これには、オーディオファイル、イメージ、ビデオなどの各種のアセットが含まれることもあります。

ロケールの選択

コンテンツまたはアプリケーションが使用するロケールを決定するには、次のいずれかの方法を使用します。

  • flash.globalization パッケージ - flash.globalization パッケージ内にあるロケール対応のクラスを使用し、オペレーティングシステムとユーザー設定に基づいて、ユーザーのデフォルトのロケールを取得します。これは、Flash Player 10.1 以降または AIR 2.0 以降のランタイム上で実行するアプリケーションに推奨される方法です。詳しくは、 ロケールの特定 を参照してください。

  • ユーザープロンプト — アプリケーションをいずれかのデフォルトロケールで起動してから、ユーザーに必要なロケールを選択するように要求できます。

  • (AIR のみ)Capabilities.languages Capabilities.languages プロパティは、オペレーティングシステムで設定されている、ユーザーが優先する言語で使用可能な言語の配列を一覧表示します。このストリングには、RFC4646( http://www.ietf.org/rfc/rfc4646.txt )で定義されている言語タグ(および該当する場合は、スクリプトおよび地域情報)が含まれます。 このストリングではハイフンが区切り文字として使用されます( "en-US" "ja-JP" など)。返された配列の最初のエントリは、language プロパティと同じプライマリ言語 ID です。例えば、 languages[0] "en-US" に設定されている場合、 language プロパティは "en" に設定されています。 ただし、language プロパティが "xu" (不明な用語を指定する)に設定されている場合は、 languages 配列の最初のエレメントは異なります。

  • Capabilities.language - Capabilities.language プロパティは、オペレーティングシステムのユーザーインターフェイスの言語コードを示します。ただし、このプロパティは 20 個の既知の言語に制限されています。英語のシステムでは、このプロパティは言語コードのみを返し、国コードは返しません。このような理由から、 Capabilities.languages 配列の最初のエレメントを使用することをお勧めします。

Flex コンテンツのローカライズ

Adobe Flex には、Flex コンテンツをローカライズするためのフレームワークが含まれています。このフレームワークには、Locale、ResourceBundle、ResourceManagerImpl の各クラスと、IResourceBundle、IResourceManagerImpl の各インターフェイスが含まれています。

アプリケーションのロケールを並べ替えるユーティリティクラスを含む Flex ローカリゼーションライブラリが Google Code(http://code.google.com/p/as3localelib/)に公開されています。

Flash コンテンツのローカライズ

Adobe Flash Professional には、ActionScript 3.0 コンポーネントの Locale クラスが含まれています。Locale クラスを使用すると、SWF ファイルでの多言語テキストの表示方法を指定できます。Flash のストリングパネルでは、ダイナミックテキストフィールドでストリングリテラルの代わりにストリング ID を使用できます。この機能により、言語別の XML ファイルからテキストを読み込んで表示する SWF ファイルを作成できます。Locale クラスの使用について詳しくは、「 Adobe Flash Platform 用 ActionScript 3.0 リファレンスガイド 」を参照してください。

AIR アプリケーションのローカライズ

AIR SDK には、HTML ローカリゼーションフレームワーク(AIRLocalizer.js ファイルに含まれる)が用意されています。このフレームワークには、HTML ベースのアプリケーションで複数のロケールを操作するのに役立つ API が含まれています。ロケールを並べ替える ActionScript ライブラリが http://code.google.com/p/as3localelib/ に公開されています。

日付、時刻および通貨のローカライズ

アプリケーションが日付、時刻および通貨を表示する方法は各ロケールで大きく異なります。例えば、日付表示に関する米国標準が month/day/year であるのに対してヨーロッパ標準では day/month/year になります。

日付、時刻および通貨の形式を指定するコードを作成できます。例えば、次のコードは Date オブジェクトを month/day/year 形式または day/month/year 形式に変換します。 locale 変数(ロケールを表す)が "en_US" に設定されている場合、この関数は month/day/year 形式を返します。この例は、他のすべてのロケールについては、Date オブジェクトを day/month/year 形式に変換します。

function convertDate(date) 
{ 
    if (locale == "en_US") 
    { 
        return (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear(); 
    } 
    else 
    { 
        return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); 
    } 
}

ADOBE FLEX

Flex フレームワークには、日付、時刻および通貨の形式を設定するためのコントロールが含まれています。これには、DateFormatter コントロールや CurrencyFormatter コントロールが含まれています。