Typesafe-i18n: TypeScript में पूर्ण टाइप सपोर्ट के साथ अंतर्राष्ट्रीयकरण
आधुनिक वेब डेवलपमेंट में, अंतर्राष्ट्रीयकरण (i18n) सिर्फ टेक्स्ट का अनुवाद नहीं है, बल्कि लोकलाइज़ेशन प्रबंधन की एक पूरी प्रणाली है। Typesafe-i18n एक TypeScript लाइब्रेरी है जो अंतर्राष्ट्रीयकरण को एक नए स्तर पर ले जाती है, अनुवाद लिखने से लेकर कोड में उपयोग करने तक हर चरण में पूर्ण टाइप सुरक्षा प्रदान करती है।
इस लाइब्रेरी की आवश्यकता क्यों है? पारंपरिक i18n समाधान (जैसे i18next) अक्सर डायनामिक स्ट्रिंग्स के साथ काम करते हैं, जिससे त्रुटियाँ होती हैं: कीज़ में टाइपो, गलत आर्गुमेंट्स या गायब अनुवाद। Typesafe-i18n इस समस्या को मौलिक रूप से हल करता है: यदि आपने LL.WELCOME({name: "राहुल"}) लिखा है, तो TypeScript जाँच करेगा कि WELCOME की मौजूद है या नहीं, क्या यह name पैरामीटर स्वीकार करता है और यह पैरामीटर किस प्रकार का है। लोकलाइज़ेशन त्रुटियाँ कंपाइलेशन त्रुटियाँ बन जाती हैं, runtime बग नहीं।
यह लाइब्रेरी उन प्रोजेक्ट्स के लिए आदर्श है जहाँ सख्त टाइपिंग महत्वपूर्ण है: React/Vue/Angular एप्लिकेशन, Node.js सर्वर, कम्पोनेंट लाइब्रेरीज़। यह बहुवचन, इंटरपोलेशन, नेस्टेड कीज़, एसिंक्रोनस लोडिंग और आपकी अनुवाद फ़ाइलों के आधार पर टाइप जनरेशन का समर्थन करता है। इस लेख में हम Typesafe-i18n के सभी पहलुओं को कवर करेंगे: इंस्टॉलेशन से लेकर उन्नत तकनीकों तक।
इंस्टॉलेशन
इंस्टॉलेशन npm (या yarn/pnpm) के माध्यम से किया जाता है:
npm install typesafe-i18n
टाइप और अनुवाद फ़ाइलें जनरेट करने के लिए एक अतिरिक्त पैकेज की आवश्यकता होगी:
npm install --save-dev typesafe-i18n-cli
इंस्टॉलेशन के बाद प्रोजेक्ट को इनिशियलाइज़ करें:
npx typesafe-i18n --init
यह कमांड बेसिक फ़ोल्डर संरचना और कॉन्फ़िगरेशन फ़ाइलें बनाएगा।
त्वरित शुरुआत: न्यूनतम कार्यशील उदाहरण
एक सरल एप्लिकेशन बनाते हैं जो उपयोगकर्ता का विभिन्न भाषाओं में स्वागत करता है।
चरण 1: अनुवाद फ़ाइल बनाएँ
फ़ाइल src/i18n/en/index.ts बनाएँ:
import type { Translation } from '../i18n-types'
const en: Translation = {
HI: 'Hello {name}!',
GOODBYE: 'Goodbye, {name}!'
}
export default en
चरण 2: हिंदी के लिए अनुवाद फ़ाइल बनाएँ
फ़ाइल src/i18n/hi/index.ts बनाएँ:
import type { Translation } from '../i18n-types'
const hi: Translation = {
HI: 'नमस्ते {name}!',
GOODBYE: 'अलविदा, {name}!'
}
export default hi
चरण 3: टाइप जनरेशन चलाएँ
npx typesafe-i18n
चरण 4: कोड में उपयोग करें
import { i18n } from './i18n/i18n-util'
import { loadLocale } from './i18n/i18n-util.sync'
import { L } from './i18n/i18n-util'
// लोकेल लोड करें
loadLocale('en')
loadLocale('hi')
// अंग्रेजी के लिए इंस्टेंस बनाएँ
const LL_en = i18n('en')
console.log(LL_en.HI({ name: 'Alex' })) // आउटपुट: Hello Alex!
// हिंदी पर स्विच करें
const LL_hi = i18n('hi')
console.log(LL_hi.HI({ name: 'राहुल' })) // आउटपुट: नमस्ते राहुल!
ध्यान दें: यदि आप LL_en.HI() को बिना name आर्गुमेंट के कॉल करने का प्रयास करते हैं, तो TypeScript कंपाइलेशन त्रुटि देगा। यदि आप की में टाइपो करते हैं (LL_en.Hello) — फिर से त्रुटि।
मुख्य तरीके और फंक्शन
Typesafe-i18n लाइब्रेरी के 8 प्रमुख फंक्शन और तरीकों पर नज़र डालते हैं।
1. i18n(locale: Locales): TranslationFunctions
सिग्नेचर: i18n(locale: Locales): TranslationFunctions
कार्य: निर्दिष्ट लोकेल के लिए अनुवादक का इंस्टेंस बनाता है। सभी अनुवाद फंक्शन वाला ऑब्जेक्ट लौटाता है।
पुस्तकालय में भी
C# (.NET) के लिए GraphQL: GraphQL.NET लाइब्रेरी की पूरी गाइड
C# (.NET) में Event Bus और Observer पैटर्न: कार्यान्वयन और उदाहरण
Kotlin में ZIP/आर्काइव के साथ काम: बनाना, पढ़ना और निकालना
Node.js निगरानी: प्रदर्शन ट्रैकिंग के लिए उपकरण और लाइब्रेरीज़
Charts Swift: पूरी गाइड उदाहरणों के साथ
अनुशंसाएँ