2010年5月19日水曜日

ローカライズ

アプリケーションをローカライズするには、xcode上でResourceの所にstringsファイルを追加し、ファイル名を「Localizable.strings」にします。
ファイル名は「Localizable.strings」でないと機能しないので注意が必要です。
そして、xcode上でこのファイルの「情報を見る」を選択し、「ファイルをローカライズ可能にする」ボタンを押します。
ローカリゼーションの所には最初は英語のみ表示されているので、「ローカリゼーションを追加」 ボタンでローカライズしたい言語を追加します。
xcodeの左側のLocalizable.strings配下にEnglishと、追加した言語のファイルが追加されていますので、最後にファイルタイプを「UTF-16」にして、ファイルに以下のように記述します。


"MESSAGE" = "日本語のメッセージ";
"CANCEL" = "キャンセル";

=の左側は後からローカライズされたメッセージを読み出す時のキーになるものです。
右側がローカライズされたメッセージです。上の例では日本語(Japanese)のローカライズメッセージを設定しています。Englishの方のファイルにも同様に英語のメッセージを設定します。

"MESSAGE" = "English Message";
"CANCEL" = "Cancel";


上で設定したローカライズされたメッセージをアプリケーションから取得するには、以下のようにします。


    // リソースファイルからローカライズ用テキストを取得
    NSString* strMsg = NSLocalizedString( @"MESSAGE", nil );
    NSString* strCancel = NSLocalizedString( @"CANCEL", nil );


上記で取得されたメッセージをラベルやボタン等に設定すれば、iPhoneのシステム言語設定に従ったメッセージを表示することが可能です。



さらに、iPhoneのホーム画面に表示されるアプリケーション名もローカライズすることが可能です。
「Localizable.strings」ファイルと同じやり方で「InfoPlist.strings」ファイルを作成し、ローカライズ可能にし、ファイルタイプ(UTF16)の設定を行います。
そして、以下のように記述します。

CFBundleDisplayName = "日本語のアプリ名";

こちらも日本語(Japanese)と英語(English)両方のアプリケーション名を設定します。
これだけで、iPhoneのホーム画面に表示されるアプリケーション名がiPhoneのシステム言語設定によって変化するようになります。

2 件のコメント:

  1. > CFBundleDisplayName = "日本語のアプリ名";
    このようにして、申請するためのファイルをビルドしたら日本語名のファイルが生成されました。そのまま圧縮して「日本語名.zip」をアップロードしようとするとエラーに。
    finder上で「英語名.zip」にしたらアップロードはできましたが承認されるものかどうか不安です。

    返信削除
  2. 前記のようにしたらAppleにちゃんと承認されました。中身は問題なかったみたいです。
    http://martech.sakura.ne.jp/wp/category/dev/

    返信削除