展会信息港展会大全

Cocos2d-x 3.2 大富翁游戏项目开发-第十九部分 国际化-解决中文乱码,cocos2d-x项目开发
来源:互联网   发布日期:2015-09-28 14:07:17   浏览:1329次  

导读: Cocos2d-x 3.2 大富翁游戏项目开发-第十九部分 国际化-解决中文乱码,cocos2d-x项目开发 先解决一下中文乱码问题吧,网友cheyiliu 提供了比较简单的解决办法,具体如下...

Cocos2d-x 3.2 大富翁游戏项目开发-第十九部分 国际化-解决中文乱码,cocos2d-x项目开发

先解决一下中文乱码问题吧,网友cheyiliu 提供了比较简单的解决办法,具体如下,如有更好方法,欢迎提供

1、 编写plist文件string_zh.plist把需要中文显示字符,放入到该文件中:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>single_game</key>

<string>单人游戏</string>

<key>multi_game</key>

<string>多人游戏</string>

…………………………………

</dict>

</plist>

2、 string_en.plist用来显示英文字符:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>single_game</key>

<string>Single Game</string>

……………………..

</dict>

</plist>

3、编写类LanguageString根据当前系统语言环境加载相应的字符plist文件,文件只需加载一次就可以了,写成单例

LanguageString.h头文件

class LanguageString

{

private:

LanguageString();

public:

static LanguageString* instance;

static Dictionary *strings;

~LanguageString();

static LanguageString * getInstance();

String* getLanguageString(const char* strName);

};

LanguageString.cpp文件

#include "LanguageString.h"

LanguageString* LanguageString::instance;

Dictionary * LanguageString::strings;

LanguageString::LanguageString()

{

}

LanguageString::~LanguageString()

{

}

LanguageString * LanguageString::getInstance()

{

if(instance == NULL)

{

instance = new LanguageString();

}

return instance;

}

String* LanguageString::getLanguageString(const char* strName)

{

LanguageType currentLanguageType = Application::getInstance()->getCurrentLanguage();//获取当前系统语言类型

if(strings == NULL)

{

switch (currentLanguageType)

{

case kLanguageEnglish: //系统是英文,则加载string_en.plist文件

{

strings = Dictionary::createWithContentsOfFile("string_en.plist");

strings->retain();

break;

}

case kLanguageChinese: 系统是中文,则加载string_zh.plist文件

{

strings = Dictionary::createWithContentsOfFile("string_zh.plist");

strings->retain();

break;

}

}

}

String* retStr = static_cast<String*>(strings->objectForKey(strName)); //根据key获取字符串

return retStr;

}

4、使用方法,当使用字符串时只要传入相应的key就可以了

LanguageString::getInstance()->getLanguageString(“此处是key值”));

如 :

LabelTTF* singleGameTTF = LabelTTF::create(LanguageString::getInstance()->getLanguageString(SINGLE_GAME)->getCString() ,FONT_MENU,Btn_FontSize);

<a target=_blank href="http://download.csdn.net/detail/lideguo1979/8342891">点击下载代码</a>

http://download.csdn.net/detail/lideguo1979/8342891

未完待续......................

http://www.bkjia.com/Androidjc/939685.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/939685.htmlTechArticleCocos2d-x 3.2 大富翁游戏项目开发-第十九部分 国际化-解决中文乱码,cocos2d-x项目开发 先解决一下中文乱码问题吧,网友cheyiliu 提供了比较简...

赞助本站

人工智能实验室

相关热词: android开发 应用开发

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港