メイン | [Flex2] DataGridの編集にComboBoxを使用する »

[Flex2] Flex2の多言語対応

Flex2で多言語に対応するための手順をメモしときます。

Flex2で多言語対応を行うには、propertiesファイルを使用します。
propertiesファイルは各言語用の単語辞書のようなもので、このファイルに
Message=メッセージ
といった具合にキーと値のペアで記述します。

まずは、このpropertiesファイルを保存するフォルダを用意します。
場所は任意の場所で構いませんが、今回の例ではプロジェクト内に「locale」という名前のフォルダを作成しました。
さらにその下に、各言語用のフォルダを作成します。
例では、日本語用の「ja_JP」と英語用の「en_US」を作成しています。
このフォルダ内に、それぞれの言語用のpropertiesファイルを同じ名前で保存します。
ファイル名はxxxx.properties(xxxxの部分は任意)とします。

次に、このファイルを参照するための設定として、Flex Builderでプロジェクトのプロパティを開き、Flexビルドパスのソースパスタブでpropertiesファイルを置いたフォルダを追加します。
Flexビルドパス画面

その際、ja_JPやen_USのフォルダは{locale}と記述します。
例えば、
C:\FlexBuilder\locale
の下にja_JPとen_USがある場合、
C:\FlexBuilder\locale\{locale}
という具合に記述します。

最後に、プロジェクトのプロパティウィンドウのFlexコンパイラの画面にある「追加コンパイラ引数」で言語を指定します。(デフォルトの状態では-locale ja_JPが指定されてると思います。)
Flexコンパイラ画面

各言語用のSWFを作成しなければなりませんので、別の言語用にコンパイルする際は出力先を変えるなどしてください。


続いて、MXMLやAction Scriptから読み出す方法ですが、MXMLでは、
<mx:Label text="@Resource(key='キー名', bundle='propertiesファイル名')" />

と記述します。

Action Scriptでは、mx.resources.ResourceBundleクラスを使用します。
[ResourceBundle("propertiesファイル名")]
private var rb:mx.resources.ResourceBundle;
Alert.show(rb.getString("キー名"));

として読み出すことができます。

サンプルを作成しましたので、詳しくはそちらを見てください。
(コンテキストメニューからソースを見ることができます。)
サンプルページ


トラックバック

このエントリーのトラックバックURL:
http://blog.yamaneko-web.com/mt/mt-tb.cgi/3

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

スポンサードリンク

About

2007年07月13日 01:30に投稿されたエントリーのページです。

次の投稿は「[Flex2] DataGridの編集にComboBoxを使用する」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。