2010-09-30 13 views
5

के बिना ऑन-द-फ्लाई पर यूआई भाषा परिवर्तन को प्रतिबिंबित करता है मेरे पास मेरे ऐप में एक सेटिंग है जो उपयोगकर्ता को विभिन्न स्थानीयकरण (भाषा), यानी Chinese, German, etc चुनने की अनुमति देती है।एंड्रॉइड: ऐप

मैं क्या करना चाहता हूं कि एक बार जब उपयोगकर्ता अपनी पसंद करता है, तो वर्तमान में चयनित भाषा में स्ट्रिंग के साथ तुरंत लेआउट को अपडेट करने के लिए। बेशक, मैं ऐप को पुनः लोड किए बिना, लैंग परिवर्तन को सभी मौजूदा गतिविधियों में प्रचारित करना चाहता हूं।

मुझे यह मिला (अभी तक कोशिश की गई है), लेकिन यह सोच रहा था कि ऐसा करने का एक क्लीनर तरीका है या नहीं।

http://www.tutorialforandroid.com/2009/01/force-localize-application-on-android.html

ग्रेसियस

+0

हैलो, क्या आपको इसके लिए सबसे अच्छा अभ्यास मिला? thx –

उत्तर

2

मैं भी इस issue.I नीचे कोड का इस्तेमाल किया और फिर इसे गतिविधि

public void setLocale(String lang) { 

    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
    onConfigurationChanged(conf); 
    /*Intent refresh = new Intent(this, AndroidLocalize.class); 
    startActivity(refresh);*/ 
} 
@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    // refresh your views here 
    lblLang.setText(R.string.langselection); 
    super.onConfigurationChanged(newConfig); 
} 

मुझे आशा है कि यह आप में मदद मिलेगी ताज़ा बिना भाषा बदल था .. .....

+1

निम्न लिंक पर सबसे अधिक वोट दिए गए उत्तर से कॉपी किया गया। यहां तक ​​कि टिप्पणी कोड भी। http://stackoverflow.com/questions/12908289/how-change-language-of-app-on-user-select-language –

0

कुछ कदम हैं जिन्हें आपको

लागू करना चाहिए

सबसे पहले, आप, आपके विन्यास की स्थान बदलना

Resources resources = context.getResources(); 

    Configuration configuration = resources.getConfiguration(); 
    configuration.locale = new Locale(language); 

    resources.updateConfiguration(configuration, resources.getDisplayMetrics()); 

दूसरा जरूरत है यदि आप अपने परिवर्तन लेआउट कि दिख रहा है करने के लिए सीधे लागू करना चाहते हैं, या तो आप विचारों सीधे अद्यतन कर सकते हैं या यदि आप बस गतिविधि कॉल कर सकते हैं वर्तमान गतिविधि को पुनरारंभ करने के लिए .recreate()।

और आपको अपने परिवर्तनों को जारी रखना होगा क्योंकि उपयोगकर्ता आपके आवेदन को बंद करने के बाद आप भाषा परिवर्तन खो देंगे।

मैं Change Language Programmatically in Android

मूल रूप से अपने ब्लॉग पोस्ट पर और अधिक विस्तृत समाधान के बारे में बताया, तो आप सिर्फ अपने आवेदन वर्ग पर LocaleHelper.onCreate() कहते हैं और आप मक्खी आप LocaleHelper.setLocale कॉल कर सकते हैं पर स्थान बदलना चाहते हैं()

संबंधित मुद्दे