2016-12-04 8 views
6

डिफ़ॉल्ट रूप से विंडोज स्टोर यूडब्ल्यूपी ऐप्स लक्ष्य मशीन के लिए विशिष्ट संसाधन स्थापित करते हैं। उदाहरण के लिए यदि ऐप को 5 अलग-अलग भाषाओं में स्थानांतरित किया गया है और उपयोगकर्ता के पास यूएस में मशीन है, तो केवल यूएस-यूएस संसाधन स्थापित हैं।विंडोज स्टोर यूडब्ल्यूपी ऐप में सभी स्थानीय संसाधनों को हमेशा कैसे इंस्टॉल करें?

समस्या यह है कि अगर मैं अपने ऐप ऑन-डिमांड भाषा स्विचिंग में रखना चाहता हूं। यहां तक ​​कि मैंने सोचा कि मैंने एफआर-एफआर संसाधनों के साथ ऐप प्रकाशित किया है, मैं fr-FR पर स्विच नहीं कर सकता क्योंकि यह भाषा पैक स्थापित नहीं है।

क्या पर कोई तरीका या सेटिंग है, तो सभी स्टोर को डाउनलोड करने के लिए Windows Store से ऐप इंस्टॉल किया गया है?

नोट एक ही रास्ता है, कैसे हल करने के लिए इस appxbundle के रूप में अनुप्रयोग है नहीं पैकेज, लेकिन एक बार एप्लिकेशन appxbundle के रूप में प्रकाशित किया जाता है, इसे वापस गैर appxbundle प्रारूप करने के लिए जाने के लिए संभव नहीं है।

संपादित, स्वीकार किए जाते हैं समाधान नीचे काम किया, मैं तो बस इस config मेरी .csproj फ़ाइल को जोड़ा गया और अब यह स्थापना के दौरान सभी संसाधन फ़ाइलों को डाउनलोड करता है:

<AppxBundleAutoResourcePackageQualifiers>Scale|DXFeatureLevel</AppxBundleAutoResourcePackageQualifiers> 
<AppxDefaultResourceQualifiers>Language=cs-CZ;de-DE;en-US;es-ES;fr-FR;it-IT;pt-PT;ru-RU</AppxDefaultResourceQualifiers> 

उत्तर

4

नोट एक ही रास्ता है, कि यह कैसे हल करने के लिए appxbundle के रूप में एप्लिकेशन पैकेज नहीं है, लेकिन एक बार एप्लिकेशन appxbundle के रूप में प्रकाशित किया जाता है, यह संभव नहीं है टी o गैर-एपक्सबंडल प्रारूप पर वापस जाएं।

यदि आपको एपक्सबंडल रखना है, लेकिन फिर भी सभी भाषा संसाधन स्थापित रखना चाहते हैं। आप अपने ऐप पैकेज में कॉन्फ़िगरेशन फ़ाइल जोड़कर संसाधनों को शामिल कर सकते हैं या अपनी प्रोजेक्ट फ़ाइल को सीधे संशोधित कर सकते हैं।

इस तरह, उपयोगकर्ता भाषा वरीयताओं को ऑफ़लाइन बदल सकते हैं और उनके डिवाइस नई सेटिंग्स के लिए सर्वोत्तम संसाधनों पर स्विच कर सकते हैं।

विस्तृत चरणों के लिए, कृपया Ensure that resources are installed on a device regardless of whether a device requires them का पालन करें, जो विंडोज स्टोर 8.1 ऐप पर लक्षित है, लेकिन यह यूडब्ल्यूपी ऐप पर भी काम करता है। इसके अलावा, आप एमएसडीएन फोरम पर this thread में @ एमी पेंग के उत्तर की जांच कर सकते हैं।

+0

हां, मुझे यह एमएसडीएन पृष्ठ भी मिला है और यह दृष्टिकोण मेरे यूडब्ल्यूपी ऐप में काम करता है भले ही यह विंडोज 8.1 को लक्षित कर रहा हो। बहुत बुरा मुझे इसे खोजने के लिए दस्तावेज वास्तव में गहराई से खोदना पड़ा। –

1

मुझे लगता है कि प्रणाली की अनुमति नहीं होगी आप इस सम्मेलन को धोखा देने के बिना मजबूर करने के लिए मजबूर करते हैं।

समाधान के लिए, आप इस तरह के तरीके से संसाधन फ़ाइलों का नाम हो सकता है कि सिस्टम में ही यह स्थानीय संसाधनों के साथ काम कर रहा है नहीं पहचानता है - के बजाय Resources.en-US.resw, Resources.fr-FR.resw, आदि होने के लिए, आप उन्हें नाम दे सकते हैं उदाहरण के लिए Resources_enUS.resw, Resources_frFR.resw

public class LocalizationService 
{ 
    private readonly ResourceLoader _loader = null; 

    public LocalizationService(string culture) 
    { 
     culture = culture.Replace("-", ""); 
     _loader = ResourceLoader.GetForCurrentView($"Resources_{culture}"); 
    } 
} 

तो फिर तुम सिर्फ LocalizationService का अनुरोध संस्कृति

साथ बना सकते हैं:

तो फिर तुम एक LocalizationService वर्ग, कि निर्माता पैरामीटर के रूप में संस्कृति टैग को स्वीकार करने और मैन्युअल रूप से है कि विशिष्ट संस्कृति के लिए संसाधनों के लोड होता हो सकता था

var localizer = new LocalizationService("fr-FR") 
संबंधित मुद्दे