如何翻译 Firebase 推送通知?

ele*_*nad 5 firebase flutter google-cloud-functions firebase-cloud-messaging

我使用 Firebase Cloud Messaging、Cloud Functions 和 Flutter 作为框架发送 FCM 推送通知。我花了 3 个小时寻找一个解决方案来接收带有翻译的后台通知。我想以设备语言显示翻译。

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

我像这样触发通知:

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

fcm.sendToDevice(userToken, payload);
Run Code Online (Sandbox Code Playgroud)

你有什么主意吗?

dum*_*azy 5

有两种方法可以实现这一点。

发送本地化内容

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

使用本地化键

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