Saya ingin aplikasi saya mendukung tiga bahasa Spanyol, Portugis & Inggris. Dan berikan opsi untuk memilih bahasa di app. Saya telah membuat
1) 3 folder drawable drawable-es, drawable-pt, drawable.
2) 3 nilai folder values-es, values-pt, values Ubah nilai String.xml menurut bahasa.
Saya memiliki imageView untuk memilih bahasa. Saat klik menu terbuka yang terdiri dari pilihan bahasa Inggris, Spanyol, Portugis.
Saya mengatur Lokal di dalam aplikasi pada pemilihan opsi dengan kode ini
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);
}
Saya telah mendeklarasikan di Manifest- android: configChanges = "locale"
Ini berfungsi tetapi memiliki beberapa masalah.
Masalah:-
1) Ketika bahasa dipilih, layar yang berisi gambar pemilihan bahasa tidak berubah tetapi layar lain berubah.
2) Setelah orientasi mengubah bahasa pemulihan aplikasi sesuai dengan lokal telepon.
android:configChanges="locale"
untuk Aktivitas Anda di dalam AndroidManifest.xml