nod::ぶろぐ:RIA::Flex/AIR/Flash

FlashやFlex,(Ajax),S2Flex2,ActionScript3,yui-frameworks,Akabanaプロジェクトなどのメモ帳

antを利用してFlex2での国際化対応を試してみる。(Beta2)

Flex2 Beta1から新機能として追加された、国際化対応をず~と試したいと思っていたのですが手付かずのままBeta2になってしばらく経ちました。

そこでFlex2 Beta2で改めて、国際化対応の内容を確かめてみました。

このエントリーでもふれていますが、Beta1から国際化対応として、ResourceBundleを利用してメッセージを外部ファイル化することが可能になっています。

しかし、Javaのようにpropertyファイルをクラスパスにに含めれば利用できるという訳ではなく、swcファイルとしてまとめないと利用することができないようです。

Localizeされたアプリケーションを作成するには以下のステップで行います。
・プロパティを含んだswc作成
・作成したswcを--include-librariesオプションでリンクしてmxmlをコンパイル

詳細はここにあるので、その通りに行えば作れると思いますが、忘れないように一部のポイントだけ書きます。

1.プロパティファイルの作成

まず新規にFlex プロジェクトを作成して、localeフォルダを作成します。 つぎに作成したディレクトリにja_JP,en_USフォルダを作成します。 このフォルダが次のcompcで指定するlocale名称になります。 作成したロケール単位のフォルダ下にプロパティファイルを作成します。

プロパティはHelloWorld.propertiesとして作成します。


${project}/locale/ja_JP/HelloWorld.properties
${project}/locale/en_US/HelloWorld.properties


2.compcでswcファイルの作成


作成したプロパティをcompcを利用して、swcファイルにまとめます。
-localeオプションを利用してそのswcのlocaleを指定します。

compc -locale ja_JP -actionscript-classpath locale/{locale} -include-resource-bundles HelloWorld -output locale/ja_JP/HelloWorld.swc

3.作成したswcをリンクしてmxmlcを実行してswfを作成

2.で指定したプロパティの内容を含んだswcを"-include-libraries"で指定してmxmlcを実行します。

これで、完成です。mxmlのファイル名で拡張子が"swf"になったファイルが
生成されていると思います。


アプリケーション作成時に、ラベルなどの文字列が増えるたびにcompc->mxmlcを繰り返し行うのは面倒ですし、効率もよくありません。

そこで、antを利用してcompcとmxmlcを行うようにしてみました。

buildをすると、まず最初にcompcで"ja"と"en"のリソースをswc化します。
その後mxmlcも"ja"と"en"2回実行してswfを生成します。

作成したbuild.xmlを含むプロジェクトはこちら

antをeclipseから利用するには、JDT(javaの開発環境)が必要になります。
Flex Builder2単体だとJDTが含まれていません。
別途アップデートサイトなどからダウンロードする必要があります。

Beta2から、Flex Builderもフレームワーク以下に環境に応じたlocaleがないとコンパイル時にエラーがでるようになってしまいます。

現状"en_US"を"ja_JP"にコピーして利用しています。
Validatorなどのメッセージを国際化(日本語対応)にするには、コピーした"ja_JP"以下のプロパティを変更してcompcでframework_rb.swcを再作成すればできるかもしれません。


S2Flex2の次(かその次(^_^;)) のリリース時にsampleなどは国際化対応したものにしてみようと思います。

プロパティエディタ
プロパティファイルを日本語で記述するときに便利です。
http://propedit.sourceforge.jp/

Creating a localized application
まずはここから
http://livedocs.macromedia.com/labs/1/flex20beta2/00001162.html

Building a simple localized application
compcとmxmlcを使って作成します。
http://livedocs.macromedia.com/labs/1/flex20beta2/00001171.html


About the command line compilers
ant のbuild.xmlを作るときに参考にしました。
http://livedocs.macromedia.com/labs/1/flex20beta2/00002751.html

About the application compiler options
http://livedocs.macromedia.com/labs/1/flex20beta2/00002763.html

publisherは?
これらもあながちまちがいぢゃなかったのか...
http://livedocs.macromedia.com/labs/1/flex20beta2/00002765.html

Posted by nod at 2006年04月22日 12:37 | コメント (2) | トラックバック (0) | Clip!! | Clip!! | このエントリーを含むはてなブックマーク |digg it! |del.icio.us it!

この記事に対するコメント

まとめていただき、ありがとうございます。
ちょっと面倒ですよね、一回SWCにしないといけないのは。

(livedocs 開かないですね...何か作業をしているのでしょうか...)

Posted by: ぺぺ at 2006年04月22日 16:40

ぺぺさん コメントどうもありがとうございます。

リソースのみのswcにするのはやっぱりめんどーですよね。
実行時ぢゃなくてコンパイル時にlocaleを決めるので、ロケールの数だけswf作らないといけないですし..

ふと思ったのですが、FDS2の場合はどうやってロケールを指定するでしょうね? パラメータ?flex-config.xml?

知っていたら、(わかったら)教えてください。m(__)m

(livedocsはうちの環境からは見えました。)


でもでも

Posted by: nod at 2006年04月24日 01:28

コメントを投稿する




保存しますか?



この記事のトラックバックURL


この記事に対するトラックバック

この記事に対するトラックバックはまだありません。



Flex.org - The Directory for Flex Get Adobe Flash Player Made with dreamweaverMade with fireworksPowered by Movable Type 3.36Powered by Wandering Wind
Copyright : [Articles] (C) nod::ぶろぐ:RIA::Flex/AIR/Flash All Rights Reserved.
[Comments/Trackbacks] ... Authors of those have rights.