IOS app应用内国际化语言切换(不用重启app,不跟随手机系统语言)

让我们一起探讨下在app应用内如何做国际化语言切换

要求:app内如果设置过本地语言下次启动应用就显示设置的语言,如果未设置过就显示手机系统语言。


我只做了中文和日语 所以只有两个.lproj的文件

难点:如何在本地找设置的语言并显示在应用上

如何添加文字国际化和图片国际化我就不说了 请自己百度

我只说怎么找到本地存的.lproj文件并显示对应的语言

NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@"lproj"];

self.currentBundle = [NSBundle bundleWithPath:path];

传入self.currentBundle调用系统方法 NSLocalizedStringFromTableInBundle(key, table, self.currentBundle, @"")

这样就可以获取对应的语言了


获取图片的方法

UIImage *image = [UIImage imageNamed:imageName inBundle:self.currentBundle compatibleWithTraitCollection:nil];

本地语言切换的时候可以在本地存储一个字段记录选择的语言

切换语言的时候要把根视图刷新 否则会出现已加载的界面不会刷新

我是刷新了Tbabarcontroller


因为是公司项目不能上传  就不提供demo了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容