ios - 在 iOS/Swift 中首次启动应用程序之前设置默认语言

标签 ios swift localization internationalization

我想在应用程序首次启动时将另一种语言设置为默认语言。 iOS 没有这种语言作为界面语言,所以我唯一的办法就是手动设置它。我在 SO 上找到了数十种解决方案,而那些有效的解决方案只能在模拟器中使用,而不能在真实设备上使用。这是我尝试过的:

首先,设置应用语言的方法是:

UserDefaults.standard.set(["xx-XX", "yy-YY"], forKey: "AppleLanguages")

问题是,这需要重新启动应用程序,而我希望在应用程序第一次启动时设置它。我也试过:

UserDefaults.standard.register(defaults: ["AppleLanguages": ["xx-XX", "yy-YY"]])

甚至调用在大多数情况下根本不需要的 UserDefaults.standard.synchronize()

以及我尝试放置这段代码的地方:

  1. 应用程序(:didFinishLaunchingWithOptions:)
  2. 应用程序初始化:|
  3. 继承 UIApplication,创建 main.swift 并添加 以上代码作为顶级语句

info.plist 中:

  1. 设置Localization native development regionxx-XX
  2. Localizations 的第一个元素设置为 xx-XX

顺便说一下,目前还不能实现自定义本地化。

最让我困惑的是,为什么这样的功能可以在模拟器中使用,而不是在真实设备中使用。

编辑: 我什至删除了默认的英语语言,并重新添加了English (World),这样旁边就没有Development Language标签了。还是不行。

最佳答案

在 Xcode 的 Start Stop Buttons 旁边,您可以按“projectName” -> Edit Scheme... -> Run -> Options and change in Application Language

enter image description here

关于ios - 在 iOS/Swift 中首次启动应用程序之前设置默认语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47605446/

相关文章:

ios - viewDidAppear 和 viewDidLoad 初始化位置太晚了

ios - 如何使用 Non-Base 本地化在 Xcode 中预览 Storyboard

java - 更改默认区域设置语言 android

ios - swift 。 iOS。当我再次运行应用程序时,存储在沙箱中的图片消失了

ios - CATransform3D 透视图不适用于 CATransformLayer

ios - 将 String/NSString 编码为代码页 850 格式

ios - 从 AppDelegate 发送本地通知时出现 NSInvalidArgumentException

ios - 为什么需要 IOS 开发人员证书才能在设备上运行 IOS 应用程序?

ios - 从 CMMotionManager 获取 SCNCamera 的正确值

当我们在 dart 文件中输入代码时,Flutter 本地化为 : Auto generate key - value in intl_en. arb