设置"AppleLanguages"不会改变应用程序的语言。

10 浏览
0 Comments

设置"AppleLanguages"不会改变应用程序的语言。

我正在尝试实现一个可以改变应用语言的函数。

我尝试这样设置它:

let defaults = NSUserDefaults.standardUserDefaults()

defaults.setObject("de", forKey: "AppleLanguages")

但是在应用重新启动后,语言仍然是“系统默认”。

现在我通过设置Scheme > Application Language > language来测试不同的语言。

但是有可能用户点击一个按钮,在重新启动后看到选择的语言吗?

此外,有什么适当的方法可以避免重新启动时更改语言呢?

0
0 Comments

"AppleLanguages"是一个用于设置应用程序语言的键。根据给出的代码,我们可以看出,该键被用于在应用程序启动之前更改语言设置。然而,根据评论和问题,我们可以推断出在某些情况下,使用该键无法成功更改应用程序的语言设置。

问题的原因可能是与代码版本和IDE版本的兼容性有关。一些评论中提到,在Swift 3和Xcode 7+版本中,使用"main.swift"而不是"Main.swift"作为文件名。另外,还有评论提到,在Xcode 8版本中,该方法已经无效。

为了解决这个问题,一些建议是使用第三方库或更新的Swift语法。其中一个建议是使用MOLH库,该库在GitHub上可以找到。该库使用方法交换来实现语言设置。另一个建议是使用更新的Swift语法来编写"main.swift"文件。

要解决这个问题,可以考虑以下解决方法:

1. 使用MOLH库或其他第三方库来实现语言设置。

2. 使用更新的Swift语法来编写"main.swift"文件。

希望这些解决方法能够帮助解决问题,并实现在应用程序启动之前更改语言设置的目标。

0
0 Comments

设置"AppleLanguages"并不能改变应用程序的语言。这是因为需要使用数组而不是字符串来设置"AppleLanguages"键。另外,使用synchronize()方法也不再推荐使用。

解决方法是使用以下代码将"AppleLanguages"设置为数组:

UserDefaults.standard.set(["de"], forKey: "AppleLanguages")

更多关于synchronize()方法的信息,请参考Apple的文档:developer.apple.com/documentation/foundation/userdefaults/…

0
0 Comments

问题的原因:使用NSUserDefaults来设置语言并不能立即改变应用程序的语言。

解决方法:可以通过以下方法来改变应用程序的语言:

1. 使用NSUserDefaults来保存用户选择的语言,例如:

let language = "de"

NSUserDefaults.standardUserDefaults().setObject([language], forKey: "AppleLanguages")

NSUserDefaults.standardUserDefaults().synchronize()

2. 重新启动应用程序,以使新的语言设置生效。

文章内容如下:

使用NSUserDefaults来设置语言并不能立即改变应用程序的语言。要改变应用程序的语言,可以通过以下方法来实现:

首先,使用NSUserDefaults来保存用户选择的语言,例如:

let language = "de"

NSUserDefaults.standardUserDefaults().setObject([language], forKey: "AppleLanguages")

NSUserDefaults.standardUserDefaults().synchronize()

然后,需要重新启动应用程序,以使新的语言设置生效。

请注意,重新启动应用程序是必要的,因为应用程序在启动时会加载本地化资源。只有在重新启动应用程序后,新的语言设置才会生效。

另外,问这种方法是否适用于发送本地化推送通知。对于这个问题,我们可以肯定地说,这种方法不会影响发送本地化推送通知的功能。本地化推送通知是根据设备的语言设置来显示相应的本地化内容的,而不受应用程序语言设置的影响。

总之,通过保存用户选择的语言到NSUserDefaults,并在重新启动应用程序后生效,可以实现改变应用程序的语言。

0