अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
यह दस्तावेज़ पुराना है, आधार संस्करण को इस तिथि पर अपडेट किया गया है 29 अगस्त 2026.
अंग्रेजी दस्तावेज़ पर जाएँसंस्करण इतिहास
- "रूट के head फ़ंक्शन में मेटाडेटा डिक्शनरी के स्टैटिक, डायनामिक और कैश्ड डायनामिक रिज़ॉल्यूशन की तुलना"v9.4.025/8/2026
- "सॉलिड useIntlayer API उपयोग को सीधे प्रॉपर्टी एक्सेस में अपडेट करें"v8.9.04/5/2026
- "init कमांड जोड़ें"v7.5.930/12/2025
- "validatePrefix पेश करें और चरण 14 जोड़ें: स्थानीयकृत रूट्स के साथ 404 पेज हैंडल करना।"v7.4.011/12/2025
- "चरण 13 जोड़ें: अपने सर्वर एक्शन्स में लोकेल प्राप्त करें (वैकल्पिक)"v7.3.95/12/2025
- "चरण 13 जोड़ें: Nitro को अनुकूलित करें"v7.2.318/11/2025
- "getPrefix फ़ंक्शन जोड़कर उपसर्ग डिफ़ॉल्ट को ठीक करें useLocalizedNavigate, LocaleSwitcher और LocalizedLink का उपयोग करें।"v7.1.017/11/2025
- "दस्तावेज़ अपडेट करें"v6.5.23/10/2025
- "TanStack Start के लिए जोड़ा गया"v5.8.19/9/2025
इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।
अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखेंअगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।
दस्तावेज़ के लिए GitHub लिंकदस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें
Intlayer का उपयोग करके अपनी TanStack Start वेबसाइट का अनुवाद करें | अंतर्राष्ट्रीयकरण (i18n)
विषय-सूची
यह गाइड दिखाता है कि लोकेल-जागरूक रूटिंग, TypeScript समर्थन और आधुनिक विकास प्रथाओं के साथ TanStack Start प्रोजेक्ट्स में निर्बाध अंतर्राष्ट्रीयकरण के लिए Intlayer को कैसे एकीकृत किया जाए।
विकल्पों पर इन्टलेयर क्यों?
react-i18next या use-intl, या paraglide जैसे मुख्य समाधानों की तुलना में, Intlayer एक समाधान है जो एकीकृत अनुकूलन के साथ आता है जैसे:
इंटलेयर टैनस्टैक स्टार्ट के लिए पूरी तरह से अनुकूलित है, जो बहुभाषी रूटिंग, कुकी प्रबंधन, साइटमैप जेनरेशन, डायनामिक कंटेंट लोडिंग और आपके अंतर्राष्ट्रीयकरण (i18n) प्रयासों को बढ़ाने के लिए आवश्यक सभी सुविधाएँ प्रदान करता है।
अपने पृष्ठों में विशाल JSON फ़ाइलें लोड करने के बजाय, केवल आवश्यक सामग्री लोड करें। इंटलेयर आपके बंडल और पृष्ठ आकार को 50% तक कम करने में मदद करता है।
आपके एप्लिकेशन की सामग्री का दायरा बड़े पैमाने के अनुप्रयोगों के लिए रखरखाव की सुविधा प्रदान करता है। आप अपने संपूर्ण सामग्री कोडबेस की समीक्षा करने के मानसिक बोझ के बिना किसी एक फीचर फ़ोल्डर की नकल कर सकते हैं या उसे हटा सकते हैं। इसके अतिरिक्त, आपकी सामग्री की सटीकता सुनिश्चित करने के लिए Intlayer पूरी तरह से टाइप किया गया है।
सामग्री का सह-स्थानीकरण बड़े भाषा मॉडल (एलएलएम) द्वारा आवश्यक संदर्भ को कम करता है। इंटलेयर टूल के एक सूट के साथ भी आता है, जैसे CLI ताकि लापता अनुवादों का परीक्षण किया जा सके,LSP, MCP, और agent skills, AI एजेंटों के लिए डेवलपर अनुभव (DX) को और भी आसान बनाने के लिए।
अपने एआई प्रदाता की कीमत पर अपनी पसंद के एलएलएम का उपयोग करके अपने सीआई/सीडी पाइपलाइन में अनुवाद करने के लिए स्वचालन का उपयोग करें। इंटलेयर सामग्री निष्कर्षण को स्वचालित करने के लिए एक कंपाइलर के साथ-साथ पृष्ठभूमि में अनुवाद में मदद करने के लिए एक वेब प्लेटफ़ॉर्म भी प्रदान करता है।
बड़े पैमाने पर JSON फ़ाइलों को घटकों से जोड़ने से प्रदर्शन और प्रतिक्रियाशीलता संबंधी समस्याएं हो सकती हैं। इंटलेयर बिल्ड समय पर आपकी सामग्री लोडिंग को अनुकूलित करता है।
सिर्फ एक i18n समाधान से अधिक, Intlayer एक स्व-होस्टेड विज़ुअल एडिटर और एक पूर्ण सीएमएस आपकी बहुभाषी सामग्री को वास्तविक समय में प्रबंधित करने में मदद करता है, जिससे अनुवादकों, कॉपीराइटरों और टीम के अन्य सदस्यों के साथ सहयोग सहज हो जाता है। सामग्री को स्थानीय और/या दूरस्थ रूप से संग्रहीत किया जा सकता है।
TanStack Start एप्लिकेशन में Intlayer सेट अप करने के लिए चरण-दर-चरण मार्गदर्शिका
GitHub पर एप्लिकेशन टेम्पलेट देखें।
प्रोजेक्ट बनाएं
TanStack Start वेबसाइट पर नया प्रोजेक्ट शुरू करें गाइड का पालन करके एक नया TanStack Start प्रोजेक्ट बनाना शुरू करें।
Intlayer पैकेज इंस्टॉल करें
अपने पसंदीदा पैकेज मैनेजर का उपयोग करके आवश्यक पैकेज इंस्टॉल करें:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
--interactiveध्वज (flag) वैकल्पिक है। यदि आप एक AI एजेंट हैं तोintlayer-cli initका उपयोग करें।यह कमांड आपके एनवायरनमेंट को डिटेक्ट करेगी और आवश्यक पैकेज इंस्टॉल करेगी। उदाहरण के लिए:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
intlayer
कोर पैकेज जो कॉन्फ़िगरेशन प्रबंधन, अनुवाद, सामग्री घोषणा, ट्रांसपाइलेशन और CLI कमांड के लिए अंतर्राष्ट्रीयकरण उपकरण प्रदान करता है।
react-intlayer वह पैकेज जो Intlayer को React एप्लिकेशन के साथ एकीकृत करता है। यह React अंतर्राष्ट्रीयकरण के लिए संदर्भ प्रदाता और हुक प्रदान करता है।
vite-intlayer इसमें Intlayer को Vite बंडलर के साथ एकीकृत करने के लिए Vite प्लगइन, साथ ही उपयोगकर्ता की पसंदीदा लोकेल का पता लगाने, कुकीज़ प्रबंधित करने और URL पुनर्निर्देशन को संभालने के लिए मिडलवेयर शामिल है।
अपने प्रोजेक्ट का कॉन्फ़िगरेशन
आर्किटेक्चर
इस आर्किटेक्चर में, सभी स्थानीयकृत रूट्स
{-$locale}रूट सेगमेंट के तहत नेस्ट किए गए हैं। यह दृष्टिकोण सुनिश्चित करता है कि प्रत्येक भाषा का एक समर्पित URL हो, साथ ही स्वचालित लोकेल प्रीफ़िक्स, सत्यापन और SEO अनुकूलन सक्षम करता है।bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
कॉन्फ़िगरेशन
अपनी एप्लिकेशन की भाषाओं को कॉन्फ़िगर करने के लिए एक कॉन्फ़िग फ़ाइल बनाएं:
intlayer.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
इस कॉन्फ़िगरेशन फ़ाइल के माध्यम से, आप स्थानीयकृत URL, मिडलवेयर पुनर्निर्देशन, कुकी नाम, अपनी सामग्री घोषणाओं का स्थान और विस्तार सेट कर सकते हैं, कंसोल में Intlayer लॉग को अक्षम कर सकते हैं, और बहुत कुछ। उपलब्ध पैरामीटर की पूरी सूची के लिए, कॉन्फ़िगरेशन दस्तावेज़ देखें।
अपने Vite कॉन्फ़िगरेशन में Intlayer को एकीकृत करें
अपने कॉन्फ़िगरेशन में intlayer प्लगइन जोड़ें:
vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
intlayer()Vite प्लगइन का उपयोग Intlayer को Vite के साथ एकीकृत करने के लिए किया जाता है। यह सामग्री घोषणा फ़ाइलों के निर्माण को सुनिश्चित करता है और विकास मोड में उनकी निगरानी करता है। यह Vite एप्लिकेशन के भीतर Intlayer पर्यावरण चर को परिभाषित करता है। इसके अतिरिक्त, यह प्रदर्शन को अनुकूलित करने के लिए उपनाम प्रदान करता है।रूट लेआउट बनाएं
वर्तमान लोकेल का पता लगाने के लिए
useParamsका उपयोग करके औरhtmlटैग परlangऔरdirविशेषताओं को सेट करके अंतर्राष्ट्रीयकरण का समर्थन करने के लिए अपने रूट लेआउट को कॉन्फ़िगर करें।src/routes/__root.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
लोकेल लेआउट बनाएं
एक लेआउट बनाएं जो लोकेल उपसर्ग को संभालता है और सत्यापन करता है।
src/routes/{-$locale}/route.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
यहाँ,
{-$locale}एक गतिशील रूट पैरामीटर है जो वर्तमान लोकेल से बदल दिया जाता है। यह नोटेशन स्लॉट को वैकल्पिक बनाता है, जिससे यह'prefix-no-default'आदि जैसे रूटिंग मोड के साथ काम करने की अनुमति देता है।ध्यान रखें कि यदि आप एक ही रूट में कई गतिशील खंडों का उपयोग करते हैं (जैसे,
/{-$locale}/other-path/$anotherDynamicPath/...), तो यह स्लॉट समस्याएँ पैदा कर सकता है।'prefix-all'मोड के लिए, आप इसके बजाय स्लॉट को$localeमें बदलना पसंद कर सकते हैं।'no-prefix'या'search-params'मोड के लिए, आप स्लॉट को पूरी तरह से हटा सकते हैं।अपनी सामग्री घोषित करें
अनुवादों को संग्रहीत करने के लिए अपनी सामग्री घोषणाएं बनाएं और प्रबंधित करें:
src/contents/page.content.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
आपकी सामग्री घोषणाएं आपके एप्लिकेशन में कहीं भी परिभाषित की जा सकती हैं जैसे ही वे
contentDirनिर्देशिका (डिफ़ॉल्ट रूप से,./app) में शामिल होती हैं। और सामग्री घोषणा फ़ाइल विस्तार (डिफ़ॉल्ट रूप से,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}) से मेल खाती हैं।अधिक विवरण के लिए, सामग्री घोषणा दस्तावेज़ देखें।
लोकेल-जागरूक घटक और हुक बनाएं
लोकेल-जागरूक नेविगेशन के लिए एक
LocalizedLinkघटक बनाएं:src/components/localized-link.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
इस घटक के दो उद्देश्य हैं:
- URL से अनावश्यक
{-$locale}उपसर्ग को हटाना। - URL में लोकेल पैरामीटर इंजेक्ट करना ताकि यह सुनिश्चित हो सके कि उपयोगकर्ता सीधे स्थानीयकृत रूट पर निर्देशित हो।
फिर हम प्रोग्रामेटिक नेविगेशन के लिए एक
useLocalizedNavigateहुक बना सकते हैं:src/hooks/useLocalizedNavigate.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
- URL से अनावश्यक
अपने पृष्ठों में Intlayer का उपयोग करें
कंपोनेंट के भीतर डिफ़ॉल्ट रूप से
useIntlayerका उपयोग करें: यह कंटेंट पढ़ने का अनुशंसित तरीका है, और कंपाइलर इसे रेंडर हो रहे लोकेल पर हल कर देता है।getIntlayer/getIntlayerAsyncका उपयोग केवल React ट्री के बाहर करें: रूट केhead, लोडर और सर्वर फ़ंक्शन में।अपने एप्लिकेशन में अपने सामग्री शब्दकोशों तक पहुंचें:
स्थानीयकृत होम पेज
src/routes/{-$locale}/index.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
यदि आप अपने कंटेंट को
stringattribute में उपयोग करना चाहते हैं, जैसेalt,title,href,aria-label, आदि, तो आप फ़ंक्शन का मान उपयोग कर सकते हैं:tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
useIntlayerhook के बारे में अधिक जानने के लिए, दस्तावेज़ देखें।एक लोकेल स्विचर कंपोनेंट बनाएं
उपयोगकर्ताओं को भाषा बदलने की अनुमति देने के लिए एक कंपोनेंट बनाएं:
src/components/locale-switcher.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
useLocalehook के बारे में अधिक जानने के लिए, दस्तावेज़ देखें।HTML विशेषताएं प्रबंधन
जैसा कि स्टेप 5 में देखा गया है, आप अपने रूट कंपोनेंट में
useParamsका उपयोग करकेhtmlटैग कीlangऔरdirविशेषताओं को प्रबंधित कर सकते हैं। यह सुनिश्चित करता है कि सही विशेषताएं सर्वर और क्लाइंट दोनों पर सेट हों।src/routes/__root.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
मिडलवेयर जोड़ें
आप अपने एप्लिकेशन में सर्वर-साइड रूटिंग जोड़ने के लिए
intlayerProxyका भी उपयोग कर सकते हैं। यह plugin स्वचालित रूप से URL के आधार पर वर्तमान लोकेल का पता लगाएगा और उपयुक्त लोकेल कुकी सेट करेगा। यदि कोई लोकेल निर्दिष्ट नहीं है, तो plugin उपयोगकर्ता की ब्राउज़र भाषा वरीयताओं के आधार पर सबसे उपयुक्त लोकेल निर्धारित करेगा। यदि कोई लोकेल नहीं मिलता है, तो यह डिफ़ॉल्ट लोकेल पर रीडायरेक्ट करेगा।ध्यान दें कि production में
intlayerProxyका उपयोग करने के लिए, आपकोvite-intlayerpackage कोdevDependenciesसेdependenciesमें स्विच करना होगा।Intlayer v9 के बाद से,
intlayerProxy()को सीधेintlayer()plugin में bundled किया गया है औरrouting.enableProxyविकल्प (trueby default) के माध्यम से डिफ़ॉल्ट रूप से सक्षम है। नीचे दिखाए गए अनुसार इसे अलग से पंजीकृत करना अब वैकल्पिक है: यह backward compatibility के लिए रखा गया है और उन सेटअप के लिए जिन्हें plugin order को नियंत्रित करने की आवश्यकता है। opt out करने के लिएrouting.enableProxy: falseसेट करें। v9 release notes देखें।vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपने मेटाडेटा को अंतर्राष्ट्रीयकृत करें
getIntlayermerged dictionary के विरुद्ध synchronously resolve करता है, वह जो प्रत्येक घोषित लोकेल को रखता है।headsynchronous रहता है और कुछ भी await नहीं किया जाता है, लेकिन संपूर्ण बहुभाषी dictionary ब्राउज़र को भेजे गए route chunk में pull की जाती है।src/routes/{-$locale}/index.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
छोटे मेटाडेटा dictionaries, कुछ लोकेल के लिए, या prototyping के दौरान सर्वोत्तम है।
getIntlayerAsync(v9.4 से उपलब्ध)getIntlayerकी तरह व्यवहार करता है, लेकिन build plugin इसे merged dictionary के बजाय.intlayer/dynamic_dictionaries/में per-locale chunk की ओर इंगित करता है। एक पृष्ठ इसलिए केवल उस लोकेल को जहाज करता है जिसे यह render करता है। चूंकि वह chunk on demand लोड होता है,headasyncबन जाता है:src/routes/{-$locale}/index.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
यदि एक
headकई dictionaries को पढ़ता है, तो उन्हेंPromise.allके साथ resolve करें: प्रत्येकgetIntlayerAsyncको अपनी line पर await करने से requests को chain किया जाता है न कि समानांतर में चलाया जाता है।trade-off: गतिशील import को
headचलते समय resolve किया जाता है, document render के critical path पर। एक cold route पर यह head को कुछ मिलीसेकंड से देरी करता है और LCP को थोड़ा degrade कर सकता है।route
loaderमें dictionary को resolve करें औरheadमेंloaderDataसे इसे वापस पढ़ें। matched routes के loaders समानांतर में चलते हैं, औरstaleTime: InfinityTanStack Router को बताता है कि परिणाम कभी भी stale नहीं होते हैं, इसलिए per-locale chunk एक बार resolve होता है और router cache से बाद में served होता है,headको synchronous छोड़ता है।src/routes/{-$locale}/index.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
headको loader settle होने से पहले call किया जा सकता है, इसलिएloaderDataको संभवतःundefinedके रूप में typed किया जाता है। optional chaining रखें, या एक fallback title return करें।आप head critical path पर इसकी cost दिए बिना per-locale chunk रखते हैं। कीमत developer experience है: content को explicitly loader से
headमेंloaderDataके माध्यम से threaded होना पड़ता है।किस resolution को चुनना चाहिए?
सभी तालिका सामग्री दिखाएंसभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
Static resolution Dynamic resolution Cached dynamic resolution API getIntlayergetIntlayerAsync(v9.4+)getIntlayerAsyncinloader(v9.4+)headsignaturesynchronous asyncsynchronous, reads loaderDataLocales shipped every declared locale requested locale only requested locale only Client navigations nothing to resolve re-entered on every match served from the router cache Developer experience simplest one awaitcontent threaded through loaderDataअपने server actions में locale को प्राप्त करें
आप अपने server actions या API endpoints के अंदर से current locale को access करना चाह सकते हैं। आप इसे
intlayerसेgetLocalehelper का उपयोग करके कर सकते हैं।यहाँ TanStack Start के server functions का उपयोग करके एक उदाहरण दिया गया है:
src/routes/{-$locale}/index.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
नहीं मिले पृष्ठों का प्रबंधन करें
जब कोई उपयोगकर्ता गैर-मौजूद पृष्ठ पर जाता है, तो आप एक कस्टम नहीं मिला पृष्ठ प्रदर्शित कर सकते हैं और लोकेल उपसर्ग नहीं मिला पृष्ठ के ट्रिगर होने के तरीके को प्रभावित कर सकता है।
लोकेल उपसर्गों के साथ TanStack Router के 404 हैंडलिंग को समझना
TanStack Router में, स्थानीयकृत रूट्स के साथ 404 पृष्ठों को संभालने के लिए एक बहु-स्तरीय दृष्टिकोण की आवश्यकता होती है:
- समर्पित 404 रूट: 404 UI प्रदर्शित करने के लिए एक विशिष्ट रूट
- रूट-स्तरीय सत्यापन: लोकेल उपसर्गों को मान्य करता है और अमान्य को 404 पर पुनर्निर्देशित करता है
- कैच-ऑल रूट: लोकेल खंड के भीतर किसी भी बेमेल पथ को कैप्चर करता है
src/routes/{-$locale}/404.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
src/routes/{-$locale}/route.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
src/routes/{-$locale}/$.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपने घटकों की सामग्री निकालें
वैकल्पिकisOptional={true}>
यदि आपके पास मौजूदा कोडबेस है, तो हजारों फ़ाइलों को बदलना समय लेने वाला हो सकता है।
इस प्रक्रिया को आसान बनाने के लिए, 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कोintlayerplugin में शामिल किया गया है। इसलिए आपको इसे मैन्युअल रूप से जोड़ने की आवश्यकता नहीं है।intlayerCompiler प्लगइन शामिल करने के लिए अपनी
vite.config.tsअपडेट करें:vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
पूर्व-प्रस्तुत करें और साइटमैप जनरेट करें
Intlayer में एक built-in sitemap generator है जो आपको अपने एप्लिकेशन के लिए आसानी से sitemap बनाने में मदद करता है। यह localized routes को handle करता है और search engines के लिए आवश्यक metadata जोड़ता है।
Intlayer द्वारा generated sitemap
xhtml:linknamespace (Hreflang XML Extensions) को support करता है। Default sitemap generators के विपरीत जो केवल raw URLs list करते हैं, Intlayer automatically एक page के सभी language versions के बीच required bidirectional links create करता है (उदाहरण के लिए,/about,/about?lang=fr, और/about?lang=es)। यह सुनिश्चित करता है कि search engines सही language version को सही audience को correctly index और serve करें।इसे उपयोग करने के लिए, आपको पहले अपनी
vite.config.tsको कॉन्फ़िगर करना होगा ताकि आपके स्थानीयकृत routes के लिए प्री-रेंडरिंग सक्षम हो सके और डिफ़ॉल्ट TanStack Start sitemap जनरेशन को अक्षम किया जा सके।vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
फिर, एक
src/routes/sitemap[.]xml.tsroute बनाएं जोgenerateSitemapfunction का उपयोग करता है:src/routes/sitemap[.]xml.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
TypeScript कॉन्फ़िगर करें
Intlayer module augmentation का उपयोग करके TypeScript के लाभ प्राप्त करता है और आपके codebase को मजबूत बनाता है।
सुनिश्चित करें कि आपकी TypeScript कॉन्फ़िगरेशन autogenerated प्रकार शामिल करती है:
tsconfig.jsonकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
Git कॉन्फ़िगरेशन
Intlayer द्वारा उत्पन्न फ़ाइलों को अनदेखा करने की सिफारिश की जाती है। यह आपको उन्हें अपने Git रिपॉजिटरी में कमिट करने से बचने की अनुमति देता है।
ऐसा करने के लिए, आप अपनी .gitignore फ़ाइल में निम्नलिखित निर्देश जोड़ सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
VS Code Extension
Intlayer के साथ अपने development experience को बेहतर बनाने के लिए, आप official Intlayer VS Code Extension को install कर सकते हैं।
VS Code Marketplace से Install करें
यह extension निम्नलिखित प्रदान करता है:
- Autocompletion translation keys के लिए।
- Real-time error detection missing translations के लिए।
- Inline previews translated content का।
- Quick actions आसानी से translations बनाने और update करने के लिए।
Extension के उपयोग के बारे में अधिक विवरण के लिए, Intlayer VS Code Extension documentation देखें।
आगे बढ़ें
आगे बढ़ने के लिए, आप visual editor को लागू कर सकते हैं या CMS का उपयोग करके अपनी सामग्री को बाहरीकृत कर सकते हैं।
दस्तावेज़ संदर्भ
- Intlayer दस्तावेज़
- Tanstack Start दस्तावेज़
- useIntlayer hook
- useLocale hook
- Content Declaration
- Configuration
अक्सर पूछे जाने वाले प्रश्न
TanStack Start की अपनी कोई i18n परत नहीं है:
i18next/react-i18nextऔरreact-intl: रनटाइम JSON लोडिंग वाली लाइब्रेरी।Intlayer: SSR और SSG समर्थन, घटक के बगल में घोषणा, पूर्ण TypeScript प्रकार, AI अनुवाद और विज़ुअल एडिटर।
Intlayer क्यों चुनें देखें।
नेमस्पेस-आधारित समाधानों की तुलना में बहुत कम, क्योंकि एक पृष्ठ कभी भी उस कैटलॉग को डाउनलोड नहीं करता है जिसे वह रेंडर नहीं करता है। बिल्ड-टाइम कंपाइलर useIntlayer कॉल को घटक द्वारा उपयोग की जाने वाली सटीक प्रविष्टियों से बदल देता है, और गतिशील शब्दकोश शेष को प्रति लोकेल विभाजित करते हैं, जिससे बंडल 50% तक कम हो जाता है। बंडल अनुकूलन और बेंचमार्क देखें।
हाँ, माइग्रेशन गाइड या संगतता एडेप्टर के माध्यम से।
हाँ। sync JSON plugin आपकी /messages/{locale}/{namespace}.json फ़ाइलों को सत्य का स्रोत बनाए रखता है और दोनों दिशाओं में उनसे Intlayer dictionaries बनाता है। sync PO plugin gettext catalogs के लिए भी ऐसा ही करता है, और per locale files आपको locales को एक फ़ाइल में समूहीकृत करने के बजाय भाषा के अनुसार content को विभाजित करने देते हैं।
नहीं। npx intlayer extract चलाएं और Intlayer आपकी फ़ाइलों को पढ़ता है, उपयोगकर्ता के अनुकूल स्ट्रिंग्स निकालता है, और प्रत्येक के बगल में एक .content फ़ाइल लिखता है, जिससे आप कैटलॉग में मैन्युअल रूप से कॉपी करने के बजाय एक diff की समीक्षा करते हैं।
पूर्ण स्वचालन के लिए, Intlayer Compiler बिल्ड समय पर यही काम करता है: प्रत्येक परिवर्तन पर कोड स्कैन करता है, शब्दकोश उत्पन्न करता है और HMR के साथ सिंक करता है।
कंपाइलर को चालू करने से पहले दो सीमाएं जानने योग्य हैं। यह स्थिर विश्लेषण द्वारा काम करता है, इसलिए जो स्ट्रिंग्स केवल रनटाइम पर मौजूद होती हैं, जैसे कि API त्रुटि कोड या CMS फ़ील्ड, वे पहुंच से बाहर रहती हैं। और इसे className="active" या स्थिति कोड जैसे एप्लिकेशन लॉजिक से उपयोगकर्ता के सामने आने वाले टेक्स्ट को अलग करना होगा, जिसके लिए एक बड़े कोडबेस में कुछ एनोटेशन की आवश्यकता होती है। extract command आपको लूप में रखकर दोनों से बचाता है।
पाँच उपकरण, सभी वैकल्पिक:
- VS Code extension:
useIntlayerकुंजी से उसे घोषित करने वाली सामग्री फ़ाइल पर जाएं, घटकों से सामग्री निकालें, और कमांड पैलेट या Intlayer टैब से build, fill, test, push और pull चलाएं। - LSP server: LSP का समर्थन करने वाले किसी भी संपादक में समान सुविधा, परिभाषा पर जाएं, अनुवादित मान का पूर्वावलोकन देखें, और कुंजी पूर्णता प्राप्त करें।
i18next,react-i18next,next-intlऔरuse-intlकॉल का भी समर्थन करता है। - MCP server: Cursor, VS Code, Claude Desktop, Claude Code और ChatGPT के लिए Intlayer दस्तावेज़ और CLI प्रदान करता है।
- Agent skills: केंद्रित कौशल जैसे
intlayer-config,intlayer-cliऔरintlayer-content। - ESLint plugin:
no-raw-textनियम हार्डकोडेड स्ट्रिंग्स को चिह्नित करता है।
