我正在研究一个具有切换按钮的应用程序,以便在英语和阿拉伯语之间进行切换,并且应该在飞行中。我用了https://github.com/maximbilan/ios_language_manager的方法,除非故事板是通过接口不是字符串本地化它工作在所有情况下罚款:使用本地化的故事板动态本地化
现在,当我重新加载这样的根视图控制器:
func reloadRootVC(){
let delegate : AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
delegate.window?.rootViewController = (storyboard.instantiateInitialViewController())
}
它使用本地化的字符串和RTL重新加载根目录,但英文故事板不是阿拉伯语的。
试图强制装载阿拉伯语一个这样的:
let storyboard = UIStoryboard(name: "Main", bundle: NSBundle(path: NSBundle.mainBundle().pathForResource(LanguageManager.currentLanguageCode(), ofType: "lproj")!))
但不幸的是它加载的故事板,但没有图像。它无法读取任何资源图像。
不幸的是,你将会遇到很多麻烦,使它能够用于接口,以及让RTL UI的行为正确,更不用说格式化器和本地化格式字符串没有做正确的事情。 The一般的期望是,应用程序遵循系统语言,并且不实施应用程序内语言切换器......从长远来看,它将为您节省很多麻烦。:( – wakachamo