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事件中處理? –