操作
- 目次
- Localize
Localize¶
Feature #452 のための、ローカライズの方法を記載します。
Flex/Airアプリケーションのローカライズは、下記を参考にしています。RedmineAirは、HTML+JSでのアプリケーションではなく、ActionScript+mxmmlの従来の方法で作られています。
このため、Flexと共通のResourceBundleを利用してローカライズを行っています。(ver0.0.2現在)
Resourceファイルの設定¶
ファイルの設置場所¶
基本的には、AIRプロジェクトのホームディレクトリの下に、 locale というフォルダを作成します。
次に、その下に各言語に対応したフォルダを作り、プロパティファイルを配置します。
RedmineAirの場合は、下記のようになっています。
RedmineAir/ - locale - en_US - messages.properties - ja_JP - messages.properties
メッセージファイル(プロパティファイル)の記述のルール¶
- UTF-8で記載します。
- 先頭に"#"が付いた行はコメント扱いされます。
- key=valueの形式で記述します。
メッセージのkeyについては、おおざっぱですがこんな感じで区別しています。
- label_xxxx : ラベル名や固定表示用のテキスト (Redmineに倣った感じで)
- tips_xxxxx : ToolTip用のメッセージ
- notice_xxx : アラートメッセージなどの警告を促すもの
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というキーワードを表示。
- Exp. resourceManager.getString("messages", "OPEN")
お役立ちツール¶
複数言語のResourceファイルを一度に作成するのは結構面倒です。
また、一度登録済みのキーをわすれて、再度記載してしまうこともあります。
今回は、ローカライズの補助のため、下記のツールを使ってみました。
メッセージのローカライズの方法についても、簡単に説明があります。
- LocaleMaker (日本の方が作者のAIRアプリです!)
- http://homepage.mac.com/daoki2/air/LocaleMaker/manual.html
- 生成元のデータは、SQLiteを利用しているようです。参考になるかも。
共同作業¶
- 複数人でコードを書くので、メッセージのローカライズは各自で行ってくださってかまいません。
- もしくは、まずはresourceManagerを通さず、日本語でのメッセージを記載してください。担当者が適宜修正いたします。
- コードレビュー などで、『ここに対応するローカライズしておいて!』とご依頼下さっても大丈夫です。
- プロパティファイルはよく修正されるファイルなので、コミットやマージの際はご注意ください。
- commitの前にまずupdate(^^;
Akiko Takano さんが13年以上前に更新 · 10件の履歴