मैं चाहता हूं कि मेरा ऐप तीन भाषाओं स्पेनिश, पुर्तगाली और अंग्रेजी का समर्थन करे। और app में भाषा का चयन करने का विकल्प दें। मैंने बनाया है
1) 3 ड्रॉएबल फोल्डर drawable-es, drawable-pt, drawable।
2) 3 मान फ़ोल्डर के मूल्य-एस, मान-पीटी, मान। भाषाओं के अनुसार स्ट्रिंग स्ट्रिंग। xml मान।
मेरे पास भाषा का चयन करने के लिए imageView है। जब वह खुले मेनू पर क्लिक करें जिसमें विकल्प अंग्रेजी, स्पेनिश, पुर्तगाली हो।
मैंने इस कोड द्वारा विकल्प चयन पर लोकेल को ऐप के अंदर सेट किया
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);
}
मैंने घोषणापत्र में घोषणा की है- android: configChanges = "locale"
यह काम करता है लेकिन इसका कुछ मुद्दा है।
संकट:-
1) जब भाषा का चयन किया जाता है, तो स्क्रीन जिसमें भाषा चयन की छवि होती है, लेकिन अन्य स्क्रीन नहीं बदलती हैं।
2) ओरिएंटेशन चेंज ऐप के बाद फोन के लोकेल के अनुसार भाषा को पुनर्स्थापित करें।
android:configChanges="locale"
AndroidManifest.xml के अंदर अपनी गतिविधि के लिए