OStack程序员社区-中国程序员成长平台

标题: ios - 如何在不重新启动的情况下从应用程序内部更改应用程序的本地化? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:45
标题: ios - 如何在不重新启动的情况下从应用程序内部更改应用程序的本地化?

我遇到了应用程序中语言设置的问题,用户可以随时更改它,但是..

当我使用此代码更改它时,例如

[[NSUserDefaults standardUserDefaults] setObject[@"de", @"en", @"it"] forKey"AppleLanguages"];

在重新启动应用程序之前它不会生效,因为包已经加载到 appDelegate 中,对吧?

所以我尝试了这个解决方案

https://stackoverflow.com/a/20257557/2839104

但是已经加载的 viewController 不受影响,所以...

如何在不重新启动应用程序语言和不改变 NSLog 用法的情况下更新应用程序语言?有什么办法吗?

如有任何意见,我将不胜感激。



Best Answer-推荐答案


您必须实现一个类,该类将加载与项目中可用的语言相对应的每个 localizable.string。

然后你创建一个 viewController 来允许选择一种新的语言。
当用户选择一种语言时,您必须重新加载语言标签并通知每个 Controller 它必须自行刷新。

我在我的一些应用程序中做了这个。

我创建了一个宏来添加我的 viewController 作为语言管理器的委托(delegate)。

关于ios - 如何在不重新启动的情况下从应用程序内部更改应用程序的本地化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27922640/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4