让cocos2d-x 3.0 支持繁体中文

 - by Hector

cocos2d-x虽然不支持繁体中文,但只要简单的扩展,即可实现繁体中文的支持。

通过跟踪cocos2d的源代码,很容写出繁体中文的支持,但是我是不到万不得已不改引擎,以免后期引擎升级等太麻烦。

这里提供一个函数,判断系统是否为繁体中文。

iOS

//代码放在一个mm后缀的Object-c文件里
bool isTradictionalChinese()
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
    NSString *currentLanguage = [languages objectAtIndex:0];
    
    if ( [currentLanguage isEqualToString:@"zh-Hant"])
    {
        return  true;
    }
    else
    {
        return  false;
    }
}

Android已经提供了相应的JNI,调用即可

//包含头文件
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "jni/Java_org_cocos2dx_lib_Cocos2dxHelper.h"
#endif

函数如下:

auto isHkLang = []()->bool{
        #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
            string  tmp = getCurrentLanguageJNI();
            return tmp.compare("zh-Hant")==0;
        #elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
            return isTradictionalChinese();
        #endif
    };

Leave a comment