0

当通过GCM(即将切换到FCM)发送推送通知到Android设备时,如何根据手机语言本地化出现在消息标题/正文中的号码?如何本地化GCM/FCM通知消息中的号码?

实施例的消息:

John Doe的137

如果设备语言设置为阿拉伯语的数字应该定位

本地化消息

John Doe 137

由于发送通知时我不知道用户设备的语言,所以在收到消息时如何定位号码?除非应用程序在前台运行,否则onMessageReceived回调将不会执行,因此我无法对其中的数字执行字符串替换。

对于上下文以下是我从我的服务发送到GCM的gcmNotification JSON的一个示例,它利用了有效载荷允许您使用的一些其他本地化参数。

"gcmNotification": { 
    "title_loc_key": "some_title_key", 
    "title_loc_args": "[\"john\", \"Doe\", 137]", 
    "icon": "TheIcon", 
    "body_loc_key": "some_key", 
    "sound": "somesound", 
    "color": "Blue", 
    "collapse_key": "somekey", 
    } 
+0

您的代码正在接收和格式化消息,对吗?我认为是这种情况,因为邮件正文中包含“some_title_key”,这意味着您正在处理本地化。 – EJK

+0

因此,你的问题归结为 - 我将如何格式化阿拉伯数字,这已被回答:http://stackoverflow.com/questions/31185993/android-display-digits-in-arabic-format – EJK

+0

可能的重复[Android:以阿拉伯文格式显示数字](http://stackoverflow.com/questions/31185993/android-display-digits-in-arabic-format) – EJK

回答

2

一般而言,您不要尝试。阿拉伯数字(正常0-9)很好理解。如果你想坚持尝试,你可以用一个字符串替换来做客户端。或者在服务器端发布你的语言环境,并在发送之前让服务器翻译。

+0

我需要翻译他们,我很害怕。字符串替换是否需要在客户端的onMessageReceived事件中处理? –