我正在以Firebase云消息、云功能和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);
你知道吗?
有两种方法。
发送本地化内容
您可以在服务器端(例如,在Cloud Firestore中(跟踪用户的区域设置,并在发送之前选择正确的翻译。当向多个用户发送消息时,这往往会变得更加棘手。但是,您可以让用户订阅特定语言的主题,例如lang_en, lang_fr, ...
,并向这些主题发送本地化消息。
使用本地化密钥
正如您已经提到的,有一些特定的密钥可用:titleLocKey
和bodyLocKey
。如果在特定平台中设置了正确的本地化字符串,则可以使用它们的键,平台将确定在通知中显示哪个标签。对于iOS,这在Localizable.strings
文件中管理,对于Android,在res/values/strings.xml
中管理。