अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
संस्करण इतिहास
- "प्रारंभिक इतिहास"v9.0.05/6/2026
इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।
अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखेंIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
next-intl से Intlayer में माइग्रेशन
next-intl से Intlayer में माइग्रेट करने के लिए?
बड़ी JSON फाइलों को अपने पेजों में लोड करने के बजाय, केवल आवश्यक सामग्री लोड करें। Intlayer आपके बंडल और पेज आकारों को 50% तक कम करने में मदद करता है।
अपने एप्लिकेशन की सामग्री को स्कोप करना बड़े पैमाने के एप्लिकेशन के लिए रखरखाव को सुविधाजनक बनाता है। आप अपने पूरे सामग्री कोडबेस की समीक्षा की मानसिक बोझ के बिना एक भी फीचर फोल्डर को डुप्लिकेट या हटा सकते हैं। इसके अलावा, Intlayer पूरी तरह से टाइप किया गया है आपकी सामग्री की सटीकता सुनिश्चित करने के लिए।
Intlayer भी i18n पारिस्थितिकी तंत्र में सबसे सक्रिय विकास के साथ समाधान है — समस्याएं तेजी से ठीक की जाती हैं, नई फ्रेमवर्क एडॉप्टर नियमित रूप से आती हैं, और मुख्य API को वास्तविक दुनिया के उत्पादन प्रतिक्रिया के आधार पर निरंतर परिष्कृत किया जाता है।
सामग्री को सह-स्थित करना बड़ी भाषा मॉडल (LLM) द्वारा आवश्यक संदर्भ को कम करता है। Intlayer साथ ही एक समूह के साथ आता है, जैसे कि CLI अनुपलब्ध अनुवादों के लिए परीक्षण करने के लिए, LSP, MCP, और agent skills, डेवलपर अनुभव (DX) को AI एजेंटों के लिए भी मसृण बनाने के लिए।
अपनी पसंद के LLM का उपयोग करके CI/CD पाइपलाइन में अनुवाद करने के लिए स्वचालन का उपयोग करें आपके AI प्रदाता की लागत पर। Intlayer साथ ही एक compiler प्रदान करता है सामग्री निष्कर्षण को स्वचालित करने के लिए, साथ ही एक web platform पृष्ठभूमि में अनुवाद करने में मदद करने के लिए।
बड़ी JSON फाइलों को घटकों से जोड़ने से कार्यक्षमता और प्रतिक्रिया समस्याएं हो सकती हैं। Intlayer बिल्ड समय पर आपकी सामग्री लोडिंग को अनुकूलित करता है।
केवल एक i18n समाधान से अधिक, Intlayer एक self-hosted visual editor और एक full CMS आपकी बहुभाषी सामग्री को प्रबंधित करने में मदद करने के लिए वास्तविक समय में, अनुवादक, कॉपीराइटर और अन्य टीम सदस्यों के साथ सहयोग को निर्बाध बनाता है। सामग्री स्थानीय रूप से और/या दूरस्थ रूप से संग्रहीत की जा सकती है।
माइग्रेशन रणनीति
मौजूदा ऐप्स के लिए अनुशंसित दृष्टिकोण compat एडॉप्टर है: @intlayer/next-intl स्थापित करें, जो next-intl के बिल्कुल समान API को उजागर करता है लेकिन सभी अनुवाद कार्य को हूड के तहत Intlayer को सौंपता है।
आप अपने मौजूदा useTranslations, getTranslations, NextIntlClientProvider और दोस्त रखते हैं — एकमात्र परिवर्तन import पथ है। कॉल signature, prop shapes, या component structure के कोई refactoring आवश्यक नहीं है।
समय के साथ आप optionally individual फाइलों को Intlayer के रicher .content.ts format में माइग्रेट कर सकते हैं visual editor, CMS, और per-component content scoping को अनलॉक करने के लिए — लेकिन वह चरण पूरी तरह से वैकल्पिक है और वृद्धिशील रूप से किया जा सकता है।
विषय सूची
त्वरित माइग्रेशन
निम्नलिखित चरण अपने मौजूदा next-intl ऐप को बिना कोड परिवर्तन के Intlayer पर चलाने के लिए आवश्यक न्यूनतम हैं।
डिपेंडेंसी स्थापित करें
Intlayer मुख्य पैकेज और
@intlayer/next-intlcompat एडॉप्टर स्थापित करें:bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
npx intlayer-cli init --interactive--interactiveफ्लैग वैकल्पिक है। अगर आप एक AI एजेंट हैं तोintlayer-cli initका उपयोग करें।यह कमांड आपके वातावरण का पता लगाएगा और आवश्यक पैकेज स्थापित करेगा। उदाहरण के लिए:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
npm install intlayer next-intlayer @intlayer/next-intl @intlayer/sync-json-pluginnext-intlको स्थापित रखें — यह अभी भी URL routing के लिए आवश्यक है (createNavigation,createMiddleware,Link,redirect,usePathname,useRouter)। compat एडॉप्टर routing परत को नहीं replace करता।Intlayer को कॉन्फ़िगर करें
intlayer initकमांड एक स्टार्टरintlayer.config.tsबनाता है। अपने मौजूदा locales से मेल खाने के लिए इसे अपडेट करें औरsyncJSONप्लग-इन को अपनी संदेश फाइलों पर इंगित करें: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, // अपने सभी मौजूदा locales यहां जोड़ें ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // 'icu' next-intl के ICU प्लेसहोल्डर सिंटैक्स से मेल खाता है: {name}, {count, plural, ...} format: "icu", source: ({ locale }) => `./messages/${locale}.json`, location: "messages", }), ], }; export default config;sourceएक locale को इसकी JSON फाइल पथ पर मैप करता है।locationIntlayer को बताता है कि परिवर्तनों की निगरानी के लिए कौन सा फोल्डर देखना चाहिए।format: 'icu'विकल्प सुनिश्चित करता है कि ICU placeholders जैसे{name}और{count, plural, one {# item} other {# items}}को सही ढंग से पार्स किया जाता है।configuration विकल्पों की पूरी सूची के लिए, configuration documentation देखें।
Next.js में Intlayer Plugin जोड़ें
अपने मौजूदा Next.js config को
@intlayer/next-intl/pluginसेcreateNextIntlPluginसे लपेटें। यह wrapperwithIntlayerको compose करता है और आपके लिएnext-intl→@intlayer/next-intlएलिएस को register करता है:next.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
import type { NextConfig } from "next"; import { createNextIntlPlugin } from "@intlayer/next-intl/plugin"; const withIntlayer = createNextIntlPlugin(); const nextConfig: NextConfig = { /* आपके मौजूदा config विकल्प */ }; export default withIntlayer(nextConfig);createNextIntlPlugin()withIntlayerको लपेटता है, स्वचालित रूप से Webpack या Turbopack को detect करता है, content watching, dictionary compilation को wire करता है, और — महत्वपूर्ण रूप से — module एलिएस को injects करता है ताकि आपके मौजूदाimport … from 'next-intl'कॉल को build समय पर transparently@intlayer/next-intlपर रीडायरेक्ट किया जा सके। routing entrynext-intl/routingको असली package की ओर इंगित रहता है। कोई स्रोत फाइल परिवर्तन आवश्यक नहीं है।next-intlayer/serverसे सादेwithIntlayerको प्राथमिकता देते हैं? यह आपके dictionaries को compile करेगा, लेकिन यह नहींnext-intlएलिएस को जोड़ता है — आप तब imports को@intlayer/next-intlपर manually नाम दें (चरण 4 देखें)।आपको अब
getRequestConfigयाloadMessagesकी आवश्यकता नहीं है।next-intlके साथ, आपको एकsrc/i18n.tsफाइल लिखनी थी जोgetRequestConfigके माध्यम से हर request पर JSON message bundles को load करती थी। Intlayer सभी dictionaries को build समय पर compile करता है, इसलिए कोई runtime loading चरण नहीं है। आप उस फाइल को पूरी तरह से delete कर सकते हैं (या यदि आप अभी भीcreateNavigationrouting parts का उपयोग करते हैं तो केवल वह भाग रखें)।
त्वरित माइग्रेशन के लिए बस इतना ही। आपका ऐप अब Intlayer पर चलता है जबकि हर next-intl import और API को बरकरार रखता है।
Typed अनुवाद कुंजियां — स्वचालित। एक बार Intlayer आपके dictionaries को compile कर देने के बाद,
useTranslationsऔरgetTranslationsआपकी वास्तविक सामग्री के विरुद्ध typed होते हैं। कुंजियां आपके IDE में autocompleted होती हैं और invalid paths build समय पर TypeScript त्रुटियां पैदा करते हैं — कोई अतिरिक्त setup आवश्यक नहीं है।tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
// Client component — 'about' एक registered dictionary key हैconst t = useTranslations("about");t("counter.label"); // ✓ autocompletedt("does.not.exist"); // ✗ TypeScript error// Server componentconst t = await getTranslations("about");t("counter.label"); // ✓ typed
पूर्ण माइग्रेशन
नीचे दिए गए चरण वैकल्पिक हैं और वृद्धिशील रूप से किए जा सकते हैं। वे पूर्ण Intlayer फीचर सेट को अनलॉक करते हैं: visual editor, CMS, typed content फाइलें, AI-powered अनुवाद, और बहुत कुछ।
स्पष्ट import नाम देना (वैकल्पिक)
वैकल्पिकcreateNextIntlPlugin()wrapper पहले से ही bundler स्तर परnext-intl→@intlayer/next-intlaliasing को हैंडल करता है। अगर आप अपनी स्रोत फाइलों में निर्भरता को स्पष्ट बनाना पसंद करते हैं (और सादेwithIntlayerप्लग-इन का उपयोग करते हैं), तो आप imports को manually नाम दे सकते हैं:सभी तालिका सामग्री दिखाएंसभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
पहले बाद में import { useTranslations } from 'next-intl'import { useTranslations } from '@intlayer/next-intl'import { useLocale } from 'next-intl'import { useLocale } from '@intlayer/next-intl'import { NextIntlClientProvider } from 'next-intl'import { NextIntlClientProvider } from '@intlayer/next-intl'import { getTranslations } from 'next-intl/server'import { getTranslations } from '@intlayer/next-intl/server'import { getLocale } from 'next-intl/server'import { getLocale } from '@intlayer/next-intl/server'import { setLocale } from 'next-intl/server'import { setLocale } from '@intlayer/next-intl/server'import { getMessages } from 'next-intl/server'import { getMessages } from '@intlayer/next-intl/server'हमेशा असली
next-intlसे routing imports को रखें — compat एडॉप्टर नहीं URL routing परत को replace करता है:tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
// ✅ हमेशा इन्हें असली 'next-intl' से रखेंimport { createNavigation } from "next-intl/routing";import { createMiddleware } from "next-intl/server";import { defineRouting } from "next-intl/routing";वैकल्पिक रूप से, आप
@intlayer/next-intl/routingसेdefineRoutingका उपयोग कर सकते हैं जो अपनेintlayer.config.tsसे locale config को स्वचालित रूप से merge करता है।AI-Powered अनुवाद ऑटोमेशन को सक्षम करें
वैकल्पिकएक बार Intlayer वायर्ड होने के बाद, आप अपनी पसंद के LLM का उपयोग करके अनुपलब्ध अनुवादों को स्वचालित रूप से भरने के लिए इसके CLI का उपयोग कर सकते हैं:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
# अनुपलब्ध अनुवादों के लिए परीक्षण (CI में जोड़ें)npx intlayer test# AI के साथ अनुपलब्ध अनुवाद भरेंnpx intlayer fillअपनी
.envफाइल मेंOPENAI_API_KEY(या अपने पसंद के प्रदाता की key) जोड़ें, फिर अपनेintlayer.config.tsको extend करें: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, }, plugins: [ syncJSON({ format: "icu", source: ({ locale }) => `./messages/${locale}.json`, location: "messages", }), ], ai: { apiKey: process.env.OPENAI_API_KEY, // provider: "openai", // default // model: "gpt-4o-mini", // default }, }; export default config;सभी उपलब्ध विकल्पों के लिए Intlayer CLI documentation देखें।
माइग्रेशन के बाद आप क्या हटा सकते हैं
एक बार @intlayer/next-intl मौजूद होने के बाद, निम्नलिखित next-intl boilerplate को हटाया जा सकता है:
सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
| फाइल / पैटर्न | यह अब आवश्यक क्यों नहीं है |
|---|---|
src/i18n.ts → getRequestConfig export | Intlayer dictionaries को build समय पर compile करता है; कोई per-request message loading नहीं है। फाइल को केवल तभी रखें जब यह createNavigation routing helpers को भी export करता है। |
loadMessages() / getMessages() call in layout | @intlayer/next-intl से NextIntlClientProvider compiled output से पढ़ता है; कोई messages prop की आवश्यकता नहीं है। |
locales/{locale}/*.json imports in layout | JSON bundles केवल तभी आवश्यक हैं जब आप अभी भी syncJSON प्लग-इन का उपयोग करते हैं। एक बार .content.ts फाइलों में माइग्रेट करने के बाद आप JSON फोल्डर को हटा सकते हैं। |
जब आप आगे बढ़ने के लिए तैयार हों, Intlayer स्वचालित रूप से आपके कोडबेस में कहीं भी सभी .content.ts और .content.json फाइलों को खोजता है (डिफ़ॉल्ट रूप से, ./src के अंदर कहीं भी)। आप एक about.content.ts फाइल को अपने about/page.tsx के बगल में रख सकते हैं और Intlayer इसे बिल्ड समय पर किसी अतिरिक्त कॉन्फ़िगरेशन के बिना उठाएगा — कोई imports, कोई पंजीकरण, कोई केंद्रीकृत index फाइल आवश्यक नहीं है। यह अनुवाद को पेजों और घटकों के साथ सह-स्थित करना पूरी तरह से घर्षण रहित बनाता है।
TypeScript को कॉन्फ़िगर करें
Intlayer module augmentation का उपयोग करता है आपके अनुवाद कुंजियों के लिए पूर्ण TypeScript intellisense प्रदान करने के लिए। सुनिश्चित करें कि आपका tsconfig.json auto-generated प्रकारों को शामिल करता है:
कोड को क्लिपबोर्ड पर कॉपी करें
{ // ... आपकी मौजूदा TypeScript कॉन्फ़िगरेशन "include": [ // ... आपकी मौजूदा TypeScript कॉन्फ़िगरेशन ".intlayer/**/*.ts", // auto-generated प्रकारों को शामिल करें ],}Git कॉन्फ़िगरेशन
Intlayer के generated directory को अपने .gitignore में जोड़ें:
कोड को क्लिपबोर्ड पर कॉपी करें
# Intlayer द्वारा जनरेट की गई फाइलों को अनदेखा करें.intlayerआगे बढ़ें
- Visual Editor — अपने ब्राउज़र में translations को visually प्रबंधित करें: Intlayer Visual Editor
- CMS — सामग्री को बाहरी रूप से प्रबंधित करें: Intlayer CMS
- VS Code Extension — autocompletion और real-time अनुवाद त्रुटि पहचान प्राप्त करें: Intlayer VS Code Extension
- CLI Reference — CLI commands की पूर्ण सूची: Intlayer CLI
- Intlayer with Next.js — Next.js के लिए full setup guide: intlayerwithnextjs_16.md