当应用程序第一次启动时,我想将另一种语言设置为默认语言。iOS没有这种语言作为界面语言,所以我唯一的方法是手动设置它。我在stackoverflow上找到了数十种解决方案,但那些能够工作的方法只适用于模拟器,而不适用于真实设备。以下是我尝试过的方法:
首先,设置应用程序语言的方法如下:
UserDefaults.standard.set(["xx-XX", "yy-YY"], forKey: "AppleLanguages")
事实上,这需要重新启动应用程序,而我希望在应用程序第一次启动时设置。我也尝试过:
UserDefaults.standard.register(defaults: ["AppleLanguages": ["xx-XX", "yy-YY"]])
甚至在大多数情况下都不需要调用 UserDefaults.standard.synchronize()
.
我尝试过的放置此代码的位置有:
application(:didFinishLaunchingWithOptions:)
application init :|
- 子类化
UIApplication
,创建main.swift
并将上述代码添加为顶级语句
还有在 info.plist
中:
- 设置
Localization native development region
为xx-XX
- 将
Localizations
的第一个元素设置为xx-XX
顺便说一句,在这个时候实现自定义本地化不是一个选项。
而且最令我困惑的是,为什么这样的特性在模拟器中可以工作,但在真实设备中却不能。
编辑:
我甚至删除了默认的英语语言,并再次添加了 English (World)
,以便其旁边没有 Development Language
标签。 仍然无法工作。