Flex2ではコンパイル時に-localeオプションを指定して文字列や画像を含むresourceリンクを決定します。
Flex Builder 2ではこのlocaleをプロジェクト作成時に決めているようです。
Flexプロジェクトを新規に作成すると、Flex Compiler オプションの項目に自動的に
-locale en_US
と入っていると思います。
Beta2の頃からこのLocalizeの仕組みが追加されたのですが 、複数Locale対応のコンテンツを作成するときには、Localeの数だけmxmlcを実行するというものでした。
つまりLocale単位でswf ファイルをコンパイルして生成するとのこと..
RSLと組み合わせることで、mxmlファイルをリコンパイルせずでResoruceから取得する文字列を変更することはできることはわかりました。
ActionScript内で動的にLocaleを変更する方法がわからず調べてみるとlivedocsに以下の記述がありました。
Creating the application SWF file
http://livedocs.macromedia.com/flex/2/docs/00000904.html
一部を引用します。
The locale that is packaged in the SWF file. You run the mxmlc compiler
multiple times to create SWF files for more than one locale, and change only
the locale option.
もう一回。
one locale and change only the locale and change only the locale option.( ̄□ ̄;)!!
ひとつのlocaleしか持てなくて、変更はコンパイル時のlocaleオプションのみ可能であると書いてあるように思います。
livedocsのドキュメントをみても、設定後ResourceBundleから該当するLocaleに含まれてるResourceを取得するということができるかわかりません。
実行時にLocaleを変更することはAS3ではできないということになるのでしょうか?
FlexCoder ::sato-shiさんのところで紹介されていた、 Flex をフロントにしたサイト解析では変更していたようにもみえます。
なにか方法があるのでしょうか...
それとも別の方法?
Localeクラスを拡張するとか
Application.application.systemManagerを拡張したクラスをつくるとか
知っている方いましたら教えてください。m(__)m
mx.resources.Locale@livedocs
readOnlyなプロパティばかりなり...
http://livedocs.macromedia.com/flex/2/langref/mx/resources/Locale.html
Creating the application SWF file
http://livedocs.macromedia.com/flex/2/docs/00000904.html
Dynamically Localizing Flex Applications
海外で擬似的に動的に変更していた例は以下のものでした。
XMLファイルをloaderで読み込んでいます。
http://www.blog2e.com/2006/05/09/localizing_flex/
この記事に対するコメント