cocos2dx多語言的核心代碼全部的內容就在下面這個方法中html
void getInfomations(){app
std::string defLanguage;iphone
cocos2d ::LanguageType la = cocos2d::Application::getInstance() -> getCurrentLanguage();spa
switch (la) {code
case cocos2d::LanguageType::CHINESE:xml
defLanguage = "chinese";htm
break;ip
default:get
break;string
}紅色部分是判斷設備語言
//讀取plist
const char *testPlistPath = "BSPlistDatas\\MutlLanguage.plist";
std::string fullPath = cocos2d::CCFileUtils::getInstance() -> fullPathFromRelativeFile("MutlLanguage.plist",testPlistPath); 墨綠色是設置plist文件的路徑
cocos2d::CCDictionary *plistDic = cocos2d::CCDictionary::createWithContentsOfFile(fullPath.c_str());
cocos2d::CCDictionary *levelDic = dynamic_cast<cocos2d::CCDictionary *>(plistDic -> objectForKey("language")); 黃色部分是根據plist路徑來讀取plist裏賣弄的內容
cocos2d::CCDictionary* langDic = NULL;
if(defLanguage == "chinese")
{
langDic = dynamic_cast<cocos2d::CCDictionary*>(levelDic->objectForKey("chinese"));
}
else{
langDic = dynamic_cast<cocos2d::CCDictionary*>(levelDic->objectForKey("english"));
}
//cocos2d::CCDictionary* farScene = dynamic_cast<cocos2d::CCDictionary*>(levelDic->objectForKey("bg_far_scene"));
btnP = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("play")); //play按鍵文字
btnO = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("options")); //options按鍵文字
btnR = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("records")); //records按鍵文字
btnH = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("help")); //help按鍵文字
btnMe = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("menu")); //play按鍵文字
btnRe = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("reset")); //options按鍵文字
btnPa = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("pass")); //records按鍵文字
btnOn = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("on")); //help按鍵文字
btnOff = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("off")); //play按鍵文字
btnSo = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("sound on/off")); //options按鍵文字
btn1On = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("1-10 only")); //options按鍵文字
btnBa = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("back")); //records按鍵文字
btnPl = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("played")); //help按鍵文字
btnSol = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("solved")); //play按鍵文字
btnPad = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("passed")); //options按鍵文字
btnNe = dynamic_cast<cocos2d::CCString*>(langDic->objectForKey("next")); //records按鍵文字
//cocos2d::CCPoint point = cocos2d::PointFromString(farScene->valueForKey("pos")->getCString());
cocos2d::CCLog("path = %s", btnP -> getCString());
cocos2d::CCLog("pos = %s", btnO -> getCString());
}
附帶plist的source code格式的文件信息,方便讀者理解
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>language</key>
<dict>
<key>english</key>
<dict>
<key>play</key>
<string>Play</string>
<key>options</key>
<string>Options</string>
<key>records</key>
<string>Records</string>
<key>help</key>
<string>Help</string>
<key>menu</key>
<string>Menu</string>
<key>reset</key>
<string>Reset</string>
<key>pass</key>
<string>Pass</string>
<key>on</key>
<string>On</string>
<key>off</key>
<string>Off</string>
<key>sound on/off</key>
<string>Sound On/off</string>
<key>1-10 only</key>
<string>1-10 Only</string>
<key>back</key>
<string>Back</string>
<key>played</key>
<string>Played</string>
<key>solved</key>
<string>Solved</string>
<key>passed</key>
<string>Passed</string>
<key>next</key>
<string>Next</string>
</dict>
<key>chinese</key>
<dict>
<key>play</key>
<string>開始</string>
<key>options</key>
<string>設置</string>
<key>records</key>
<string>記錄</string>
<key>help</key>
<string>幫助</string>
<key>menu</key>
<string>菜單</string>
<key>reset</key>
<string>重置</string>
<key>pass</key>
<string>跳過</string>
<key>on</key>
<string>開</string>
<key>off</key>
<string>關</string>
<key>sound on/off</key>
<string>聲音 開/關</string>
<key>1-10 only</key>
<string>1-10 什麼</string>
<key>back</key>
<string>返回</string>
<key>played</key>
<string>關卡</string>
<key>solved</key>
<string>完成</string>
<key>passed</key>
<string>跳過</string>
<key>next</key>
<string>前進</string>
</dict>
</dict>
</dict>
</plist>
-----------------------------------------------------------------------------------------------------
如下是cocos2d的多語言的解決方案(網址)
http://www.himigame.com/iphone-cocos2d/608.html