Italian Lettura e aggiornamento lingua

lock255

Well-Known Member
Licensed User
Longtime User
Salve a tutti,
nella mia app ho la necessità di leggere il dato nel mio database, questo dato fa cambiare la lingua (il testo dei button, msgbox ecc) della mia app. Non capisco perchè nonostante il dato cambi correttamente nel database; mi occorre riavviare la mia app per poter vedere applicata la lingua scelta.

Per caso esiste un reflesh dell'applicazione o del database MySQL, che mi permetta di ottenre i cambiamenti senza il riavvio?
@LucaMs
 

LucaMs

Expert
Licensed User
Longtime User
Sto riguardando il mio codice.

Nella Activity_Create del Main chiamo l'inizializzazione di un modulo per le traduzioni (anche se non direttamente), per cui

In questo, carico due file di testo in altrettante List, uno italiano e uno a seconda della lingua impostata nel dispositivo.

Poi, per ogni view o stringa, utilizzo qualcosa di questo genere:

lblArchiviLBL.Text = modT.Tran("Archivi")


in cui modT è il modulo per le traduzioni e Tran la routine che traduce "Archivi".

Fatto così, mi funziona, senza riavviare l'app.
 

lock255

Well-Known Member
Licensed User
Longtime User
Io ho fatto una lista con tutte le lingue direttamente nella main, all'avvio dell'app legge il dato (ovvero la lingua corrente scelta), e fin qui tutto bene.

Qunado però dal menù (traminte un listview), aggiorno il dato nel database con un'altra lingua, il dato cambia ma per fare rileggere il dato sono costretto (ovviamente per mia ignoranza) a riavviare l'app.

Ci vorrebbe un Updaterecord, ma non so come fare :(
 

LucaMs

Expert
Licensed User
Longtime User
Purtroppo, non vedendo il codice, non capisco bene.

Hai un menu nella main con un elenco di lingue dal quale l'utente sceglie quella che preferisce?
Dopodiché, la lingua scelta finisce in un db?
E poi?

Hai 3 possibilità:
o riesci a farmi capire meglio, malgrado oggi io sia particolamente opaco (opposto di lucido :D);
o pubblichi il sorgente (almeno in parte);
o me lo spedisci (così lo rivendo e mi arricchisco :p)

Cmq, per scrivere sul db, hai utilizzato ExecNonQuery2?
 

lock255

Well-Known Member
Licensed User
Longtime User
Ok, ho messo un aggiornamento nel playstore appena esce ti mando un MP, così puoi vederla meglio.

Per impostare una nuova lingua utilizzo:
B4X:
ExecNonQuery("UPDATE Campo SET Dato=1 WHERE Dato <> 1")
Dove 8 sta per il numero di una lingua.
 

LucaMs

Expert
Licensed User
Longtime User
Credevo non parlassi di una app pubblicata.
Non posso capire se non vedo il sorgente, perché è chiaro che la query esegue l'aggiornamento, ma poi non so cosa succede.

E' il codice che dev'essere informato del cambio di lingua e trovare tutte le traduzioni.
 

lock255

Well-Known Member
Licensed User
Longtime User
Intanto ti faccio vedere la struttura dell'app e il suo funzionamento, così puoi capire meglio :)
 
Top