我想在应用程序首次启动时将另一种语言设置为默认语言。 iOS 没有这种语言作为界面语言,所以我唯一的办法就是手动设置它。我在 SO 上找到了数十种解决方案,而那些有效的解决方案只能在模拟器中使用,而不能在真实设备上使用。这是我尝试过的:
首先,设置应用语言的方法是:
UserDefaults.standard.set(["xx-XX", "yy-YY"], forKey: "AppleLanguages")
问题是,这需要重新启动应用程序,而我希望在应用程序第一次启动时设置它。我也试过:
UserDefaults.standard.register(defaults: ["AppleLanguages": ["xx-XX", "yy-YY"]])
甚至调用在大多数情况下根本不需要的 UserDefaults.standard.synchronize()
。
以及我尝试放置这段代码的地方:
- 应用程序(:didFinishLaunchingWithOptions:)
- 应用程序初始化:|
- 继承
UIApplication
,创建main.swift
并添加 以上代码作为顶级语句
在 info.plist
中:
- 设置
Localization native development region
为xx-XX
- 将
Localizations
的第一个元素设置为xx-XX
顺便说一下,目前还不能实现自定义本地化。
最让我困惑的是,为什么这样的功能可以在模拟器中使用,而不是在真实设备中使用。
编辑:
我什至删除了默认的英语语言,并重新添加了English (World)
,这样旁边就没有Development Language
标签了。还是不行。
最佳答案
在 Xcode 的 Start Stop Buttons 旁边,您可以按“projectName” -> Edit Scheme... -> Run -> Options and change in Application Language
关于ios - 在 iOS/Swift 中首次启动应用程序之前设置默认语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47605446/