अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
संस्करण इतिहास
- "दस्तावेज़ीकरण की शुरुआत"v9.4.024/8/2026
इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।
अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखेंअगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।
दस्तावेज़ के लिए GitHub लिंकदस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें
intlayer Elysia प्लगइन दस्तावेज़
Elysia के लिए intlayer प्लगइन उपयोगकर्ता की locale का पता लगाता है और route context में एक intlayer ऑब्जेक्ट इंजेक्ट करता है। यह अनुरोध संदर्भ के भीतर global translation फ़ंक्शनों के उपयोग को भी सक्षम बनाता है।
उपयोग
कोड को क्लिपबोर्ड पर कॉपी करें
प्लगइन अपना context एक ग्लोबलderiveके माध्यम से रजिस्टर करता है, जिसे ElysiaPartial<{ intlayer: IntlayerContext }>के रूप में टाइप करता है।.use(intlayer())के बाद रजिस्टर किए गए routes के लिए रनटाइम पर यह मान हमेशा मौजूद रहता है, इसलिएstrictमोड में TypeScript को संतुष्ट करने के लिए non-null assertion (intlayer!.t) — या optional chaining — का उपयोग करें।
वही helpers स्टैंडअलोन exports के रूप में भी उपलब्ध हैं, इसलिए आप route context को डीस्ट्रक्चर किए बिना उन्हें कॉल कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
विवरण
प्लगइन निम्नलिखित कार्य करता है:
- लोकेल पहचान: यह क्लाइंट द्वारा स्पष्ट रूप से सेट की गई locale को storage (cookie, header) से पढ़ता है, फिर
Accept-Languageheader से नेगोशिएट की गई locale पर fallback करता है। - कॉन्टेक्स्ट इंजेक्शन: यह Elysia route context में एक
intlayerप्रॉपर्टी जोड़ता है (नीचे दी गई Route Context तालिका देखें)। - Context Management: यह एक असिंक्रोनस संदर्भ प्रबंधित करने के लिए
AsyncLocalStorageका उपयोग करता है, जिससे वैश्विक Intlayer फ़ंक्शन (t,getIntlayer,getDictionary) संदर्भ ऑब्जेक्ट पास किए बिना रिक्वेस्ट-विशिष्ट locale तक पहुंच सकें। - Dictionaries की तैयारी: प्लगइन बनते समय यह
prepareIntlayerको कॉल करता है, ताकि ऐप के बूट होने पर dictionaries बन जाएँ।
Route Context
सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
| प्रॉपर्टी | टाइप | विवरण |
|---|---|---|
locale | Locale | इस अनुरोध के लिए उपयोग की जाने वाली locale, जिसमें locale_storage को locale_detected पर वरीयता मिलती है। |
locale_storage | Locale (वैकल्पिक) | क्लाइंट द्वारा cookie या header के माध्यम से स्पष्ट रूप से मांगी गई locale। |
locale_detected | Locale | अनुरोध के headers से नेगोशिएट की गई locale। |
defaultLocale | Locale | intlayer.config.ts में fallback के रूप में कॉन्फ़िगर की गई locale। |
t | TranslateFunction | एक अनुवाद फ़ंक्शन। |
getIntlayer | typeof getIntlayer | कुंजी द्वारा dictionaries प्राप्त करने वाला फ़ंक्शन। |
getDictionary | typeof getDictionary | dictionary ऑब्जेक्ट्स को प्रोसेस करने वाला फ़ंक्शन। |
Node पर आधारित Intlayer प्लगइनों के विपरीत,elysia-intlayercls-hookedके बजायAsyncLocalStorageपर निर्भर करता है, क्योंकिcls-hookedasync_hooks.createHookपर निर्भर है, जिसे Bun लागू नहीं करता।
रिस्पॉन्स मैप होते ही रिक्वेस्ट संदर्भ मुक्त कर दिया जाता है, ताकि स्टैंडअलोन helpers कभी भी पहले से समाप्त हो चुके अनुरोध के विरुद्ध हल न हों। जब उन्हें प्लगइन द्वारा संभाले गए अनुरोध के बाहर कॉल किया जाता है, तो वे कॉन्फ़िगर की गई डिफ़ॉल्ट locale पर fallback करते हैं।
Locale हल करने का क्रम
डिफ़ॉल्ट रूप से, प्लगइन locale को इस क्रम में हल करता है:
INTLAYER_LOCALEकुकी।x-intlayer-localeहेडर।Accept-Languageहेडर negotiation।- कॉन्फ़िगर किया गया
defaultLocale।
कोड को क्लिपबोर्ड पर कॉपी करें
कॉन्फ़िगरेशन
प्लगइन आपकी intlayer.config.ts फ़ाइल पढ़ता है। आप locale पहचान के लिए उपयोग किए जाने वाले cookie और header को कस्टमाइज़ कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
defaultLocale: Locales.ENGLISH,
},
routing: {
storage: [
{ type: "header", name: "my-locale-header" },
{ type: "cookie", name: "my-locale-cookie" },
],
},
};
export default config;
कॉन्फ़िगरेशन के बारे में अधिक जानकारी के लिए, कॉन्फ़िगरेशन दस्तावेज़ देखें।
