2015-06-11 10 views
5

में एकाधिक भाषा समर्थन मानक स्थानीयकरण के बारे में कोई सवाल नहीं है - मुझे पता है कि ऐप को स्थानीयकृत कैसे करें, संसाधनों का उपयोग करें, Uid और इसी तरह - यह पूरी तरह से काम करता है।यूनिवर्सल ऐप

समस्या यह है कि ऐप बंडल के भीतर आता है, इसलिए जब उपयोगकर्ता ऐप इंस्टॉल करता है तो यह केवल उन भाषाओं को कवर करता है जो डिवाइस/फोन सेटिंग्स में चुने जाते हैं। लेकिन मैं सेटिंग्स में एक विकल्प प्रदान करना चाहता हूं जो सेटिंग्स के बारे में एक भाषा चुनने की अनुमति देगा। इस उद्देश्य के लिए, मैं ApplicationLanguages.PrimaryLanguageOverride का उपयोग कर सकता हूं, जो वीएस के माध्यम से तैनात किए जाने पर बहुत अच्छा काम करता है, लेकिन जैसा कि मैंने उल्लेख किया है - स्टोर के संस्करण में संसाधनों की कमी है, क्योंकि सभी इंस्टॉल नहीं हैं।

क्या कोई इस बंडल व्यवहार को बाईपास करने के बारे में जानता है?

समस्या यह भी है कि मैं MAT (बहुभाषी ऐप टूलकिट) का उपयोग कर रहा हूं और मेरा अनुवाद xliff फ़ाइलों के साथ आता है। मैंने को फ़ाइलों को सफलता के बिना बदलने के लिए एक रास्ता खोजने के लिए काफी समय बिताया है। क्या ऐसा करने का कोई तरीका है (या मुझे अपना स्वयं का कनवर्टर लिखना है)?

+0

कैसे _Package.appxmanifest_ में _Never_ को _Generate एप्लिकेशन bundle_ स्थापना के बारे में? या आपको कुछ सामान बंडल करने की जरूरत है लेकिन दूसरों को नहीं? मुझे यकीन नहीं है कि यह किया जा सकता है (लेकिन मैंने इसका बहुत अधिक शोध नहीं किया है)। – yasen

+0

@yasen एक बार बंडल प्रकाशित हो जाने के बाद अगला अपडेट बंडल (AFAIK) के साथ किया जाना चाहिए। तो यह काम नहीं करेगा :( – Romasz

उत्तर

1

आप ResourceContext उपयोग करने की आवश्यकता:

var context = new ResourceContext(); // deliberately not using getForCurrentView() 
context.Languages = new string() {"fr-fr"}; 
ResourceMap resourceMap = ResourceManager.Current.MainResourceMap.GetSubtree("Resources"); 
String str = resourceMap.GetValue("string1", context).ValueAsString; 

अधिक जानकारी पर: 'How to load string resources' और 'ResourceContext class'ResourceContext class'

पी एस। मेरे पास स्टोर में ऐप है और बिना किसी इंस्टॉलेशन के बदलती भाषा में कोई समस्या नहीं है, इसलिए सभी संसाधनों को

+0

देर से लापरवाही के लिए खेद है - मैं छोटी छुट्टियों पर था। परीक्षण करने के बाद मैं आपको एक संकेत दूंगा। धन्यवाद – Romasz

+0

यह वास्तव में सवाल का जवाब नहीं देता है। मुझे एक ही समस्या है। मेरे पास 9 है आवेदन में भाषाएं। सभी 9 विकसित करने के दौरान उपलब्ध हैं, लेकिन जब विंडोज स्टोर से एप्लिकेशन इंस्टॉल किया गया है, तो इसमें केवल भाषाओं का सबसेट है जो सिस्टम सिस्टम में स्थापित है। – Alex

1

देखें: UWP: Resource file for languages is not deployed correctly आपको ऊपर से काम करने के लिए मेरे कोड के लिए बंडल से छुटकारा पाना होगा। या आप यदि चुनी गई भाषा ओएस में स्थापित किया गया है जांच कर सकता है और यदि नहीं तो आप का उपयोग कर उपयोगकर्ता यह चयन करने की अनुमति नहीं कर सकता:

Windows.System.UserProfile.GlobalizationPreferences.Languages 
+0

जहां तक ​​मुझे याद है, वहां कोई समस्या है बंडल से छुटकारा पाएं, जब ऐप पहले से ही बंडल के रूप में प्रकाशित हो - तो इसे केवल एक बंडल के साथ अपडेट किया जा सकता है। क्या इस तरह से कुछ बदल गया है? – Romasz

+0

हाँ ... दुर्भाग्य से आपका अधिकार - मैंने उपयोगकर्ता को अतिरिक्त भाषाओं को स्थापित करने के लिए कहा ओएस – Piachu

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