Autore Topic: USARE PIU' LINGUE CONTEMPORANEAMENTE  (Letto 431 volte)

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
USARE PIU' LINGUE CONTEMPORANEAMENTE
« il: 30 Gennaio 2015, 09:19:34 CET »
0
Buoangiorno a tutti =)
Qualcuno sa come si può attingere a diverse lingue in contemporanea senza dover forzare l'impostazione della lingua in un'app ???
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline alfy91

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +2
    • @piscitelli91
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Windows 8
Re:USARE PIU' LINGUE CONTEMPORANEAMENTE
« Risposta #1 il: 30 Gennaio 2015, 09:34:50 CET »
0
Che intendi per "attingere" a diverse lingue?
Se intendi internazionalizzare la tua app la procedura è molto sempice, basta compilare i file di stringa (ne fai uno per ogni lingua) avendo cura poi, nel programma, di richiamare il file stringhe (@string/id_voce)
A seconda della lingua impostata sul telefono, l'app mostrerà la lingua prevista.

Offline MisterAnt

  • Utente normale
  • ***
  • Post: 272
  • Respect: +4
    • IlSikano
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4 Active,Galaxy SIII I9300, Galaxy Tab GT-P5100
  • Play Store ID:
    MisterAnt
  • Sistema operativo:
    Ubuntu 12.04/Winzoz 7/Winzoz xp
Re:USARE PIU' LINGUE CONTEMPORANEAMENTE
« Risposta #2 il: 30 Gennaio 2015, 09:52:48 CET »
0
Ho già implementato la gestione di lingue multiple, però il mio scopo è quello di utilizzare delle stringhe che sono presenti in due lingue diverse (values/string.xml e values-de/string.xml) nella stessa attività .
Se le zampe del coniglio sono così fortunate, che fine ha fatto il coniglio?

Offline alfy91

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +2
    • @piscitelli91
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Windows 8
Re:USARE PIU' LINGUE CONTEMPORANEAMENTE
« Risposta #3 il: 30 Gennaio 2015, 14:29:21 CET »
0
Cercando ho trovato questa domanda su Stack Overflow... usano questo metodo:


Codice (Java): [Seleziona]
 
private void callSwitchLang(String langCode) {
    Locale locale = new Locale(langCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());
onCreate(null);
}


A occhio dovrebbe funzionare, anche se non ho potuto testarlo.
Link: internationalization - How to programmatically suppress specific locale in Android application - Stack Overflow

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:USARE PIU' LINGUE CONTEMPORANEAMENTE
« Risposta #4 il: 30 Gennaio 2015, 15:03:34 CET »
0
Di quel metodo se ne sta parlando qui:

Forzare lingua da codice - Android Developers Italia

Però per intenderci quel metodo ti permette di forzare una lingua diversa da quella del device, ma non di usare contemporaneamente due lingue... che se non ho capito male io è quello che l'OP ha richiesto.

Se hai una view con due stringhe e ne vuoi una in una lingua e una in un'altra hai due opzioni:
1- sfrutti il fatto che il sistema prende strings da values ma se ridefinisci una stringa in strings sotto values-xx se xx corrisponde al locale corrente la prende da lì
2- non usi quello che ti mette a disposizione Google crei un solo file strings sotto values e crei N stringhe con postfisso _xx, con xx il locale che vuoi
Per esempio:
hello
hello_it
hello_de
A quel punto carichi la stringa hello_xx che ti serve e imposti la textview o quello che è.

Altre soluzioni non mi vengono in mente.  :-(

Offline alfy91

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +2
    • @piscitelli91
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Windows 8
Re:USARE PIU' LINGUE CONTEMPORANEAMENTE
« Risposta #5 il: 31 Gennaio 2015, 11:07:17 CET »
0
Giusto undead :)
Magari un'altra soluzione può essere copiare i file di lingua nella cartella degli assets.
A questo punto li puoi gestire come fossero dei file XML con la classe DOMDocument. Forse è anche più pulita come soluzione, in quanto mantieni comunque lo stesso file che hai già per le lingue, senza aggiunte di chiavi.
L'ideale sarebbe poter prendere il path del file di lingue e aprirlo con la DOMDocument.
Oltre questa soluzione non ne ho altre neppure io