
IM即时通讯
安全可靠、全球互通

实时音视频
流畅稳定、省钱省力
回答:
详细参考下面 Demo 里面的代码,实现了简单的 App 内语言切换
其实要实现 App 内语言切换思路总共两种:
1:非入侵方式:因为 App 开发的过程中可能会引入各种的 SDK,每个 SDK 可能都会有自身的国际化资源,那么只要要求 所有 SDK 的厂商都提供一个统一的接口来实现自家 SDK 的语言切换就行,但是这个可能性基本上很渺茫,没人能要求所有的厂商这么做,除非苹果这么要求。
2:入侵方式:修改系统代码的执行逻辑,原始的切换语言是由 iOS 系统内部决定到底读取哪个资源包下的 .strings 文件,如果通过 runtime 的方式,我们修改了读取资源包 .strings 文件的逻辑,让系统读取我们指定的资源包,那么就可以让所有的 SDK 包括 App 本身都支持内部切换语言,附件的 Demo 使用的就是这个思路,需要说明的是使用这种方式需要把整个 UI 堆栈给重建,然后系统才会读取指定的资源包,就实现了语言的切换,微信切换语言有个页面切换的动画,也是这个原因。
注:该 Demo 使用 pod 管理