iOS 应用内可随时切换语言时,MJRefresh下拉文字的处理

MJRefresh文件夹内,NSBundle+MJRefresh.m 里面有一段注释:

//(iOS获取的语言字符串比较不稳定)目前框架只处理enzh-Hanszh-Hant三种情况,其他按照系统默认处理

这个不是重点,重点是它在这个方法里面:

+ (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value
{
//把if条件注释掉,因为 应用内部可以随时切换语言。
}

具体操作:

+ (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value

{
    staticNSBundle *bundle = nil;

    //注释掉判断 因为应用内部可以随时切换语言
    //if (bundle == nil) {
#if 1
       //获取切换所选择的语言
       NSString *language = [[NSUserDefaultsstandardUserDefaults] objectForKey:@"jhAppLanguage"];
#else
        //(iOS获取的语言字符串比较不稳定)目前框架只处理en、zh-Hans、zh-Hant三种情况,其他按照系统默认处理
        NSString *language = [NSLocale preferredLanguages].firstObject;
#endif
        if ([languagehasPrefix:@"en"]) {
            language =@"en";
        } elseif ([language hasPrefix:@"zh"]) {
            if ([languagerangeOfString:@"Hans"].location !=NSNotFound) {
                language =@"zh-Hans"; //简体中文
            } else { // zh-Hant\zh-HK\zh-TW
                language =@"zh-Hant"; //繁體中文
            }
        } else {
            language =@"en";
        }
        //从MJRefresh.bundle中查找资源
        bundle = [NSBundlebundleWithPath:[[NSBundlemj_refreshBundle] pathForResource:languageofType:@"lproj"]];

    //}

    value = [bundle localizedStringForKey:key value:valuetable:nil];
    return [[NSBundlemainBundle] localizedStringForKey:keyvalue:value table:nil];

}

0行代码搞定空白占位图:

https://github.com/xjh093/JHNoDataEmptyViewForT-C


你可能感兴趣的:(iOS 应用内可随时切换语言时,MJRefresh下拉文字的处理)