2014-05-23 9 views
6

मैंने दो भाषाओं में एक ऐप बनाया है। दूसरा (अंग्रेजी), तब प्रयोग किया जाता है जब उपयोगकर्ता की डिफ़ॉल्ट सिस्टम भाषा अंग्रेजी होती है। यदि यह नहीं है, तो पहले का उपयोग किया जाता है।Android ऐप के लिए डिफ़ॉल्ट भाषा कैसे सेट करें?

मैं दूसरी भाषा (वह अंग्रेजी) को एक डिफॉल्ट भाषा, के रूप में सेट करना चाहता हूं जिसका अर्थ है कि जब उपयोगकर्ता मेरा ऐप खोलता है और उसकी सिस्टम भाषा पहली नहीं होती है, न ही अंग्रेजी, अंग्रेजी भाषा डिफ़ॉल्ट रूप से दिखाई देगी एक।

मैंने कोशिश की:

Locale locale = new Locale("en_US"); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    context.getApplicationContext.getResources().updateConfiguration(config, null); 

लेकिन मिल गया "संदर्भ हल नहीं किया जा सकता" त्रुटि हर .. कोड सही है या के इस टुकड़े है ..?

+3

आपको ऐसा करने की आवश्यकता नहीं है। जो भी संसाधन आप "आधार" फ़ोल्डर में डालते हैं (उदा। मूल्य बनाम मूल्य-एस) का उपयोग तब किया जाएगा जब भाषा किसी भी उपलब्ध विकल्पों से मेल नहीं खाती है। – matiash

उत्तर

0

आपको res फ़ोल्डरों का उपयोग करके समर्थित सभी भाषाओं को परिभाषित करना चाहिए, यानी res/values, res/values-en, res/values-fr। सिस्टम अन्य सभी का ख्याल रखेगा, आपको किसी भी कोड की आवश्यकता नहीं है।

0

आप आप किसी गतिविधि में हैं, तो कर सकते हैं:

this.getApplicationContext().getResources().updateConfiguration(config, null);

... अपने त्रुटि को ठीक करने के लिए। अन्यथा आपको संदर्भ में पास करने की आवश्यकता है।

सुनिश्चित करें कि आप getApplicationContext() के अंत में संश्लेषण जोड़ते हैं। आपने अपने कोड में ऐसा नहीं किया है।

4

ठीक है,

सब कुछ स्पष्ट करना, मुझे एहसास हुआ res/values एक डिफ़ॉल्ट निर्देशिका है और दूसरों "भाषा के मामले में" बस कर रहे हैं। तो मुझे जो कुछ करना था वह अंग्रेजी को/res/values ​​पर स्विच करना था और दूसरी भाषा res/values-es

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