Localize » 履歴 » リビジョン 8
リビジョン 7 (Akiko Takano, 2010/07/26 16:30) → リビジョン 8/10 (Akiko Takano, 2010/07/28 05:36)
{{>toc}} h1. Localize Feature #452 のための、ローカライズの方法を記載します。 Flex/Airアプリケーションのローカライズは、下記を参考にしています。 # "Adobe AIRアプリケーションのローカライズ(AIR1.5) ":http://help.adobe.com/ja_JP/AIR/1.5/devappshtml/WSB2927578-20D8-4065-99F3-00ACE6511EEE.html # "Flex アプリケーションのローカライズ ":http://livedocs.adobe.com/flex/3_jp/html/help.html?content=l10n_1.html RedmineAirは、HTML+JSでのアプリケーションではなく、ActionScript+mxmmlの従来の方法で作られています。 このため、Flexと共通のResourceBundleを利用してローカライズを行っています。(ver0.0.2現在) h2. Resourceファイルの設定 h3. ファイルの設置場所 基本的には、AIRプロジェクトのホームディレクトリの下に、 *locale* というフォルダを作成します。 次に、その下に各言語に対応したフォルダを作り、プロパティファイルを配置します。 RedmineAirの場合は、下記のようになっています。 <pre> RedmineAir/ - locale - en_US - messages.properties - ja_JP - messages.properties </pre> h3. メッセージファイル(プロパティファイル)の記述のルール ファイルの記述のルール * UTF-8で記載します。 * 先頭に"#"が付いた行はコメント扱いされます。 * key=valueの形式で記述します。 メッセージのkeyについては、おおざっぱですがこんな感じで区別しています。 * label_xxxx : ラベル名や固定表示用のテキスト (Redmineに倣った感じで) * tips_xxxxx : ToolTip用のメッセージ * notice_xxx : アラートメッセージなどの警告を促すもの h3. ActionScript/mxmlファイル内での利用方法 * ResourceManager.getString()メソッドを利用してそのときのlocale設定に合ったメッセージを返します。 ** Ref. http://livedocs.adobe.com/flex/3_jp/html/help.html?content=l10n_6.html ** メインのアプリケーションでは、newしなくても resourceManagerのインスタンスが存在しますので、すぐ利用可能です。 * コードが冗長な感じがしますが、ランタイムの切り替えは、 *このように記載しないと変更が反映されないようです* 。(バインディングの関係?) ** Exp. resourceManager.getString("messages", "OPEN") *** localeにあわせた messages.properties内のOPENというキーワードを表示。 h2. お役立ちツール 複数言語のResourceファイルを一度に作成するのは結構面倒です。 また、一度登録済みのキーをわすれて、再度記載してしまうこともあります。 今回は、ローカライズの補助のため、下記のツールを使ってみました。 メッセージのローカライズの方法についても、簡単に説明があります。 * LocaleMaker (日本の方が作者のAIRアプリです!) ** http://homepage.mac.com/daoki2/air/LocaleMaker/manual.html ** 生成元のデータは、SQLiteを利用しているようです。参考になるかも。