在自动布局中处理iOS应用程序中的语言更改

在我们的应用程序中,我们必须支持英语和阿拉伯语,但是语言更改选项在应用程序本身中可用。 之前,我们已经处理了代码中左右两边的语言更改。

从iOS 9起,devise具有自动布局的用户界面将被正确处理,同时在iPhone设置中更改语言。

根据我的要求,我们已经改变了应用程序内的语言,并直接更新了“AppleLanguages”键。 但故事板没有正确更新。 一旦我强制退出应用程序并重新启动它,那么它工作正常。

我需要澄清的是,是否有任何解决scheme来改变这种(应用程序内的语言),而无需重新启动应用程序? 如果不是,重新启动应用程序,我可以显示一个提醒并退出应用程序(通过使用退出(0))? 这是否会通过应用程序审查小组批准?

我需要澄清的是,是否有任何解决scheme来改变这种(应用程序内的语言),而无需重新启动应用程序?

就在这里! 如果您已经通过检查AppleLanguages全局键并使用自动布局来处理更改语言,则应该很容易地执行此类function。

解决scheme将切换lproj包为了让它本地化,而不必重新启动应用程序,你应该做的方法Swizzling来实现它。

我build议在swift文章中检查Working with Internationalization and Localization ,它会引导你清楚地从头开始(对我来说工作正常)。 跟着它一起,输出应该类似于:

在这里输入图像说明


此外,你可能要检查本地化Swift库(其实,我没有使用它)。

希望这有助于。