2013-07-22 10 views
10

मैं कुछ बैकबोन आधारित प्रोजेक्ट पर काम कर रहा हूं जहां मैं लोकेशन के लिए i18next का उपयोग कर रहा हूं।i18next अनुवाद फ़ाइल लोड नहीं कर रहा है

/* 
    This file is used to initialize your application. 
*/ 
require(['i18n','application','handlebars_Helpers'], function(i18n, Application) { 

    i18n.init({ 
     lng: 'en', 
     debug: true, 
     fallbackLng: false, 
     load:'unspecific', 
     resGetPath: "locales/__lng__/__ns__.json", 
     ns: { 
      namespaces: ['translation'] 
     } 
    }); 

    (new Application()).initialize(); 
}); 

अनुवाद फ़ाइल:

{ 
    "loginModule": { 
     "signin": "Sign In" 
    } 
} 

के बाद मेरी सहायक फ़ाइल है:

के बाद मेरी app.js कोड है

/** 
* Set of generic handlebars helpers 
*/ 
define(['i18n'], function(i18n) { 
    /** 
    * This helper provides i18Next in templates 
    * 
    * 
    * Usage: span {{t "my.key" }} 
    */ 
    Handlebars.registerHelper('t', function(i18n_key) { 
     var result = i18n.t(i18n_key); 
     return new Handlebars.SafeString(result); 
    }); 

    return Handlebars; 

}); 

जब मैं स्थानीय होस्ट के माध्यम से अपने पृष्ठ को लोड कर रहा हूँ यह मुझे कंसोल में संदेश के बाद दिखाता है:

currentLng set to: en i18n.js:490 
GET http://localhost:8000/locales/en/translation.json?_=1374495189376 404 (Not Found) i18n.js:376 
failed loading: locales/en/translation.json 

समझ में नहीं आता कि मुझे क्या याद आ रही है? या यह त्रुटि क्यों दिखाई दे रही है?

उत्तर

11

आप किस फ़ोल्डर में अनुवाद फ़ाइल संग्रहीत करते हैं? I18n के लिए डिफ़ॉल्ट व्यवहार यह है कि यह विशिष्ट पथ में स्थानीयकरण फ़ाइल ढूंढने का प्रयास करता है: /locales/{lang-code}/{namespace}.json

यदि आप रूट में फ़ाइल रखते हैं, तो प्रारंभिकरण कोड को निम्न में बदलने का प्रयास करें:

i18n.init({ 
    lang: 'en', 
    debug: true, 
    fallbackLng: false, 
    load:'unspecific', 
    resGetPath: "__ns__-__lng__.json", 
    ns: { 
     namespaces: ['translation'], 
     defaultNs: 'translation' 
    } 
}); 

पर निम्न uRL से फ़ाइल को लोड करने की कोशिश करेंगे: http://localhost:8000/translation-en.json

असल में, अनुवाद फ़ाइल का स्थान की जांच करने के लिए प्रयास करें, अनुवाद फ़ाइल का नाम और निर्माण 'regGenPath' तदनुसार, अधिक जानकारी i18n में पाया जा सकता प्रलेखन http://i18next.com/node/pages/doc_init.html

+0

जब मैं फ़ायरबग से यूआरएल की प्रतिलिपि बनाता हूं और ब्राउजर के एड्रेस बार में चिपकाता हूं तो उसने मुझे 404 दिखाया; और मैंने "? _ = 1374495189376" हटा दिया, यह मुझे फ़ाइल को सही तरीके से प्रदर्शित करता है। यह अतिरिक्त संख्या क्यों जुड़ रही है? –

+0

मैंने resGetPath जोड़ा। लेकिन अभी भी यह काम नहीं कर रहा है –

+1

ठीक है, "? _ = 1374495189376" कैशिंग मुद्दों को रोकने के लिए jQuery द्वारा जोड़ा गया है। यह केवल कुछ यादृच्छिक संख्या है, और यह ब्राउज़र को फ़ाइल डाउनलोड करने के लिए मजबूर करता है, भले ही यह पहले ब्राउज़र कैश में था। आपको आवेदन के सर्वर पक्ष की जांच करनी होगी। कुछ सेटिंग होनी चाहिए जो कुछ क्वेरी स्ट्रिंग पास होने पर स्थिर फ़ाइलों के डाउनलोड को रोकती है। – drax

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