如何在 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));
我想本地化服务器发送的 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));