Creation:2025-09-09Last update:2026-05-31

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

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

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

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

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

    • बहुभाषी ईमेल भेजना: चाहे वह transactional emails, marketing campaigns, या notifications हों, प्राप्तकर्ता की भाषा में ईमेल भेजना engagement और प्रभावशीलता को काफी हद तक बढ़ा सकता है।

    • बहुभाषी Push Notifications: मोबाइल applications के लिए, उपयोगकर्ता की पसंदीदा भाषा में push notifications भेजना इंटरैक्शन और retention को बढ़ा सकता है। यह व्यक्तिगत स्पर्श notifications को अधिक प्रासंगिक और कार्यान्वयन योग्य बना सकता है।

    • अन्य संचार: बैकएंड से किसी भी प्रकार का संचार, जैसे SMS messages, system alerts, या user interface updates, उपयोगकर्ता की भाषा में होने से लाभान्वित होता है, जिससे स्पष्टता सुनिश्चित होती है और समग्र user experience में वृद्धि होती है।

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

    शुरुआत कैसे करें

    नया NestJS प्रोजेक्ट बनाएं

    bash
    npm install -g @nestjs/cli
    nest new my-nest-app
    

    स्थापना

    express-intlayer का उपयोग शुरू करने के लिए, npm का उपयोग करके पैकेज इंस्टॉल करें:

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

    tsconfig.json कॉन्फ़िगर करें

    TypeScript के साथ Intlayer का उपयोग करने के लिए, सुनिश्चित करें कि आपका tsconfig.json ES मॉड्यूल्स का समर्थन करने के लिए सेटअप किया गया है। आप यह module और moduleResolution विकल्पों को nodenext पर सेट करके कर सकते हैं।

    tsconfig.json
    {
      compilerOptions: {
        module: "nodenext",
        moduleResolution: "nodenext",
        // ... अन्य विकल्प
      },
    }
    

    सेटअप

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

    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;
    

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

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

    आपकी सामग्री घोषणाएँ आपकी एप्लिकेशन में कहीं भी परिभाषित की जा सकती हैं जब तक कि वे contentDir निर्देशिका (डिफ़ॉल्ट रूप से, ./src) में शामिल हों। और सामग्री घोषणा फ़ाइल एक्सटेंशन से मेल खाती हों (डिफ़ॉल्ट रूप से, .content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml})।
    अधिक विवरण के लिए, सामग्री घोषणा प्रलेखन देखें।

    एक्सप्रेस मिडलवेयर सेटअप

    express-intlayer मिडलवेयर को अपने NestJS एप्लिकेशन में अंतरराष्ट्रीयकरण को संभालने के लिए एकीकृत करें:

    src/app.module.ts
    import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common";
    import { AppController } from "./app.controller";
    import { AppService } from "./app.service";
    import { intlayer } from "express-intlayer";
    
    @Module({
      imports: [],
      controllers: [AppController],
      providers: [AppService],
    })
    export class AppModule implements NestModule {
      configure(consumer: MiddlewareConsumer) {
        consumer.apply(intlayer()).forRoutes("*"); // सभी रूट्स पर लागू करें
      }
    }
    

    अपनी सेवाओं या कंट्रोलर्स में अनुवादों का उपयोग करें

    अब आप अपनी सेवाओं या कंट्रोलर्स में अनुवादों तक पहुँचने के लिए getIntlayer फ़ंक्शन का उपयोग कर सकते हैं:

    src/app.service.ts
    import { Injectable } from "@nestjs/common";
    import { getIntlayer } from "express-intlayer";
    
    @Injectable()
    export class AppService {
      getHello(): string {
        return getIntlayer("app").greet; // अनुवाद प्राप्त करें
      }
    }
    

    संगतता

    express-intlayer पूरी तरह से संगत है:

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

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      // ... अन्य कॉन्फ़िगरेशन विकल्प
      middleware: {
        headerName: "my-locale-header", // हेडर नाम
        cookieName: "my-locale-cookie", // कुकी नाम
      },
    };
    
    export default config;
    

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

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

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

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

    Autocompletion

    Translation error

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

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

    VS कोड एक्सटेंशन

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

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

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

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

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

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

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

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

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

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

    • nestjs-i18n: JSON और YAML का उपयोग करने वाला लोकप्रिय NestJS मॉड्यूल।
    • Intlayer: Dependency Injection और इंटरसेप्टर्स के साथ पूर्ण संगतता, बिल्ड समय पर प्रकार जांच, AI अनुवाद और फ़्रंटएंड के साथ साझा शब्दकोश।

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

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

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

    काफी हद तक हाँ। sync JSON plugin Intlayer शब्दकोश उत्पन्न करते हुए मौजूदा फ़ाइलों को बनाए रखता है।

    हाँ। 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 नियम हार्डकोडेड स्ट्रिंग्स को चिह्नित करता है।