2011-03-01 11 views
8

मैं एक ऐप का अनुवाद करने की प्रक्रिया में हूं। this पर देखकर, मैं देख सकता हूं कि बहुत से देशों में भाषा के लिए कई कोड हैं।एंड्रॉइड स्थानीयकरण प्रश्न

मैंने नॉर्वेजियन Bokmål के लिए मूल्य-एनबी नामक फ़ोल्डर बनाने का प्रयास किया। मैंने अपने फोन पर लोकेल को नॉर्वे में बदल दिया। यह मेरे सोनी एरिक्सन एक्सपीरिया 8 पर काम करता था, लेकिन सैमसंग गैलेक्सी टैब पर नहीं।

मैंने फिर फ़ोल्डर को मूल्यों का नाम बदलने का प्रयास किया-नहीं। यह अब आकाशगंगा टैब पर काम करता है, लेकिन एक्सपीरिया पर नहीं। मैं दोनों फ़ोल्डर्स बनाता हूं, और यह काम करता है। लेकिन फिर मुझे एक ही फाइल को प्रत्येक फ़ोल्डर में रखना होगा!

क्या होगा अगर किसी ने नॉर्वेजियन न्यूरोर्स्क चुना है, तो क्या मुझे अभी तक एक और फ़ोल्डर बनाना होगा ताकि वे अंग्रेजी में डिफ़ॉल्ट न हों लेकिन नार्वेजियन पाठ प्राप्त करें? मान-nn?

मुझे लगता है कि मेरा प्रश्न यह है: मैं इसे काम करने के लिए कैसे प्राप्त करूं? क्या मैं इन सभी फ़ोल्डरों को बना सकता हूं और फिर उन्हें मानों का संदर्भ दूंगा-नहीं? कृपया मदद करें :)

+0

मैं वास्तव में यह एक भाषा का समर्थन करने के लिए इस मुश्किल है विश्वास नहीं कर सकता। आपका प्रश्न पोस्ट करने के लिए धन्यवाद! – DiscDev

उत्तर

9

वर्तमान खोज नियमों के तहत कोई विशिष्ट तरीका नहीं है कि केवल एक विशिष्ट देश के लिए स्थानीयकरण हो और सभी भाषाओं को खोजने में सक्षम हो। कम से कम http://developer.android.com/guide/topics/resources/localization.html पर पृष्ठों को पढ़ने से मेरी समझ है, आपको मूल्य-एनएन-आरएनओ, वैल्यू-एनबी-आरएनओ, और वैल्यू-नो-आरएनओ बनाने और डुप्लिकेट स्ट्रिंग्स.एक्सएमएल प्रविष्टियां बनाने की आवश्यकता होगी।

मैं इस प्रयास नहीं किया है, लेकिन http://developer.android.com/guide/topics/resources/providing-resources.html#AliasResources

+0

वह बेकार है। मैं उनसे भी मिला हूं। मैंने स्ट्रिंग उपनामों में देखा, लेकिन मेरी समझ के लिए यह वास्तव में कुछ भी ठीक नहीं करता है। मेरे पास कई एलियास के साथ कई फाइलें होंगी, जो अभी भी कुछ जगह लेती हैं। :( – AmITheRWord

+1

क्या किसी ने इसे हल करने के लिए आवेदक में लोकेल को बदलने की कोशिश की है? अगर एनएन या एनबी, सेट नहीं है? [लिंक] (http://stackoverflow.com/questions/2900023/change-language-programatically-in-android) – Cremons

+1

"एन" के "s_Cangu" का "s_Cangu" क्या है, "en_CA" "s" का "s" है, "sv" का उपन्यास "sv" है? ऐसा लगता है कि किसी ने कुछ बार वापस गड़बड़ कर लिया है और अब सिस्टम पीछे की संगतता सुनिश्चित करने के लिए बदला नहीं जा सकता है। या, इवर एसेन ने न्यूरॉर्स्क को अधीनस्थ होने से इंकार कर दिया Norsk – Nilzor

9

में स्ट्रिंग उपनाम पर गौर मैं जानता हूँ कि यह एक पुराने एक है, लेकिन यहाँ एक चाल नहीं, nb और nn गठबंधन करने के लिए कोई रूप:

Locale locale = getResources().getConfiguration().locale; 
if (locale.getLanguage().equals("no") || locale.getLanguage().equals("nb") || locale.getLanguage().equals("nn")){ 
    locale = new Locale("no","NO"); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    Resources res = getBaseContext().getResources(); 
    res.updateConfiguration(config, res.getDisplayMetrics()); 
} 
+0

यदि आप पूरे ढेर को नियंत्रित कर रहे हैं तो एक अच्छा समाधान है, लेकिन यदि आप लाइब्रेरी विकसित नहीं कर रहे हैं – Nilzor

+2

कूल चाल , लेकिन आपको एक नया कॉन्फ़िगरेशन ऑब्जेक्ट बनाने के बजाय res.getConfiguration() का उपयोग करना चाहिए।अन्य कॉन्फ़िगरेशन डेटा (फ़ॉन्ट स्केलिंग इत्यादि) खोना नहीं चाहते हैं – Chicowitz

0

मूल प्रश्न का उत्तर नहीं है, लेकिन किसी संबंधित समस्या का समाधान है और यदि आप उस मुद्दे के लिए समाधान खोजते हैं तो यह एक संभावित गंतव्य है (यह मेरे लिए था)।

हमारी परियोजना में, हमारे पास हमारी संसाधन निर्देशिकाएं बनाई गई थीं लेकिन किसी कारण से स्थानीय तारों को अनदेखा कर दिया गया था।

यह मुद्दा छद्मोलोकलाइज्ड संसाधनों के निर्माण के लिए एंड्रॉइड समर्थन के साथ था। Android के पुराने संस्करणों में आप यह build.gradle फ़ाइल में इस जादू के साथ किया था:

android.applicationVariants.all { variant -> 
    // see http://blog.danlew.net/2014/04/16/android-localization-tips/ 
    if (variant.buildType.isDebuggable()) { 
     variant.mergedFlavor.addResourceConfiguration("zz_ZZ") 
    } 
} 

यह एंड्रॉयड के बाद के संस्करणों में बदल गया है और यदि आप उस का उपयोग तो आप किसी भी स्थानीयकरण नहीं मिलेगा। नए तरीके से बस है:

buildTypes { 
    debug { 
     pseudoLocalesEnabled true 
    } 
} 
संबंधित मुद्दे