|
 |
12. ローカライズ 日本語化
nib (xib) ファイルの複製
プロジェクトウィンドウで MainMenu.nib (English) を選びます。Xcode 3.1 からはじめた方は MainMenu.xib (English) になっていると思います。右クリックもしくは control + 左クリックでコンテキストメニューを表示させ「情報を見る」を選びます
表示される「MainMenu.nib (English) の情報」ウィンドウで「一般」タブを選びます。Xcode 3.1 で作られたプロジェクトの場合には nib という拡張子が xib になっていると思います。そして一番下にある「ローカリゼーションを追加...」ボタンを押します。次の画面が現れます

テキストフィールドの右横のポップアップメニューを押して表示される中から「Japanese」を選ぶかテキストフィールドに直接「Japanese」と入力して「追加」ボタンを押します

プロジェクトウィンドウに「MainMenu.nib (Japanese)」もしくは「MainMenu.xib (Japanese)」が新しくできていると思います
MainMenu.nib (Japanese) もしくは MainMenu.xib (Japanese) をダブルクリックして Interfae Builder を起動させます。
メニューバーの変更
まずはメニューバーから始めてみます。例えば「File」メニューの名前を変更する場合「File」のところを一度クリックして選択状態にします。ダブルクリックではありません。インスペクタウィンドウのタイトルは Menu Attributes になります。そして Title 欄を「ファイル」にします
ここで Title のところを「ファイル」と変えてもメニューバーでの表示は「File」と英語のままです。しかしこの状態で保存して Xcode に戻りビルドして実行すればメニューバーには「ファイル」と日本語で表示されます。うまくいかない場合はいつものようにクリーニングも行ってみましょう。次にもう一度メニューバーの「File」をクリックします
インスペクタウィンドウのタイトルが「Menu Attributes」から「Menu Item Attributes」に変わります。ここの Title 欄に「ファイル」と日本語で入力すると Interface Builder での表示も「ファイル」と日本語に変わります。Interface Builder での表示も日本語に変わっていないと変な気がしますので Menu Item Attributes の Title 欄も日本語に変えていきます。この要領ですべてのタイトルバーの表示を変更していきます。
アプリケーションメニューの「NewApplication」は後ほど作る InfoPlist.string (Japanese) というファイルで日本語のアプリケーション名が表示されるようにいたしますのでこのままにしておきます
メニューアイテムの変更
メニューバーの各メニュー項目にはその下の階層にメニューアイテムを持っています。次の図を参考に各メニューアイテムを日本語表示に変えていってください。ただし項目名の右側に ▶ をもっている項目はさらに下にメニューアイテム項目を持っています。ようするにメニューバーの各項目と同じ扱いになり、インスペクタパネルで Menu Attributes の Title 欄を変更してさらにもう一度項目をクリックして Menu Item Attributes の Title 欄も変更しなければいけないということです。なおこのサンプルでは ▶ 以降に表示されるメニューアイテムについては英語のままにしています
NewApplecation |
ファイル |
 |
 |
編集 |
フォーマット |
 |
 |
表示 |
ウィンドウ |
 |
 |
ヘルプ |
 |
「編集」項目では Undo (取り消す) と Redo (やり直す) は日本語化せずにそのままにしています。この部分は変更しなくてもアプリケーション実行時に自動的に「取り消す」「やり直す」と表示されます。このようになっている部分はほかにもあるとは思いますが通常通り日本語で「取り消す」「やり直す」と変更していても問題はありません。
ここで一旦 Interface Builder での作業を保存して Xcode に戻り ビルド → 実行 で変更したアプリケーションを起動しみましょう。
メニューバーでは Application メニューが「 Introducer 」と表示される意外はすべて日本語に変わっていると思います。そしてメニュー項目の下のメニューアイテムも日本語に変わっていると思います。「編集」メニューの Undo と Redo も「取り消す」「やり直す」になっていると思います。前述の通り ▶ 以降のメニューアイテムについては英語のままです。
Introducer メニューから「自己紹介機について」を選んで現れるアバウトウィンドウのアプリケーション名も英語のままです。
ウィンドウの変更
再び Interface Builder に戻り日本語化の作業を続けます。まずウィンドウのタイトルを「自己紹介機」に変更します。そして各タブ名とそれぞれのタブに配置されているボタンの名前を変えていきます。4番目のタブではテーブルカラムのタイトルも忘れずに変更しておきましょう。
これで Interface Builder での作業は終わりました。作業を保存します。Interface Builder は終了してもらってもかまいません。Xcode に戻り ビルド → 実行 をして Introducer アプリケーションを起動します。コンパイルが正常に完了したにも関わらずアプリケーションが起動しなかったり起動しても変更内容が反映されていない場合などは ビルド の前に クリーニング を実行してみましょう。
ウィンドウの表示も日本語に変わりましたが Application メニュー項目の表示が Introducer のままです。アバウトウィンドウでのアプリケーション名も Introducer と英語表記のままです。次項でこの部分も日本語に変えていきます
InfoPlist.strings の複製
プロジェクトウィンドウで InfoPlist.strings (English) を選択して右クリックなどでコンテキストメニューを表示させ「情報を見る」を選びます

「一般」タブを選びウィンドウの一番下の ローカリゼーションを追加... ボタンを押します。
上のような画面が表示されます。テキストフィールドのポップアップメニューから Japanese を選ぶかもしくはテキストフィールドに直接 Japanese と書き込み 追加 ボタンを押します
次に現れる画面ではターゲット Introducer に追加したという確認をしているだけです。クローズボタンで閉じてください
プロジェクトウィンドウに InfoPlist.strings (Japanese) というファイルが出来て上がっていると思います。このファイルをテキストエディタで開きます。
注 意
このコーナーの何回か前で Property List Editor の使用を推奨していましたが、実際に使ってみたところ「なにか変」という感じでした。前の時はプロパティリストの仕組みを知ってもらいたくてテキストエディタで開くようにしていましたが今回は安全性を考えてテキストエディタで開くようにしました。プロジェクトウィンドウで InfoPlist.strings (Japanese) をダブルクリックすると Property List Editor でファイルが開きます。もしそのまま Property List Editor でファイルを編集しても不具合が起こらないようであれば Property List Editor をお使いください。
InfoPlist.strings (Japanese) が開きましたら
CFBundleName = "自己紹介機";
CFBundleDisplayName = "自己紹介機";
の2行を書き加えて保存して閉じておきます
InfoPlist.strings (English) も開いて
CFBundleName = "Introducer 1.1";
という行を削除しておきましょう。これは勉強のために書き加えた行です。英語版で起動したときには Introducer という名前で十分だと思います。削除できましたらやはり保存して閉じておきます
実 行
ではビルドして実行してみましょう。うまく起動出来ない時や変更が反映されていないときはクリーニングをしてみましょう
アプリケーションメニューは「自己紹介機」に無事かわりました。アバウトウィンドウのアプリケーション名も「自己紹介機」に変わりました。これは InfoPlist.strings (Japanese) で CFBundleNmame を 自己紹介機 で上書きしているからです。
しかし残念ながら Dock や アイコンの名前は Introducer のままです
この Dock やアイコンに表示される名前を変えるのが CFBundleDisplayName です。InfoPlist.strings (Japanese) の中で確かに 自己紹介機 という名前で上書きしています。しかしこれだけはアプリケーションの各種設定を行っている Info.plist にも書き加えなければならないことがあります
Info.plist をテキストエディタで開いてください。そして最後の </dict> の前に次の2行を挿入します
<key>LSHasLocalizedDisplayName</key>
<true/>
最終的に Info.plist は次のようになります
いつも通り クリーニング → ビルド → 実行の手順で 自己紹介機アプリケーションを起動させます。Dock やアイコンの表示も日本語に変わったことだろうと思います。
英語版と日本語版の切替
自己紹介機アプリケーションを終了してから Dock に始めから登録されているであろう システム環境設定 を起動します。そして 言語環境 をクリックします。
言語環境パネルで 言語 タブを選びます。左の 言語: の欄に始めは上から 日本語 → English の順で並んでいると思いますが、ドラッグして次の図のように English を先頭に持ってきます。
自己紹介機アプリケーションを起動します。メニューバーやウィンドウの各パーツの表示などすべて英語に変わったと思います。ただしアプリケーションアイコンと Dock での表示は 自己紹介機 と日本語のままです。この部分の表示も英語に変えるにはシステムの再起動か一旦ログアウトして再度ログインして頂く必要があります。ログアウト・ログインを繰り返すほうがシステム再起動よりもずっと早いとは思います
今度は日本語表示に戻してみましょう。Dock の システム環境設定 もしくは System Preferences をクリックして System Preferences パネルを表示します。そして International をクリックします
International パネルで Language タブを選びます。左の Languages: 欄の先頭に今度は「日本語」をもってきます
Introducer もしくは 自己紹介機アプリケーションを起動します。メニューバー、ウィンドウなどすべての表示が日本語に戻ったと思います
お疲れさまでした。 Cocoa GUI App はこの第12回で終了いたしました。長い間読んで頂いてありがとうございました。
|
|
|