通过GCM (即将切换到FCM )向Android设备发送推送通知时,如何根据手机语言本地化消息标题/正文中出现的号码?
示例消息:
无名氏137
如果设备语言设置为阿拉伯语,则数字应本地化
本地化消息
无名氏١٣٧
由于我在发送通知时不知道用户的设备语言,如何在收到消息时本地化号码?除非应用程序在前台运行,否则onMessageReceived回调不会执行,因此我不能对那里的数字执行字符串替换。
"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",
}
发布于 2018-07-24 04:06:35
为了解决这个问题,我最终只创建了一个帮助器类,其中包含一个处理转换的方法。我通过它运行消息文本,它返回翻译后的值。到目前为止,它对我来说工作得很好。
public static class NumberHelper
{
public static string ConvertToArabicNumbers(this string input)
{
return input.Replace('0', '\u0660')
.Replace('1', '\u0661')
.Replace('2', '\u0662')
.Replace('3', '\u0663')
.Replace('4', '\u0664')
.Replace('5', '\u0665')
.Replace('6', '\u0666')
.Replace('7', '\u0667')
.Replace('8', '\u0668')
.Replace('9', '\u0669')
.Replace('.', '\u066B');
}
}
发布于 2017-02-14 01:47:04
一般来说,你不会去尝试。阿拉伯数字(正常的0-9)很容易理解。如果你想坚持尝试,你可以在客户端使用字符串替换。或者在服务器端发布您的语言环境,并让服务器在发送之前进行翻译。
https://stackoverflow.com/questions/42210145
复制相似问题