Next.js एप्लिकेशन (जो Pages Router का उपयोग कर रहा है) में अंतरराष्ट्रीयकरण (i18n) को कैसे लागू करें
अपनी React एप्लिकेशन को अधिक सुलभ बनाएं और अंतरराष्ट्रीयकरण (i18n) के साथ नए बाजारों तक पहुँचें।
जैसे-जैसे दुनिया अधिक वैश्वीकृत हो रही है, वेब डेवलपर्स के लिए यह और भी महत्वपूर्ण हो गया है कि वे ऐसे एप्लिकेशन बनाएं जो विभिन्न देशों और संस्कृतियों के उपयोगकर्ताओं की आवश्यकताओं को पूरा कर सकें। एक प्रमुख तरीका है अंतरराष्ट्रीयकरण (i18n), जो आपको अपने एप्लिकेशन को विभिन्न भाषाओं, मुद्राओं और तिथि स्वरूपों के अनुरूप ढालने की अनुमति देता है।
इस ट्यूटोरियल में, हम यह दिखाएंगे कि सर्वर-साइड रेंडरिंग के साथ अपने React Next.js एप्लिकेशन में अंतरराष्ट्रीयकरण कैसे जोड़ें। TL;DR: पूरा उदाहरण यहाँ देखें।
यह मार्गदर्शिका उन Next.js अनुप्रयोगों के लिए है जो Pages Router का उपयोग कर रहे हैं।
यदि आप App Router का उपयोग कर रहे हैं, तो कृपया इसके बजाय इस मार्गदर्शिका को देखें।
चरण 1: एक i18n लाइब्रेरी इंस्टॉल करें
अपने Next.js एप्लिकेशन में अन्तर्राष्ट्रीयकरण लागू करने के लिए, पहले हम एक i18n लाइब्रेरी चुनेंगे। कुछ लोकप्रिय लाइब्रेरीज़ हैं, जिनमें next-intl शामिल है। हालांकि, इस उदाहरण में, हम TacoTranslate का उपयोग करेंगे।
TacoTranslate अत्याधुनिक AI का उपयोग करके आपके स्ट्रिंग्स को किसी भी भाषा में स्वतः अनुवाद करता है, और आपको JSON फ़ाइलों के थकाऊ प्रबंधन से मुक्त करता है।
आइए इसे अपने टर्मिनल में npm का उपयोग करके इंस्टॉल करें:
npm install tacotranslate
चरण 2: एक मुफ्त TacoTranslate खाता बनाएं
अब जब आपने मॉड्यूल इंस्टॉल कर लिया है, तो यह समय है कि आप अपना TacoTranslate अकाउंट, एक अनुवाद प्रोजेक्ट, और संबंधित API कीज़ बनाएं। यहाँ एक अकाउंट बनाएं। यह मुफ़्त है, और आपको क्रेडिट कार्ड जोड़ने की आवश्यकता नहीं है।
TacoTranslate एप्लिकेशन UI के अंदर एक प्रोजेक्ट बनाएं और उसके API keys टैब पर जाएँ। एक read
कुंजी और एक read/write
कुंजी बनाएँ। हम इन्हें पर्यावरण चर के रूप में सहेजेंगे। read
कुंजी को हम public
कहते हैं और read/write
कुंजी secret
होती है। उदाहरण के लिए, आप इन्हें अपने प्रोजेक्ट की रूट में स्थित .env
फ़ाइल में जोड़ सकते हैं।
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
यह सुनिश्चित करें कि गोपनीय read/write
API कुंजी क्लाइंट-साइड प्रोडक्शन वातावरण में कभी लीक न हो।
हम दो और पर्यावरण चर भी जोड़ेंगे: TACOTRANSLATE_DEFAULT_LOCALE
और TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: डिफ़ॉल्ट फ़ॉलबैक लोकल कोड। इस उदाहरण में, हम इसे अंग्रेज़ी के लिएen
पर सेट करेंगे।TACOTRANSLATE_ORIGIN
: वह “फ़ोल्डर” जहाँ आपकी स्ट्रिंग्स सहेजी जाएँगी, जैसे आपकी वेबसाइट का URL। उत्पत्तियों के बारे में और पढ़ें।
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
चरण 3: TacoTranslate सेट करना
अपने एप्लिकेशन में TacoTranslate को एकीकृत करने के लिए, आपको पहले से दिए गए API कुंजियों का उपयोग करके एक क्लाइंट बनाना होगा। उदाहरण के लिए, /tacotranslate-client.js
नाम की एक फ़ाइल बनाएं।
const {default: createTacoTranslateClient} = require('tacotranslate');
const tacoTranslate = createTacoTranslateClient({
apiKey:
process.env.TACOTRANSLATE_SECRET_API_KEY ??
process.env.TACOTRANSLATE_PUBLIC_API_KEY ??
process.env.TACOTRANSLATE_API_KEY ??
'',
projectLocale: process.env.TACOTRANSLATE_DEFAULT_LOCALE ?? '',
});
module.exports = tacoTranslate;
हम TACOTRANSLATE_API_KEY
को स्वचालित रूप से जल्द ही परिभाषित करेंगे।
क्लाइंट को एक अलग फ़ाइल में बनाने से इसे बाद में फिर से उपयोग करना आसान हो जाता है। अब, एक कस्टम /pages/_app.tsx
का उपयोग करके, हम TacoTranslate
प्रदाता को जोड़ेंगे।
import React from 'react';
import {type AppProps} from 'next/app';
import {type Origin, type Locale, type Localizations} from 'tacotranslate';
import TacoTranslate from 'tacotranslate/react';
import TacoTranslateHead from 'tacotranslate/next/head';
import tacoTranslate from '../tacotranslate-client';
type PageProperties = {
origin: Origin;
locale: Locale;
locales: Locale[];
localizations: Localizations;
};
export default function App({Component, pageProps}: AppProps<PageProperties>) {
const {origin, locale, locales, localizations} = pageProps;
return (
<TacoTranslate
client={tacoTranslate}
origin={origin}
locale={locale}
localizations={localizations}
>
<TacoTranslateHead rootUrl="https://your-website.com" locales={locales} />
<Component {...pageProps} />
</TacoTranslate>
);
}
यदि आपके पास पहले से कस्टम pageProps
और _app.tsx
हैं, तो कृपया ऊपर दिए गए गुणों और कोड के साथ परिभाषा का विस्तार करें।
चरण 4: सर्वर-साइड रेंडरिंग लागू करना
TacoTranslate आपके अनुवादों के लिए सर्वर-साइड रेंडरिंग सक्षम करता है। यह उपयोगकर्ता अनुभव को काफी बेहतर बनाता है क्योंकि अनुवादित सामग्री तुरंत दिखाई देती है, बजाय इसके कि पहले अनुवादित नहीं हुई सामग्री की झलक दिखाई दे। इसके अतिरिक्त, हम क्लाइंट पर नेटवर्क अनुरोधों को छोड़ सकते हैं, क्योंकि हमारे पास पहले से ही सभी आवश्यक अनुवाद मौजूद हैं।
हम /next.config.js
बनाने या संशोधित करने से शुरू करेंगे।
const withTacoTranslate = require('tacotranslate/next/config').default;
const tacoTranslateClient = require('./tacotranslate-client');
module.exports = async () => {
const config = {};
return withTacoTranslate(config, {
client: tacoTranslateClient,
isProduction:
process.env.TACOTRANSLATE_ENV === 'production' ||
process.env.VERCEL_ENV === 'production' ||
(!(process.env.TACOTRANSLATE_ENV || process.env.VERCEL_ENV) &&
process.env.NODE_ENV === 'production'),
});
};
अपने सेटअप के अनुसार isProduction
चेक को बदलें। यदि true
, TacoTranslate सार्वजनिक API कुंजी को प्रदर्शित करेगा। यदि हम स्थानीय, टेस्ट, या स्टेजिंग वातावरण में हैं (isProduction
is false
), तो हम यह सुनिश्चित करने के लिए गुप्त read/write
API कुंजी का उपयोग करेंगे कि नई स्ट्रिंग्स अनुवाद के लिए भेजी जाएँ।
अब तक, हमने केवल Next.js एप्लिकेशन को समर्थित भाषाओं की एक सूची के साथ सेटअप किया है। अगला कदम यह होगा कि हम आपके सभी पृष्ठों के लिए अनुवाद प्राप्त करें। ऐसा करने के लिए, आप अपनी आवश्यकताओं के आधार पर getTacoTranslateStaticProps
या getTacoTranslateServerSideProps
का उपयोग करेंगे।
ये फ़ंक्शन तीन तर्क लेते हैं: एक Next.js Static Props Context ऑब्जेक्ट, TacoTranslate के लिए कॉन्फ़िगरेशन, और वैकल्पिक Next.js प्रॉपर्टीज़। ध्यान दें कि revalidate
getTacoTranslateStaticProps
पर डिफ़ॉल्ट रूप से 60 पर सेट है, ताकि आपके अनुवाद अद्यतित रहें।
किसी पेज में इन में से किसी भी फ़ंक्शन का उपयोग करने के लिए, मान लें कि आपके पास एक पेज फ़ाइल है, जैसे /pages/hello-world.tsx
.
import {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';
export async function getStaticProps(context) {
return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}
export default function Page() {
return <Translate string="Hello, world!"/>;
}
अब आप Translate
कॉम्पोनेंट का उपयोग करके अपने सभी React घटकों के भीतर स्ट्रिंग्स का अनुवाद कर सकेंगे।
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
चरण 5: तैनात करें और परीक्षण करें!
हम काम पूरा कर चुके हैं! जब आप किसी भी स्ट्रिंग को Translate
कंपोनेंट में जोड़ेंगे, तो आपकी React एप्लिकेशन अब स्वचालित रूप से अनुवादित हो जाएगी। ध्यान दें कि केवल वे वातावरण जिनके API कुंजी पर read/write
अनुमतियाँ हैं वे नए अनुवाद हेतु स्ट्रिंग्स बना पाएँगे। हम अनुशंसा करते हैं कि ऐसा एक बंद और सुरक्षित स्टेजिंग वातावरण हो जहाँ आप इस तरह की API कुंजी के साथ अपने प्रोडक्शन एप्लिकेशन का परीक्षण कर सकें और लाइव होने से पहले नई स्ट्रिंग्स जोड़ सकें। यह किसी को भी आपकी गुप्त API कुंजी चोरी करने से रोकेगा, और नए, असंबंधित स्ट्रिंग्स जोड़कर आपके अनुवाद प्रोजेक्ट को अनावश्यक रूप से बढ़ाने से भी बचाएगा।
हमारे GitHub प्रोफ़ाइल पर पूर्ण उदाहरण अवश्य देखें. वहाँ आपको यह App Router का उपयोग करके कैसे करना है इसका एक उदाहरण भी मिलेगा! यदि आपको किसी समस्या का सामना करना पड़े, तो बेझिझक संपर्क करें, और हमें आपकी मदद करके बहुत खुशी होगी।
TacoTranslate आपको अपने React एप्लिकेशन को 75 से अधिक भाषाओं में तेज़ी से और स्वचालित रूप से स्थानीयकृत करने की सुविधा देता है। आज ही शुरू करें!