iOS 自动适配多语言方法,支持缺省英文

有时候对多语言的启用,并不能及时更新,这时候至少应该显示英文,而不是key键值,这就需要一个小技巧:

创建一个新的strings语言文件,将原有的默认语言(en或者base)内容移动到新的文件中,新的文件不进行多语言处理。将支持多语言的文件删掉en和base

使用下面这个宏就搞定了,当从LocationMe中读不到值时直接从LocationDef读取。 (读不到值会返回key本身)

#define LANGLOC(key) ([key isEqualToString:NSLocalizedStringFromTable(key,@"LocationMe",nil)]?NSLocalizedStringFromTable(key,@"LocationDef",nil):NSLocalizedStringFromTable(key,@"LocationMe",nil))
image.png

就是这么简单

这样做的好处是让你的默认配置能第一时间适配到其他语言中,虽然不太妥当,但是总比回显key值要强得多。另外某些配置都差不多的就可以都放到默认里面,比如都用英文说明,则直接在默认里面写就好了,不用每个文件都去粘贴。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容