2014-06-13 5 views
7

में चर बदलने से मैंने i18next लागू किया है, और कुछ मुद्दों पर सहायता प्राप्त करने के बाद सभी ठीक काम करते हैं। मुझे अभी भी समर्थन साइट पर दस्तावेज़ों के कुछ हिस्सों को समझने में समस्याएं हैं।i18next

मैं इस हिस्से को दोहराने के लिए कोशिश कर रहा हूँ (here पाया जाता है):

{ 
    "app": {"name": "mytranslation" }, 
    "back": "Back", 
    "cancel": "Cancel", 
    "closemenu": "Close Menu", 
    "closeoptions": "Close options", 
    "currency": "Currency symbol is __currencysymbol__", 
    "date": "Date", 
    "description": "Description" 
} 

और एचटीएमएल:

// given resources 
{   
    'en-US': { translation: { key: '__myVar__ are important' } } 
}; 

i18n.t("key", { myVar: "variables" }); // -> variables are important 

चीजों की मेरी तरफ, इस JSON फ़ाइल है

<body> 
    <div data-i18n="currency"></div> 
    <script src="javascript/i18next-1.7.3.min.js"></script> 
    <script language="javascript" type="text/javascript"> 
     i18n.init({ preload: ['en', 'fr', 'ht', 'es', 'de', 'zh', 'vi', 'pt', 'it', 'th', 'dev'] }); 
     i18n.init({ detectLngQS: 'lang' }); 
     i18n.init(function(t) { 
      $("body").i18n(); 
      var appName = t("app.name"); 
     }); 
     i18n.t("currency", { currencysymbol: "$" }); //where do I place this code??? 
    </script> 
</body> 

नोट: jQuery 2.1.1 और jQuery मोबाइल 1.4.2 शीर्षलेख में लोड किए गए हैं।

मुझे यकीन है कि मैं उन विभिन्न हिस्सों को नहीं रख रहा हूं जहां उन्हें जाना है, क्योंकि यह काम नहीं कर रहा है (वेरिएबल "मुद्रासिंबोल" नहीं डालना)। शेष कोड ठीक काम करता है, क्योंकि मुझे सभी अनुवादित पाठ मिलते हैं।

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

मैं उन चरों को एक ही स्थान पर रखना चाहता हूं, इसलिए उन्हें समायोजित करना आसान है, और वे भाषा परिवर्तनों के संदर्भ के अधीन नहीं होंगे।

उत्तर

8

आदेश जब डोम के भाग के खिलाफ i18n() विधि बुला i18next चर अंतर्वेशन के लिए, आपको में:

  • data-i18n-options में अपने चरों के मान प्रदान

    • init समय में useDataAttrOptions विकल्प सेट लक्षित तत्व की विशेषता

    आपका उदाहरण एचटीएमएल बन जाएगा:

    <body> 
        <div data-i18n="currency" 
         data-i18n-options='{"currencysymbol": "$"}'></div> 
        <script src="javascript/i18next-1.7.3.min.js"></script> 
        <script language="javascript" type="text/javascript"> 
         i18n.init({ 
          preload: ['en', 'fr', 'ht', 'es', 'de', 'zh', 'vi', 'pt', 'it', 'th', 'dev'], 
          detectLngQS: 'lang', 
          useDataAttrOptions: true 
         }, function(t) { 
          $("body").i18n(); 
          var appName = t("app.name"); 
         }); 
        </script> 
    </body> 
    

    नोट: विकल्प एक JSON ऑब्जेक्ट हैं, इसलिए उचित उद्धरण आवश्यक है। उपर्युक्त कोड में, data-i18n-options विशेषता का मान पठनीयता के लिए सरल उद्धरणों के बीच लिखा गया है। लेकिन स्वाद, सुविधा, या स्वपीड़न के एक मामले के रूप में, अपने निम्नलिखित में से किसी के लिए भी मान्य HTML विकल्प विकल्प चुन सकते हैं,:

    • गैर उद्धृत: data-i18n-options={"currencysymbol":"$"}
    • डबल-कोटेड एचटीएमएल संस्थाओं के साथ: data-i18n-options="{&quot;currencysymbol&quot;: &quot;$&quot;}"
    • डबल - संख्यात्मक इकाइयों के साथ जोड़ा गया: data-i18n-options="{&#34;currencysymbol&#34;: &#34;$&#34;}"