Uygulamamın İspanyolca, Portekizce ve İngilizce olarak üç dili desteklemesini istiyorum. Ve uygulamada dil seçme seçeneği verin.
1) 3 adet çekmeceli klasör çekmeceli, çekmeceli, çekmeceli.
2) 3 değer klasör değerleri-es, değerler-pt, değerler. String.xml değerlerini dillere göre değiştirin.
Dil seçmek için imageView'ım var. Tıklandığında, İngilizce, İspanyolca, Portekizce seçeneklerinden oluşan menüyü açın.
Bu kodla seçenek seçiminde yerel ayarı uygulama içinde ayarladım
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);
}
Manifest'te beyan ettim- android: configChanges = "locale"
İşe yarıyor ama bazı sorunları var.
Sorun:-
1) Dil seçildiğinde, dil seçimi görüntüsünü içeren ekran değişmez ancak diğer ekranlar değişir.
2) Oryantasyondan sonra, telefonun yerel ayarına göre uygulama geri yükleme dilini değiştirin.
android:configChanges="locale"
Aktiviteniz için AndroidManifest.xml