2009-10-29 15 views
7

मुझे डोजो में एक क्रॉस डोमेन कस्टम बिल्डिंग को लागू करने में समस्या है। स्थिति इस प्रकार है: मैं स्थानीयकरण बंडलों की एक अच्छी संख्या के साथ एक बहुत बड़ी आवेदन किया है, है, तो मूल रूप से निर्देशिका संरचना की तरह
कोर \ (मेरी मॉड्यूल)
NLS \
fr \
एन \
है ....
मेरे मॉड्यूल का निर्माण करते समय परिणाम एक बड़ा core.js/core.xd.js फ़ाइल है, जो, bien sur में स्थानीयकरण नहीं है। स्थानीयकरण एनएलएस निर्देशिकाओं (एन/एफआर/आदि) में मुझे प्रत्येक बंडल के निर्माण/minified, और प्रत्येक भाषा, core_fr.js/core_en.fs के लिए एक बड़ी फ़ाइल बनाने के बाद मिलती है, जिसमें केवल दोजो/डिजिट से संबंधित स्ट्रिंग होते हैं।एनएलएस/स्थानीयकरण के साथ डोजो कस्टम बिल्ड

तो अपने निर्माण स्क्रिप्ट,

  layers: [ 
      { 
    resourceName: "core", 
      name: "../core/trusted.js", 
      dependencies: [ 
         "dojo.i18n", 
         //data 
         "dojox.data.JsonRestStore", 
         "dojox.data.XmlStore", 
         "dojox.rpc.Service", 
         "dojox.form.FileInput", 
         ... 
         "core.controller.Fusebox"       
], 
        prefixes: [ 
       ["dijit","../dijit"], 
      ["dojox","../dojox"], 
        ["core", "../core"] 
        ] 

core.controller.Fusebox वर्ग मैं 1 NLS

dojo["requireLocalization"]("core", "FuseboxContent"); 
यहाँ

वह मर जाएगा लोड करने का प्रयास में है, लेकिन

availableFlatLocales is undefined 
[Break on this error] var locales = availableFlatLocales.split(",");\r\n 
साथ

एचटीएमएल फाइल में मेरी कॉन्फ़िगरेशन है:

// version build 
    var djConfig = { 
    baseUrl: 'https://..../', 
    modulePaths: { 'core': 'core'}, 
    useXDomain: true, 
    xdWaitSeconds: 10, 
    parseOnLoad: true, 
    afterOnLoad: true, 
// debugAtAllCosts: true, 
    isDebug: true, 
    locale: "fr" 
    }; 

और फिर

<script type="text/javascript" src="http://xd.woopic.com/dojoroot/1.3.2-xd/dojo/dojo.xd.js.uncompressed.js"></script> 
<script type="text/javascript" src="https://..../core/trusted.js.uncompressed.js"></script> 

मैं, डिबग के लिए असम्पीडित इस्तेमाल किया निश्चित रूप से। समस्या यह है कि, रनटाइम पर, डोजो मेरे बंडलों को लोड करने का प्रयास करता है और उन्हें नहीं ढूंढ सकता है, और मैं उन्हें अपनी परत फ़ाइल में एम्बेड करना चाहता हूं, इसलिए कोई अतिरिक्त लोड की आवश्यकता नहीं होगी। क्या यह हासिल किया जा सकता है? और जब हम इसमें हैं, क्या क्रॉस डोमेन लोकेशन के साथ कोई काम करने वाली साइट/उदाहरण हैं? अद्यतन: मैंने अपना विश्लेषण जारी रखा और समस्या इस तथ्य में लगी हुई है कि मैं गतिशीलता एनएलएस लोड कर रहा हूं, इसलिए बिल्ड पार्सर को आवश्यकताकरण() कॉल नहीं मिल सकता है। इसलिए प्रोजेक्ट एनएलएस फ़ाइल में केवल डोजो/डिजिट संबंधित सामग्री होती है। हालांकि, मैंने एक डमी फ़ाइल में कुछ बंडल लोड जोड़े, और कोर/एनएलएस की सामग्री अभी भी निर्माता द्वारा अनदेखा की गई है।

किसी भी जानकारी के लिए धन्यवाद, मैं अपनी खोजों के अंत में बहुत अधिक हूं, इस विषय पर नेट पर बहुत कुछ नहीं है।

+0

मैं एक्सडी मुद्दों पर एक विशेषज्ञ नहीं हूं, लेकिन मैं मॉड्यूलपैथ में एनएलएस प्रविष्टियों को देखने के लिए उत्सुक था। उन्हें जरूरी नहीं होना चाहिए। क्या आप उनका उपयोग कर रहे हैं और यदि आप उन्हें खत्म करते हैं तो इससे कोई फर्क पड़ता है? – peller

+0

मैंने उन्हें हटा दिया, कोई बदलाव नहीं, स्थानीयकरण अभी भी लोड नहीं हुए हैं। मुझे लगता है कि वे जहां कुछ विरासत कारणों से हैं ... लेकिन आप सही थे। मैंने तदनुसार पोस्ट अपडेट किया। – aciobanu

उत्तर

5

मुझे कुछ दिन पहले इसी तरह की समस्या थी। सबसे पहले, आप उपलब्ध लोकल को आवश्यक लोकेशन कॉल के चौथे पैरामीटर के रूप में सेट करके त्रुटि के आसपास हो सकते हैं।

उदा।

dojo.requireLocalization("core", "FuseboxContent", null, "en,fr"); 

हालांकि आपको ऐसा करने की ज़रूरत नहीं है।

क्या आपने निम्नानुसार स्थानीयकरण को शामिल करने का प्रयास किया था?

dojo.requireLocalization("core", "FuseboxContent"); // and not dojo["require..."] 
+0

ठीक है, मैं ऐसा इसलिए करता हूं क्योंकि मैं dnamicly nls फ़ाइलों को लोड करता हूं, इसलिए इस तरह से मैं निर्माता के रास्ते में नहीं जाता हूं। मैंने इस तथ्य को हल कर दिया कि निर्माता [modulename] _fr.xd.js फ़ाइल में बंडलों को विलय नहीं करता है, जहां वह डोजो/दिजिट लोकेशन को विलय करता है। तो, एक्सडी चरण में, जब वह परत के अंत में प्रीलोड लॉकलाइज़ेशन करता है, तो मेरे स्थानीयकरण लोड नहीं होते हैं। मैंने एक डमी फ़ाइल बनाई जिसके लिए सभी स्थानीयकरणों को देखने की आवश्यकता है कि इस तरह से यह उन्हें "देखें" और उन्हें बनाने के लिए, कोई फायदा नहीं होगा। – aciobanu

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