Documentation: t Function in express-intlayer
express-intlayer पैकेज में t फ़ंक्शन आपके एक्सप्रेस एप्लिकेशन में स्थानीयकृत उत्तर प्रदान करने के लिए मुख्य उपयोगिता है। यह उपयोगकर्ता की पसंदीदा भाषा के आधार पर सामग्री को गतिशील रूप से चुनकर अंतरराष्ट्रीयकरण (i18n) को सरल बनाता है।
ओवरव्यू
t फ़ंक्शन का उपयोग एक दिए गए भाषाओं के सेट के लिए अनुवाद परिभाषित करने और पुनर्प्राप्त करने के लिए किया जाता है। यह स्वचालित रूप से ग्राहक के अनुरोध सेटिंग्स, जैसे Accept-Language हेडर के आधार पर लौटाए जाने वाले उपयुक्त भाषा का निर्धारण करता है। यदि पसंदीदा भाषा उपलब्ध नहीं है, तो यह आपकी सेटिंग में निर्दिष्ट डिफॉल्ट लोकल में विनम्रता से वापस गिरता है।
प्रमुख विशेषताएँ
- गतिशील स्थानीयकरण: ग्राहक के लिए सबसे उपयुक्त अनुवाद का स्वत: चयन।
- डिफ़ॉल्ट लोकल पर वापस जाना: यदि ग्राहक की पसंदीदा भाषा उपलब्ध नहीं है तो डिफ़ॉल्ट लोकल पर लौटना, उपयोगकर्ता अनुभव में निरंतरता सुनिश्चित करना।
- हल्का और तेज़: उच्च प्रदर्शन अनुप्रयोगों के लिए डिज़ाइन किया गया, न्यूनतम ओवरहेड सुनिश्चित करना।
- कठोर मोड समर्थन: विश्वसनीय व्यवहार के लिए घोषित स्थानीयताओं की कठोर पालन को लागू करें।
फ़ंक्शन सिग्नेचर
t(translations: Record<string, string>): string;
पैरामीटर
- translations: एक वस्तु जहाँ चावियाँ लोकल कोड्स (जैसे en, fr, es-MX) हैं और मान संबंधित अनुवादित स्ट्रिंग्स हैं।
लौटाता है
- एक स्ट्रिंग जो ग्राहक की पसंदीदा भाषा में सामग्री का प्रतिनिधित्व करती है।
अंतरराष्ट्रीयकरण अनुरोध हैंडलर लोड करना
यह सुनिश्चित करने के लिए कि express-intlayer द्वारा प्रदान की गई अंतरराष्ट्रीयकरण कार्यक्षमता सही ढंग से काम करे, आपको अपने एक्सप्रेस एप्लिकेशन के शुरुआत में अंतरराष्ट्रीयकरण मिडलवेयर लोड करना अवश्य है। यह t फ़ंक्शन को सक्षम करता है और लोकल पहचान और अनुवाद के उचित हैंडलिंग को सुनिश्चित करता है।
आवश्यक मिडलवेयर सेटअप
import express, { type Express } from "express";
import { intlayer } from "express-intlayer";
const app: Express = express();
// अंतरराष्ट्रीयकरण अनुरोध हैंडलर लोड करें
app.use(intlayer());
एप्लिकेशन में स्थान
आपके एप्लिकेशन में सभी मार्गों से अंतरराष्ट्रीयकरण का लाभ उठाने के लिए app.use(intlayer()) मिडलवेयर को किसी भी रूट से पहले डालें:
app.use(intlayer());
// मिडलवेयर लोड करने के बाद अपने मार्गों को परिभाषित करें
app.get("/", (_req, res) => {
res.send(
t({
en: "Hello, World!",
fr: "Bonjour le monde!",
es: "¡Hola, Mundo!",
})
);
});
यह आवश्यक क्यों है
- लोकल पहचान: intlayer मिडलवेयर इनकमिंग अनुरोधों को प्रक्रिया करता है ताकि उपयोगकर्ता की पसंदीदा लोकल को हेडर, कुकीज़, या अन्य कॉन्फ़िगर किए गए तरीकों के आधार पर पहचान सके।
- अनुवाद संदर्भ: t फ़ंक्शन को सही तरीके से काम करने के लिए आवश्यक संदर्भ सेट करता है, यह सुनिश्चित करते हुए कि अनुवाद सही भाषा में लौटे हैं।
- त्रुटि रोकथाम: बिना इस मिडलवेयर के, t फ़ंक्शन का उपयोग करने पर रनटाइम त्रुटियां होंगी क्योंकि आवश्यक लोकल जानकारी उपलब्ध नहीं होगी।
उपयोग के उदाहरण
मूल उदाहरण
विभिन्न भाषाओं में स्थानीयकृत सामग्री प्रदान करें:
app.get("/", (_req, res) => {
res.send(
t({
en: "Welcome!",
fr: "Bienvenue!",
es: "¡Bienvenido!",
})
);
});
ग्राहक अनुरोध:
- Accept-Language: fr वाला ग्राहक Bienvenue! प्राप्त करेगा।
- Accept-Language: es वाला ग्राहक ¡Bienvenido! प्राप्त करेगा।
- Accept-Language: de वाला ग्राहक Welcome! (डिफ़ॉल्ट लोकल) प्राप्त करेगा।
त्रुटियों को संभालना
कई भाषाओं में त्रुटि संदेश प्रदान करें:
app.get("/error", (_req, res) => {
res.status(500).send(
t({
en: "An unexpected error occurred.",
fr: "Une erreur inattendue s'est produite.",
es: "Ocurrió un error inesperado.",
})
);
});
लोकल वेरिएंट्स का उपयोग
लोकल-विशिष्ट वेरिएंट्स के लिए अनुवाद निर्दिष्ट करें:
app.get("/greet", (_req, res) => {
res.send(
t({
en: "Hello!",
"en-GB": "Hello, mate!",
fr: "Bonjour!",
"es-MX": "¡Hola, amigo!",
"es-ES": "¡Hola!",
})
);
});
उन्नत विषय
फॉलबैक मैकेनिज़्म
यदि कोई पसंदीदा लोकल उपलब्ध नहीं है, तो t फ़ंक्शन कॉन्फ़िगरेशन में परिभाषित डिफ़ॉल्ट लोकल पर वापस जाएगा:
const config = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
defaultLocale: Locales.ENGLISH,
},
};
उदाहरण के लिए:
- यदि defaultLocale Locales.CHINESE है और कोई ग्राहक Locales.DUTCH का अनुरोध करता है, तो लौटाया गया अनुवाद Locales.CHINESE मान पर डिफ़ॉल्ट हो जाएगा।
- यदि defaultLocale परिभाषित नहीं है, तो t फ़ंक्शन Locales.ENGLISH मान पर वापस जाएगा।
कठोर मोड प्रवर्तन
t फ़ंक्शन को घोषित लोकल के प्रति कठोर पालन को लागू करने के लिए कॉन्फ़िगर करें:
मोड | व्यवहार |
---|---|
strict | सभी घोषित लोकल के लिए अनुवाद प्रदान किया जाना चाहिए। अनुपस्थित लोकल त्रुटियाँ उत्पन्न करें। |
required_only | घोषित लोकल के लिए अनुवाद होना आवश्यक है। अनुपस्थित लोकल चेतावनियाँ उत्पन्न करती हैं लेकिन स्वीकार की जाती हैं। |
loose | कोई भी मौजूदा लोकल स्वीकार किया जाता है, भले ही वह घोषित न हो। |
कॉन्फ़िगरेशन उदाहरण:
const config = {
internationalization: {
strictMode: "strict", // कठोर मोड लागू करें
},
};
TypeScript एकीकरण
t फ़ंक्शन का उपयोग करते समय यह टाइप-सेफ है। एक टाइप-सेफ अनुवाद वस्तु परिभाषित करें:
import { type LanguageContent } from "express-intlayer";
const translations: LanguageContent<string> = {
en: "Good morning!",
fr: "Bonjour!",
es: "¡Buenos días!",
};
app.get("/morning", (_req, res) => {
res.send(t(translations));
});
सामान्य त्रुटियाँ और समाधान
मुद्दा | कारण | समाधान |
---|---|---|
t फ़ंक्शन कार्य नहीं कर रहा | मिडलवेयर लोड नहीं किया गया | सुनिश्चित करें कि app.use(intlayer()) रूट से पहले जोड़ा गया है। |
अनुवादों की कमी त्रुटि | सभी लोकल के बिना कठोर मोड सक्षम | सभी आवश्यक अनुवाद प्रदान करें। |
प्रभावी उपयोग के लिए टिप्स
- अनुवादों को केंद्रीकृत करें: रखरखाव में सुधार के लिए अनुवादों के प्रबंधन के लिए एक केंद्रीकृत मॉड्यूल या JSON फ़ाइलों का उपयोग करें।
- अनुवादों का मूल्यांकन करें: हर भाषा वेरिएंट के लिए एक संबंधित अनुवाद होना सुनिश्चित करें ताकि अनावश्यक रूप से वापस न गिरें।
- फ्रंटेंड i18n के साथ संयोजन करें: ऐप में एक सहज उपयोगकर्ता अनुभव के लिए फ्रंटेंड अंतरराष्ट्रीयकरण के साथ समन्वय करें।
- परफॉरमेंस का बेंचमार्क करें: अनुवाद जोड़ने पर आपके एप्लिकेशन के जवाबी समय का परीक्षण करें ताकि न्यूनतम प्रभाव सुनिश्चित हो सके।
निष्कर्ष
t फ़ंक्शन बैकएंड अंतरराष्ट्रीयकरण के लिए एक शक्तिशाली उपकरण है। इसका प्रभावी ढंग से उपयोग करके, आप एक वैश्विक दर्शकों के लिए एक अधिक समावेशी और उपयोगकर्ता-मित्र एप्लिकेशन बना सकते हैं। उन्नत उपयोग और विस्तृत कॉन्फ़िगरेशन विकल्पों के लिए, डॉक्यूमेंटेशन देखें।
अगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।
दस्तावेज़ के लिए GitHub लिंक