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

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

Flex3のRuntime Localizationを試してみる(Beta1)

Flex 2では、コンパイル時にlocaleを一つだけ指定してswfファイルを生成します。
コンパイル後のlocaleは読み出し専用になっていました。
その為ResourceBundleなどで文字列を外部化しても多言語対応をするには、複数のswfを作成する必要があります。

文字列を動的に切り替えるのは昔のエントリーで紹介した例やFlex User GroupのOrigamiProjectなどでありましたが、Flex 3になってRuntime Localizationがサポートされるようになっていました。



(クリックでサンプル表示)
※これはFlex Beta1で試したものです。

ボタンをクリックすることでlocaleChainの値が切り替わりメッセージやコンポーネントで使用しているresourceが切り替わりました\(^o^)/。

サンプルを作成するにあたりコンパイルオプションでは、以下のものを指定しています。

-locale=ja_JP,en_US -source-path=../locale/{locale}

ランタイムで動的にlocaleを切り替えて文字列を変更するにはresourceManager.localeChainを変更することで対応できます。
localeChainは文字列で指定するのではなく配列で指定することになっているとの事。

resourceManager.localeChain = [ "ja_JP" ];

@Resourceでの指定では、localeの値が優先されるようです。
サンプルの最初の文字列は以下のように指定して表示しています。

@Resource(bundle='myResources', key='GREETING')

resourceChainを変更しても文字列に変化なしでした。

しかしながらresourceManager経由で指定するとlocaleChainの値が即座に反映されました。


{resourceManager.getString('myResources','GREETING')}

サンプルの2つ目の文字列はlocaleChainを利用して表示しているのでlocaleにあったものに変更されます。

またlocaleChainを変更するとFlex Frameworkのコンポーネントも変わるようです。
上記の例ではカレンダーやDateChooserが切り替わることがわかります。

RuntimeLocalizationができるようになった事で、アプリケーションのコンポーネントとして保持しているメッセージはResourceBundleで、アプリケーションが表示するメッセージはサーバ側の実装と共用のものを使うといった形になると開発後のメンテナンスがしやすくなるのでは?と考えています。

#利用の仕方がこれをみればわかります。
Flex 3:Feature Introductions: Runtime Localization - Adobe Labs
http://labs.adobe.com/wiki/index.php/Flex_3:Feature_Introductions:_Runtime_Localization

#作成したサンプルはこちら
http://www.noridon.net/weblogs/archives/images/flex3/runtime/RuntimeLocalization.html

#Localizationに関する昔のエントリー。
#その他、エントリーにはありませんが2006MaxでFlex User Groupが紹介したアプリケーションでも別の方法で実現しています。
Flex2アプリケーションでLocaleを実行時に変更する(2):nod::ぶろぐ::RIA::Flash/Flex/Ajax
http://www.noridon.net/weblogs/archives/2006/08/flex2_4.html

※2007/10/03追記
#去年もlocaleについてはエントリー書いていました。^^
Flex2ではLocaleを実行時に変更できない。のか?:nod::ぶろぐ::RIA::Flash/Flex/Ajax
http://www.noridon.net/weblogs/archives/2006/07/flex2locale.html

Posted by nod at 2007年10月02日 03:00 | コメント (0) | トラックバック (0) | Clip!! | Clip!! | このエントリーを含むはてなブックマーク |digg it! |del.icio.us it!

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

この記事に対するコメントはまだありません。


コメントを投稿する




保存しますか?



この記事のトラックバック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.