0

При отправке push-уведомления через GCM (переход на FCM в ближайшее время) на Android-устройство, как я могу локализовать номера, отображаемые в заголовке/теле сообщения, на основе языка телефона?Как локализовать номера в сообщении уведомления GCM/FCM?

Пример сообщение:

John Doe 137

Если язык устройства выбран арабское число должно локализовать

Локализованного Сообщение

John Doe 137

Поскольку я не знаю язык пользовательского устройства при отправке уведомления, как я могу локализовать номер при получении сообщения? Обратный вызов onMessageReceived не выполняется, если приложение не работает на переднем плане, поэтому я не могу выполнить замену строк на номера там.

Для контекста Ниже приведен пример gcmNotification JSON. Я отправляю в GCM из моих сервисов, который использует некоторые другие параметры локализации, которые полезная нагрузка позволяет вам использовать.

"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 на клиенте? –