मेरे आवेदन में मेरे पास भाषा चयन का विकल्प है।मैं अपने आवेदन की भाषा कैसे बदल सकता हूं?
तीन भाषाएं हैं: अंग्रेजी, जर्मन & स्पेनिश। जब मैं कोई विकल्प चुनता हूं, तो संपूर्ण एप्लिकेशन भाषा बदलनी चाहिए।
मैं इसे कैसे संभव बना सकता हूं?
मेरे आवेदन में मेरे पास भाषा चयन का विकल्प है।मैं अपने आवेदन की भाषा कैसे बदल सकता हूं?
तीन भाषाएं हैं: अंग्रेजी, जर्मन & स्पेनिश। जब मैं कोई विकल्प चुनता हूं, तो संपूर्ण एप्लिकेशन भाषा बदलनी चाहिए।
मैं इसे कैसे संभव बना सकता हूं?
क्या आपका मतलब है कि आप फोन में डिफ़ॉल्ट भाषा की तुलना में किसी अन्य भाषा का उपयोग करना चाहते हैं? मेरे पास एक आवेदन में है, और यही वह है जो मुझे करना था।
AndroidManifest.xml
<activity
android:name=".ui.SomeActivity"
android:configChanges="locale"
:
:
</activity>
में अपनी गतिविधि घोषणा करने के लिए इस जोड़े और फिर अपनी गतिविधि में onCreate
से इस तरह की एक विधि आह्वान:
public static void setLanguage(Context context, String languageToLoad) {
Log.d(TAG, "setting language");
Locale locale = new Locale(languageToLoad); //e.g "sv"
Locale systemLocale = SystemLocale.getInstance().getCurrentLocale(context);
if (systemLocale != null && systemLocale.equals(locale)) {
Log.d(TAG, "Already correct language set");
return;
}
Locale.setDefault(locale);
android.content.res.Configuration config = new android.content.res.Configuration();
config.locale = locale;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
Log.d(TAG, "Language set");
}
तो, दो चीजों से ऊपर करने के बाद मुझे बस resoures फ़ाइल (विशिष्ट भाषा समर्थन के लिए R.String.Values.xml) बनाने की आवश्यकता है और ऐप सेटिंग्स पर आधार मैं ऐप रन टाइम की भाषा सेट कर सकता हूं। सही ? –
आपको सिस्टम लॉकेल और TAG कहां मिला? – Teysz
मुझे लगता है कि 'SystemLocale ....' के बजाय 'Locale.getDefault()' का उपयोग किया जाना चाहिए। –
तुम बस भाषा के अनुसार मूल्य फ़ोल्डर जोड़ने । उदाहरण के लिए, मैंने 3 भाषाओं को जोड़ा है: अंग्रेजी, अरबी और हिंदी। res
फ़ोल्डर में values-ar
अरबी के लिए और values-hi
के लिए हिंदी में आवेदन में उपयोग किए गए सभी तारों को पकड़ने के लिए। अब मेरे पास भाषाओं की एक सूचीदृश्य है। तो जब उपयोगकर्ता किसी एक भाषा पर क्लिक करता है, तो आवेदन की भाषा बदल दी जाएगी और फोन भाषा वही रहेगी। यहाँ कोड .. है
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
String language = ((TextView) view).getText().toString();
if (language.equals("English")) {
Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources()
.updateConfiguration(
config,
getBaseContext().getResources()
.getDisplayMetrics());
Toast.makeText(ChangeLanguage.this, "Locale in English",
Toast.LENGTH_LONG).show();
} else if (language.equals("Arabic")) {
Locale locale = new Locale("ar");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources()
.updateConfiguration(
config,
getBaseContext().getResources()
.getDisplayMetrics());
Toast.makeText(ChangeLanguage.this, "Locale in Arabic",
Toast.LENGTH_LONG).show();
}else if (language.equals("Hindi")) {
Locale locale = new Locale("hi");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources()
.updateConfiguration(
config,
getBaseContext().getResources()
.getDisplayMetrics());
Toast.makeText(ChangeLanguage.this, "Locale in Hindi",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(ChangeLanguage.this,
"Locale in not changed!", Toast.LENGTH_LONG).show();
}
/*
* Toast.makeText(getApplicationContext(), language,
* Toast.LENGTH_SHORT) .show();
*/
GetterSetter.getInstance().setLanguage(changelanguage);
startActivity(new Intent(ChangeLanguage.this,
MainSettings.class));
main.tabhost.setCurrentTab(3);
}
});
आपको निश्चित रूप से अपना कोड डालना चाहिए। – JJD
कृपया पूर्वावलोकन विंडो पर देखने के लिए जब आप एक सवाल तैयार करना, और सीधे HTML टैग का उपयोग नहीं करते, संपादक नियंत्रण का उपयोग। आपका प्रश्न टेक्स्ट बिल्कुल नहीं दिखा रहा था। – Mat
नए लड़के की मदद के लिए धन्यवाद, @मैट। – DOK