如何通过应用语言本地化 iOS 通知

Posted

技术标签:

【中文标题】如何通过应用语言本地化 iOS 通知【英文标题】:How to localize iOS notifications by app language 【发布时间】:2017-09-13 13:27:59 【问题描述】:

我正在使用 pod Localize,它是一个语言切换工具。

我的应用有一个首选项菜单,用户可以在其中从列表中更改应用语言。

当用户更改语言时,我也在UserDefaults 中设置AppleLanguages

Localize.setCurrentLanguage("nl")
UserDefaults.standard.set(["nl"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()

这适用于我的应用程序,除了通知本地化外,一切都很好。

我读过the apple documentation about the localization local and remote notifications。

我将本地化内容存储在我的应用中,并使用loc-keyloc-args 发送通知。

但通知总是在用户的preferredlanguage 中收到,这是由 iphone 首选项设置的,并且可能与我的应用语言不同。

如何解决此问题并按应用特定语言本地化通知?

【问题讨论】:

【参考方案1】:

是的,用户将始终以 iPhone 偏好设置的用户首选语言收到通知,因为 Apple 从不建议从应用程序本身更改语言。 如果你这样做,那么你需要在你的服务器上本地化通知内容,在向任何用户发送推送之前,你需要检查用户正在使用的应用程序的语言。然后以应用程序选择的语言发送通知。无论在设备设置中选择哪种语言。

希望对您有所帮助。如果您有任何困惑,请随时发表评论。

【讨论】:

你是对的。我检查了几个应用程序,Facebook 就是其中之一。即使我更改了语言,我也会以我的 iPhone 语言收到通知。

以上是关于如何通过应用语言本地化 iOS 通知的主要内容,如果未能解决你的问题,请参考以下文章

iOS 本地通知 - 在后台时回调

iOS 本地推送

iOS 通过本地通知显示特定的视图控制器

当应用程序处于前台时如何显示本地通知

如何在 iOS 后台运行服务以接收本地通知?

iOS10应用关闭时如何响应本地通知?