Author:
    Creation:2025-08-23Last update:2026-05-31

    Intlayer का उपयोग करके अपनी AdonisJS बैकएंड वेबसाइट का अनुवाद करें | अंतर्राष्ट्रीयकरण (i18n)

    adonis-intlayer AdonisJS अनुप्रयोगों के लिए एक शक्तिशाली अंतर्राष्ट्रीयकरण (i18n) पैकेज है, जिसे क्लाइंट की प्राथमिकताओं के आधार पर स्थानीयकृत प्रतिक्रियाएं प्रदान करके आपकी बैकएंड सेवाओं को विश्व स्तर पर सुलभ बनाने के लिए डिज़ाइन किया गया है।

    व्यावहारिक उपयोग के मामले

    • उपयोगकर्ता की भाषा में बैकएंड त्रुटियां प्रदर्शित करना: जब कोई त्रुटि होती है, तो संदेशों को उपयोगकर्ता की मूल भाषा में प्रदर्शित करने से समझ में सुधार होता है और हताशा कम होती है। यह गतिशील त्रुटि संदेशों के लिए विशेष रूप से उपयोगी है जो टोस्ट या मोडल जैसे फ्रंट-एंड घटकों में दिखाए जा सकते हैं।

    • बहुभाषी सामग्री प्राप्त करना: डेटाबेस से सामग्री खींचने वाले अनुप्रयोगों के लिए, अंतर्राष्ट्रीयकरण यह सुनिश्चित करता है कि आप इस सामग्री को कई भाषाओं में परोस सकें। यह ई-कॉमर्स साइटों या सामग्री प्रबंधन प्रणालियों जैसे प्लेटफार्मों के लिए महत्वपूर्ण है जिन्हें उत्पाद विवरण, लेख और अन्य सामग्री उपयोगकर्ता द्वारा पसंद की जाने वाली भाषा में प्रदर्शित करने की आवश्यकता होती है।

    • बहुभाषी ईमेल भेजना: चाहे वह ट्रांसेक्शनल ईमेल हो, मार्केटिंग अभियान हो, या सूचनाएं हों, प्राप्तकर्ता की भाषा में ईमेल भेजने से जुड़ाव और प्रभावशीलता में काफी वृद्धि हो सकती है।

    • बहुभाषी पुश सूचनाएं: मोबाइल अनुप्रयोगों के लिए, उपयोगकर्ता की पसंदीदा भाषा में पुश सूचनाएं भेजने से बातचीत और प्रतिधारण बढ़ सकता है। यह व्यक्तिगत स्पर्श सूचनाओं को अधिक प्रासंगिक और कार्रवाई योग्य महसूस करा सकता है।

    • अन्य संचार: बैकएंड से संचार का कोई भी रूप, जैसे एसएमएस संदेश, सिस्टम अलर्ट, या उपयोगकर्ता इंटरफ़ेस अपडेट, उपयोगकर्ता की भाषा में होने से लाभान्वित होता है, स्पष्टता सुनिश्चित करता है और समग्र उपयोगकर्ता अनुभव को बढ़ाता है।

    बैकएंड का अंतर्राष्ट्रीयकरण करके, आपका एप्लिकेशन न केवल सांस्कृतिक अंतरों का सम्मान करता है बल्कि वैश्विक बाजार की जरूरतों के साथ बेहतर तालमेल बिठाता है, जिससे यह आपकी सेवाओं को दुनिया भर में स्केल करने का एक महत्वपूर्ण कदम बन जाता है।

    शुरू करना

    ide.intlayer.org

    See Application Template on GitHub.

    स्थापना

    adonis-intlayer का उपयोग शुरू करने के लिए, npm का उपयोग करके पैकेज स्थापित करें:

    bash
    npx intlayer init --interactive
    
    --interactive ध्वज (flag) वैकल्पिक है। यदि आप एक AI एजेंट हैं तो intlayer-cli init का उपयोग करें।
    यह कमांड आपके एनवायरनमेंट को डिटेक्ट करेगी और आवश्यक पैकेज इंस्टॉल करेगी। उदाहरण के लिए:
    bash
    npm install intlayer adonis-intlayer
    

    सेटअप

    अपने प्रोजेक्ट रूट में intlayer.config.ts बनाकर अंतर्राष्ट्रीयकरण सेटिंग्स कॉन्फ़िगर करें:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: [
          Locales.ENGLISH,
          Locales.RUSSIAN,
          Locales.JAPANESE,
          Locales.FRENCH,
          Locales.KOREAN,
          Locales.CHINESE,
          Locales.SPANISH,
          Locales.GERMAN,
          Locales.ARABIC,
          Locales.ITALIAN,
          Locales.ENGLISH_UNITED_KINGDOM,
          Locales.PORTUGUESE,
          Locales.HINDI,
          Locales.TURKISH,
          Locales.POLISH,
          Locales.INDONESIAN,
          Locales.VIETNAMESE,
          Locales.UKRAINIAN,
        ],
        defaultLocale: Locales.ENGLISH,
      },
    };
    
    export default config;
    

    अपनी सामग्री घोषित करें

    अनुवादों को संग्रहीत करने के लिए अपनी सामग्री घोषणाएं बनाएं और प्रबंधित करें:

    app/index.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const indexContent = {
      key: "index",
      content: {
        exampleOfContent: t({
          en: "Example of returned content in English",
          fr: "Exemple de contenu renvoyé en français",
          hi: "हिंदी में लौटाई गई सामग्री का उदाहरण",
          "es-ES": "Ejemplo de contenido devuelto en español (España)",
          "es-MX": "Ejemplo de contenido devuelto en español (México)",
        }),
      },
    } satisfies Dictionary;
    
    export default indexContent;
    
    आपकी सामग्री घोषणाएं आपके एप्लिकेशन में कहीं भी परिभाषित की जा सकती हैं, बशर्ते वे contentDir निर्देशिका (डिफ़ॉल्ट रूप से, ./src या ./app) में शामिल हों। और सामग्री घोषणा फ़ाइल एक्सटेंशन (डिफ़ॉल्ट रूप से, .content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}) से मेल खाती हों।
    अधिक विवरण के लिए, सामग्री घोषणा दस्तावेज़ देखें।

    AdonisJS अनुप्रयोग सेटअप

    adonis-intlayer का उपयोग करने के लिए अपना AdonisJS एप्लिकेशन सेटअप करें।

    मिडलवेयर पंजीकृत करें

    सबसे पहले, आपको अपने एप्लिकेशन में intlayer मिडलवेयर पंजीकृत करना होगा।

    start/kernel.ts
    router.use([() => import("adonis-intlayer/middleware")]);
    

    अपने मार्ग (routes) परिभाषित करें

    start/routes.ts
    import router from "@adonisjs/core/services/router";
    import { t, getIntlayer, getDictionary } from "adonis-intlayer";
    import indexContent from "../app/index.content";
    
    router.get("/t_example", async () => {
      return t({
        en: "Example of returned content in English",
        fr: "Exemple de contenu renvoyé en français",
        hi: "हिंदी में लौटाई गई सामग्री का उदाहरण",
        "es-ES": "Ejemplo de contenido devuelto en español (España)",
        "es-MX": "Ejemplo de contenido devuelto en español (México)",
      });
    });
    
    router.get("/getIntlayer_example", async () => {
      return getIntlayer("index").exampleOfContent;
    });
    
    router.get("/getDictionary_example", async () => {
      return getDictionary(indexContent).exampleOfContent;
    });
    

    कार्य (Functions)

    adonis-intlayer आपके एप्लिकेशन में अंतर्राष्ट्रीयकरण को संभालने के लिए कई कार्यों को निर्यात करता है:

    • t(content, locale?): मूल अनुवाद कार्य।
    • getIntlayer(key, locale?): अपने शब्दकोशों से कुंजी द्वारा सामग्री प्राप्त करें।
    • getDictionary(dictionary, locale?): एक विशिष्ट शब्दकोश वस्तु से सामग्री प्राप्त करें।
    • getLocale(): अनुरोध संदर्भ से वर्तमान लोकेल प्राप्त करें।

    नियंत्रकों (Controllers) में उपयोग करें

    app/controllers/example_controller.ts
    import type { HttpContext } from "@adonisjs/core/http";
    import { t } from "adonis-intlayer";
    
    export default class ExampleController {
      async index({ response }: HttpContext) {
        return response.send(
          t({
            en: "Hello from controller",
            fr: "Bonjour depuis le contrôleur",
            hi: "कंट्रोलर से नमस्ते",
          })
        );
      }
    }
    

    संगतता

    adonis-intlayer पूरी तरह से इनके साथ संगत है:

    • React अनुप्रयोगों के लिए react-intlayer
    • Next.js अनुप्रयोगों के लिए next-intlayer
    • Vite अनुप्रयोगों के लिए vite-intlayer

    यह ब्राउज़र और एपीआई अनुरोधों सहित विभिन्न वातावरणों में किसी भी अंतर्राष्ट्रीयकरण समाधान के साथ सहजता से काम करता है। आप हेडर या कुकीज़ के माध्यम से लोकेल का पता लगाने के लिए मिडलवेयर को अनुकूलित कर सकते हैं:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      // ... अन्य कॉन्फ़िगरेशन विकल्प
      routing: {
        storage: [
          { type: "header", name: "my-locale-header" },
          { type: "cookie", name: "my-locale-cookie" },
        ],
      },
    };
    
    export default config;
    

    डिफ़ॉल्ट रूप से, adonis-intlayer क्लाइंट की पसंदीदा भाषा निर्धारित करने के लिए Accept-Language हेडर की व्याख्या करेगा।

    कॉन्फ़िगरेशन और उन्नत विषयों पर अधिक जानकारी के लिए, हमारे दस्तावेज़ पर जाएँ।

    TypeScript कॉन्फ़िगर करें

    adonis-intlayer अंतर्राष्ट्रीयकरण प्रक्रिया को बढ़ाने के लिए TypeScript की मजबूत क्षमताओं का लाभ उठाता है। TypeScript की स्थिर टाइपिंग यह सुनिश्चित करती है कि प्रत्येक अनुवाद कुंजी का हिसाब रखा जाए, जिससे अनुवाद गायब होने का जोखिम कम हो जाता है और रखरखाव में सुधार होता है।

    ऑटो-पूर्णता

    अनुवाद त्रुटि

    सुनिश्चित करें कि स्वतः उत्पन्न प्रकार (डिफ़ॉल्ट रूप से ./types/intlayer.d.ts पर) आपकी tsconfig.json फ़ाइल में शामिल हैं।

    tsconfig.json
    {
      // ... आपके मौजूदा TypeScript कॉन्फ़िगरेशन
      "include": [
        // ... आपके मौजूदा TypeScript कॉन्फ़िगरेशन
        ".intlayer/**/*.ts", // स्वतः उत्पन्न प्रकार शामिल करें
      ],
    }
    

    VS Code एक्सटेंशन

    Intlayer के साथ अपने विकास अनुभव को बेहतर बनाने के लिए, आप आधिकारिक Intlayer VS Code एक्सटेंशन स्थापित कर सकते हैं।

    VS Code मार्केटप्लेस से इंस्टॉल करें

    यह एक्सटेंशन प्रदान करता है:

    • अनुवाद कुंजियों के लिए ऑटो-पूर्णता।
    • गायब अनुवादों के लिए रीयल-टाइम त्रुटि पहचान।
    • अनुवादित सामग्री का इनलाइन पूर्वावलोकन।
    • आसानी से अनुवाद बनाने और अपडेट करने के लिए त्वरित कार्रवाई।

    एक्सटेंशन का उपयोग करने के तरीके के बारे में अधिक विवरण के लिए, Intlayer VS Code एक्सटेंशन दस्तावेज़ देखें।

    Git कॉन्फ़िगरेशन

    Intlayer द्वारा उत्पन्न फ़ाइलों को अनदेखा करने की अनुशंसा की जाती है। यह आपको उन्हें अपने Git रिपॉजिटरी में कमिट करने से बचने की अनुमति देता है।

    ऐसा करने के लिए, आप अपनी .gitignore फ़ाइल में निम्नलिखित निर्देश जोड़ सकते हैं:

    .gitignore
    # Intlayer द्वारा उत्पन्न फ़ाइलों को अनदेखा करें
    .intlayer
    

    अक्सर पूछे जाने वाले प्रश्न

    • @adonisjs/i18n: AdonisJS का आधिकारिक पैकेज।
    • Intlayer: बैकएंड और आधुनिक फ़्रंटएंड दोनों के लिए एकीकरण, पूर्ण TypeScript प्रकार, AI अनुवाद और CMS।

    बैकएंड का अंतर्राष्ट्रीयकरण करने का मुख्य कारण यह है कि उपयोगकर्ता द्वारा पढ़े जाने वाले टेक्स्ट का एक बड़ा हिस्सा कभी भी फ्रंटएंड से होकर नहीं गुजरता: API त्रुटि संदेश, लेन-देन संबंधी ईमेल, पुश सूचनाएं, SMS और PDF निर्यात। इन्हें प्रति सत्र के बजाय प्रति अनुरोध हल की गई प्राप्तकर्ता की भाषा की आवश्यकता होती है।

    Intlayer क्यों चुनें देखें।

    पारंपरिक JSON कैटलॉग की तुलना में बहुत कम। Intlayer कंपाइलर बिल्ड समय पर शब्दकोशों को अनुकूलित करता है और प्रत्येक अनुरोध पर उन्हें फिर से पार्स नहीं करता है, जिससे मेमोरी उपयोग और कोल्ड स्टार्ट समय न्यूनतम रहता है। बंडल अनुकूलन देखें।

    काफी हद तक हाँ। sync JSON plugin मौजूदा अनुवाद फ़ाइलों को बनाए रखता है।

    हाँ। sync JSON plugin आपकी /messages/{locale}/{namespace}.json फ़ाइलों को सत्य का स्रोत बनाए रखता है और दोनों दिशाओं में उनसे Intlayer dictionaries बनाता है। sync PO plugin gettext catalogs के लिए भी ऐसा ही करता है, और per locale files आपको locales को एक फ़ाइल में समूहीकृत करने के बजाय भाषा के अनुसार content को विभाजित करने देते हैं।

    नहीं। npx intlayer extract चलाएं और Intlayer आपकी source files को पढ़ता है, user facing strings को निकालता है और प्रत्येक के बगल में एक .content file लिखता है, इसलिए आप strings को एक catalog में एक-एक करके कॉपी करने के बजाय एक diff की समीक्षा करते हैं। extract command देखें।

    पूर्ण स्वचालन के लिए, Intlayer Compiler बिल्ड समय पर यही काम करता है और प्रत्येक परिवर्तन पर शब्दकोश उत्पन्न करता है।

    पाँच उपकरण, सभी वैकल्पिक:

    • VS Code extension: एक कुंजी से सामग्री फ़ाइल तक जाएं, स्ट्रिंग्स निकालें, और कमांड पैलेट से build, fill, test, push और pull चलाएं।
    • LSP server: LSP का समर्थन करने वाले किसी भी संपादक में परिभाषा पर जाएं, अनुवादित मान का पूर्वावलोकन देखें, और कुंजी पूर्णता प्राप्त करें। i18next कॉल को भी संभालता है।
    • 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 नियम हार्डकोडेड स्ट्रिंग्स को चिह्नित करता है।