如何翻译 Firebase 推送通知?

How to translate Firebase Push Notifications?

我正在使用 Firebase 云消息传递、云函数和 Flutter 作为框架发送 FCM 推送通知。我搜索了 3 小时以来的解决方案来接收带有翻译的后台通知。我想以设备语言显示翻译。

我找到的是 titleLocKeybodyLocKey 之类的参数,但我找不到任何方法来使用这些参数。我必须在我的项目或服务器环境中的哪个位置包含此变量?

我这样触发通知:

// Push Notification
const payload: admin.messaging.MessagingPayload = {
    notification: {
        title: "New User",
        body: "A new user entered your platform",
        badge: "1",
    }
}

fcm.sendToDevice(userToken, payload);

你有什么想法吗?

有两种方法。

发送本地化内容

您可以在服务器端(例如在 Cloud Firestore 中)跟踪用户的区域设置,并在发送之前选择正确的翻译。 当向多个用户发送消息时,这往往会变得更加棘手。但是,您可以让用户订阅特定语言的主题,例如 lang_en, lang_fr, ... 并将您的本地化消息发送到这些主题。

使用本地化密钥

正如您已经提到的,有特定的键可用:titleLocKeybodyLocKey。如果您在特定平台中设置了正确的本地化字符串,您可以使用它们的键,平台将确定在通知中显示哪个标签。 对于 iOS,这在 Localizable.strings 文件中进行管理,对于 Android,在 res/values/strings.xml.

中进行管理