TypeScript में अंतर्राष्ट्रीयकरण (i18n): पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript में अंतर्राष्ट्रीयकरण (i18n): उपकरणों और प्रथाओं का अवलोकन



अंतर्राष्ट्रीयकरण (i18n) सॉफ्टवेयर को डिजाइन करने की प्रक्रिया है जो स्रोत कोड में बदलाव किए बिना इसे विभिन्न भाषाओं और क्षेत्रीय मानकों के अनुकूल बनाने की अनुमति देती है। TypeScript अनुप्रयोगों के लिए, उपयुक्त i18n लाइब्रेरी का चयन करना महत्वपूर्ण है: अनुवादों की टाइप सुरक्षा, प्रदर्शन और रखरखाव में आसानी इस पर निर्भर करती है। इस लेख में, हम TypeScript में i18n को लागू करने के तीन मुख्य दृष्टिकोणों और उपकरणों पर विचार करेंगे।



1. i18next — क्लासिक समाधान



i18next JavaScript/TypeScript इकोसिस्टम में अंतर्राष्ट्रीयकरण के लिए सबसे लोकप्रिय लाइब्रेरी है। यह कई फ्रेमवर्क (React, Vue, Angular) का समर्थन करता है और इसमें प्लगइन्स का एक व्यापक इकोसिस्टम है।



स्थापना:

npm install i18next i18next-browser-languagedetector


TypeScript के साथ बुनियादी सेटअप:

import i18n from 'i18next';import { initReactI18next } from 'react-i18next';

// अनुवाद संसाधनों की टाइपिंगdeclare module 'i18next' { interface CustomTypeOptions { defaultNS: 'common'; resources: { common: typeof import('./locales/en/common.json'); }; }}

i18n.use(initReactI18next).init({ resources: { en: { common: require('./locales/en/common.json') }, ru: { common: require('./locales/ru/common.json') }, }, lng: 'ru', fallbackLng: 'en', interpolation: { escapeValue: false },});

export default i18n;


कंपोनेंट में उपयोग का उदाहरण:

import { useTranslation } from 'react-i18next';

function Greeting() { const { t } = useTranslation(); const userName = 'अन्ना'; return ( <div> <p>{t('greeting', { name: userName })}</p> <p>{t('itemsCount', { count: 5 })}</p> </div> );}


फायदे:

  • विशाल समुदाय और दस्तावेज़ीकरण
  • बहुवचन (pluralization) के लिए समर्थन
  • चरों का अंतर्निवेश (interpolation)
  • भाषा संसाधनों की गतिशील लोडिंग


नुकसान:

  • "बॉक्स से बाहर" सख्त टाइपिंग का अभाव
  • पूर्ण टाइप सुरक्षा के लिए अतिरिक्त TypeScript कॉन्फ़िगरेशन की आवश्यकता
  • अनुवाद की JSON फ़ाइलें स्वचालित रूप से टाइप नहीं की जाती हैं


2. typesafe-i18n — सख्त टाइपिंग



typesafe-i18n एक लाइब्रेरी है जो विशेष रूप से TypeScript के लिए बनाई गई है। इसकी मुख्य विशेषता आपकी अनुवाद फ़ाइलों के आधार पर टाइप जनरेट करना है।



स्थापना:

npm install typesafe-i18n


सेटअप और उदाहरण:

// अनुवाद फ़ाइल बनाएँ: src/i18n/en/index.tsexport const en = {  greeting: 'नमस्ते {name}!',  itemsCount: 'आपके पास {count} आइटम है | आपके पास {count} आइटम हैं',} as const;

// टाइप जनरेशन (स्वचालित रूप से चलता है)// npx typesafe-i18n

// कंपोनेंट में उपयोगimport { i18n } from './i18n/i18n-util';

function Profile() { const LL = i18n(); return ( <div> <p>{LL.greeting({ name: 'अन्ना' })}</p> <p>{LL.itemsCount({ count: 5 })}</p> </div> );}


फायदे:

  • सभी चरणों में पूर्ण टाइप सुरक्षा
  • IDE में ऑटो-कम्पलीशन (IntelliSense)
  • कम्पाइल समय पर पैरामीटर सत्यापन
  • बहुवचन और अंतर्निवेश के लिए समर्थन


नुकसान:

  • छोटा समुदाय और कम प्लगइन्स
  • अनुवादों में प्रत्येक परिवर्तन पर टाइप जनरेशन की आवश्यकता
  • गैर-मानक परिदृश्यों के लिए कम लचीलापन


3. Lingui — कम्पाइलेशन के साथ इकोसिस्टम



Lingui एक आधुनिक लाइब्रेरी है जो कम्पाइलेशन का उपयोग करती है

अनुशंसाएँ