前回のCHAINSHOTは、[cocos2dx2.1.3]を利用して作成し、ただいま作成しているアプリは[cocos2dx2.2]を利用しています。 本日、ローカライズをしようと前回のやり方をしてみたところ、少し違っているようでしたので、ブログで紹介をしていきたいと思います。
2ヶ月ぐらい前に[cocos2dx2.1.3]の時のローカライズに関しては、こちらの記事を参考にしてください。 【cocos2dx】アプリをローカライズさせて海外にも売り込もう! | albatrus.com
アプリをローカライズさせる
以前のエントリーと同じように、「Localizable.strings」を作成します。 ここから少し違いがありました。
以前は「Localization」のボタンを押すと、英語・日本語など言語を選んでいたのですが、[cocos2dx2.2]では、「Base」というファイルが作成されます。 その後、必要な言語を選ぶ形にです。
日本とそれ以外でローカライズをさせるなら、「Base」「Japanese」の2つのファイルを利用します。
コードを変更する
コードに関しては、一部変更すれば、前回のエントリーがそのまま利用できます。 変更箇所は以下です。[c]
const char Localize::LocalizedString(const char searchKey, const char* comment){
/**
下記を変更して下さい。
**/
/*
if (lang == kLanguageEnglish)
{
fileUtils->addSearchPath("en.lproj");
}
else if (lang == kLanguageJapanese)
{
fileUtils->addSearchPath("ja.lproj");
}
*/
//言語が日本以外ものは、全てBaseにファイルを参照するようにします。
if (lang == kLanguageJapanese)
{
fileUtils->addSearchPath("ja.lproj");
}
else
{
fileUtils->addSearchPath("Base.lproj");
}
[/c]
注意点
上手くいかない時に確認して欲しいのは、以下の3点です。- 「Localizable.strings」の[File Type]が[Plain Text]になっているか。
- コードは変更できているか
- 文字化けがあるときには、「Localizable.strings」の各ファイルに改行をいれる
3つ目に関しては、ファイルのギリギリまでコードを書かずに一行空枠を入れると文字化けしなくなるみたいです。
それでも上手くローカライズされない時には、アプリを一度削除してビルドをし直してみると上手くいく場合があります。