अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
संस्करण इतिहास
- "सॉलिड useIntlayer API उपयोग को सीधे प्रॉपर्टी एक्सेस में अपडेट करें"v8.9.04/5/2026
- "इतिहास प्रारंभ"v8.4.1031/3/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
Intlayer का उपयोग करके अपनी Vanilla JS वेबसाइट का अनुवाद करें | अंतर्राष्ट्रीयकरण (i18n)
विषय-सूची
विकल्पों पर इन्टलेयर क्यों?
i18next या i18n.js जैसे मुख्य समाधानों की तुलना में, Intlayer एक ऐसा समाधान है जो एकीकृत अनुकूलन के साथ आता है जैसे:
पूर्ण वेनिला जेएस कवरेज
इंटलेयर को फ्रेमवर्क-अज्ञेयवादी सामग्री प्रबंधन, टाइपस्क्रिप्ट समर्थन, और स्केलिंग अंतर्राष्ट्रीयकरण (i18n) के लिए आवश्यक सभी सुविधाओं की पेशकश करके वेनिला जावास्क्रिप्ट के साथ पूरी तरह से काम करने के लिए अनुकूलित किया गया है।
बंडल का आकार
अपने पृष्ठों में विशाल JSON फ़ाइलें लोड करने के बजाय, केवल आवश्यक सामग्री लोड करें। इंटलेयर आपके बंडल और पृष्ठ आकार को 50% तक कम करने में मदद करता है।
रखरखाव
आपके एप्लिकेशन की सामग्री का दायरा बड़े पैमाने के अनुप्रयोगों के लिए रखरखाव की सुविधा प्रदान करता है। आप अपने संपूर्ण सामग्री कोडबेस की समीक्षा करने के मानसिक बोझ के बिना किसी एक फीचर फ़ोल्डर की नकल कर सकते हैं या उसे हटा सकते हैं। इसके अतिरिक्त, आपकी सामग्री की सटीकता सुनिश्चित करने के लिए Intlayer पूरी तरह से टाइप किया गया है।
एआई एजेंट
सामग्री का सह-स्थानीकरण बड़े भाषा मॉडल (एलएलएम) द्वारा आवश्यक संदर्भ को कम करता है। इंटलेयर टूल के एक सूट के साथ भी आता है, जैसे CLI ताकि लापता अनुवादों का परीक्षण किया जा सके,LSP, MCP, और एजेंट कौशल, AI एजेंटों के लिए डेवलपर अनुभव (DX) को और भी आसान बनाने के लिए।
स्वचालन
अपने एआई प्रदाता की कीमत पर अपनी पसंद के एलएलएम का उपयोग करके अपने सीआई/सीडी पाइपलाइन में अनुवाद करने के लिए स्वचालन का उपयोग करें। इंटलेयर सामग्री निष्कर्षण को स्वचालित करने के लिए एक कंपाइलर के साथ-साथ पृष्ठभूमि में अनुवाद में मदद करने के लिए एक वेब प्लेटफ़ॉर्म भी प्रदान करता है।
प्रदर्शन
बड़े पैमाने पर JSON फ़ाइलों को घटकों से जोड़ने से प्रदर्शन और प्रतिक्रियाशीलता संबंधी समस्याएं हो सकती हैं। इंटलेयर बिल्ड समय पर आपकी सामग्री लोडिंग को अनुकूलित करता है।
किसी भी देव के साथ स्केलिंग
सिर्फ एक i18n समाधान से अधिक, Intlayer एक स्व-होस्टेड विज़ुअल एडिटर और एक [पूर्ण] प्रदान करता है सीएमएस](/hi/doc/concept/cms) आपकी बहुभाषी सामग्री को वास्तविक समय में प्रबंधित करने में मदद करता है, जिससे अनुवादकों, कॉपीराइटरों और टीम के अन्य सदस्यों के साथ सहयोग सहज हो जाता है। सामग्री को स्थानीय और/या दूरस्थ रूप से संग्रहीत किया जा सकता है।
Vanilla JS एप्लिकेशन में Intlayer सेट करने के लिए चरण-दर-चरण मार्गदर्शिका
निर्भरताएँ स्थापित करें
npm का उपयोग करके आवश्यक पैकेज स्थापित करें:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
# intlayer और vanilla-intlayer का स्टैंडअलोन बंडल जनरेट करें# यह फ़ाइल आपकी HTML फ़ाइल में आयात की जाएगीnpx intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js# कॉन्फ़िगरेशन फ़ाइल के साथ intlayer प्रारंभ करेंnpx intlayer init --no-gitignore# शब्दकोश बनाएँnpx intlayer buildintlayer मुख्य पैकेज जो कॉन्फ़िगरेशन प्रबंधन, अनुवाद, सामग्री घोषणा, ट्रांसपाइलेशन और CLI कमांड के लिए अंतर्राष्ट्रीयकरण उपकरण प्रदान करता है।
vanilla-intlayer वह पैकेज जो Intlayer को शुद्ध JavaScript / TypeScript अनुप्रयोगों के साथ एकीकृत करता है। यह एक पब/सब सिंगलटन (
IntlayerClient) और कॉलबैक-आधारित सहायक (useIntlayer,useLocale, आदि) प्रदान करता है ताकि आपके ऐप का कोई भी हिस्सा बिना किसी UI फ्रेमवर्क पर निर्भर हुए लोकेल परिवर्तनों पर प्रतिक्रिया कर सके।
intlayer standaloneCLI का बंडलिंग एक्सपोर्ट अनुपयोगित पैकेज, लोकेल और आपके कॉन्फ़िगरेशन के लिए विशिष्ट गैर-जरूरी लॉजिक (जैसे रीडायरेक्ट या प्रीफ़िक्स) को ट्री-शेकिंग (tree-shaking) के माध्यम से हटाकर एक अनुकूलित बिल्ड तैयार करता है।आपके प्रोजेक्ट का कॉन्फ़िगरेशन
अपने एप्लिकेशन की भाषाओं को कॉन्फ़िगर करने के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएँ:
intlayer.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // आपके अन्य लोकेल ], defaultLocale: Locales.ENGLISH, }, }; export default config;इस कॉन्फ़िगरेशन फ़ाइल के माध्यम से, आप स्थानीयकृत URL, मिडलवेयर रीडायरेक्शन, कुकी नाम, अपनी सामग्री घोषणाओं का स्थान और एक्सटेंशन सेट कर सकते हैं, कंसोल में Intlayer लॉग को अक्षम कर सकते हैं, और बहुत कुछ। उपलब्ध मानकों की पूरी सूची के लिए, कॉन्फ़िगरेशन दस्तावेज़ीकरण देखें।
अपने HTML में बंडल आयात करें
एक बार जब आप
intlayer.jsबंडल जनरेट कर लेते हैं, तो आप इसे अपनी HTML फ़ाइल में आयात कर सकते हैं:index.htmlकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
<!DOCTYPE html><html lang="hi"> <head> <meta charset="UTF-8" /> <!-- बंडल आयात करें --> <script src="./intlayer.js" defer></script> <!-- अपनी मुख्य स्क्रिप्ट आयात करें --> <script src="./src/main.js" defer></script> </head> <body> <h1 id="title"></h1> <p class="read-the-docs"></p> </body></html>बंडल
windowपर वैश्विक ऑब्जेक्ट के रूप मेंIntlayerऔरVanillaIntlayerको उजागर करता है।अपने प्रवेश बिंदु में Intlayer को बूटस्ट्रैप करें
अपने
src/main.jsमें, किसी भी सामग्री को रेंडर करने से पहलेinstallIntlayer()कॉल करें ताकि वैश्विक लोकेल सिंगलटन तैयार हो जाए।src/main.jsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
const { installIntlayer } = window.VanillaIntlayer;// किसी भी i18n सामग्री को रेंडर करने से पहले कॉल किया जाना चाहिए।installIntlayer();यदि आप मार्कडाउन रेंडरर का भी उपयोग करना चाहते हैं, तो
installIntlayerMarkdown()कॉल करें:src/main.jsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
const { installIntlayer, installIntlayerMarkdown } = window.VanillaIntlayer;installIntlayer();installIntlayerMarkdown();अपनी सामग्री घोषित करें
अनुवादों को संग्रहीत करने के लिए अपनी सामग्री घोषणाएँ बनाएँ और प्रबंधित करें:
src/app.content.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
import { insert, t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: { title: "Vite + Vanilla", viteLogoLabel: t({ en: "Vite Logo", fr: "Logo Vite", es: "Logo Vite", }), count: insert( t({ en: "count is {{count}}", fr: "le compte est {{count}}", es: "el recuento es {{count}}", }) ), readTheDocs: t({ en: "Click on the Vite logo to learn more", fr: "Cliquez sur le logo Vite pour en savoir plus", es: "अधिक जानने के लिए Vite लोगो पर क्लिक करें", }), }, } satisfies Dictionary; export default appContent;आपकी सामग्री घोषणाएँ आपके एप्लिकेशन में कहीं भी परिभाषित की जा सकती हैं जैसे ही वे
contentDirनिर्देशिका (डिफ़ॉल्ट रूप से,./src) में शामिल होती हैं। और सामग्री घोषणा फ़ाइल एक्सटेंशन (डिफ़ॉल्ट रूप से,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}) से मेल खाती हैं।अधिक विवरण के लिए, सामग्री घोषणा दस्तावेज़ीकरण देखें।
अपने JavaScript में Intlayer का उपयोग करें
window.VanillaIntlayerऑब्जेक्ट API सहायक प्रदान करता है:useIntlayer(key, locale?)किसी दिए गए कुंजी के लिए अनुवादित सामग्री लौटाता है।src/main.jsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
const { installIntlayer, useIntlayer } = window.VanillaIntlayer;installIntlayer();// वर्तमान लोकेल के लिए प्रारंभिक सामग्री प्राप्त करें।// जब भी लोकेल बदलता है तो सूचित होने के लिए .onChange() जोड़ें।const content = useIntlayer("app").onChange((newContent) => { // केवल प्रभावित DOM नोड्स को पुनः रेंडर या पैच करें document.querySelector("h1").textContent = String(newContent.title); document.querySelector(".read-the-docs").textContent = String( newContent.readTheDocs );});// प्रारंभिक रेंडरdocument.querySelector("h1").textContent = String(content.title);document.querySelector(".read-the-docs").textContent = String( content.readTheDocs);लीफ़ मानों को
String()में लपेटकर स्ट्रिंग के रूप में एक्सेस करें, जो नोड कीtoString()विधि को कॉल करता है और अनुवादित पाठ लौटाता है।जब आपको मूल HTML विशेषता (जैसे
alt,aria-label) के मान की आवश्यकता हो, तो सीधे.valueका उपयोग करें:javascriptकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
img.alt = content.viteLogoLabel.value;अपनी सामग्री की भाषा बदलें
वैकल्पिकअपनी सामग्री की भाषा बदलने के लिए,
useLocaleद्वारा उजागरsetLocaleफ़ंक्शन का उपयोग करें।src/locale-switcher.jsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
const { getLocaleName } = window.Intlayer;const { useLocale } = window.VanillaIntlayer;export function setupLocaleSwitcher(container) { const { locale, availableLocales, setLocale, subscribe } = useLocale(); const select = document.createElement("select"); select.setAttribute("aria-label", "भाषा"); const render = (currentLocale) => { select.innerHTML = availableLocales .map( (loc) => `<option value="${loc}"${loc === currentLocale ? " selected" : ""}> ${getLocaleName(loc)} </option>` ) .join(""); }; render(locale); container.appendChild(select); select.addEventListener("change", () => setLocale(select.value)); // जब लोकेल कहीं और से बदलता है तो ड्रॉपडाउन को सिंक में रखें return subscribe((newLocale) => render(newLocale));}HTML भाषा और दिशा विशेषताएँ स्विच करें
वैकल्पिकएक्सेसिबिलिटी और SEO के लिए
<html>टैग कीlangऔरdirविशेषताओं को वर्तमान लोकेल से मिलान करने के लिए अपडेट करें।src/main.jsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
const { getHTMLTextDir } = window.Intlayer;const { installIntlayer, useLocale } = window.VanillaIntlayer;installIntlayer();useLocale({ onLocaleChange: (locale) => { document.documentElement.lang = locale; document.documentElement.dir = getHTMLTextDir(locale); },});प्रति लोकेल शब्दकोशों को आलसी-लोड (Lazy-load) करें
वैकल्पिकयदि आप प्रति लोकेल शब्दकोशों को आलसी-लोड करना चाहते हैं, तो आप
useDictionaryDynamicका उपयोग कर सकते हैं। यह उपयोगी है यदि आप प्रारंभिकintlayer.jsफ़ाइल में सभी अनुवादों को बंडल नहीं करना चाहते हैं।src/app.jsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
const { installIntlayer, useDictionaryDynamic } = window.VanillaIntlayer;installIntlayer();const unsubscribe = useDictionaryDynamic( { en: () => import("../.intlayer/dictionaries/en/app.mjs"), fr: () => import("../.intlayer/dictionaries/fr/app.mjs"), es: () => import("../.intlayer/dictionaries/es/app.mjs"), }, "app").onChange((content) => { document.querySelector("h1").textContent = String(content.title);});नोट:
useDictionaryDynamicके लिए शब्दकोशों को अलग ESM फ़ाइलों के रूप में उपलब्ध होना आवश्यक है। यह दृष्टिकोण आमतौर पर तब उपयोग किया जाता है जब आपके पास शब्दकोश परोसने वाला वेब सर्वर होता है।
TypeScript कॉन्फ़िगर करें
सुनिश्चित करें कि आपके TypeScript कॉन्फ़िगरेशन में स्वतः जनित प्रकार शामिल हैं।
कोड को क्लिपबोर्ड पर कॉपी करें
{ "compilerOptions": { // ... }, "include": ["src", ".intlayer/**/*.ts"],}VS Code एक्सटेंशन
Intlayer के साथ अपने विकास अनुभव को बेहतर बनाने के लिए, आप आधिकारिक Intlayer VS Code एक्सटेंशन स्थापित कर सकते हैं।
VS Code मार्केटप्लेस से इंस्टॉल करें
यह एक्सटेंशन प्रदान करता है:
- अनुवाद कुंजियों के लिए स्वतः पूर्णता।
- गुम अनुवादों के लिए वास्तविक समय त्रुटि पहचान।
- अनुवादित सामग्री का इनलाइन पूर्वावलोकन।
- अनुवादों को आसानी से बनाने और अपडेट करने के लिए त्वरित कार्य।
एक्सटेंशन का उपयोग करने के तरीके के बारे में अधिक विवरण के लिए, Intlayer VS Code एक्सटेंशन दस्तावेज़ीकरण देखें।
आगे बढ़ें
आगे बढ़ने के लिए, आप विजुअल एडिटर को लागू कर सकते हैं या CMS का उपयोग करके अपनी सामग्री को बाहरी बना सकते हैं।