Cocos2dのプロジェクトをテンプレートから生成した場合、ローカライズはBaseとEnglishの2種類がデフォルトで設定されている。
これをEnglish、Japaneseの2種類にする場合の手順を下記に示す。(手順はXcode4.6.2の場合)
1. stringsファイルを新規に作成する。
File→New→File...で開き、iOS ResourceからStrings Fileを選択して、「InfoPlist.strings」を作成する。
2. InfoPlist.stringsを選択し、File Inspectorを開き、Localizationで「English」を追加する。
3. PROJECTを開いてInfoからLocalizationsで「+」をクリックしてJapaneseを選択して追加する。
4. InfoPlist.stringsを選択し、File Inspectorを開き、Localizationに「Japanese」が追加されていることを確認する。
同時に、InfoPlist.stringsの下層に、InfoPlist.strings (English)、InfoPlist.strings (Japanese)が作成されていることを確認する。
(Xcode4.5を対象に書かれたネット上の記事では、始めに上記3.手順を実施する記述となっている記事があるが、Xcode4.6.2ではJapaneseを選択してもInfoPlist.stringsを選択する画面が表示がされる。しかし、InfoPlist.stringsが存在しないために選択できず作成できないため、先にInfoPlist.stringsを作成する)
5. アプリタイトルのローカライズ
InfoPlist.strings (English) および、InfoPlist.strings (Japanese) に、アプリタイトルのローカライズ名称を設定する。
CFBundleDisplayName = "HogeApp"; // English
CFBundleDisplayName = "ほげアプリ"; // Japanese
6. Localizable.stringsを上記1.と同じ手順で作成する。
7. Localizable.stringsを選択し、File Inspectorを開き、Localizationで「English」を追加する。
「English」を追加すると、自動で「Japanese」が未チェック状態で生成されるのでチェックを入れる。
Localizable.stringsの下層に、Localizable.strings (English)、Localizable.strings (Japanese) が作成されていることを確認する。
8. 文字列のローカライズ
(1) Localizable.strings (English)、Localizable.strings (Japanese)それぞれにローカライズする文字列をラベルと対にして記述する。
"Hoge" = "hogehoge"; // English
"Hoge" = "ほげほげ"; // Japanese
(2) 使用するクラスにてローカライズするラベルを記述する。これにより各言語毎にローカライズされた文字列が参照できるようになる。
NSLocalizedString(@"Hoge",nil);
これは画像ファイルのローカライズにも利用できる。
参考記事:
http://blog.livedoor.jp/tattyamm/archives/4303398.html
http://albatrus.com/main/ios/4388
【Cocos2dの最新記事】