Autore Topic: Traduzione database in italiano  (Letto 3347 volte)

Offline marco_88

  • Nuovo arrivato
  • *
  • Post: 39
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Kubuntu 13.10
Traduzione database in italiano
« il: 12 Marzo 2014, 12:48:27 CET »
Salve, sto piano piano cercando d'imparare android, e ho capito come si traducono le stringe e avere così la giusta traduzione in base alla lingua del sistema.
Ho infatti usato il file strings.xml per impostare le stringhe in inglese e un nuovo file strings.xml nella cartella values-it per mettere quelle in italiano, e funziona senza problemi.

Però per la mia applicazione servono delle chiamate http verso un server per prelevare dei dati da un database esterno mysql.
Ci sta un modo per tradurre le stringhe provenienti dal database mysql?

In pratica mi è venuta la scritta "geothermic" su una input dell'applicazione, direttamente presa dal database da un campo chiamato type da una tabella del database chiamata plants.

Posso tradurre questo valore da geothermic in Geotermico? Non si tratta chiaramente di un valore che posso assegnare dal layout xml in questo caso, perchè viene letto direttamente dal database.
La lettura viene fatta con una select in PHP, e poi viene parsato il risultato JSON nell'applicazione android.

Grazie

Marco

Offline jagam

  • Nuovo arrivato
  • *
  • Post: 17
    • Mostra profilo
Re:Traduzione database in italiano
« Risposta #1 il: 16 Marzo 2014, 13:30:49 CET »
A mio parere hai due soluzioni:
1) modificare il database inserendo i dati stringa nelle lingue che ti interessano;
2) crearti una tabella di corrispondenza delle stringhe contenute nel db con le relative traduzioni e a valle della query sostituisci.

Inviato dal mio citofono


Offline marco_88

  • Nuovo arrivato
  • *
  • Post: 39
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Kubuntu 13.10
Re:Traduzione database in italiano
« Risposta #2 il: 16 Marzo 2014, 14:24:45 CET »
Grazie per la risposta, però aggiungere tabelle o colonne vorrei evitarlo. Nel progetto web ci sono alcuni casi che viene fatto, però nel progetto php gestisco queste stringhe senza nessuna tabella o colonna in più, e mi piacerebbe fare lo stesso con l'applicazione.

Però probabile che con l'applicazione non si possa fare.

Grazie cmq

Marco

Offline Paul.

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Pol Apps
  • Sistema operativo:
    Windows 7 / 8.1
Re:Traduzione database in italiano
« Risposta #3 il: 17 Novembre 2014, 22:35:03 CET »
Ciao,

potresti provare ad inserire le traduzioni nei file localizzati string.xml, per poi sostituire via codice le "chiavi" che ti ritornano da DB.

Codice (Java): [Seleziona]
public static int getResId(String key, Class<?> c) {
    try {
        Field idField = c.getDeclaredField(key);
        return idField.getInt(idField);
    } catch (Exception e) {
        e.printStackTrace();
        return -1;
    }
}

Per chiamarlo poi dovresti usare qualcosa del tipo:
Codice (Java): [Seleziona]
getResId("geothermic", context, String.class);

Personalmente però opterei per inserire a DB le traduzioni.