• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何在不重新启动的情况下从应用程序内部更改应用程序的本地化?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 04:45:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

[[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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap