Ciao a tutti, in un'app android realizzata in Kotlin su cui sto lavorando viene effettuato un cambio lingua automatico gestito da questa funzione:
codice:
fun setLocaleLanguage(context: Context, language: String): Resources {
val locale = Locale(language.lowercase())
Locale.setDefault(locale)
val res: Resources = context.resources
val dm: DisplayMetrics = res.displayMetrics
val conf: Configuration = res.configuration
conf.setLocale(locale) // API 17+ only.
res.updateConfiguration(conf, dm)
MainApplication.appContext = context.createConfigurationContext(conf)
return res
}
Questa funzione viene chiamata due volta passando come parametro del contesto MainApplication.appContext e, nella seconda chiamata, il context del Fragment attivo.
A questa funzione segue un ricarico dei dati mediante chiamate ad un back end passando come parametro la lingua selezionata.
Il tutto funziona però mi è stato segnalato un caso randomico in cui, pare, non tutte le risorse di testo sono state aggiornate alla nuova lingua selezionata.
Per risorse intendo le frasi incluse nel file string.xml alcune delle quali pare non siano state sostituite con i valori dello string.xml relativo alla lingua impostata mentre tutte le altre si.
Ci sono evidenze di casi del genere? Si trova qualche workaround?
Grazie in anticipo a chi risponderà