Author:
    Creation:2026-06-25Last update:2026-06-25

    @intlayer/babel पैकेज

    @intlayer/babel पैकेज Intlayer के लिए विशेष Babel प्लगइन्स का एक सेट प्रदान करता है। ये प्लगइन्स पूरे बिल्ड चक्र को कवर करते हैं: सामग्री घोषणाओं को निकालना, useIntlayer / getIntlayer कॉल को अनुकूलित शब्दकोश आयातों में फिर से लिखना, अप्रयुक्त फ़ील्ड को हटाना, और फ़ील्ड नामों को छोटा करना।

    स्थापना

    bash
    npm install @intlayer/babel
    

    निर्यात

    आयात (Import):

    ts
    import { ... } from "@intlayer/babel";
    

    प्लगइन्स

    फ़ंक्शन / वर्गविवरण
    intlayerExtractBabelPluginBabel प्लगइन जो स्रोत फ़ाइलों से अनुवाद योग्य सामग्री निकालता है और useIntlayer / getIntlayer हुक को स्वचालित रूप से इंजेक्ट करता है। Next.js और Babel-आधारित बिल्ड टूल के साथ उपयोग के लिए डिज़ाइन किया गया।
    intlayerOptimizeBabelPluginuseIntlayer और getIntlayer कॉल को रूपांतरित करता है और उनके आयात को अनुकूलित JSON शब्दकोश आयात (स्थिर, गतिशील, या fetch के माध्यम से) में फिर से लिखता है।
    intlayerPurgeBabelPluginBabel प्लгин जो स्रोत फ़ाइलों का विश्लेषण करता है और अप्रयुक्त फ़ील्ड (build.purge) को हटाने या उन्हें छोटे उपनामों (build.minify) में बदलने के लिए संकलित शब्दкош JSON फ़ाइलों को फिर से लिखता है।
    intlayerMinifyBabelPluginBabel प्लगइन जो स्रोत फ़ाइलों को छोटा करने के चरण के दौरान सौंपे गए छोटे फ़ील्ड उपनामों (जैसे content.titlecontent.a) का उपयोग करने के लिए फिर से लिखता है। intlayerPurgeBabelPlugin पर निर्भर करता है।
    makeFieldRenameBabelPluginफ़ैक्टरी फ़ंक्शन जो PruneContext में भरे गए dictionaryKeyToFieldRenameMap के अनुसार स्रोत फ़ाइलों में शब्दकोश सामग्री फ़ील्ड एक्सेस का नाम बदलने के लिए एक Babel प्लगइन उत्पन्न करता है।
    makeUsageAnalyzerBabelPluginफ़ैक्टरी फ़ंक्शन जो स्रोत कोड में useIntlayer / getIntlayer के उपयोग का विश्लेषण करने और साझा PruneContext में फ़ील्ड उपयोग डेटा एकत्र करने के लिए एक Babel प्लगइन उत्पन्न करता है।
    getSharedPruneContextसहायक फ़ंक्शन जो निर्दिष्ट आधार निर्देशिका के लिए साझा PruneContext ऑब्जेक्ट लौटाता है, या यदि यह अभी तक आरंभ नहीं हुआ है तो null लौटाता है।

    प्लगइन कॉन्फ़िगरेशन उपयोगिताएँ

    फ़ंक्शनविवरण
    getExtractPluginOptionsIntlayer कॉन्फ़िगरेशन लोड करता है और intlayerExtractBabelPlugin के साथ उपयोग के लिए तैयार ExtractPluginOptions लौटाता है।
    getOptimizePluginOptionsIntlayer कॉन्फ़िगरेशन और संकलित शब्दकोशों को लोड करता है, और intlayerOptimizeBabelPlugin के साथ उपयोग के लिए तैयार OptimizePluginOptions लौटाता है।
    getPurgePluginOptionsIntlayer कॉन्फ़िगरेशन लोड करता है और intlayerPurgeBabelPlugin के साथ उपयोग के लिए तैयार PurgePluginOptions लौटाता है।
    getMinifyPluginOptionsIntlayer कॉन्फ़िगरेशन लोड करता है और intlayerMinifyBabelPlugin के साथ उपयोग के लिए तैयार MinifyPluginOptions लौटाता है।

    प्रकार

    प्रकारविवरण
    CompilerModeकंपाइलर मोड: 'dev' HMR समर्थन के साथ विकास के लिए, या 'build' उत्पादन बिल्ड के लिए।
    ExtractPluginOptionsintlayerExtractBabelPlugin के लिए विकल्प: फ़ाइल सूची, कॉन्फ़िगरेशन, onExtract कॉलबैक आदि।
    ExtractResultनिष्कर्षण परिणाम: शब्दकोश कुंजी, फ़ाइल पथ, सामग्री और लोकेल।
    OptimizePluginOptionsintlayerOptimizeBabelPlugin के लिए विकल्प: शब्दकोश पथ, आयात मोड, प्रति शब्दकोश मोड मानचित्र आदि।
    PurgePluginOptionsintlayerPurgeBabelPlugin के लिए विकल्प: आधार निर्देशिका, प्रून/मिनिफाई/ऑप्टिमाइज़ फ़्लैग, घटक फ़ाइल सूची।
    MinifyPluginOptionsintlayerMinifyBabelPlugin के लिए विकल्प: आधार निर्देशिका, मिनिफाई/ऑप्टिमाइज़/editorEnabled फ़्लैग।
    PruneContextविश्लेषण और प्रून प्लगइन्स के बीच साझा स्थिति: फ़ील्ड उपयोग मानचित्र, नाम बदलें मानचित्र आदि।
    DictionaryFieldUsageएकल शब्दकोश के लिए फ़ील्ड उपयोग परिणाम: Set<string> या 'all' जब स्थिर विश्लेषण अनिर्णायक होता है।
    NestedRenameEntryनाम बदलने वाले पेड़ में नोड: shortName और बच्चों का मानचित्र।
    NestedRenameMapनाम बदलने वाले पेड़ में एक स्तर: Map<string, NestedRenameEntry>
    CompatCallerConfigcompat-adapter पैकेजों के लिए एक संगत उपयोग विश्लेषक कॉन्फ़िगरेशन (कॉल करने वाले का नाम और प्रसंस्करण विकल्प)।
    ScriptBlockएक SFC फ़ाइल (Vue या Svelte) से निकाली गई स्क्रिप्ट ब्लॉक: सामग्री, प्रारंभ ऑफ़सेट और अंत ऑफ़सेट।

    उपयोगिता फ़ंक्शन

    फ़ंक्शनविवरण
    generateShortFieldNameएक पूर्णांक (शून्य से शुरू) को एक छोटे वर्णानुक्रमिक पहचानकर्ता में परिवर्तित करता है: 0'a', 25'z', 26'aa', आदि।
    buildNestedRenameMapFromContentIntlayer नोड संरचनाओं (translation, enumeration आदि) का सम्मान करते हुए संकलित शब्दकोश के सामग्री मान से पुनरावर्ती रूप से एक NestedRenameMap बनाता है।
    createPruneContextडिफ़ॉल्ट मानों के साथ आरंभ की गई एक नई खाली PruneContext ऑब्जेक्ट बनाता है।
    extractScriptBlocksबाद के Babel विश्लेषण के लिए SFC फ़ाइलों (Vue / Svelte) से <script> ब्लॉक निकालता है।
    BABEL_PARSER_OPTIONSस्थिरांक जो समर्थित फ्रेमवर्क (React/Vue/Svelte/Angular/...) को कवर करने वाले Babel पार्सर विकल्पों का प्रतिनिधित्व करता है।
    INTLAYER_CALLER_NAMESमूल Intlayer कॉल करने वाले नामों की स्थिर सूची: ['useIntlayer', 'getIntlayer']

    उपयोग का उदाहरण

    js
    // babel.config.js
    const {
      intlayerExtractBabelPlugin,
      intlayerPurgeBabelPlugin,
      intlayerMinifyBabelPlugin,
      intlayerOptimizeBabelPlugin,
      getExtractPluginOptions,
      getPurgePluginOptions,
      getMinifyPluginOptions,
      getOptimizePluginOptions,
    } = require("@intlayer/babel");
    
    module.exports = {
      presets: ["next/babel"],
      plugins: [
        [intlayerExtractBabelPlugin, getExtractPluginOptions()],
        [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
        [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
        [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
      ],
    };
    
    ध्यान दें: intlayerPurgeBabelPlugin को intlayerMinifyBabelPlugin से पहले घोषित किया जाना चाहिए, क्योंकि बाद वाला पहले वाले द्वारा निर्मित नाम बदलने के मानचित्र को पढ़ता है। इसके अलावा, दोनों से पहले intlayerOptimizeBabelPlugin होना चाहिए ताकि यह useIntlayer कॉल के फिर से लिखे जाने से पहले शब्दकोश कुंजियों को देख सके।