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了,希望可以帮助大大家

相关文章
|
7月前
|
自然语言处理 iOS开发
iOS 国际化(多语言)如何指定默认语言
iOS 国际化(多语言)如何指定默认语言
143 0
|
7月前
|
iOS开发
iOS 获取设备-语言,版本,国家
iOS 获取设备-语言,版本,国家
97 0
|
Swift iOS开发
IOS使用Swift加载Xib文件
IOS使用Swift加载Xib文件
260 0
|
编译器 开发工具 C语言
iOS 语言基础&初探 Xcode 工具
iOS 语言基础&初探 Xcode 工具
187 0
iOS 语言基础&初探 Xcode 工具
|
移动开发 weex API
weex在iOS环境加载本地图片的方法
weex在iOS环境加载本地图片的方法
140 0
weex在iOS环境加载本地图片的方法
|
Java C# iOS开发
苹果ios开发的基础语言介绍
iOS开发的标准语言是objective-c。是c的一种超集, 它是对c的扩展,支持面向对象编程。像后来的一些高级语言java,c#等都借鉴了该语言的面向对象特性。 当然在iOS开发过程中,也支持c/c++语言与原生的objective-c混编。
193 0
|
IDE 编译器 开发工具
苹果iOS开发语言用什么?
苹果软件开发语言是Object C,开发环境是 Xcode。
470 0
|
开发工具 iOS开发 git
iOS:第三方库 pod加载的几种方式
iOS:第三方库 pod加载的几种方式
488 0
|
存储 iOS开发
iOS-底层原理 18:类的加载(下)
iOS-底层原理 18:类的加载(下)
110 0
iOS-底层原理 18:类的加载(下)
|
存储 缓存 算法
iOS-底层原理 17:类的加载(上)
iOS-底层原理 17:类的加载(上)
172 0
iOS-底层原理 17:类的加载(上)