Je souhaite que mon application prenne en charge trois langues: espagnol, portugais et anglais. Et donnez la possibilité de sélectionner la langue dans l'application.
1) 3 dossiers à dessiner drawable-es, drawable-pt, drawable.
2) Dossier à 3 valeurs values-es, values-pt, values.Changez les valeurs de String.xml en fonction des langues.
J'ai imageView pour sélectionner la langue.Lorsque vous cliquez dessus, le menu s'ouvre qui comprend l'option anglais, espagnol, portugais.
J'ai défini les paramètres régionaux dans l'application lors de la sélection d'option par ce code
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.en:
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale in English !", Toast.LENGTH_LONG).show();
break;
case R.id.pt:
Locale locale2 = new Locale("pt");
Locale.setDefault(locale2);
Configuration config2 = new Configuration();
config2.locale = locale2;
getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale in Portugal !", Toast.LENGTH_LONG).show();
break;
case R.id.es:
Locale locale3 = new Locale("es");
Locale.setDefault(locale3);
Configuration config3 = new Configuration();
config3.locale = locale3;
getBaseContext().getResources().updateConfiguration(config3, getBaseContext().getResources().getDisplayMetrics());
Toast.makeText(this, "Locale in Spain !", Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
J'ai déclaré dans Manifest- android: configChanges = "locale"
Cela fonctionne mais il y a un problème.
Problème:-
1) Lorsque la langue est sélectionnée, l'écran qui consiste en une image de sélection de la langue ne change pas mais les autres écrans changent.
2) Après l'orientation, changez la langue de restauration de l'application en fonction des paramètres régionaux du téléphone.
android:configChanges="locale"
pour votre activité dans le fichier AndroidManifest.xml