घरसैंडबॉक्सशोकेसएप्पडॉकब्लॉग
    • Englishअंग्रेज़ी
      EN
    • русскийरूसी
      RU
    • 日本語जापानी
      JA
    • françaisफ़्रेंच
      FR
    • 한국어कोरियाई
      KO
    • 中文चीनी
      ZH
    • españolस्पेनिश
      ES
    • Deutschजर्मन
      DE
    • العربيةअरबी
      AR
    • italianoइतालवी
      IT
    • British Englishब्रिटिश अंग्रेज़ी
      EN-GB
    • portuguêsपुर्तगाली
      PT
    • हिन्दीहिन्दी
      HI
    • Türkçeतुर्की
      TR
    • polskiपोलिश
      PL
    • Indonesiaइंडोनेशियाई
      ID
    • Tiếng Việtवियतनामी
      VI
    • українськаयूक्रेनियाई
      UK
    /
    फ्रेमवर्क द्वारा डॉक्स फ़िल्टर करें
    Alt+←
    Intlayer का क्यों लाभ
    शुरू करें
    अवधारणा
    • Intlayer कैसे काम करता है
    • कॉन्फ़िगरेशन
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • विज़ुअल एडिटर
    • CMS
    • CI/CD एकीकरण
    • अनुवादबहुवचनगणनाशर्तलिंगसम्मिलनफ़ाइलनेस्टिंगMarkdownHTMLफ़ंक्शन फेचिंग
    • प्रति लोकेल फ़ाइल
    • कंपाइलर
    • स्वतः भरण
    • परीक्षण
    • बंडल ऑप्टिमाइज़ेशन
    पर्यावरण
    • Next.js 14 और ऐप राउटर
      Next.js 15
      Next.js बिना लोकेल URL
      Next.js और पेज राउटर
      कंपाइलर
    • Tanstack Start Solid
    • Astro और React
      Astro और Svelte
      Astro और Vue
      Astro और Solid
      Astro और Preact
      Astro और Lit
      Astro और Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt और Vue
    • Vite और Solid
    • SvelteKit
    • Vite और Preact
    • Vite और Vanilla JS
    • Vite और Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native और Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx और React
    Plugins
    • JSON
    • gettext (.po)
    VS Code एक्सटेंशन
    एजेंट
    • इंटलेयर MCP सर्वर
    • एजेंट कौशल
    रिलीज
    • v8
    • v7
    • v6
    बेंचमार्क
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    ब्लॉग
    प्रश्न करें
    1. Documentation
    2. Compiler
    Creation:2025-09-09Last update:2026-03-12
    इस दस्तावेज़ को अपने पसंदीदा AI एसिस्टेंट के साथ संदर्भित करें
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके

    संस्करण इतिहास

    1. "Update compiler options, add FilePathPattern support"
      v8.2.09/3/2026
    2. "कंपाइलर विकल्पों को अपडेट करें"
      v8.1.725/2/2026
    3. "Release Compiler"
      v7.3.127/11/2025

    इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।

    अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखें
    इस दस्तावेज़ को संपादित करें

    अगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।

    दस्तावेज़ के लिए GitHub लिंक
    Copy

    दस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें

    Intlayer Compiler | i18n के लिए स्वचालित सामग्री निष्कर्षण

    Intlayer Compiler क्या है?

    Intlayer Compiler एक शक्तिशाली उपकरण है जिसे आपके एप्लिकेशन में अंतरराष्ट्रीयकरण (i18n) की प्रक्रिया को स्वचालित करने के लिए डिज़ाइन किया गया है। यह आपके स्रोत कोड (JSX, TSX, Vue, Svelte) में सामग्री घोषणाओं को स्कैन करता है, उन्हें निकालता है, और आवश्यक शब्दकोश फ़ाइलों को स्वचालित रूप से उत्पन्न करता है। यह आपको अपनी सामग्री को आपके कंपोनेंट्स के साथ सह-स्थित रखने की अनुमति देता है जबकि Intlayer आपके शब्दकोशों के प्रबंधन और समन्वय को संभालता है।

    Intlayer Compiler का उपयोग क्यों करें?

    • स्वचालन: सामग्री को शब्दकोशों में मैन्युअल कॉपी-पेस्ट करने की आवश्यकता समाप्त करता है।
    • गति: अनुकूलित सामग्री निष्कर्षण सुनिश्चित करता है कि आपका बिल्ड प्रक्रिया तेज़ बनी रहे।
    • डेवलपर अनुभव: सामग्री घोषणाओं को वहीं रखें जहां उनका उपयोग होता है, जिससे रखरखाव में सुधार होता है।
    • लाइव अपडेट्स: विकास के दौरान त्वरित प्रतिक्रिया के लिए Hot Module Replacement (HMR) का समर्थन करता है।

    गहरे तुलना के लिए Compiler vs. Declarative i18n ब्लॉग पोस्ट देखें।

    Intlayer Compiler का उपयोग क्यों न करें?

    हालांकि कंपाइलर एक उत्कृष्ट "बस काम करता है" अनुभव प्रदान करता है, यह कुछ समझौते भी पेश करता है जिनके बारे में आपको पता होना चाहिए:

    • हेयूरिस्टिक अस्पष्टता: कंपाइलर को यह अनुमान लगाना होगा कि उपयोगकर्ता-सामना करने वाली सामग्री बनाम एप्लिकेशन लॉजिक क्या है (उदाहरण के लिए, className="active", स्थिति कोड, उत्पाद ID)। जटिल कोडबेस में, यह गलत सकारात्मक या छूटी हुई स्ट्रिंग्स का कारण बन सकता है जिन्हें मैन्युअल एनोटेशन और अपवादों की आवश्यकता होती है।
    • केवल स्थैतिक निष्कर्षण: कंपाइलर-आधारित निष्कर्षण स्थैतिक विश्लेषण पर निर्भर करता है। स्ट्रिंग्स जो केवल रनटाइम पर मौजूद होती हैं (API त्रुटि कोड, CMS फ़ील्ड, आदि) को कंपाइलर द्वारा अकेले खोजा या अनुवादित नहीं किया जा सकता है, इसलिए आपको अभी भी एक पूरक रनटाइम i18n रणनीति की आवश्यकता है।

    गहरी वास्तुकला तुलना के लिए, Compiler vs. Declarative i18n ब्लॉग पोस्ट देखें।

    वैकल्पिक रूप से, अपनी सामग्री पर पूर्ण नियंत्रण रखते हुए अपनी i18n प्रक्रिया को स्वचालित करने के लिए, Intlayer एक स्वचालित निष्कर्षण कमांड intlayer extract (देखें CLI दस्तावेज़ीकरण) या Intlayer VS Code एक्सटेंशन का Intlayer: extract content to Dictionary कमांड (देखें VS Code एक्सटेंशन दस्तावेज़ीकरण) भी प्रदान करता है।

    उपयोग

    Vite

    Vite-आधारित एप्लिकेशन (React, Vue, Svelte, आदि) के लिए, कंपाइलर का उपयोग करने का सबसे आसान तरीका vite-intlayer प्लगइन के माध्यम से है।

    स्थापना

    bash
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    npm install vite-intlayer

    कॉन्फ़िगरेशन

    अपने vite.config.ts को अपडेट करें ताकि intlayerCompiler प्लगइन शामिल हो:

    vite.config.ts
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    import { defineConfig } from "vite";import { intlayer, intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [   intlayer(),   intlayerCompiler(), // कंपाइलर प्लगइन जोड़ता है ],});

    See complete tutorial: Intlayer Compiler with Vite+React

    फ्रेमवर्क समर्थन

    Vite प्लगइन स्वचालित रूप से विभिन्न फ़ाइल प्रकारों का पता लगाता है और उन्हें संभालता है:

    • React / JSX / TSX: मूल रूप से संभाला जाता है।
    • Vue: इसके लिए @intlayer/vue-compiler आवश्यक है।
    • Svelte: इसके लिए @intlayer/svelte-compiler आवश्यक है।

    सुनिश्चित करें कि आपने अपने फ्रेमवर्क के लिए उपयुक्त कंपाइलर पैकेज इंस्टॉल किया है:

    bash
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    # Vue के लिएnpm install @intlayer/vue-compiler# Svelte के लिएnpm install @intlayer/svelte-compiler

    Next.js (Babel)

    Next.js या अन्य Webpack-आधारित एप्लिकेशन जो Babel का उपयोग करते हैं, उनके लिए आप @intlayer/babel प्लगइन का उपयोग करके कंपाइलर को कॉन्फ़िगर कर सकते हैं।

    स्थापना

    bash
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    npm install @intlayer/babel

    कॉन्फ़िगरेशन

    अपना babel.config.js (या babel.config.json) अपडेट करें ताकि extraction प्लगइन शामिल हो सके। हम एक हेल्पर getExtractPluginOptions प्रदान करते हैं जो आपके Intlayer कॉन्फ़िगरेशन को स्वचालित रूप से लोड करता है।

    babel.config.js
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    const { intlayerExtractBabelPlugin, intlayerOptimizeBabelPlugin, getExtractPluginOptions, getOptimizePluginOptions,} = require("@intlayer/babel");module.exports = { presets: ["next/babel"], plugins: [   // Extract content from components into dictionaries   [intlayerExtractBabelPlugin, getExtractPluginOptions()],   // Optimize imports by replacing useIntlayer with direct dictionary imports   [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()], ],};

    यह कॉन्फ़िगरेशन सुनिश्चित करता है कि आपके कंपोनेंट्स में घोषित सामग्री स्वचालित रूप से निकाली जाए और आपके बिल्ड प्रक्रिया के दौरान शब्दकोश बनाने के लिए उपयोग की जाए।

    See complete tutorial: Intlayer Compiler with Next.js

    कस्टम कॉन्फ़िगरेशन

    कंपाइलर व्यवहार को अनुकूलित करने के लिए, आप अपने प्रोजेक्ट के रूट में intlayer.config.ts फ़ाइल को अपडेट कर सकते हैं।

    intlayer.config.ts
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = {  compiler: {    /**     * इंगित करता है कि क्या कंपाइलर सक्षम होना चाहिए।     * विकास के दौरान कंपाइलर को छोड़ने और स्टार्टअप समय को तेज करने के लिए 'build-only' पर सेट करें।     */    enabled: true,    /**     * आउटपुट फ़ाइल पथ को परिभाषित करता है। `outputDir` को प्रतिस्थापित करता है।     *     * - `./` पथ घटक निर्देशिका के सापेक्ष हल किए जाते हैं।     * - `/` पथ प्रोजेक्ट रूट (`baseDir`) के सापेक्ष हल किए जाते हैं।     *     * - पथ में `{{locale}}` चर डालने से भाषा द्वारा अलग किए गए शब्दकोश निर्माण सक्षम हो जाएंगे।     *     * उदाहरण:     * ```ts     * {     *   // घटक के बगल में बहुभाषी .content.ts फ़ाइलें बनाएँ     *   output: ({ fileName, extension }) => `./${fileName}${extension}`,     *     *   // output: './{{fileName}}{{extension}}', // स्ट्रिंग टेम्प्लेट का उपयोग करके समकक्ष     * }     * ```     *     * ```ts     * {     *   // प्रोजेक्ट रूट पर भाषा द्वारा केंद्रीकृत JSON फ़ाइलें बनाएँ     *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,     *     *   // output: '/locales/{{locale}}/{{key}}.content.json', // स्ट्रिंग टेम्प्लेट का उपयोग करके समकक्ष     * }     * ```     *     * चर सूची:     *   - `fileName`: फ़ाइल का नाम।     *   - `key`: सामग्री की कुंजी।     *   - `locale`: सामग्री का स्थानीय मान (लोकल)।     *   - `extension`: फ़ाइल एक्सटेंशन।     *   - `componentFileName`: घटक फ़ाइल का नाम।     *   - `componentExtension`: घटक फ़ाइल एक्सटेंशन।     *   - `format`: शब्दकोश प्रारूप।     *   - `componentFormat`: घटक शब्दकोश प्रारूप।     *   - `componentDirPath`: घटक निर्देशिका पथ।     */    output: ({ fileName, extension }) => `./${fileName}${extension}`,    /**     * इंगित करता है कि क्या घटकों को रूपांतरित होने के बाद सहेजा जाना चाहिए।     * इस तरह, कंपाइलर को ऐप को रूपांतरित करने के लिए केवल एक बार चलाया जा सकता है, और फिर इसे हटाया जा सकता है।     */    saveComponents: false,    /**     * उत्पन्न फ़ाइल में केवल सामग्री डालें। i18next या ICU MessageFormat JSON आउटपुट प्रति लोकल के लिए उपयोगी।     *     * - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`     */    noMetadata: false,    /**     * शब्दकोश कुंजी उपसर्ग     */    dictionaryKeyPrefix: "", // निकाली गई शब्दकोश कुंजियों के लिए वैकल्पिक उपसर्ग जोड़ें  },};export default config;

    कंपाइलर कॉन्फ़िगरेशन संदर्भ

    निम्नलिखित गुणों को आपकी intlayer.config.ts फ़ाइल के compiler ब्लॉक में कॉन्फ़िगर किया जा सकता है:

    • enabled:

      • प्रकार: boolean | 'build-only'
      • डिफ़ॉल्ट: true
      • विवरण: इंगित करता है कि क्या कंपाइलर सक्षम होना चाहिए।
    • dictionaryKeyPrefix:

      • प्रकार: string
      • डिफ़ॉल्ट: ''
      • विवरण: निकाली गई शब्दकोश कुंजियों के लिए उपसर्ग।
    • transformPattern:

      • प्रकार: string | string[]
      • डिफ़ॉल्ट: ['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']
      • विवरण: (पुराना (Deprecated): इसके बजाय build.traversePattern का उपयोग करें) ऑप्टिमाइज़ करने के लिए कोड को पार करने के पैटर्न।
    • excludePattern:

      • प्रकार: string | string[]
      • डिफ़ॉल्ट: ['**/node_modules/**']
      • विवरण: (पुराना (Deprecated): इसके बजाय build.traversePattern का उपयोग करें) ऑप्टिमाइज़ेशन से बाहर रखने के पैटर्न।
    • output:

      • प्रकार: FilePathPattern
      • डिफ़ॉल्ट: ({ key }) => 'compiler/${key}.content.json'
      • विवरण: आउटपुट फ़ाइल पथ को परिभाषित करता है। outputDir को प्रतिस्थापित करता है। {{locale}}, {{key}}, {{fileName}}, {{extension}}, {{format}}, {{dirPath}}, {{componentFileName}}, {{componentExtension}}, और {{componentFormat}} जैसे गतिशील चरों को संभालता है। इसे 'my/{{var}}/path' प्रारूप का उपयोग करके एक स्ट्रिंग के रूप में, या एक फ़ंक्शन के रूप में सेट किया जा सकता है।
      • नोट: ./**/* पथ घटक के सापेक्ष हल किए जाते हैं। /**/* पथ Intlayer baseDir के सापेक्ष हल किए जाते हैं।
      • नोट: यदि पथ में लोकेल (locale) परिभाषित है, तो शब्दकोश लोकेल द्वारा उत्पन्न किए जाएंगे।
      • उदाहरण: output: ({ locale, key }) => 'compiler/${locale}/${key}.json'
    • noMetadata:

      • प्रकार: boolean
      • डिफ़ॉल्ट: false
      • विवरण: इंगित करता है कि फ़ाइल में मेटाडेटा सहेजा जाना चाहिए या नहीं। यदि सही है, तो कंपाइलर शब्दकोशों (कुंजी, सामग्री रैपर) के मेटाडेटा को नहीं बचाएगा। प्रति-लोकल i18next या ICU MessageFormat JSON आउटपुट के लिए उपयोगी।
      • नोट: loadJSON प्लगइन के साथ उपयोग किए जाने पर उपयोगी।
      • उदाहरण: यदि सही है: json { "key": "value" } यदि गलत है: json { "key": "value", "content": { "key": "value" } }
    • saveComponents:

      • प्रकार: boolean
      • डिफ़ॉल्ट: false
      • विवरण: इंगित करता है कि क्या घटकों को रूपांतरित होने के बाद सहेजा जाना चाहिए।

    लापता अनुवाद भरें

    Intlayer अनुवादों को भरने में आपकी सहायता के लिए एक CLI टूल प्रदान करता है। आप अपने कोड से लापता अनुवादों का परीक्षण करने और उन्हें भरने के लिए intlayer कमांड का उपयोग कर सकते हैं।

    bash
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    npx intlayer test         # परीक्षण करें कि क्या कोई अनुवाद लापता है
    bash
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    npx intlayer fill         # लापता अनुवाद भरें

    निष्कर्षण

    Intlayer आपके कोड से सामग्री निकालने के लिए एक CLI टूल प्रदान करता है। आप अपने कोड से सामग्री निकालने के लिए intlayer extract कमांड का उपयोग कर सकते हैं।

    bash
    कोड कॉपी करें

    कोड को क्लिपबोर्ड पर कॉपी करें

    npx intlayer extract
    अधिक विवरण के लिए, CLI दस्तावेज़ देखें।
    प्रति लोकेल फ़ाइल
    स्वतः भरण
    Alt+→

    इस पृष्ठ में

      चर्चाएं गुमनाम हैं और सामान्य मुद्दों को संबोधित करने के लिए नियमित रूप से समीक्षा की जाती हैं। फीचर आइडिया, डॉक्यूमेंटेशन पर फीडबैक, या Intlayer से संबंधित कुछ भी साझा करने में संकोच न करें, हम इस इनपुट का उपयोग अपने रोडमैप को आकार देने और उत्पाद को बेहतर बनाने के लिए करते हैं।

      npm install vite-intlayer
      import { defineConfig } from "vite";import { intlayer, intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [   intlayer(),   intlayerCompiler(), // कंपाइलर प्लगइन जोड़ता है ],});
      # Vue के लिएnpm install @intlayer/vue-compiler# Svelte के लिएnpm install @intlayer/svelte-compiler
      npm install @intlayer/babel
      const { intlayerExtractBabelPlugin, intlayerOptimizeBabelPlugin, getExtractPluginOptions, getOptimizePluginOptions,} = require("@intlayer/babel");module.exports = { presets: ["next/babel"], plugins: [   // Extract content from components into dictionaries   [intlayerExtractBabelPlugin, getExtractPluginOptions()],   // Optimize imports by replacing useIntlayer with direct dictionary imports   [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()], ],};
      import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = {  compiler: {    /**     * इंगित करता है कि क्या कंपाइलर सक्षम होना चाहिए।     * विकास के दौरान कंपाइलर को छोड़ने और स्टार्टअप समय को तेज करने के लिए 'build-only' पर सेट करें।     */    enabled: true,    /**     * आउटपुट फ़ाइल पथ को परिभाषित करता है। `outputDir` को प्रतिस्थापित करता है।     *     * - `./` पथ घटक निर्देशिका के सापेक्ष हल किए जाते हैं।     * - `/` पथ प्रोजेक्ट रूट (`baseDir`) के सापेक्ष हल किए जाते हैं।     *     * - पथ में `{{locale}}` चर डालने से भाषा द्वारा अलग किए गए शब्दकोश निर्माण सक्षम हो जाएंगे।     *     * उदाहरण:     * ```ts     * {     *   // घटक के बगल में बहुभाषी .content.ts फ़ाइलें बनाएँ     *   output: ({ fileName, extension }) => `./${fileName}${extension}`,     *     *   // output: './{{fileName}}{{extension}}', // स्ट्रिंग टेम्प्लेट का उपयोग करके समकक्ष     * }     * ```     *     * ```ts     * {     *   // प्रोजेक्ट रूट पर भाषा द्वारा केंद्रीकृत JSON फ़ाइलें बनाएँ     *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,     *     *   // output: '/locales/{{locale}}/{{key}}.content.json', // स्ट्रिंग टेम्प्लेट का उपयोग करके समकक्ष     * }     * ```     *     * चर सूची:     *   - `fileName`: फ़ाइल का नाम।     *   - `key`: सामग्री की कुंजी।     *   - `locale`: सामग्री का स्थानीय मान (लोकल)।     *   - `extension`: फ़ाइल एक्सटेंशन।     *   - `componentFileName`: घटक फ़ाइल का नाम।     *   - `componentExtension`: घटक फ़ाइल एक्सटेंशन।     *   - `format`: शब्दकोश प्रारूप।     *   - `componentFormat`: घटक शब्दकोश प्रारूप।     *   - `componentDirPath`: घटक निर्देशिका पथ।     */    output: ({ fileName, extension }) => `./${fileName}${extension}`,    /**     * इंगित करता है कि क्या घटकों को रूपांतरित होने के बाद सहेजा जाना चाहिए।     * इस तरह, कंपाइलर को ऐप को रूपांतरित करने के लिए केवल एक बार चलाया जा सकता है, और फिर इसे हटाया जा सकता है।     */    saveComponents: false,    /**     * उत्पन्न फ़ाइल में केवल सामग्री डालें। i18next या ICU MessageFormat JSON आउटपुट प्रति लोकल के लिए उपयोगी।     *     * - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`     */    noMetadata: false,    /**     * शब्दकोश कुंजी उपसर्ग     */    dictionaryKeyPrefix: "", // निकाली गई शब्दकोश कुंजियों के लिए वैकल्पिक उपसर्ग जोड़ें  },};export default config;
      npx intlayer test         # परीक्षण करें कि क्या कोई अनुवाद लापता है
      npx intlayer fill         # लापता अनुवाद भरें
      npx intlayer extract