文字列出力部分にNSLocalizedString() を利用する
NSString* string = NSLocalizedString(@"hoge", @"comment");
@"hoge"が出力したい文字列で@"comment"が@"hoge"に対するコメントとなる。Localizable.string ファイルを生成する
まず、翻訳ファイルLocalizable.stringを作成する。
Xcode>どのファイルでもいいのですがファイルの場所で右クリック>追加>新規ファイル
>Mac OS X「Resousers」>Strings File で名前を付ければ作成でる。
手動で作り上げることもでるが、便利なコマンドがある。
ターミナルでプロジェクトファイルがあるところで
genstrings -a $(find . -name "*.m")
をすればいい。-a をしないと上書き保存になってしまうので注意が必要。Xcode に Localizable.string ファイルを取り込む
Xcode にドラッグ&ドロップして追加します。グループは Resource にでも入れておけばよいかと思います。Xcode に取り込んだ後、ローカライズの設定が必要です。Localizable.string ファイルを右クリックして「情報を見る」を選択します。表示されウィンドウの「一般タブ」の左下にある「ファイルをローカライズ可能にする」をクリックし ます。再度 Localizable.string の情報を見るを選択すると左下に「ローカリゼーションを追加」というボタンをあるのでクリックして追加したい言語を選択します。選択できるのは English, Japanese, French, German です。それ以外は手動で追加する必要があるようです。
翻訳する
Xcode から Localizable.string の下に出来ている言語ファイルを選択して翻訳したい言語ファイルを開いて編集していきます。このときに、NSLocalizedString() でコメントを入れておくと
/* comment */
"hoge" = "hoge";
となっているはず。これをJapaneseだと/*comment*/
"hoge" = "ホゲ";
に変更したりすればいいかと思う。注意事項
Localizable.string ファイルは UTF-16 で保存しなければいけません。iPhone シュミレータではローカライズされているのに、実機でローカライズされていないときはだいたい文字コードの問題が多いです。