React Academy · पाठ

भाषा स्विचर और अनुवादों की लेज़ी लोडिंग

एक लोकेल टॉगल बनाएँ और शुरुआती आकार घटाने के लिए अनुवाद बंडल आवश्यकता के अनुसार लोड करें।

पाठ 4, कुल 4 में से13 चरण

भाषा स्विचर और अनुवादों की लेज़ी लोडिंग, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

इस पाठ में आप भाषा स्विचर कंपोनेंट बनाएँगे और i18next को आवश्यकता पड़ने पर अनुवाद बंडल लोड करने के लिए कॉन्फ़िगर करेंगे, जिससे शुरुआती JavaScript पेलोड कम होगा।

सरल भाषा स्विचर

सक्रिय भाषा बदलने के लिए बटन क्लिक पर i18n.changeLanguage() कॉल करें। useTranslation का उपयोग करने वाले सभी कंपोनेंट्स नई भाषा में अपने-आप दोबारा रेंडर हो जाएँगे।
function LanguageSwitcher() {
  const { i18n } = useTranslation();
  return (
    <div>
      {['en', 'tr', 'fr'].map(lng => (
        <button
          key={lng}
          onClick={() => i18n.changeLanguage(lng)}
          style={{ fontWeight: i18n.language === lng ? 'bold' : 'normal' }}
        >
          {lng.toUpperCase()}
        </button>
      ))}
    </div>
  );
}

भाषा चयन को सुरक्षित रखना

चयनित भाषा को localStorage में सुरक्षित रखें, ताकि वह पेज दोबारा लोड होने पर भी बनी रहे। LanguageDetector प्लगइन `localStorage` डिटेक्टर क्रम के साथ यह काम अपने-आप संभालता है।
i18n.init({
  detection: {
    order: ['localStorage', 'navigator'],
    caches: ['localStorage'],
  },
});

अनुवादों को लेज़ी-लोड क्यों करें?

सभी अनुवादों को JavaScript बंडल में शामिल करने से शुरुआती लोड समय बढ़ जाता है। लेज़ी लोडिंग पहले लोड पर केवल डिफ़ॉल्ट भाषा भेजती है और उपयोगकर्ता के भाषा बदलने पर ही अन्य भाषाएँ प्राप्त करती है।

HTTP बैकएंड कॉन्फ़िगर करना

i18next-http-backend प्लगइन URL पैटर्न से अनुवाद फ़ाइलें प्राप्त करता है। अनुवाद `public/` फ़ोल्डर में रहते हैं और स्थिर एसेट के रूप में सर्व किए जाते हैं — सर्वर-साइड कोड की आवश्यकता नहीं होती।
import Backend from 'i18next-http-backend';

i18n.use(Backend).init({
  backend: {
    loadPath: '/locales/{{lng}}/{{ns}}.json',
  },
  ns: ['common', 'auth'],
  defaultNS: 'common',
});

अनुवाद फ़ाइलें जोड़ना

`public/locales/` में हर भाषा और हर नेमस्पेस के लिए एक JSON फ़ाइल बनाएँ। HTTP बैकएंड भाषा या नेमस्पेस की पहली आवश्यकता होने पर उन्हें अपने-आप प्राप्त करता है।
public/locales/
  en/common.json
  en/auth.json
  tr/common.json
  tr/auth.json

भाषा बदलते समय लोडिंग स्थिति दिखाना

changeLanguage() कॉल करने के बाद i18next नई भाषा की फ़ाइलें एसिंक्रोनस रूप से लोड करता है। लोडिंग स्पिनर दिखाने के लिए `i18n.on('languageChanged')` इवेंट की सदस्यता लें या `i18n.isInitialized` जाँचें।
const [switching, setSwitching] = useState(false);

const change = async (lng) => {
  setSwitching(true);
  await i18n.changeLanguage(lng);
  setSwitching(false);
};

विशिष्ट नेमस्पेस को लेज़ी-लोड करना

किसी नेमस्पेस की पहली आवश्यकता होने पर ही उसे `i18n.loadNamespaces(['dashboard'])` का उपयोग करके लोड करें। dashboard रूट के माउंट होने पर इसे useEffect में कॉल करें, ताकि प्रमाणित न किए गए उपयोगकर्ताओं के लिए इसे लोड करने से बचा जा सके।
useEffect(() => {
  i18n.loadNamespaces('dashboard');
}, []);

अनुवादों के लिए CDN

प्रोडक्शन के लिए अनुवाद फ़ाइलों को CDN (S3 + CloudFront) पर होस्ट करें। `loadPath` को CDN URL पर अपडेट करें। इससे अनुवाद अपडेट और कोड परिनियोजन अलग हो जाते हैं।
backend: {
  loadPath: 'https://cdn.example.com/locales/{{lng}}/{{ns}}.json',
}

URL में लोकेल

कई ऐप्स URL में लोकेल शामिल करते हैं, जैसे /en/products और /tr/products। React Router को i18n के साथ मिलाएँ: URL पैरामीटर से लोकेल पढ़ें, changeLanguage कॉल करें और उपयोगकर्ता के स्विच करने पर URL अपडेट करें।

त्वरित जाँच

i18next-http-backend प्लगइन क्या करता है?

पुनरावलोकन

i18n.changeLanguage() से भाषा स्विचर बनाएँ। localStorage डिटेक्टर से चयन को सुरक्षित रखें। अनुवाद फ़ाइलों को लेज़ी-लोड करने के लिए i18next-http-backend का उपयोग करें। भाषा बदलते समय लोडिंग स्थिति दिखाएँ। प्रोडक्शन के लिए फ़ाइलों को CDN पर होस्ट करें।

पाठ्यक्रम पूरा हुआ

बधाई हो! आपने **React में अंतर्राष्ट्रीयकरण (i18n)** पूरा कर लिया है। अब आप react-i18next सेट अप कर सकते हैं, नेमस्पेस के साथ स्ट्रिंग्स का अनुवाद कर सकते हैं, बहुवचन और इंटरपोलेशन संभाल सकते हैं और अनुवाद फ़ाइलों को लेज़ी-लोड कर सकते हैं।
शुरुआत निःशुल्क

एआई शिक्षक के साथ React सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
88
पाठ
324

अक्सर पूछे जाने वाले प्रश्न

क्या “भाषा स्विचर और अनुवादों की लेज़ी लोडिंग” पाठ निःशुल्क है?

हाँ—“भाषा स्विचर और अनुवादों की लेज़ी लोडिंग” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“भाषा स्विचर और अनुवादों की लेज़ी लोडिंग” में मैं क्या सीखूँगा?

एक लोकेल टॉगल बनाएँ और शुरुआती आकार घटाने के लिए अनुवाद बंडल आवश्यकता के अनुसार लोड करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“भाषा स्विचर और अनुवादों की लेज़ी लोडिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. react-i18next सेट अप करना
  2. useTranslation हुक का उपयोग
  3. बहुवचन और इंटरपोलेशन
  4. भाषा स्विचर और अनुवादों की लेज़ी लोडिंग
← React Academy पर वापस जाएँ