プロジェクト

全般

プロフィール

Localize

Feature #452 のための、ローカライズの方法を記載します。

Flex/Airアプリケーションのローカライズは、下記を参考にしています。
  1. Adobe AIRアプリケーションのローカライズ(AIR1.5)
  2. Flex アプリケーションのローカライズ

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設定に合ったメッセージを返します。
  • コードが冗長な感じがしますが、ランタイムの切り替えは、 このように記載しないと変更が反映されないようです 。(バインディングの関係?)
    • Exp. resourceManager.getString("messages", "OPEN")
      • localeにあわせた messages.properties内のOPENというキーワードを表示。

お役立ちツール

複数言語のResourceファイルを一度に作成するのは結構面倒です。
また、一度登録済みのキーをわすれて、再度記載してしまうこともあります。

今回は、ローカライズの補助のため、下記のツールを使ってみました。
メッセージのローカライズの方法についても、簡単に説明があります。

LocaleMakerのスクリーンショット

共同作業

  • 複数人でコードを書くので、メッセージのローカライズは各自で行ってくださってかまいません。
    • もしくは、まずはresourceManagerを通さず、日本語でのメッセージを記載してください。担当者が適宜修正いたします。
    • コードレビュー などで、『ここに対応するローカライズしておいて!』とご依頼下さっても大丈夫です。
    • プロパティファイルはよく修正されるファイルなので、コミットやマージの際はご注意ください。
      • commitの前にまずupdate(^^;