घरसैंडबॉक्सशोकेसएप्पडॉकब्लॉग
    • 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. Plugin
    3. Sync json
    Creation:2025-03-13Last update:2025-12-13
    वीडियो ट्यूटोरियल देखें

    इस पृष्ठ के लिए एक वीडियो ट्यूटोरियल उपलब्ध है।

    इस दस्तावेज़ को अपने पसंदीदा AI एसिस्टेंट के साथ संदर्भित करें
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

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

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

    1. "ICU और i18next प्रारूप समर्थन जोड़ा गया"
      v7.5.013/12/2025
    2. "प्रारंभिक सिंक JSON प्लगइन दस्तावेज़ीकरण"
      v6.1.65/10/2025

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

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

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

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

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

    सिंक JSON (i18n ब्रिजेस) - ICU / i18next समर्थन के साथ सिंक JSON

    www.youtube.com

    अपने मौजूदा i18n स्टैक में एक ऐड-ऑन के रूप में Intlayer का उपयोग करें। यह प्लगइन आपके JSON संदेशों को Intlayer शब्दकोशों के साथ सिंक्रनाइज़ रखता है ताकि आप:

    • i18next, next-intl, react-intl, vue-i18n, next-translate, nuxt-i18n, Solid-i18next, svelte-i18n आदि को बनाए रख सकें।
    • अपने ऐप को पुनः संरचित किए बिना Intlayer (CLI, CI, प्रदाता, CMS) के साथ अपने संदेशों का प्रबंधन और अनुवाद कर सकें।
    • प्रत्येक इकोसिस्टम को लक्षित करते हुए ट्यूटोरियल और SEO सामग्री वितरित करें, साथ ही JSON प्रबंधन परत के रूप में Intlayer का सुझाव दें।

    नोट्स और वर्तमान दायरा:

    • CMS के लिए बाहरीकरण अनुवादों और क्लासिक टेक्स्ट के लिए काम करता है।
    • अभी तक सम्मिलन, बहुवचन/ICU, या अन्य लाइब्रेरी के उन्नत रनटाइम फीचर्स के लिए समर्थन नहीं है।
    • तीसरे पक्ष के i18n आउटपुट के लिए विज़ुअल एडिटर अभी समर्थित नहीं है।

    इस प्लगइन का उपयोग कब करें

    • आप पहले से ही एक i18n लाइब्रेरी का उपयोग करते हैं और संदेशों को JSON फ़ाइलों में संग्रहीत करते हैं।
    • आप AI-सहायता प्राप्त भराई, CI में परीक्षण, और कंटेंट ऑप्स चाहते हैं बिना अपने रेंडरिंग रनटाइम को बदले।

    स्थापना

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

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

    pnpm add -D @intlayer/sync-json-plugin# याnpm i -D @intlayer/sync-json-plugin

    त्वरित शुरुआत

    अपने intlayer.config.ts में प्लगइन जोड़ें और इसे अपनी मौजूदा JSON संरचना की ओर इंगित करें।

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

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

    import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  // अपने वर्तमान JSON फ़ाइलों को Intlayer शब्दकोशों के साथ सिंक में रखें  plugins: [    syncJSON({      // प्रति-लोकल, प्रति-नेमस्पेस लेआउट (जैसे, next-intl, i18next नेमस्पेस के साथ)      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,    }),  ],};export default config;

    वैकल्पिक: प्रति-लोकल एकल फ़ाइल (i18next/react-intl सेटअप में सामान्य):

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

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

    plugins: [  syncJSON({    source: ({ locale }) => `./locales/${locale}.json`,  }),];

    यह कैसे काम करता है

    • पढ़ें: प्लगइन आपके source बिल्डर से JSON फ़ाइलों को खोजता है और उन्हें Intlayer शब्दकोश के रूप में लोड करता है।
    • लिखें: बिल्ड और भराई के बाद, यह स्थानीयकृत JSON को उसी पथों पर वापस लिखता है (फॉर्मेटिंग समस्याओं से बचने के लिए अंतिम नई लाइन के साथ)।
    • ऑटो-फिल: प्लगइन प्रत्येक शब्दकोश के लिए एक autoFill पथ घोषित करता है। डिफ़ॉल्ट रूप से, intlayer fill चलाने पर आपकी JSON फ़ाइलों में केवल गायब अनुवाद अपडेट होते हैं।

    API:

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

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

    syncJSON({  source: ({ key, locale }) => string, // आवश्यक  location?: string, // वैकल्पिक लेबल, डिफ़ॉल्ट: "plugin"  priority?: number, // संघर्ष समाधान के लिए वैकल्पिक प्राथमिकता, डिफ़ॉल्ट: 0  format?: 'intlayer' | 'icu' | 'i18next', // वैकल्पिक फ़ॉर्मेटर, Intlayer रनटाइम संगतता के लिए उपयोग किया जाता है});

    format ('intlayer' | 'icu' | 'i18next')

    JSON फ़ाइलों को सिंक्रनाइज़ करते समय शब्दकोश सामग्री के लिए उपयोग किए जाने वाले फ़ॉर्मेटर को निर्दिष्ट करता है। यह Intlayer रनटाइम के साथ संगत विभिन्न संदेश फ़ॉर्मेटिंग सिंटैक्स का उपयोग करने की अनुमति देता है।

    • undefined: कोई फ़ॉर्मेटर उपयोग नहीं किया जाएगा, JSON सामग्री जैसी है वैसी ही उपयोग की जाएगी।
    • 'intlayer': डिफ़ॉल्ट Intlayer फ़ॉर्मेटर (डिफ़ॉल्ट)।
    • 'icu': ICU संदेश फ़ॉर्मेटिंग का उपयोग करता है (react-intl, vue-i18n जैसी लाइब्रेरी के साथ संगत)।
    • 'i18next': i18next संदेश फ़ॉर्मेटिंग का उपयोग करता है (i18next, next-i18next, Solid-i18next के साथ संगत)।

    ध्यान दें कि फ़ॉर्मेटर का उपयोग करने से आपकी JSON सामग्री इनपुट और आउटपुट में रूपांतरित हो जाएगी। ICU बहुवचन जैसे जटिल JSON नियमों के लिए, पार्सिंग इनपुट और आउटपुट के बीच 1 से 1 मैपिंग की गारंटी नहीं दे सकता। यदि आप Intlayer रनटाइम का उपयोग नहीं करते हैं, तो आप फ़ॉर्मेटर सेट न करना पसंद कर सकते हैं।

    उदाहरण:

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

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

    syncJSON({  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,  format: "i18next", // संगतता के लिए i18next फ़ॉर्मेटिंग का उपयोग करें}),

    कई JSON स्रोत और प्राथमिकता

    आप विभिन्न JSON स्रोतों को सिंक्रनाइज़ करने के लिए कई syncJSON प्लगइन्स जोड़ सकते हैं। यह तब उपयोगी होता है जब आपके प्रोजेक्ट में कई i18n लाइब्रेरीज़ या विभिन्न JSON संरचनाएँ हों।

    प्राथमिकता प्रणाली

    जब कई प्लगइन्स एक ही शब्दकोश कुंजी को लक्षित करते हैं, तो priority पैरामीटर यह निर्धारित करता है कि कौन सा प्लगइन प्राथमिकता प्राप्त करेगा:

    • उच्च प्राथमिकता संख्या निम्न प्राथमिकता वाले पर जीतती है
    • .content फ़ाइलों की डिफ़ॉल्ट प्राथमिकता 0 है
    • प्लगइन्स की सामग्री फ़ाइलों की डिफ़ॉल्ट प्राथमिकता -1 है
    • समान प्राथमिकता वाले प्लगइन्स को कॉन्फ़िगरेशन में उनके प्रकट होने के क्रम में संसाधित किया जाता है
    intlayer.config.ts
    कोड कॉपी करें

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

    import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    // प्राथमिक JSON स्रोत (सबसे उच्च प्राथमिकता)    syncJSON({      format: "i18next",      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,      location: "main-translations",      priority: 10,    }),    // फॉलबैक JSON स्रोत (कम प्राथमिकता)    syncJSON({      format: "i18next",      source: ({ locale }) => `./fallback-locales/${locale}.json`,      location: "fallback-translations",      priority: 5,    }),    // लेगेसी JSON स्रोत (सबसे कम प्राथमिकता)    syncJSON({      format: "i18next",      source: ({ locale }) => `/my/other/app/legacy/${locale}/messages.json`,      location: "legacy-translations",      priority: 1,    }),  ],};export default config;

    संघर्ष समाधान

    जब एक ही अनुवाद कुंजी कई JSON स्रोतों में मौजूद होती है:

    1. सबसे उच्च प्राथमिकता वाला प्लगइन अंतिम मान निर्धारित करता है
    2. कम प्राथमिकता वाले स्रोत गायब कुंजी के लिए फॉलबैक के रूप में उपयोग किए जाते हैं
    3. यह आपको लेगेसी अनुवाद बनाए रखने की अनुमति देता है जबकि आप धीरे-धीरे नए संरचनाओं में माइग्रेट कर रहे होते हैं

    एकीकरण

    नीचे सामान्य मैपिंग दी गई हैं। अपने रनटाइम को बिना छुए रखें; केवल प्लगइन जोड़ें।

    i18next

    सामान्य फ़ाइल लेआउट: ./public/locales/{locale}/{namespace}.json या ./locales/{locale}/{namespace}.json।

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

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

    import { syncJSON } from "@intlayer/sync-json-plugin";export default {  plugins: [    syncJSON({      format: "i18next",      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,    }),  ],};

    next-intl

    प्रति-लोकल JSON संदेश (अक्सर ./messages/{locale}.json) या प्रति-नेमस्पेस।

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

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

    plugins: [  syncJSON({    source: ({ locale, key }) => `./messages/${locale}/${key}.json`,  }),];

    देखें: docs/hi/intlayer_with_next-intl.md।

    react-intl

    प्रति लोकल एकल JSON सामान्य है:

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

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

    plugins: [  syncJSON({    source: ({ locale }) => `./locales/${locale}.json`,  }),];

    vue-i18n

    प्रति-लोकल या प्रति-नेमस्पेस एकल फ़ाइल हो सकती है:

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

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

    plugins: [  syncJSON({    source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,  }),];

    CLI

    सिंक किए गए JSON फ़ाइलों को अन्य .content फ़ाइलों के रूप में माना जाएगा। इसका मतलब है कि सभी intlayer कमांड सिंक किए गए JSON फ़ाइलों के लिए उपलब्ध होंगे। जिनमें शामिल हैं:

    • intlayer content test यह जांचने के लिए कि क्या कोई अनुवाद गायब है
    • intlayer content list सिंक किए गए JSON फ़ाइलों की सूची बनाने के लिए
    • intlayer content fill गायब अनुवाद भरने के लिए
    • intlayer content push सिंक किए गए JSON फ़ाइलों को पुश करने के लिए
    • intlayer content pull सिंक किए गए JSON फ़ाइलों को पुल करने के लिए

    अधिक जानकारी के लिए Intlayer CLI देखें।

    सीमाएँ (वर्तमान)

    • तृतीय-पक्ष लाइब्रेरीज़ को लक्षित करते समय कोई सम्मिलन या बहुवचन/ICU समर्थन नहीं।
    • गैर-Intlayer रनटाइम के लिए विज़ुअल एडिटर अभी उपलब्ध नहीं है।
    • केवल JSON सिंक्रनाइज़ेशन; गैर-JSON कैटलॉग प्रारूप समर्थित नहीं हैं।

    यह क्यों महत्वपूर्ण है

    • हम स्थापित i18n समाधानों की सिफारिश कर सकते हैं और Intlayer को एक ऐड-ऑन के रूप में स्थिति दे सकते हैं।
    • हम उनके SEO/कीवर्ड का उपयोग ट्यूटोरियल के साथ करते हैं जो अंत में JSON प्रबंधन के लिए Intlayer सुझाते हैं।
    • यह लक्षित दर्शकों का विस्तार करता है, "नए प्रोजेक्ट्स" से लेकर "कोई भी टीम जो पहले से i18n का उपयोग कर रही है" तक।
    Lynx और React
    gettext (.po)
    Alt+→

    इस पृष्ठ में

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

      pnpm add -D @intlayer/sync-json-plugin# याnpm i -D @intlayer/sync-json-plugin
      import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },  // अपने वर्तमान JSON फ़ाइलों को Intlayer शब्दकोशों के साथ सिंक में रखें  plugins: [    syncJSON({      // प्रति-लोकल, प्रति-नेमस्पेस लेआउट (जैसे, next-intl, i18next नेमस्पेस के साथ)      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,    }),  ],};export default config;
      plugins: [  syncJSON({    source: ({ locale }) => `./locales/${locale}.json`,  }),];
      syncJSON({  source: ({ key, locale }) => string, // आवश्यक  location?: string, // वैकल्पिक लेबल, डिफ़ॉल्ट: "plugin"  priority?: number, // संघर्ष समाधान के लिए वैकल्पिक प्राथमिकता, डिफ़ॉल्ट: 0  format?: 'intlayer' | 'icu' | 'i18next', // वैकल्पिक फ़ॉर्मेटर, Intlayer रनटाइम संगतता के लिए उपयोग किया जाता है});
      syncJSON({  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,  format: "i18next", // संगतता के लिए i18next फ़ॉर्मेटिंग का उपयोग करें}),
      import { Locales, type IntlayerConfig } from "intlayer";import { syncJSON } from "@intlayer/sync-json-plugin";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH],    defaultLocale: Locales.ENGLISH,  },  plugins: [    // प्राथमिक JSON स्रोत (सबसे उच्च प्राथमिकता)    syncJSON({      format: "i18next",      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,      location: "main-translations",      priority: 10,    }),    // फॉलबैक JSON स्रोत (कम प्राथमिकता)    syncJSON({      format: "i18next",      source: ({ locale }) => `./fallback-locales/${locale}.json`,      location: "fallback-translations",      priority: 5,    }),    // लेगेसी JSON स्रोत (सबसे कम प्राथमिकता)    syncJSON({      format: "i18next",      source: ({ locale }) => `/my/other/app/legacy/${locale}/messages.json`,      location: "legacy-translations",      priority: 1,    }),  ],};export default config;
      import { syncJSON } from "@intlayer/sync-json-plugin";export default {  plugins: [    syncJSON({      format: "i18next",      source: ({ key, locale }) => `./locales/${locale}/${key}.json`,    }),  ],};
      plugins: [  syncJSON({    source: ({ locale, key }) => `./messages/${locale}/${key}.json`,  }),];
      plugins: [  syncJSON({    source: ({ locale }) => `./locales/${locale}.json`,  }),];
      plugins: [  syncJSON({    source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,  }),];