前言
当一个项目要求在应用内切换应用语言,对于我们自己编写的代码,当然可以统一处理。比较麻烦的是,要求第三方框架的语言也随之变化。应用内切换语言的实现方法,可以参考上篇文章。
分析
为了实现需求,我们有以下两种做法
- 直接修改源码
- 运行时机制之交换方法
若采取第一种方法,将不利于我们使用pod来管理第三方框架。所以在这里我们使用运行时,交换方法(这里也可以参考我的另一篇文章,交换方法)。
例子
一、分析
这里拿MJRefresh做例子,该框架语言默认是跟随系统语言变化的。这里我需要改为跟随应用内选择的语言。
这里MJRefresh框架中NSBundle+MJRefresh的一个分类方法
+ (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value
{
static NSBundle *