अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
यह दस्तावेज़ पुराना है, आधार संस्करण को इस तिथि पर अपडेट किया गया है 3 अप्रैल 2026.
अंग्रेजी दस्तावेज़ पर जाएँसंस्करण इतिहास
- "routing.domains कॉन्फ़िगरेशन के माध्यम से डोमेन-आधारित लोकेल रूटिंग जोड़ी गई।"v8.5.02/4/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
कस्टम डोमेन (Custom Domains)
Intlayer डोमेन-आधारित लोकेल रूटिंग का समर्थन करता है, जिससे आप समर्पित होस्टनेम से विशिष्ट लोकेल की सेवा कर सकते हैं। उदाहरण के लिए, चीनी आगंतुकों को intlayer.org/zh के बजाय intlayer.zh पर निर्देशित किया जा सकता है।
यह कैसे काम करता है
routing में domains मैप प्रत्येक लोकेल को एक होस्टनेम के साथ जोड़ता है। Intlayer इस मैप का उपयोग दो स्थानों पर करता है:
- URL जनरेशन (
getLocalizedUrl): जब लक्ष्य लोकेल वर्तमान पेज की तुलना में अलग डोमेन पर होता है, तो एक पूर्ण (absolute) URL लौटाया जाता है (जैसेhttps://intlayer.zh/about)। जब दोनों डोमेन मैच करते हैं, तो एक सापेक्ष (relative) URL लौटाया जाता है (जैसे/fr/about)। - सर्वर प्रॉक्सी (Next.js और Vite): आने वाले अनुरोधों को उस डोमेन के आधार पर रीडायरेक्ट या रीराइट किया जाता है जिस पर वे आते हैं।
विशेष बनाम साझा डोमेन (Exclusive vs. shared domains)
मुख्य अंतर विशेषता (exclusivity) है:
- विशेष डोमेन (Exclusive domain) - केवल एक लोकेल उस होस्टनेम पर मैप होता है (जैसे
zh → intlayer.zh)। डोमेन स्वयं लोकेल की पहचान करता है, इसलिए पथ (path) में कोई लोकेल उपसर्ग (prefix) नहीं जोड़ा जाता है।https://intlayer.zh/aboutचीनी सामग्री परोसता है। - साझा डोमेन (Shared domain) - एक ही होस्टनेम पर कई लोकेल मैप होते हैं (जैसे
enऔरfrदोनोंintlayer.orgपर मैप होते हैं)। सामान्य उपसर्ग-आधारित रूटिंग लागू होती है।intlayer.org/fr/aboutफ्रांसीसी सामग्री परोसता है।
कॉन्फ़िगरेशन
कोड को क्लिपबोर्ड पर कॉपी करें
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, Locales.CHINESE, ], defaultLocale: Locales.ENGLISH, }, routing: { mode: "prefix-no-default", domains: { // साझा डोमेन - en और fr intlayer.org पर उपसर्ग रूटिंग का उपयोग करते हैं en: "intlayer.org", // विशेष डोमेन - zh का अपना होस्टनेम है, किसी /zh/ उपसर्ग की आवश्यकता नहीं है zh: "intlayer.zh", }, },};export default config;जो लोकेल domains में सूचीबद्ध नहीं हैं, वे बिना किसी डोमेन ओवरराइड के मानक उपसर्ग रूटिंग का उपयोग करना जारी रखते हैं।
URL जनरेशन
getLocalizedUrl कॉल के संदर्भ के आधार पर स्वचालित रूप से सही URL प्रकार उत्पन्न करता है।
समान-डोमेन लोकेल (relative URL)
कोड को क्लिपबोर्ड पर कॉपी करें
// वर्तमान पेज: intlayer.org/aboutgetLocalizedUrl("/about", "fr", { currentDomain: "intlayer.org" });// → "/fr/about"getLocalizedUrl("/about", "en", { currentDomain: "intlayer.org" });// → "/about" (डिफ़ॉल्ट लोकेल, कोई उपसर्ग नहीं)क्रॉस-डोमेन लोकेल (absolute URL)
कोड को क्लिपबोर्ड पर कॉपी करें
// वर्तमान पेज: intlayer.org/aboutgetLocalizedUrl("/about", "zh", { currentDomain: "intlayer.org" });// → "https://intlayer.zh/about" (विशेष डोमेन, कोई /zh/ उपसर्ग नहीं)लोकेल के अपने डोमेन से सेवा करना
कोड को क्लिपबोर्ड पर कॉपी करें
// वर्तमान पेज: intlayer.zh/aboutgetLocalizedUrl("/about", "zh", { currentDomain: "intlayer.zh" });// → "/about" (पहले से ही सही डोमेन पर है - सापेक्ष URL)getLocalizedUrl("/about", "fr", { currentDomain: "intlayer.zh" });// → "https://intlayer.org/fr/about" (intlayer.org पर वापस क्रॉस-डोमेन लिंक)वर्तमान डोमेन ऑटो-डिटेक्शन
currentDomain वैकल्पिक है। छोड़े जाने पर, getLocalizedUrl इसे इस क्रम में हल करता है:
- पूर्ण इनपुट URL का होस्टनेम (जैसे
https://intlayer.org/about→intlayer.org)। - ब्राउज़र वातावरण में
window.location.hostname। - यदि कोई भी उपलब्ध नहीं है (बिना स्पष्ट विकल्प के SSR), तो समान-डोमेन लोकेल के लिए एक सापेक्ष URL लौटाया जाता है और कोई पूर्ण URL उत्पन्न नहीं होता है - यह सुरक्षित फॉलबैक है।
कोड को क्लिपबोर्ड पर कॉपी करें
// ब्राउज़र - window.location.hostname === 'intlayer.org'getLocalizedUrl("/about", "zh");// → "https://intlayer.zh/about" (विंडो से ऑटो-डिटेक्टेड)// पूर्ण URL से - डोमेन स्वचालित रूप से डिटेक्ट हो गयाgetLocalizedUrl("https://intlayer.org/about", "zh");// → "https://intlayer.zh/about"डोमेन के साथ getMultilingualUrls
getMultilingualUrls प्रत्येक लोकेल के लिए getLocalizedUrl कॉल करता है, इसलिए यह कॉलर के डोमेन के आधार पर सापेक्ष और पूर्ण URL का मिश्रण उत्पन्न करता है:
कोड को क्लिपबोर्ड पर कॉपी करें
// currentDomain: 'intlayer.org'getMultilingualUrls("/about", { currentDomain: "intlayer.org" });// {// en: "/about",// fr: "/fr/about",// es: "/es/about",// zh: "https://intlayer.zh/about",// }ये पूर्ण URL SEO के लिए <link rel="alternate" hreflang="..."> टैग में उपयोग करने के लिए तैयार हैं।
प्रॉक्सी व्यवहार (Proxy Behaviour)
Next.js
intlayerProxy मिडलवेयर डोमेन रूटिंग को स्वचालित रूप से संभालता है। इसे अपने middleware.ts में जोड़ें:
कोड को क्लिपबोर्ड पर कॉपी करें
export { intlayerProxy as default } from "next-intlayer/proxy";export const config = { matcher: "/((?!api|static|assets|robots|sitemap|.*\\..*|_next).*)",};रीडायरेक्ट (Redirect) - अनुरोध किसी दिए गए लोकेल उपसर्ग के लिए गलत डोमेन पर आता है:
कोड को क्लिपबोर्ड पर कॉपी करें
GET intlayer.org/zh/about→ 301 https://intlayer.zh/aboutरीराइट (Rewrite) - अनुरोध बिना उपसर्ग के लोकेल के विशेष डोमेन पर आता है:
कोड को क्लिपबोर्ड पर कॉपी करें
GET intlayer.zh/about→ /zh/about पर रीराइट (केवल आंतरिक Next.js रूटिंग, URL साफ रहता है)Vite
intlayerProxy Vite प्लगइन विकास के दौरान समान तर्क लागू करता है:
कोड को क्लिपबोर्ड पर कॉपी करें
import { defineConfig } from "vite";import { intlayerProxy } from "vite-intlayer";export default defineConfig({ plugins: [intlayerProxy()],});नोट: स्थानीय विकास में आप आमतौर परlocalhostपर होते हैं, इसलिए क्रॉस-डोमेन रीडायरेक्ट किसी अन्य स्थानीय पोर्ट के बजाय लाइव डोमेन की ओर इशारा करेंगे। यदि आपको स्थानीय रूप से मल्टी-डोमेन रूटिंग का परीक्षण करने की आवश्यकता है, तो hosts-फ़ाइल ओवरराइड (जैसे127.0.0.1 intlayer.zh) या रिवर्स प्रॉक्सी का उपयोग करें।
लोकेल स्विचर (Locale Switcher)
next-intlayer का useLocale हुक डोमेन-जागरूक नेविगेशन को स्वचालित रूप से संभालता है। जब कोई उपयोगकर्ता किसी दूसरे डोमेन पर लोकेल पर स्विच करता है, तो हुक क्लाइंट-साइड राउटर पुश के बजाय पूर्ण-पेज नेविगेशन (window.location.href) करता है, क्योंकि Next.js राउटर ओरिजिन (origins) को पार नहीं कर सकता है।
कोड को क्लिपबोर्ड पर कॉपी करें
"use client";import { useLocale } from "next-intlayer";export const LocaleSwitcher = () => { const { availableLocales, locale, setLocale } = useLocale(); return ( <ul> {availableLocales.map((localeEl) => ( <li key={localeEl}> <button onClick={() => setLocale(localeEl)} aria-current={localeEl === locale ? "true" : undefined} > {l.toUpperCase()} </button> </li> ))} </ul> );};किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है - useLocale आंतरिक रूप से window.location.hostname का पता लगाता है और router.replace (समान डोमेन) और window.location.href (क्रॉस-डोमेन) के बीच निर्णय लेता है।
SEO: hreflang वैकल्पिक लिंक
डोमेन-आधारित रूटिंग का उपयोग आमतौर पर hreflang के साथ खोज इंजन को यह बताने के लिए किया जाता है कि प्रत्येक भाषा के लिए किस URL को इंडेक्स करना है। वैकल्पिक URL का पूरा सेट उत्पन्न करने के लिए getMultilingualUrls का उपयोग करें:
कोड को क्लिपबोर्ड पर कॉपी करें
import { getMultilingualUrls } from "intlayer";import type { Metadata } from "next";export const generateMetadata = (): Metadata => { const alternates = getMultilingualUrls("/", { currentDomain: process.env.NEXT_PUBLIC_DOMAIN, // जैसे "intlayer.org" }); return { alternates: { languages: alternates, }, };};यह उत्पन्न करता है:
कोड को क्लिपबोर्ड पर कॉपी करें
<link rel="alternate" hreflang="en" href="https://intlayer.org/" /><link rel="alternate" hreflang="fr" href="https://intlayer.org/fr/" /><link rel="alternate" hreflang="es" href="https://intlayer.org/es/" /><link rel="alternate" hreflang="zh" href="https://intlayer.zh/" />मुख्य उपयोगिताएँ (Core Utilities)
सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
| उपयोगिता (Utility) | विवरण |
|---|---|
getLocalizedUrl(url, locale, { currentDomain }) | सापेक्ष या पूर्ण URL लौटाता है, यह इस पर निर्भर करता है कि लक्ष्य लोकेल वर्तमान डोमेन पर है या नहीं। |
getMultilingualUrls(url, { currentDomain }) | लोकेल-कीड (locale-keyed) मैप लौटाता है, जिसमें आवश्यकतानुसार सापेक्ष और पूर्ण URL मिश्रित होते हैं। |
getPrefix(locale, { domains }) | विशेष-डोमेन लोकेल के लिए एक खाली उपसर्ग लौटाता है, अन्यथा सामान्य उपसर्ग। |