iOS指定加载任意语言

简介: iOS指定加载任意语言

项目中提了个需求,做国际化。但是并不是常规的随着手机系统语言的国际化。要加载特定语言,无视手机系统语言。查阅了网上众多资料,有炫技用runtime的,殊不知,滥用runtime是会挖大坑的.果断放弃,后经多次尝试得出下面答案,仅供给大家参考

配置信息

xcode版本:Version 10.2.1 (10E1001)

macos版本:10.14.6 Beta (18G59b)


image.png

static inline NSString *localString(NSString *string) {
    NSString *stringsBundlePath = [[NSBundle bundleForClass:NSClassFromString(@"IOTUtil")]
                                   pathForResource:@"language"
                                   ofType:@"bundle"];
    NSBundle *bundle = [NSBundle bundleWithPath:stringsBundlePath] ?: [NSBundle mainBundle];
    //languageIOTKey
    NSInteger lanuageValue = [[NSUserDefaults standardUserDefaults] integerForKey:@"languageIOTKey"];
    NSString *pathForResourceStr = @"zh-HK";
    switch (lanuageValue) {
            case 0:
              pathForResourceStr = @"zh-HK";
            break;
            case 1:
             pathForResourceStr = @"zh-Hans";
            break;
            case 2:
             pathForResourceStr = @"en";
            break;
        default:
            break;
    }
    //zh-Hans en zh-HK
    NSString * path = [bundle pathForResource:pathForResourceStr ofType:@"lproj"];
    NSBundle * languageBundle = [NSBundle bundleWithPath:path];
   return [languageBundle localizedStringForKey:string value:@"" table:nil];
}
方法调用
self.infoLabel.text = localString(@"bluetooth_no_authorization_string");
文件结构

image.png


这个关键都 贴出来了,故此就不上demo了,希望可以帮助大大家

相关文章
|
10月前
|
自然语言处理 iOS开发
iOS 国际化(多语言)如何指定默认语言
iOS 国际化(多语言)如何指定默认语言
186 0
|
2月前
|
定位技术 API 开发工具
iOS语言本地化/国际化宝典
iOS语言本地化/国际化宝典
68 0
iOS语言本地化/国际化宝典
|
10月前
|
iOS开发
iOS 获取设备-语言,版本,国家
iOS 获取设备-语言,版本,国家
110 0
|
Swift iOS开发
IOS使用Swift加载Xib文件
IOS使用Swift加载Xib文件
285 0
|
编译器 开发工具 C语言
iOS 语言基础&初探 Xcode 工具
iOS 语言基础&初探 Xcode 工具
200 0
iOS 语言基础&初探 Xcode 工具
|
移动开发 weex API
weex在iOS环境加载本地图片的方法
weex在iOS环境加载本地图片的方法
146 0
weex在iOS环境加载本地图片的方法
|
存储 iOS开发
iOS-底层原理 18:类的加载(下)
iOS-底层原理 18:类的加载(下)
117 0
iOS-底层原理 18:类的加载(下)
|
存储 缓存 算法
iOS-底层原理 17:类的加载(上)
iOS-底层原理 17:类的加载(上)
181 0
iOS-底层原理 17:类的加载(上)
|
存储 缓存 C++
iOS-底层原理 15:dyld加载流程
iOS-底层原理 15:dyld加载流程
346 0
iOS-底层原理 15:dyld加载流程
|
缓存 iOS开发
iOS 程序加载流程分析
dyld简介;dyld共享缓存;dyld程序启动过程;_objc_init符号断点:
225 0
iOS 程序加载流程分析