अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
संस्करण इतिहास
- "सॉलिड useIntlayer API उपयोग को सीधे प्रॉपर्टी एक्सेस में अपडेट करें"v8.9.04/5/2026
- "init कमांड जोड़ें"v7.5.930/12/2025
- "दस्तावेज़ अपडेट किया गया"v6.1.53/10/2025
- "React Router v7 के लिए जोड़ा"v5.8.24/9/2025
इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।
अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखेंअगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।
दस्तावेज़ के लिए GitHub लिंकदस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें
Intlayer के साथ अपना React Router v7 अनुवाद करें | अंतर्राष्ट्रीयकरण (i18n)
यह गाइड दिखाता है कि कैसे Intlayer को React Router v7 प्रोजेक्ट्स में seamless अंतरराष्ट्रीयकरण के लिए एकीकृत किया जाए, जिसमें locale-aware रूटिंग, TypeScript समर्थन, और आधुनिक विकास प्रथाएँ शामिल हैं।
क्लाइंट-साइड रूटिंग के लिए, Intlayer के साथ React Router v7 गाइड देखें।
Table of Contents
विकल्पों पर इन्टलेयर क्यों?
रिएक्ट-आई18नेक्स्ट या आई18नेक्स्ट जैसे मुख्य समाधानों की तुलना में, इंटलेयर एक ऐसा समाधान है जो एकीकृत अनुकूलन के साथ आता है जैसे:
पूर्ण रिएक्ट राउटर कवरेज
इंटलेयर को लोकेल-अवेयर रूटिंग, लोकेल डिटेक्शन के लिए मिडलवेयर, और स्केलिंग इंटरनेशनलाइजेशन (i18n) के लिए आवश्यक सभी सुविधाओं की पेशकश करके रिएक्ट राउटर के साथ पूरी तरह से काम करने के लिए अनुकूलित किया गया है।
बंडल का आकार
अपने पृष्ठों में विशाल JSON फ़ाइलें लोड करने के बजाय, केवल आवश्यक सामग्री लोड करें। इंटलेयर आपके बंडल और पृष्ठ आकार को 50% तक कम करने में मदद करता है।
रखरखाव
आपके एप्लिकेशन की सामग्री का दायरा बड़े पैमाने के अनुप्रयोगों के लिए रखरखाव की सुविधा प्रदान करता है। आप अपने संपूर्ण सामग्री कोडबेस की समीक्षा करने के मानसिक बोझ के बिना किसी एक फीचर फ़ोल्डर की नकल कर सकते हैं या उसे हटा सकते हैं। इसके अतिरिक्त, आपकी सामग्री की सटीकता सुनिश्चित करने के लिए Intlayer पूरी तरह से टाइप किया गया है।
एआई एजेंट
सामग्री का सह-स्थानीकरण बड़े भाषा मॉडल (एलएलएम) द्वारा आवश्यक संदर्भ को कम करता है। इंटलेयर टूल के एक सूट के साथ भी आता है, जैसे CLI ताकि लापता अनुवादों का परीक्षण किया जा सके,LSP, MCP, और agent skills, AI एजेंटों के लिए डेवलपर अनुभव (DX) को और भी आसान बनाने के लिए।
स्वचालन
अपने एआई प्रदाता की कीमत पर अपनी पसंद के एलएलएम का उपयोग करके अपने सीआई/सीडी पाइपलाइन में अनुवाद करने के लिए स्वचालन का उपयोग करें। इंटलेयर सामग्री निष्कर्षण को स्वचालित करने के लिए एक कंपाइलर के साथ-साथ पृष्ठभूमि में अनुवाद में मदद करने के लिए एक वेब प्लेटफ़ॉर्म भी प्रदान करता है।
प्रदर्शन
बड़े पैमाने पर JSON फ़ाइलों को घटकों से जोड़ने से प्रदर्शन और प्रतिक्रियाशीलता संबंधी समस्याएं हो सकती हैं। इंटलेयर बिल्ड समय पर आपकी सामग्री लोडिंग को अनुकूलित करता है।
किसी भी देव के साथ स्केलिंग
सिर्फ एक i18n समाधान से अधिक, Intlayer एक स्व-होस्टेड विज़ुअल एडिटर और एक [पूर्ण] प्रदान करता है सीएमएस](/hi/doc/concept/cms) आपकी बहुभाषी सामग्री को वास्तविक समय में प्रबंधित करने में मदद करता है, जिससे अनुवादकों, कॉपीराइटरों और टीम के अन्य सदस्यों के साथ सहयोग सहज हो जाता है। सामग्री को स्थानीय और/या दूरस्थ रूप से संग्रहीत किया जा सकता है।
React Router v7 एप्लिकेशन में Intlayer सेटअप करने के लिए चरण-दर-चरण मार्गदर्शिका
निर्भरताएँ स्थापित करें
अपनी पसंदीदा पैकेज मैनेजर का उपयोग करके आवश्यक पैकेज स्थापित करें:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
--interactiveध्वज (flag) वैकल्पिक है। यदि आप एक AI एजेंट हैं तोintlayer-cli initका उपयोग करें।यह कमांड आपके एनवायरनमेंट को डिटेक्ट करेगी और आवश्यक पैकेज इंस्टॉल करेगी। उदाहरण के लिए:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपने पसंदीदा package manager का उपयोग करके आवश्यक packages को install करें:
intlayer
intlayer
मुख्य पैकेज जो कॉन्फ़िगरेशन प्रबंधन, अनुवाद, सामग्री घोषणा, ट्रांसपाइलेशन, और CLI कमांड्स के लिए अंतरराष्ट्रीयकरण उपकरण प्रदान करता है।react-intlayer
वह पैकेज जो Intlayer को React एप्लिकेशन के साथ एकीकृत करता है। यह React अंतरराष्ट्रीयकरण के लिए संदर्भ प्रदाता और हुक्स प्रदान करता है।vite-intlayer
इसमें Vite प्लगइन शामिल है जो Intlayer को Vite बंडलर के साथ एकीकृत करता है, साथ ही उपयोगकर्ता की पसंदीदा भाषा का पता लगाने, कुकीज़ प्रबंधित करने, और URL पुनर्निर्देशन को संभालने के लिए मिडलवेयर भी शामिल है।@react-router/fs-routes वह पैकेज जो React Router v7 के लिए फ़ाइल-सिस्टम आधारित रूटिंग को सक्षम करता है।
अपने प्रोजेक्ट का कॉन्फ़िगरेशन
अपने एप्लिकेशन की भाषाओं को कॉन्फ़िगर करने के लिए एक कॉन्फ़िग फ़ाइल बनाएं:
intlayer.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
import { type IntlayerConfig, Locales } from "intlayer"; const config: IntlayerConfig = { internationalization: { defaultLocale: Locales.ENGLISH, locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], }, }; export default config;इस कॉन्फ़िगरेशन फ़ाइल के माध्यम से, आप स्थानीयकृत URLs, middleware पुनर्निर्देशन, कुकी नाम, आपकी content declarations के स्थान और एक्सटेंशन को सेट अप कर सकते हैं, कंसोल में Intlayer लॉग्स को अक्षम कर सकते हैं, और बहुत कुछ कर सकते हैं। उपलब्ध parameters की संपूर्ण सूची के लिए, कॉन्फ़िगरेशन documentation को देखें।
अपने Vite कॉन्फ़िगरेशन में Intlayer को एकीकृत करें
अपने कॉन्फ़िगरेशन में intlayer plugin जोड़ें:
vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
intlayer()Vite plugin का उपयोग Intlayer को Vite के साथ integrate करने के लिए किया जाता है। यह content declaration files की building को सुनिश्चित करता है और development mode में उन्हें monitor करता है। यह Vite application के भीतर Intlayer environment variables को परिभाषित करता है। इसके अतिरिक्त, यह performance को optimize करने के लिए aliases प्रदान करता है।React Router v7 फ़ाइल-सिस्टम रूट्स कॉन्फ़िगर करें
अपने routing configuration को
flatRoutesके साथ file-system based routes का उपयोग करने के लिए सेट अप करें:app/routes.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
@react-router/fs-routesसेflatRoutesफ़ंक्शन फ़ाइल-सिस्टम आधारित routing को सक्षम करता है, जहाँroutes/डायरेक्टरी में फ़ाइल संरचना आपके एप्लिकेशन की routes को निर्धारित करती है।ignoredRouteFilesविकल्प यह सुनिश्चित करता है कि Intlayer कंटेंट घोषणा फ़ाइलें (.content.ts, आदि) route फ़ाइलों के रूप में नहीं मानी जाती हैं।लेआउट कंपोनेंट बनाएं
फ़ाइल-सिस्टम रूटिंग के साथ, आप एक सपाट नामकरण सम्मेलन का उपयोग करते हैं जहाँ डॉट्स (
.) पथ खंडों का प्रतिनिधित्व करते हैं और कोष्ठक()वैकल्पिक खंडों को दर्शाते हैं।अपनी
app/routes/निर्देशिका में निम्नलिखित फ़ाइलें बनाएँ:फ़ाइल संरचना
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
नामकरण परंपराएं:
($locale)- locale parameter के लिए वैकल्पिक गतिशील segment_layout- Layout route जो child routes को wrap करता है_index- Index route (parent path पर renders होता है).(dot) - Path segments को अलग करता है (उदा.,($locale).about→/:locale?/about)
Layout Component
app/root.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
रूट लेआउट
app/routes/layout.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
स्थानीयकृत होम पेज
app/routes/[lang]/page.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपनी सामग्री की घोषणा करें
अपनी content declarations बनाएं और प्रबंधित करें translations को store करने के लिए। Content files को अपनी route files के साथ रखें:
app/routes/($locale)._index.content.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
app/routes/($locale).about.content.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
आपकी content declarations आपके application में कहीं भी परिभाषित की जा सकती हैं जब तक वे
contentDirdirectory में शामिल हों (डिफ़ॉल्ट रूप से,./app). और content declaration file extension से मेल खाएं (डिफ़ॉल्ट रूप से,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).useIntlayerहुक के बारे में अधिक जानने के लिए, डॉक्यूमेंटेशन देखें।यदि आपका ऐप पहले से मौजूद है, तो आप हजारों घटकों को एक सेकंड में बदलने के लिए Intlayer कंपाइलर को एक्सट्रैक्ट कमांड के साथ उपयोग कर सकते हैं।
लोकेल-अवेयर कंपोनेंट्स बनाएँ
लोकेल-जागरूक नेविगेशन के लिए एक
LocalizedLinkcomponent बनाएं:app/components/localized-link.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
यदि आप लोकलाइज़्ड routes पर नेविगेट करना चाहते हैं, तो आप
useLocalizedNavigatehook का उपयोग कर सकते हैं:app/hooks/useLocalizedNavigate.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
एक लोकल स्विचर कंपोनेंट बनाएं
उपयोगकर्ताओं को भाषाएँ बदलने की अनुमति देने के लिए एक कॉम्पोनेंट बनाएं:
app/components/locale-switcher.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
useLocaleहुक के बारे में अधिक जानने के लिए, कृपया दस्तावेज़ देखें।HTML एट्रिब्यूट्स प्रबंधन जोड़ें
HTML lang और dir एट्रिब्यूट्स को प्रबंधित करने के लिए एक हुक बनाएं:
app/hooks/useI18nHTMLAttributes.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
यह hook पहले से ही layout component (
($locale)._layout.tsx) में उपयोग किया जा रहा है जो Step 5 में दिखाया गया है।अपने घटकों की सामग्री निकालें
वैकल्पिकयदि आपके पास मौजूदा कोडबेस है, तो हजारों फ़ाइलों को बदलना समय लेने वाला हो सकता है।
इस प्रक्रिया को आसान बनाने के लिए, Intlayer आपके घटकों को बदलने और सामग्री निकालने के लिए एक कंपाइलर / एक्सट्रैक्टर का प्रस्ताव करता है।
इसे सेट करने के लिए, आप अपनी
intlayer.config.tsफ़ाइल में एकcompilerअनुभाग जोड़ सकते हैं:intlayer.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... आपका शेष कॉन्फ़िगरेशन compiler: { /** * इंगित करता है कि क्या कंपाइलर सक्षम होना चाहिए। */ enabled: true, /** * आउटपुट फ़ाइलों का पथ परिभाषित करता है */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * इंगित करता है कि क्या घटकों को बदलने के बाद सहेजा जाना चाहिए। उस तरह से, कंपाइलर को ऐप बदलने के लिए केवल एक बार चलाया जा सकता है, और फिर इसे हटाया जा सकता है। */ saveComponents: false, /** * शब्दकोश कुंजी उपसर्ग */ dictionaryKeyPrefix: "", }, }; export default config;अपने घटकों को बदलने और सामग्री निकालने के लिए एक्सट्रैक्टर चलाएँ
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
v9 से,
intlayerCompilerकोintlayerप्लगइन में शामिल किया गया है। इसलिए आपको इसे मैन्युअल रूप से जोड़ने की आवश्यकता नहीं है।intlayerCompiler प्लगइन शामिल करने के लिए अपनी
vite.config.tsअपडेट करें:vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
फिर इसे अपने रूट कॉम्पोनेंट में उपयोग करें:
आप अपने एप्लिकेशन में server-side routing जोड़ने के लिए intlayerProxy का भी उपयोग कर सकते हैं। यह plugin स्वचालित रूप से URL के आधार पर वर्तमान locale को detect करेगा और appropriate locale cookie सेट करेगा। यदि कोई locale निर्दिष्ट नहीं है, तो plugin उपयोगकर्ता की browser language preferences के आधार पर सबसे appropriate locale determine करेगा। यदि कोई locale detect नहीं होता है, तो यह default locale पर redirect करेगा।
ध्यान दें कि उत्पादन मेंintlayerProxyका उपयोग करने के लिए, आपकोvite-intlayerपैकेज कोdevDependenciesसेdependenciesमें स्विच करना होगा।
Intlayer v9 के बाद से,intlayerProxy()को सीधेintlayer()plugin में बंडल किया गया है औरrouting.enableProxyविकल्प के माध्यम से डिफ़ॉल्ट रूप से सक्षम किया गया है (trueडिफ़ॉल्ट रूप से)। इसे अलग से पंजीकृत करना जैसा कि नीचे दिखाया गया है अब वैकल्पिक है — इसे पिछड़े संगतता के लिए और उन सेटअप के लिए रखा गया है जिन्हें plugin क्रम को नियंत्रित करने की आवश्यकता है।routing.enableProxy: falseसेट करके अनुमति न दें। v9 रिलीज़ नोट्स देखें।
कोड को क्लिपबोर्ड पर कॉपी करें
</Step>
Configure TypeScript
Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
Ensure your TypeScript configuration includes the autogenerated types:
कोड को क्लिपबोर्ड पर कॉपी करें
Git Configuration
It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
To do this, you can add the following instructions to your .gitignore file:
कोड को क्लिपबोर्ड पर कॉपी करें
VS Code Extension
To improve your development experience with Intlayer, you can install the official Intlayer VS Code Extension.
Install from the VS Code Marketplace
This extension provides:
- Autocompletion for translation keys.
- Real-time error detection for missing translations.
- Inline previews of translated content.
- Quick actions to easily create and update translations.
For more details on how to use the extension, refer to the Intlayer VS Code Extension documentation.
Go Further
To go further, you can implement the visual editor or externalize your content using the CMS.
दस्तावेज़ संदर्भ
यह व्यापक मार्गदर्शिका आपको Intlayer को React Router v7 के साथ पूरी तरह से अंतरराष्ट्रीयकृत एप्लिकेशन के लिए एकीकृत करने के लिए आवश्यक सभी जानकारी प्रदान करती है, जिसमें स्थानीय-जानकारी वाले रूटिंग और TypeScript समर्थन शामिल हैं।
