iPhoneアプリ開発者が知っておきたい「アプリを多言語化(ローカライズ)」する方法

AppStoreの魅力の一つに、全世界でアプリを配信できることがあります。 iPhoneを使っている人は、全世界合わせるととてもたくさんの人がいますので、是非その人達にも利用してもらえるようにしたいですね。 今回は、その多言語化ローカライズ)について、ブログで紹介をしたいと思います。

AppStoreの多言語化は2つありますので、順番に説明します。

  1. AppStoreの説明文のローカライズ
  2. アプリのタイトル、テキスト文章、画像のローカライズ

AppStoreの説明文のローカライズ

アプリを公開する際に、iTunesConnectで言語の設定をしていると思います。 これは、各言語ごとに個別に設定ができます。アプリが公開されている場合は変更できないのですが、アップデートなどをしている状態ですと変更ができます。

設定手順

まずはiTunesConnectのアプリの「View Details」をクリックします。 2013 3 27 6655

次に[Metadata and uploads]の右側にある[Choose Another Language】から、説明文を追加したい言語を選びます。 [Add]のボタンを押します。 2013 3 27 yyk

後は、日本語を登録したと同じように、上から名前、説明文、キーワードを入力して完了で、 言語の追加が完了になります。 2013 3 27 ggb

後は、アップデートが行われれば、AppStoreでも反映ができています。

言語の編集とデフォルト言語の編集

一度言語を設定すれば、後から説明文やアップデート内容の変更がいつでもできます。 2013 3 27 6655

後、複数の言語を登録している場合は、デフォルトの言語を変更できるようになります。 これはアプリのトップ画面、【AppInfomation】のEditを押すと、言語の設定ができます。 2013 3 27 6655

この中に、【default Language】という項目があるので、好きな言語に変更できます。 言語設定のないと、デフォルトに設定された言語が優先されるので、英語をデフォルトにしておいたほうがいいでしょう。 2013 3 27 ffd

アプリのローカライズ

続きまして、アプリ自体をローカライズしていきましょう。 おそらく、日本語で色々テキストや画像を作成されていると思います。これを、言語ごとに変更することができます。

アプリ名のローカライズ

まずは、iPhone上で表示されるアプリ名のローカライズです。 2013 3 27 logo 2013 3 27 yyg

まずは、PROJECTのinfoになる[Localization]に、ローカライズする言語を追加します。 2013 3 27 ddee

次にXcodeの【supporting Files】フォルダの中に、[infoPlist.string]というファイルを作成します。 私は【String file】で作成しました。 2013 3 27 yyyb

[infoPlist.string]を選択した状態で、右のバーにある【Localization]を見てください。 ここに、先ほど追加した言語ででていますので、どちらもチェックを入れます。 2013 3 27 ttg

そうすると、ファイルが2つに増えています。 このファイルに、各言語の設定をしていきます。 2013 3 27 66y

以下のようなコードをそれぞれのファイルに書きます。 これ一行です。 [c] //infoPlist.strings(English) CFBundleDisplayName = "App"; //英語

//infoPlist.strings(Japanese) CFBundleDisplayName = "アプリ";//日本語 [/c]

そうすると、アプリの表示名が言語ごとに変更されます。

アプリ名のテキスト文章と画像のローカライズ

先ほどと同じように、今後は、[Localizable.strings]とファイルを作成し、ローカライズの設定を右のサイドバーから行います。 2013 3 27 666t

ファイルにはそれぞれ、テキスト文章を設定します。 ここに記載している[button1]は、引数です。これを、実際に文章を表示させる箇所で利用します。 [c] //Localizable.strings(English) "button1" = "button"; //英語

//Localizable.strings(Japanese) "button1" = "ボタン";//日本語

//実際に利用する所でのコード NSString helloe = NSLocalizedString(@"button1",nil); CCLabelTTF label = [CCLabelTTF labelWithString:helloe fontName:@"Marker Felt" fontSize:64];

//button1を引数にして、各言語に記載された文字列を引っ張ってきています。 NSLocalizedString(@"button1",nil);

[/c]

これは、文章だけでなく画像のフォーマットをしているすることで、画像のローカライズもできます。

[c]

//Localizable.strings(English) "button1" = "button-en.png"; //英語

//Localizable.strings(Japanese) "button1" = "button.png";//日本語

//実際に利用する所でのコード CCSprite *sprite = [CCSprite spriteWithFile: NSLocalizedString(@"image1",nil)];

[/c]

こんな感じになります。

cocos2d ver2.0のテンプレートを使っています。 【英語】 スクリーンショット 2013 03 27 17 19

【日本語】 スクリーンショット 2013 03 27 17 21

ローカライズのテスト、確認はどうするのか?

実機でも、シミュレーターでもどちらでもいいのですが、 [設定]=>[一般]=>[言語環境]で、言語の変更ができます。これを使って確かめましょう。 Logosettei0327