如何处理不同语言的 iOS 推送通知
Posted
技术标签:
【中文标题】如何处理不同语言的 iOS 推送通知【英文标题】:How to handle iOS Push Notifications in Different language 【发布时间】:2016-06-22 12:14:45 【问题描述】:我正在开发一个应用程序,在该应用程序中实现了推送通知。现在我必须为推送通知提供多语言支持。 请建议推送通知的本地化应该在应用程序端还是服务器端。 以及应用未运行时如何处理Banner上显示的推送语言?
提前致谢
【问题讨论】:
这是服务器端的工作。你不能站在你这边。 【参考方案1】:这是一个老问题,但值得一个新的答案。
本地化推送通知可以在服务器端或应用程序中解决。
要在服务器端发送本地化通知,需要服务器知道用户的语言偏好,并且就像 aronspring 建议的那样,注册推送令牌时是这样做的好时机。
要在手机本地执行此操作,您需要在应用程序包 Localizable.strings 文件中提供所有可能的通知及其翻译。然后,服务器将不再发送要显示的文本,而是将密钥发送到 Localizable.strings 中的相应翻译。
示例应用程序负载:
"aps" :
"alert" :
"loc-key" : "SOME_MESSAGE"
如需更好的解释,请在此处阅读更多内容:Local and Remote Notification Programming Guide
【讨论】:
【参考方案2】:就像您刚刚指出的那样,在您的应用未运行的情况下,操作系统将收到通知,并且不会在您的应用中运行任何代码来翻译它们,并会在收到通知时显示它们。因此,在发送之前,它们需要在服务器端进行翻译。该应用程序不必担心它们以何种语言发送 - 无需为此编写应用程序端的代码。
当您注册推送令牌以了解设备设置的语言时,存储设备区域设置可能是一个想法。
【讨论】:
如果您有一小部分固定的消息,您可以本地化您收到的文本(即翻译它)。只有当它是一组固定的消息时。不一致的翻译会给人留下非常糟糕的印象。以上是关于如何处理不同语言的 iOS 推送通知的主要内容,如果未能解决你的问题,请参考以下文章
当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?