Si può prendere l'approccio suggerito da Ascorbin, o implementare qualcosa di simile a quello che Apple hanno nelle loro notifiche push:
Il server può inviare un messaggio GCM con un parametro che è una chiave a un messaggio. La tua app Android dovrà contenere per ogni chiave possibile le stringhe che dovrebbero essere visualizzate per essa in ciascuna delle 7 lingue (usando più copie di strings.xml). Quindi il ricevitore GCM nella tua app otterrà la chiave dal server e riceverà la stringa di risorse corrispondente (otterrà automaticamente la stringa corrispondente alla locale del dispositivo). In questo modo non devi preoccuparti della localizzazione sul tuo server. Lo svantaggio di questo approccio è che tutti i tuoi messaggi devono essere predefiniti nella tua app.
È inoltre possibile aggiungere parametri al tasto messaggio come Apple. Ad esempio, il server invia una chiave = "NEW_MAIL_FROM" e param1 = "John". L'app trova una risorsa stringa per quella chiave (si assume che il dispositivo utilizzi le impostazioni internazionali inglesi) - "Hai un messaggio da {0}" - e sostituisce il parametro con John, visualizzando il messaggio "Hai un messaggio da John". Un dispositivo con una locale diversa mostrerà un messaggio in una lingua diversa.
Sì, ma che succede se tra il momento in cui il token del dispositivo viene inviato al server e il momento in cui decidiamo di inviare all'utente una notifica, l'utente cambia lingua? Sul server abbiamo ancora la vecchia lingua, inviata insieme al token, un po 'di tempo fa, non la lingua corrente.In questo caso, l'applicazione potrebbe inviare al server la lingua corrente ogni volta che l'utente cambia le impostazioni internazionali. – bitek
Vero, ma quanto spesso succederà? Con quale frequenza cambi la lingua del tuo telefono? – FWeigl
Non importa quanto spesso, può semplicemente accadere. Altre risposte suggeriscono di ricevere "chiavi" all'interno della notifica e di farle corrispondere a risorse stringa localizzate, il che è un approccio molto migliore (pulito, semplice e a prova di proiettile). –