如何在 Android 中本地化 Firebase 远程通知正文文本?

How to localise the Firebase remote notification body text in Android?

我想本地化服务器发送的 firebase 通知。通过 php 我正在向 Android 设备发送远程通知。我在 php 中使用的以下邮政数据:

$postData = array(
       'to' => ''.$fcmtoken,
      'priority' => 'high',
       'notification'=> array("body"=> "message body",  "loc_key" => "body_key" "title"=> "message title",                  "icon" => "ic_stat_gdr_notification_icon", 
           "sound" => "default" ),
  );

通知正文正文 'message body' 正在设备上正确发送。但我希望显示键“body_key”的本地化文本 ('Cuerpo del menage')。

另请检查我用来接收消息的 android 代码:

notificationBuilder = new NotificationCompat.Builder(this)
                            .setSmallIcon(R.drawable.ic_stat_gdr_notification_icon)
                            .setContentTitle(from)
                            .setContentText(message)
                            .setSound(defaultSoundUri)
                            .setContentIntent(contentIntent)
                            .setStyle(new NotificationCompat.BigTextStyle().bigText(message));

                }

                NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                manager.notify(1, notificationBuilder.build());

这里我不知道如何使用从通知消息中获取的密钥来本地化它? loc_key 是一个字符串。但在 android 中,它期望 'integer' 在此方法中传递:getResources().getString(R.string.body_key) 其中 'R.string.body_key' 是一个整数。

那么如何在 getString() 方法中传递 loc_key 并获取本地化文本?请帮助我。

你可以这样获取你的body_key对应的整数id

public static int getStringIdentifier(Context context, String name) {
    return getResources().getIdentifier(name, "string", 
        getPackageName());
}


getResources()
 .getString(getStringIdentifier(getApplicationContext(),loc_key));