プロジェクト

全般

プロフィール

Localize » 履歴 » バージョン 9

Akiko Takano, 2010/07/28 05:41

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