在自动布局中处理iOS App中的语言更改

时间:2017-04-06 07:44:31

标签: ios swift localization autolayout

在我们的应用程序中,我们必须支持英语和阿拉伯语,但语言更改选项可在应用程序本身中使用。早些时候我们已经处理了代码中左右和左右语言变化的权利。

从iOS 9开始,设计具有自动布局的UI将在iPhone设置中更改语言时正确处理。

根据我的要求,我们更改了应用程序中的语言并直接更新了“AppleLanguages”键。但故事板没有正确更新。一旦我强行退出应用程序并重新启动它,它就可以正常工作。

我需要澄清一下, 是否有任何解决方案可以在不重新启动应用程序的情况下更改此(应用程序中的语言) 如果否,为了重新启动应用程序,我是否可以显示警报并退出应用程序(使用exit(0))?这是否会得到应用审核小组的批准?

1 个答案:

答案 0 :(得分:3)

  

我需要澄清,是否有任何解决方案可以改变这一点   (应用程序中的语言),无需重新启动应用程序?

是的,有!如果您已经通过检查AppleLanguages全局密钥并使用自动布局来更改语言,则应该很容易实现这样的功能。

解决方案是切换 lproj 软件包以便在不重新启动应用程序的情况下进行本地化,您应该执行 Method Swizzling 来实现它。

我建议查看使用Internationalization and Localization in swift文章,它会指导您清楚地从头开始(对我来说这很好)。跟随它后,输出应类似于:

enter image description here

另外,您可能想要检查Localize-Swift库(实际上,我没有使用它)。

希望这会有所帮助。