Author:
    Creation:2026-06-25Last update:2026-06-25

    intlayerProxy

    intlayerProxy एक Vite प्लगइन है जो हर वातावरण: dev सर्वर, पूर्वावलोकन (preview) सर्वर और उत्पादन SSR (Nitro / TanStack Start) के लिए लोकेल-रूटिंग मिडलवेयर पंजीकृत करता है।

    Intlayer v9 से intlayerProxy स्वचालित रूप से मुख्य intlayer() प्लगइन के अंदर शामिल होता है और routing.enableProxy: true के माध्यम से डिफ़ॉल्ट रूप से सक्षम होता है। आपको इसे अलग से पंजीकृत करने की आवश्यकता केवल तब होती है जब आपको निम्न-स्तरीय नियंत्रण की आवश्यकता होती है या आप इसे मानक intlayer() सेटअप के बाहर उपयोग कर रहे हैं।

    उपयोग

    intlayer() के हिस्से के रूप में (अनुशंसित, v9+)

    intlayerProxy को अलग से पंजीकृत करने के बजाय मुख्य प्लगइन में proxy विकल्प पास करें:

    ts
    // vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({  plugins: [    intlayer({      proxy: {        ignore: (req) => req.url?.startsWith("/api"),      },    }),  ],});

    स्टैंडअलोन (जब आवश्यकता हो)

    ts
    // vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({  plugins: [intlayer()],});

    विकल्प

    ts
    import type { IntlayerProxyPluginOptions } from "vite-intlayer";

    सभी विकल्प वैकल्पिक हैं और एक एकल ऑब्जेक्ट के रूप में पास किए जाते हैं:

    विकल्प प्रकार विवरण
    ignore (req: IncomingMessage) => boolean विधेय (predicate) जो अनुरोधों को लोकेल रूटिंग से बाहर करता है। अनुरोध को छोड़ने के लिए true लौटाएं (जैसे API रूट, स्वास्थ्य जांच)।
    configOptions GetConfigurationOptions Intlayer कॉन्फ़िगरेशन ओवरराइड्स जो getConfiguration() को अग्रेषित किए जाते हैं। तब उपयोग करें जब आपको प्रॉक्सी को एक विशिष्ट कॉन्फ़िगरेशन फ़ाइल पढ़ने या मानों को ओवरराइड करने की आवश्यकता हो।

    उदाहरण

    ts
    intlayerProxy({  ignore: (req) => req.url?.startsWith("/api"),  configOptions: { configFile: "./config/intlayer.config.ts" },});

    createIntlayerProxyHandler

    createIntlayerProxyHandler एक स्टैंडअलोन, फ्रेमवर्क-अज्ञेयवादी Node.js (req, res, next) मिडलवेयर बनाता है जिसमें सभी लोकेल-रूटिंग लॉजिक शामिल होते हैं। यह उन वातावरणों में उपयोगी है जहां Vite प्लगइन API अनुपलब्ध है (जैसे एक सादा Node.js सर्वर या एक कस्टम Nitro मॉड्यूल)।

    ts
    import { createIntlayerProxyHandler } from "vite-intlayer";const handler = createIntlayerProxyHandler({  ignore: (req) => req.url?.startsWith("/api"),  configOptions: { configFile: "./config/intlayer.config.ts" },});// Express / Connectapp.use(handler);

    उत्पादन SSR (TanStack Start / h3 के माध्यम से Nitro)

    ts
    // server/middleware/intlayerProxy.tsimport { fromNodeMiddleware } from "h3";import { createIntlayerProxyHandler } from "vite-intlayer";export default fromNodeMiddleware(  createIntlayerProxyHandler({    ignore: (req) => req.url?.startsWith("/api"),  }));

    रूटिंग व्यवहार

    मिडलवेयर next-intlayer मिडलवेयर से रूटिंग लॉजिक को मिरर करता है और सभी Intlayer रूटिंग मोड का समर्थन करता है।

    रूटिंग मोड

    मोड ब्राउज़र में दिखने वाला URL व्यवहार
    prefix /hi/about डिफ़ॉल्ट। URL में लोकेल उपसर्ग। डिफ़ॉल्ट लोकेल बिना उपसर्ग वाले URL पर रीडायरेक्ट करता है जब तक कि prefix-all सक्रिय न हो।
    prefix-all /en/about, /hi/about सभी लोकेल — डिफ़ॉल्ट सहित — हमेशा उपसर्ग वाले होते हैं।
    no-prefix /about URL में कोई लोकेल नहीं। लोकेल केवल कुकीज़ में संग्रहीत होता है; URL पुनर्लेखन आंतरिक रूप से होता है।
    search-params /about?locale=hi लोकेल को क्वेरी पैरामीटर के रूप में पास किया गया। गायब या बासी होने पर locale पैरामीटर को जोड़ने/अपडेट करने के लिए रीडायरेक्ट करता है।

    डिटेक्शन प्राथमिकता

    1. URL पथ उपसर्ग (जैसे /hi/abouthi)।
    2. कुकी / localStorage मान (intlayer-locale)।
    3. Accept-Language हेडर।
    4. कॉन्फ़िगरेशन से defaultLocale

    स्वचालित बाईपास

    मिडलवेयर इन अनुरोधों को बिना लोकेल हैंडलिंग के हमेशा सीधे पास करता है:

    • ignore विधेय से मेल खाने वाले अनुरोध।
    • /node_modules/**
    • /@** – Vite आंतरिक (@vite/, @fs/, @id/, आदि)।
    • /_** – सर्वर आंतरिक (__vite_ping, __manifest, आदि)।
    • अनुरोध जिनका पथ फ़ाइल एक्सटेंशन के साथ समाप्त होता है (स्थिर संपत्ति)। यदि एक स्थिर संपत्ति पथ (जैसे /hi/logo.png) पर एक लोकेल उपसर्ग मौजूद है, तो उसे हटा दिया जाता है ताकि फ़ाइल को सही ढंग से परोसा जा सके।

    डोमेन रूटिंग

    जब आपके Intlayer कॉन्फ़िगरेशन में routing.domains कॉन्फ़िगर किया जाता है, तो मिडलवेयर क्रॉस-डोमेन लोकेल रूटिंग को संभालता है:

    • intlayer.org पर /zh/about के लिए अनुरोध https://intlayer.zh/about पर रीडायरेक्ट किया जाता है जब domains.zh = "intlayer.zh" होता है।
    • intlayer.zh/about के अनुरोध को आंतरिक रूप से /zh/about में फिर से लिखा जाता है ताकि [locale] रूट पैरामीटर आबाद हो जाए।

    रीडायरेक्ट लूप सुरक्षा

    मिडलवेयर 2-सेकंड की स्लाइडिंग विंडो के भीतर प्रति originalUrl → newUrl जोड़ी रीडायरेक्ट गणनाओं को ट्रैक करता है। उस विंडो के भीतर 10 से अधिक रीडायरेक्ट हमेशा के लिए लूप करने के बजाय एक वर्णनात्मक त्रुटि के साथ 500 प्रतिक्रिया लौटाते हैं।

    Nitro / उत्पादन SSR (स्वचालित इंजेक्शन, v9+)

    जब intlayerProxy को Vite प्लगइन के रूप में उपयोग किया जाता है, तो यह एक .nitro संपत्ति रखता है। nitro/vite बिल्ड प्लगइन इस संपत्ति को पढ़ता है और इसे nitroConfig.modules में धकेलता है, इसलिए intlayerNitroHandler स्वचालित रूप से एक Nitro सर्वर मिडलवेयर के रूप में पंजीकृत हो जाता है — उत्पादन SSR के लिए किसी मैन्युअल कॉन्फ़िगरेशन की आवश्यकता नहीं होती है।

    Nitro हैंडलर h3 v2 के वेब फ़ेच API ईवेंट मॉडल (ना कि fromNodeMiddleware) का उपयोग करता है इसलिए यह सभी Nitro प्रीसेट के साथ संगत है: Node, Bun, Deno, edge runtimes।

    अप्रचलित उपनाम (Deprecated Aliases)

    अप्रचलित निर्यात प्रतिस्थापन
    intlayerMiddleware intlayerProxy
    intLayerMiddlewarePlugin intlayerProxy