अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
संस्करण इतिहास
- "Update compiler options, add FilePathPattern support"v8.2.09/3/2026
- "कंपाइलर विकल्पों को अपडेट करें"v8.1.725/2/2026
- "Release Compiler"v7.3.127/11/2025
इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।
अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखेंअगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।
दस्तावेज़ के लिए GitHub लिंकदस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें
Intlayer Compiler | i18n के लिए स्वचालित सामग्री निष्कर्षण
Intlayer Compiler क्या है?
Intlayer Compiler एक शक्तिशाली उपकरण है जिसे आपके एप्लिकेशन में अंतरराष्ट्रीयकरण (i18n) की प्रक्रिया को स्वचालित करने के लिए डिज़ाइन किया गया है। यह आपके स्रोत कोड (JSX, TSX, Vue, Svelte) में सामग्री घोषणाओं को स्कैन करता है, उन्हें निकालता है, और आवश्यक शब्दकोश फ़ाइलों को स्वचालित रूप से उत्पन्न करता है। यह आपको अपनी सामग्री को आपके कंपोनेंट्स के साथ सह-स्थित रखने की अनुमति देता है जबकि Intlayer आपके शब्दकोशों के प्रबंधन और समन्वय को संभालता है।
Intlayer Compiler का उपयोग क्यों करें?
स्वचालन: शब्दकोशों में सामग्री की मैनुअल कॉपी-पेस्टिंग को समाप्त करता है।
Speed: अनुकूलित कंटेंट निष्कर्षण आपकी बिल्ड प्रक्रिया को तेज़ रखता है।
Developer Experience: Content declarations को उसी जगह रखें जहां उनका उपयोग किया जाता है, जिससे maintainability में सुधार होता है।
- स्वचालन: सामग्री को शब्दकोशों में मैन्युअल कॉपी-पेस्ट करने की आवश्यकता समाप्त करता है।
- गति: अनुकूलित सामग्री निष्कर्षण सुनिश्चित करता है कि आपका बिल्ड प्रक्रिया तेज़ बनी रहे।
- डेवलपर अनुभव: सामग्री घोषणाओं को वहीं रखें जहां उनका उपयोग होता है, जिससे रखरखाव में सुधार होता है।
- लाइव अपडेट्स: विकास के दौरान त्वरित प्रतिक्रिया के लिए Hot Module Replacement (HMR) का समर्थन करता है।
गहरे तुलना के लिए Compiler vs. Declarative i18n ब्लॉग पोस्ट देखें।
Intlayer Compiler का उपयोग क्यों न करें?
हालांकि कंपाइलर एक उत्कृष्ट "बस काम करता है" अनुभव प्रदान करता है, यह कुछ समझौते भी पेश करता है जिनके बारे में आपको पता होना चाहिए:
- हेयूरिस्टिक अस्पष्टता: कंपाइलर को यह अनुमान लगाना होगा कि उपयोगकर्ता-सामना करने वाली सामग्री बनाम एप्लिकेशन लॉजिक क्या है (उदाहरण के लिए,
className="active", स्थिति कोड, उत्पाद ID)। जटिल कोडबेस में, यह गलत सकारात्मक या छूटी हुई स्ट्रिंग्स का कारण बन सकता है जिन्हें मैन्युअल एनोटेशन और अपवादों की आवश्यकता होती है। केवल स्थैतिक निष्कर्षण: कंपाइलर-आधारित निष्कर्षण स्थैतिक विश्लेषण पर निर्भर करता है। स्ट्रिंग्स जो केवल रनटाइम पर मौजूद होती हैं (API त्रुटि कोड, CMS फ़ील्ड, आदि) को कंपाइलर द्वारा अकेले खोजा या अनुवादित नहीं किया जा सकता है, इसलिए आपको अभी भी एक पूरक रनटाइम i18n रणनीति की आवश्यकता है।
Static-only extraction: Compiler-based extraction static analysis पर निर्भर करती है। Strings जो केवल runtime पर exist करती हैं (API error codes, CMS fields, आदि) को compiler अकेले discover या translate नहीं कर सकता है, इसलिए आपको अभी भी एक complementary runtime i18n strategy की आवश्यकता है।
गहरी वास्तुकला तुलना के लिए, Compiler vs. Declarative i18n ब्लॉग पोस्ट देखें।
वैकल्पिक रूप से, अपनी सामग्री पर पूर्ण नियंत्रण रखते हुए अपनी i18n प्रक्रिया को स्वचालित करने के लिए, Intlayer एक स्वचालित निष्कर्षण कमांड intlayer extract (देखें CLI दस्तावेज़ीकरण) या Intlayer VS Code एक्सटेंशन का Intlayer: extract content to Dictionary कमांड (देखें VS Code एक्सटेंशन दस्तावेज़ीकरण) भी प्रदान करता है।
उपयोग
कंपाइलर को जोड़ने का सबसे तेज़ तरीका इंटरैक्टिव सेटअप है:npx intlayer init --interactiveचलाएं और Compiler चुनें। Next.js और Vite पर,compiler.enabledसेट होने औरcompiler.outputपथ कॉन्फ़िगर होने पर यह अपने आप सक्रिय हो जाता है।
Vite
Vite-आधारित एप्लिकेशन (React, Vue, Svelte, आदि) के लिए, कंपाइलर का उपयोग करने का सबसे आसान तरीका vite-intlayer प्लगइन के माध्यम से है।
स्थापना
कोड को क्लिपबोर्ड पर कॉपी करें
कॉन्फ़िगरेशन
अपने vite.config.ts को अपडेट करें ताकि intlayerCompiler प्लगइन शामिल हो:
कोड को क्लिपबोर्ड पर कॉपी करें
स्टैंडअलोनintlayerCompiler()प्लगइन अभी भी advanced setups के लिए exported है। इसेintlayer()के साथ register करना सुरक्षित है — compiler खुद को deduplicate करता है और केवल एक बार चलता है।
See complete tutorial: Translate Vite and React with Intlayer
फ्रेमवर्क समर्थन
Vite प्लगइन स्वचालित रूप से विभिन्न फ़ाइल प्रकारों का पता लगाता है और उन्हें संभालता है:
- React / JSX / TSX: मूल रूप से संभाला जाता है।
- Vue: इसके लिए
@intlayer/vue-compilerआवश्यक है। Svelte: इसके लिए
@intlayer/svelte-compilerआवश्यक है।Vue:
@intlayer/vue-compilerकी आवश्यकता है।Svelte:
@intlayer/svelte-compilerकी आवश्यकता है।
सुनिश्चित करें कि आपने अपने फ्रेमवर्क के लिए उपयुक्त कंपाइलर पैकेज इंस्टॉल किया है:
कोड को क्लिपबोर्ड पर कॉपी करें
Next.js
Next.js पर कंपाइलर एक बंडलर लोडर, next-intlayer/extractor-loader के रूप में चलता है। withIntlayer इसे आपके लिए Turbopack और webpack दोनों पर पंजीकृत करता है, कोई babel.config.js लिखने की आवश्यकता नहीं है।
स्थापना
कोड को क्लिपबोर्ड पर कॉपी करें
कॉन्फ़िगरेशन
कॉन्फ़िगर करने के लिए कुछ नहीं है। जब तक आपका next.config.ts withIntlayer से होकर गुजरता है, लोडर को पंजीकृत करने के लिए @intlayer/babel इंस्टॉल करना ही पर्याप्त है:
कोड को क्लिपबोर्ड पर कॉपी करें
लोडर next-swc-loader से पहले .tsx और .jsx फ़ाइलों पर चलता है, इसलिए यह आपके मूल JSX को पढ़ता है। आपके घटकों में घोषित सामग्री को .content फ़ाइलों में निकाला जाता है और फ़ाइल कंपाइल होने पर .intlayer में बनाया जाता है।
Babel
Next.js या अन्य Webpack-आधारित एप्लिकेशन जो Babel का उपयोग करते हैं, उनके लिए आप @intlayer/babel प्लगइन का उपयोग करके कंपाइलर को कॉन्फ़िगर कर सकते हैं।
स्थापना
कोड को क्लिपबोर्ड पर कॉपी करें
कॉन्फ़िगरेशन
अपना babel.config.js (या babel.config.json) अपडेट करें ताकि extraction प्लगइन शामिल हो सके। हम एक हेल्पर getExtractPluginOptions प्रदान करते हैं जो आपके Intlayer कॉन्फ़िगरेशन को स्वचालित रूप से लोड करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
यह कॉन्फ़िगरेशन सुनिश्चित करता है कि आपके कंपोनेंट्स में घोषित सामग्री स्वचालित रूप से निकाली जाए और आपके बिल्ड प्रक्रिया के दौरान शब्दकोश बनाने के लिए उपयोग की जाए।
कस्टम कॉन्फ़िगरेशन
कंपाइलर व्यवहार को अनुकूलित करने के लिए, आप अपने प्रोजेक्ट के रूट में intlayer.config.ts फ़ाइल को अपडेट कर सकते हैं।
कोड को क्लिपबोर्ड पर कॉपी करें
कंपाइलर कॉन्फ़िगरेशन संदर्भ
निम्नलिखित गुणों को आपकी 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'प्रारूप का उपयोग करके एक स्ट्रिंग के रूप में, या एक फ़ंक्शन के रूप में सेट किया जा सकता है। - नोट:
./**/*पथ घटक के सापेक्ष हल किए जाते हैं।/**/*पथ IntlayerbaseDirके सापेक्ष हल किए जाते हैं। - नोट: यदि पथ में लोकेल (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 कमांड का उपयोग कर सकते हैं।
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
निष्कर्षण
Intlayer आपके कोड से सामग्री निकालने के लिए एक CLI टूल प्रदान करता है। आप अपने कोड से सामग्री निकालने के लिए intlayer extract कमांड का उपयोग कर सकते हैं।
कोड को क्लिपबोर्ड पर कॉपी करें
अधिक विवरण के लिए, CLI दस्तावेज़ देखें।
