AppStoreの魅力の一つに、全世界でアプリを配信できることがあります。 iPhoneを使っている人は、全世界合わせるととてもたくさんの人がいますので、是非その人達にも利用してもらえるようにしたいですね。 今回は、その多言語化(ローカライズ)について、ブログで紹介をしたいと思います。
AppStoreの多言語化は2つありますので、順番に説明します。
AppStoreの説明文のローカライズ
アプリを公開する際に、iTunesConnectで言語の設定をしていると思います。 これは、各言語ごとに個別に設定ができます。アプリが公開されている場合は変更できないのですが、アップデートなどをしている状態ですと変更ができます。
設定手順
まずはiTunesConnectのアプリの「View Details」をクリックします。
次に[Metadata and uploads]の右側にある[Choose Another Language】から、説明文を追加したい言語を選びます。
[Add]のボタンを押します。
後は、日本語を登録したと同じように、上から名前、説明文、キーワードを入力して完了で、
言語の追加が完了になります。
後は、アップデートが行われれば、AppStoreでも反映ができています。
言語の編集とデフォルト言語の編集
一度言語を設定すれば、後から説明文やアップデート内容の変更がいつでもできます。
後、複数の言語を登録している場合は、デフォルトの言語を変更できるようになります。
これはアプリのトップ画面、【AppInfomation】のEditを押すと、言語の設定ができます。
この中に、【default Language】という項目があるので、好きな言語に変更できます。
言語設定のないと、デフォルトに設定された言語が優先されるので、英語をデフォルトにしておいたほうがいいでしょう。
アプリのローカライズ
続きまして、アプリ自体をローカライズしていきましょう。 おそらく、日本語で色々テキストや画像を作成されていると思います。これを、言語ごとに変更することができます。
アプリ名のローカライズ
まずは、iPhone上で表示されるアプリ名のローカライズです。
まずは、PROJECTのinfoになる[Localization]に、ローカライズする言語を追加します。
次にXcodeの【supporting Files】フォルダの中に、[infoPlist.string]というファイルを作成します。
私は【String file】で作成しました。
[infoPlist.string]を選択した状態で、右のバーにある【Localization]を見てください。
ここに、先ほど追加した言語ででていますので、どちらもチェックを入れます。
そうすると、ファイルが2つに増えています。
このファイルに、各言語の設定をしていきます。
以下のようなコードをそれぞれのファイルに書きます。 これ一行です。 [c] //infoPlist.strings(English) CFBundleDisplayName = "App"; //英語
//infoPlist.strings(Japanese) CFBundleDisplayName = "アプリ";//日本語 [/c]
そうすると、アプリの表示名が言語ごとに変更されます。
アプリ名のテキスト文章と画像のローカライズ
先ほどと同じように、今後は、[Localizable.strings]とファイルを作成し、ローカライズの設定を右のサイドバーから行います。
ファイルにはそれぞれ、テキスト文章を設定します。 ここに記載している[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のテンプレートを使っています。
【英語】
ローカライズのテスト、確認はどうするのか?
実機でも、シミュレーターでもどちらでもいいのですが、
[設定]=>[一般]=>[言語環境]で、言語の変更ができます。これを使って確かめましょう。