अपने Next.js एप्लिकेशन में सहज अंतर्राष्ट्रीयकरण (i18n) लागू करना सीखें ताकि आप वैश्विक दर्शकों तक पहुंच सकें। इसमें रूटिंग, सामग्री अनुवाद और सर्वोत्तम प्रथाएं शामिल हैं।
Next.js अंतर्राष्ट्रीयकरण: वैश्विक दर्शकों के लिए बहु-भाषी ऐप्स बनाना
आज की जुड़ी हुई दुनिया में, वैश्विक दर्शकों को पूरा करने वाले एप्लिकेशन बनाना अब कोई विलासिता नहीं है – यह एक आवश्यकता है। Next.js, एक शक्तिशाली React फ्रेमवर्क, अंतर्राष्ट्रीयकरण (i18n) को लागू करने के लिए मजबूत सुविधाएँ प्रदान करता है, जिससे आप बहु-भाषी एप्लिकेशन बना सकते हैं जो दुनिया भर के उपयोगकर्ताओं को एक स्थानीयकृत अनुभव प्रदान करते हैं। यह व्यापक गाइड आपको अंतर्राष्ट्रीयकृत Next.js एप्लिकेशन बनाने के लिए आवश्यक अवधारणाओं, तकनीकों और सर्वोत्तम प्रथाओं के बारे में बताएगा।
अंतर्राष्ट्रीयकरण और स्थानीयकरण को समझना
Next.js i18n की बारीकियों में जाने से पहले, आइए प्रमुख शब्दों को स्पष्ट करें:
- अंतर्राष्ट्रीयकरण (i18n): किसी एप्लिकेशन को इस तरह से डिज़ाइन और विकसित करने की प्रक्रिया है कि इसे इंजीनियरिंग परिवर्तनों की आवश्यकता के बिना विभिन्न भाषाओं और क्षेत्रों में आसानी से अनुकूलित किया जा सके। इसमें टेक्स्ट, स्वरूपण, और अन्य लोकेल-विशिष्ट तत्वों को अलग करना शामिल है।
- स्थानीयकरण (l10n): किसी एप्लिकेशन को एक विशिष्ट भाषा और क्षेत्र के लिए अनुकूलित करने की प्रक्रिया है। इसमें टेक्स्ट का अनुवाद, दिनांक और समय प्रारूप, मुद्रा प्रतीक, और बहुत कुछ समायोजित करना शामिल है।
संक्षेप में, i18n आपके एप्लिकेशन को स्थानीयकरण के लिए तैयार करता है। भाषा-निर्भर तत्वों को कोर कोड से अलग करके, आप एप्लिकेशन को विभिन्न बाजारों के लिए स्थानीयकृत करना आसान बनाते हैं।
Next.js में अंतर्राष्ट्रीयकरण क्यों लागू करें?
अपने Next.js एप्लिकेशन में i18n लागू करने से कई लाभ मिलते हैं:
- विस्तारित पहुंच: सामग्री को उनकी पसंदीदा भाषा में प्रदान करके व्यापक दर्शकों तक पहुंचें।
- बेहतर उपयोगकर्ता अनुभव: विभिन्न क्षेत्रों के उपयोगकर्ताओं के लिए अधिक व्यक्तिगत और आकर्षक अनुभव प्रदान करें।
- उन्नत SEO: विशिष्ट भौगोलिक क्षेत्रों को लक्षित करने वाली स्थानीयकृत सामग्री प्रदान करके सर्च इंजन ऑप्टिमाइज़ेशन (SEO) में सुधार करें।
- बढ़ी हुई रूपांतरण दर: उपयोगकर्ता की मूल भाषा में जानकारी प्रस्तुत करके विश्वास और समझ को बढ़ावा दें, जिससे रूपांतरण दर बढ़े।
- वैश्विक ब्रांड उपस्थिति: समावेशिता के प्रति प्रतिबद्धता और विविध दर्शकों को पूरा करके एक मजबूत वैश्विक ब्रांड उपस्थिति स्थापित करें।
Next.js i18n सुविधाएँ और कॉन्फ़िगरेशन
Next.js अपनी रूटिंग और सामग्री प्रबंधन सुविधाओं के माध्यम से i18n के लिए अंतर्निहित समर्थन प्रदान करता है। महत्वपूर्ण सुविधाओं का विवरण निम्नलिखित है:
1. next.config.js में i18n कॉन्फ़िगर करना
i18n के लिए कोर कॉन्फ़िगरेशन next.config.js
फ़ाइल के भीतर रहता है। यहाँ एक उदाहरण है:
/** @type {import('next').NextConfig} */
const nextConfig = {
i18n: {
locales: ['en', 'es', 'fr'], // समर्थित लोकेल (भाषा कोड) की एक सारणी
defaultLocale: 'en', // उपयोग करने के लिए डिफ़ॉल्ट लोकेल
localeDetection: true, // ब्राउज़र सेटिंग्स के आधार पर स्वचालित लोकेल डिटेक्शन को सक्षम/अक्षम करें (वैकल्पिक)
// domains: [
// {
// domain: 'example.com',
// defaultLocale: 'en',
// },
// {
// domain: 'example.es',
// defaultLocale: 'es',
// },
// ],
},
}
module.exports = nextConfig;
स्पष्टीकरण:
locales
: आपके एप्लिकेशन द्वारा समर्थित भाषाओं के भाषा कोड (जैसे, अंग्रेजी के लिए'en'
, स्पेनिश के लिए'es'
, फ्रेंच के लिए'fr'
) वाली एक सारणी। स्थिरता के लिए ISO 639-1 भाषा कोड का पालन करना सुनिश्चित करें।defaultLocale
: आपके एप्लिकेशन द्वारा उपयोग की जाने वाली डिफ़ॉल्ट भाषा। यह वह भाषा है जो तब प्रदर्शित होती है जब URL में कोई अन्य भाषा निर्दिष्ट नहीं की जाती है या उपयोगकर्ता की ब्राउज़र सेटिंग्स से पता नहीं लगाया जाता है। एक ऐसी भाषा चुनें जो आपके प्राथमिक लक्षित दर्शकों का प्रतिनिधित्व करती हो।localeDetection
: एक बूलियन मान जो यह नियंत्रित करता है कि क्या Next.js उपयोगकर्ता की पसंदीदा भाषा को उनकी ब्राउज़र सेटिंग्स के आधार पर स्वचालित रूप से पता लगाता है। यदिtrue
पर सेट है, तो Next.js उपयोगकर्ता को आपकी साइट के उपयुक्त भाषा संस्करण पर पुनर्निर्देशित करने का प्रयास करेगा।domains
(वैकल्पिक): एक सारणी जो आपको लोकेल को विशिष्ट डोमेन के साथ जोड़ने की अनुमति देती है। यह तब उपयोगी होता है जब आपके पास विभिन्न भाषाओं के लिए अलग-अलग डोमेन हों (जैसे, अंग्रेजी के लिएexample.com
, स्पेनिश के लिएexample.es
)।
2. लोकेल उपसर्गों के साथ रूटिंग
Next.js स्वचालित रूप से रूट्स को लोकेल के साथ उपसर्ग करता है। उदाहरण के लिए, यदि आपके पास /about
पर एक पेज है और लोकेल 'es' (स्पेनिश) है, तो URL /es/about
हो जाएगा। यह पेजों के विभिन्न भाषा संस्करणों को सक्षम बनाता है और सर्च इंजनों को प्रत्येक लोकेल के लिए सामग्री को इंडेक्स करने में सक्षम बनाता है। फ्रेमवर्क आपके लिए रीडायरेक्ट और रूटिंग को संभालता है।
3. useRouter
हुक का उपयोग करना
next/router
से useRouter
हुक वर्तमान लोकेल और अन्य रूटिंग जानकारी तक पहुंच प्रदान करता है।
import { useRouter } from 'next/router';
function MyComponent() {
const router = useRouter();
const { locale, locales, defaultLocale } = router;
return (
Current locale: {locale}
Available locales: {locales.join(', ')}
Default locale: {defaultLocale}
);
}
export default MyComponent;
router
ऑब्जेक्ट निम्नलिखित प्रमुख गुण प्रदान करता है:
locale
: वर्तमान में चयनित लोकेल (जैसे, 'en', 'es', 'fr')।locales
:next.config.js
में परिभाषित सभी समर्थित लोकेल की एक सारणी।defaultLocale
:next.config.js
में सेट किया गया डिफ़ॉल्ट लोकेल।asPath
: ब्राउज़र में प्रदर्शित पथ, जिसमें लोकेल उपसर्ग शामिल है (जैसे,/es/about
)।pathname
: लोकेल उपसर्ग के बिना पथ (जैसे,/about
)।
सामग्री अनुवाद रणनीतियाँ
जब आपने अपने Next.js एप्लिकेशन को i18n के लिए कॉन्फ़िगर कर लिया है, तो आपको अपनी सामग्री का अनुवाद करने के लिए रणनीतियों को लागू करने की आवश्यकता होगी। यहाँ कई लोकप्रिय दृष्टिकोण दिए गए हैं:
1. एक समर्पित अनुवाद प्रबंधन प्रणाली (TMS) का उपयोग करना
कई भाषाओं वाली बड़े पैमाने की परियोजनाओं के लिए, एक TMS की अत्यधिक अनुशंसा की जाती है। लोकप्रिय विकल्पों में शामिल हैं:
- Phrase: एक क्लाउड-आधारित TMS जिसमें Next.js सहित विभिन्न प्लेटफार्मों के लिए एकीकरण हैं। यह सहयोगी सुविधाएँ और स्वचालित वर्कफ़्लो प्रदान करता है।
- Localize: एक और क्लाउड-आधारित TMS जो फ़ाइल स्वरूपों की एक विस्तृत श्रृंखला का समर्थन करता है और अनुवाद प्रबंधन सुविधाएँ प्रदान करता है।
- Crowdin: एक शक्तिशाली TMS जो ओपन-सोर्स समुदाय में बहुत लोकप्रिय है, और Next.js के साथ अच्छी तरह से एकीकृत होता है, जिससे टीमों को कुशलतापूर्वक सामग्री का अनुवाद करने की अनुमति मिलती है।
लाभ:
- केंद्रीकृत अनुवाद प्रबंधन।
- अनुवादकों के लिए सहयोग सुविधाएँ।
- अनुवाद वर्कफ़्लो का स्वचालन।
- आपके विकास वर्कफ़्लो के साथ एकीकरण।
2. JSON अनुवाद फ़ाइलें बनाना
छोटी परियोजनाओं के लिए, अनुवादों को संग्रहीत करने के लिए JSON फ़ाइलों का उपयोग करना एक सरल और प्रभावी तरीका है।
उदाहरण डायरेक्टरी संरचना:
/src
├── locales
│ ├── en.json
│ └── es.json
├── components
│ └── MyComponent.js
└── pages
└── index.js
उदाहरण en.json
:
{
"greeting": "Hello, world!",
"welcomeMessage": "Welcome to our website."
}
उदाहरण es.json
:
{
"greeting": "¡Hola, mundo!",
"welcomeMessage": "Bienvenido a nuestro sitio web."
}
उदाहरण MyComponent.js
:
import { useRouter } from 'next/router';
import en from '../locales/en.json';
import es from '../locales/es.json';
function MyComponent() {
const { locale } = useRouter();
const t = locale === 'es' ? es : en;
return (
{t.greeting}
{t.welcomeMessage}
);
}
export default MyComponent;
यह दृष्टिकोण लचीलापन प्रदान करता है और छोटी परियोजनाओं के लिए सीधा है। इसे अपडेट और बनाए रखना आम तौर पर आसान होता है।
3. एक अनुवाद लाइब्रेरी का उपयोग करना
कई जावास्क्रिप्ट लाइब्रेरी आपके React घटकों के भीतर सामग्री अनुवाद को सुव्यवस्थित करती हैं।
next-i18next
: एक लोकप्रिय लाइब्रेरी जो विशेष रूप से Next.js के लिए डिज़ाइन की गई है। यह फ्रेमवर्क के साथ अच्छी तरह से एकीकृत होती है और सर्वर-साइड रेंडरिंग (SSR) और क्लाइंट-साइड अनुवाद जैसी सुविधाएँ प्रदान करती है।react-i18next
: React के लिए एक सामान्य-उद्देश्य वाली i18n लाइब्रेरी। आप इसे अपने Next.js एप्लिकेशन में उपयोग कर सकते हैं, हालांकि इसेnext-i18next
की तुलना में अधिक कॉन्फ़िगरेशन की आवश्यकता हो सकती है।
next-i18next
के साथ उदाहरण (इंस्टॉलेशन: npm install next-i18next i18next react-i18next
):
एक i18n कॉन्फ़िगरेशन फ़ाइल बनाएँ (जैसे, आपके रूट डायरेक्टरी में i18n.js
):
// i18n.js
import { createServerSideHelpers } from 'next-i18next'
import { i18n } from './next-i18next.config'
export function initI18next(req, res, namespaces = ['common']) {
const helpers = createServerSideHelpers(
req,
res,
i18n,
namespaces
)
return helpers
}
export { appWithTranslation } from 'next-i18next'
export { i18n }
next-i18next के लिए अपनी Next.js कॉन्फ़िगरेशन बनाएँ।
// next-i18next.config.js
const { i18n } = require('./next-i18next.config');
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
i18n: {
defaultLocale: 'en',
locales: ['en', 'es', 'fr'],
},
// other configuration
}
module.exports = nextConfig
अपनी _app.js
में कॉन्फ़िगरेशन और अनुवाद आयात जोड़ें:
import { appWithTranslation } from 'next-i18next';
import '../styles/globals.css';
function MyApp({ Component, pageProps }) {
return ;
}
export default appWithTranslation(MyApp);
एक फ़ोल्डर बनाएँ और इसे अपने अनुवादों के लिए लोकेल से भरें।
/public
└── locales
├── en
│ └── common.json
├── es
│ └── common.json
└── fr
└── common.json
उदाहरण en/common.json:
{
"greeting": "Hello, world!",
"welcomeMessage": "Welcome to our website."
}
एक घटक में अनुवाद का उपयोग करना:
import { useTranslation } from 'next-i18next';
function MyComponent() {
const { t } = useTranslation('common');
return (
{t('greeting')}
{t('welcomeMessage')}
);
}
export default MyComponent;
यह उदाहरण वर्तमान लोकेल के आधार पर अनुवाद प्राप्त करने के लिए useTranslation
हुक का उपयोग करता है।
डायनामिक रूट्स और स्टेटिक साइट जनरेशन (SSG) को संभालना
जब डायनामिक रूट्स (जैसे, ब्लॉग पोस्ट, उत्पाद पृष्ठ) और स्टेटिक साइट जनरेशन (SSG) से निपटना होता है, तो अंतर्राष्ट्रीयकरण अधिक जटिल हो जाता है।
1. डायनामिक रूट्स (जैसे, /blog/[slug])
डायनामिक रूट्स के लिए, आपको बिल्ड टाइम के दौरान getStaticPaths
का उपयोग करके प्रत्येक लोकेल के लिए सही पथ उत्पन्न करने की आवश्यकता होगी। यह फ़ंक्शन पथों की एक सारणी लौटाता है जिसे Next.js को प्री-रेंडर करना चाहिए।
export async function getStaticPaths() {
const paths = [];
const locales = ['en', 'es', 'fr'];
const posts = await fetchPosts(); // ब्लॉग पोस्ट डेटा प्राप्त करें
posts.forEach(post => {
locales.forEach(locale => {
paths.push({
params: {
slug: post.slug,
},
locale,
});
});
});
return {
paths,
fallback: false, // या 'blocking' यदि आप लोडिंग स्थिति दिखाना चाहते हैं
};
}
export async function getStaticProps({ params, locale }) {
const post = await getPostBySlug(params.slug, locale);
return {
props: {
post,
},
};
}
स्पष्टीकरण:
getStaticPaths
: यह फ़ंक्शन आपके ब्लॉग पोस्ट के माध्यम से पुनरावृति करता है और प्रत्येक पोस्ट और प्रत्येक लोकेल के लिए एक पथ उत्पन्न करता है।params
ऑब्जेक्ट में रूट पैरामीटर (जैसे, ब्लॉग पोस्ट का स्लग) होते हैं।locale
: यह पैरामीटर वर्तमान लोकेल प्रदान करता है, जिससे आप विशिष्ट लोकेल के लिए अनुवादित सामग्री प्राप्त कर सकते हैं।fallback
: यह निर्धारित करता है कि Next.js उन पथों को कैसे संभालता है जोgetStaticPaths
में परिभाषित नहीं हैं।fallback: false
अपरिभाषित पथों के लिए 404 पृष्ठ उत्पन्न करता है।fallback: 'blocking'
मांग पर पृष्ठों को प्री-रेंडर करता है।
2. getStaticProps
के साथ स्टेटिक साइट जनरेशन (SSG)
getStaticProps
में, आप locale
पैरामीटर के आधार पर अनुवादित सामग्री प्राप्त कर सकते हैं।
export async function getStaticProps({ params, locale }) {
// लोकेल और पैरामीटर के आधार पर सामग्री प्राप्त करें
const { post } = await getPostBySlug(params.slug, locale);
return {
props: {
post,
},
};
}
getPostBySlug
फ़ंक्शन को दिए गए स्लग और लोकेल के लिए अनुवादित सामग्री प्राप्त करनी चाहिए, जिसे आपकी अनुवाद फ़ाइलों, डेटाबेस, या CMS से प्राप्त किया जा सकता है।
3. getServerSideProps
के साथ सर्वर-साइड रेंडरिंग (SSR)
उन सामग्रियों के लिए जिन्हें अनुरोध के समय प्राप्त करने की आवश्यकता होती है, getServerSideProps
का उपयोग करें। यह तब उपयोगी होता है जब सामग्री बार-बार बदलती है या प्रत्येक उपयोगकर्ता के लिए व्यक्तिगत होती है।
export async function getServerSideProps({ params, locale, req, res }) {
// लोकेल और पैरामीटर के आधार पर डेटा प्राप्त करें (जैसे, डेटाबेस से)
const data = await fetchData(params.slug, locale);
return {
props: {
data,
},
};
}
Next.js अंतर्राष्ट्रीयकरण के लिए सर्वोत्तम प्रथाएं
इन सर्वोत्तम प्रथाओं का पालन करने से आपको मजबूत, रखरखाव योग्य और उपयोगकर्ता-अनुकूल बहु-भाषी एप्लिकेशन बनाने में मदद मिलेगी:
- जल्दी योजना बनाएं: अपनी परियोजना की शुरुआत से ही अंतर्राष्ट्रीयकरण पर विचार करें। इसे बाद में फिर से जोड़ने की तुलना में इसे पहले से लागू करना बहुत आसान है।
- सामग्री को कोड से अलग करें: सभी अनुवाद योग्य टेक्स्ट को अलग-अलग फ़ाइलों (जैसे, JSON फ़ाइलें या एक TMS) में संग्रहीत करें और अपने घटकों में सीधे टेक्स्ट को हार्डकोड करने से बचें।
- एक अनुवाद प्रबंधन प्रणाली (TMS) का उपयोग करें: बड़ी परियोजनाओं के लिए, एक TMS अनुवाद प्रक्रिया को सुव्यवस्थित कर सकता है और सहयोग में सुधार कर सकता है।
- पूरी तरह से परीक्षण करें: सटीक अनुवाद, सही स्वरूपण और विभिन्न ब्राउज़रों और उपकरणों पर उचित रेंडरिंग सुनिश्चित करने के लिए अपने एप्लिकेशन का सभी समर्थित भाषाओं में परीक्षण करें। केवल एमुलेटर पर ही नहीं, बल्कि वास्तविक उपकरणों पर भी परीक्षण करें।
- दाएं-से-बाएं (RTL) भाषाओं पर विचार करें: यदि आप अरबी या हिब्रू जैसी भाषाओं का समर्थन करते हैं, तो सुनिश्चित करें कि आपका डिज़ाइन और लेआउट दाएं-से-बाएं टेक्स्ट दिशा को समायोजित करता है। Next.js इसे स्वचालित रूप से नहीं संभालता है, इसलिए CSS या अन्य समाधानों की आवश्यकता होती है।
- दिनांक और समय स्वरूपण को संभालें: उपयोगकर्ता के लोकेल के अनुसार दिनांक और समय को प्रारूपित करने के लिए लाइब्रेरी या अंतर्निहित फ़ंक्शंस का उपयोग करें। Moment.js और date-fns दो लोकप्रिय लाइब्रेरी हैं जो सहायक हैं।
- संख्या और मुद्रा स्वरूपण का प्रबंधन करें: उपयोगकर्ता के लोकेल के आधार पर संख्याओं और मुद्रा प्रतीकों को ठीक से प्रारूपित करें।
- SEO को अनुकूलित करें: खोज इंजनों को आपकी सामग्री को सही ढंग से अनुक्रमित करने में मदद करने के लिए भाषा-विशिष्ट मेटा टैग (
hreflang
) का उपयोग करें। अपने URL में भाषा कोड शामिल करें। - उपयोगकर्ता अनुभव को प्राथमिकता दें: उपयोगकर्ताओं को भाषाओं के बीच स्विच करने के लिए एक स्पष्ट और सहज तरीका प्रदान करें। ब्राउज़र सेटिंग्स के आधार पर स्वचालित भाषा का पता लगाने की पेशकश पर विचार करें।
- अपडेट रहें: नवीनतम सुविधाओं और सुरक्षा पैच से लाभ उठाने के लिए अपने Next.js संस्करण और i18n लाइब्रेरी को अद्यतित रखें।
- अभिगम्यता (a11y) पर विचार करें: सुनिश्चित करें कि आपकी अनुवादित सामग्री विकलांग उपयोगकर्ताओं के लिए सुलभ है। छवियों के लिए वैकल्पिक टेक्स्ट प्रदान करें और उपयुक्त ARIA विशेषताओं का उपयोग करें। परीक्षण के लिए स्क्रीन रीडर का उपयोग करें।
अंतर्राष्ट्रीयकृत वेबसाइटों के लिए SEO संबंधी विचार
खोज इंजनों के लिए अपनी अंतर्राष्ट्रीयकृत वेबसाइट को अनुकूलित करना दुनिया भर से जैविक ट्रैफ़िक चलाने के लिए आवश्यक है। यहाँ कुछ प्रमुख SEO सर्वोत्तम प्रथाएं हैं:
hreflang
टैग: अपने HTML के<head>
मेंhreflang
टैग लागू करें ताकि खोज इंजनों को आपकी सामग्री की भाषा और क्षेत्रीय विविधताओं के बारे में बताया जा सके। यह SEO के लिए महत्वपूर्ण है। उदाहरण के लिए:<link rel="alternate" hreflang="en" href="https://example.com/en/" />
और<link rel="alternate" hreflang="es" href="https://example.com/es/" />
- भाषा-विशिष्ट URL: अपने URL में भाषा कोड का उपयोग करें (जैसे,
/en/about
,/es/acerca-de
)। यह उपयोगकर्ताओं और खोज इंजनों दोनों को सामग्री की भाषा स्पष्ट रूप से इंगित करता है। - स्थानीयकृत सामग्री: अपनी सामग्री का सटीक और स्वाभाविक रूप से अनुवाद करें। मशीन अनुवाद की समीक्षा एक देशी वक्ता द्वारा की जानी चाहिए।
- स्थानीयकृत मेटा विवरण और शीर्षक: खोज परिणामों में क्लिक-थ्रू दरों में सुधार के लिए प्रत्येक भाषा के लिए अद्वितीय और आकर्षक मेटा विवरण और शीर्षक लिखें।
- XML साइटमैप: XML साइटमैप बनाएं और सबमिट करें जिसमें आपके पृष्ठों के सभी भाषा संस्करण शामिल हों।
- आंतरिक लिंकिंग: अपनी सामग्री के भाषा संस्करणों के बीच उपयुक्त आंतरिक लिंक का उपयोग करें।
- देश-विशिष्ट कीवर्ड अनुसंधान: प्रत्येक भाषा में कीवर्ड अनुसंधान करें ताकि उन शब्दों की पहचान की जा सके जिन्हें उपयोगकर्ता प्रत्येक क्षेत्र में खोज रहे हैं।
उदाहरण: एक सरल बहु-भाषी ब्लॉग बनाना
आइए Next.js का उपयोग करके एक बहु-भाषी ब्लॉग का एक सरलीकृत उदाहरण बनाएं। यह ऊपर चर्चा की गई अवधारणाओं को कैसे लागू किया जाए, इसका एक और ठोस उदाहरण प्रदान करेगा।
1. प्रोजेक्ट सेटअप
एक नया Next.js प्रोजेक्ट बनाएं:
npx create-next-app my-multi-lang-blog
cd my-multi-lang-blog
2. i18n कॉन्फ़िगर करें (next.config.js
)
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
i18n: {
locales: ['en', 'es', 'fr'],
defaultLocale: 'en',
},
}
module.exports = nextConfig
3. अनुवाद फ़ाइलें बनाएँ
रूट डायरेक्टरी में एक locales
फ़ोल्डर बनाएँ और निम्नलिखित JSON फ़ाइलें जोड़ें:
locales/en.json
:
{
"title": "Welcome to My Blog",
"postTitle": "My First Post",
"postContent": "This is the content of my first blog post."
}
locales/es.json
:
{
"title": "Bienvenido a mi Blog",
"postTitle": "Mi Primer Post",
"postContent": "Este es el contenido de mi primer publicación de blog."
}
locales/fr.json
:
{
"title": "Bienvenue sur Mon Blog",
"postTitle": "Mon Premier Article",
"postContent": "Ceci est le contenu de mon premier article de blog."
}
4. ब्लॉग पोस्ट घटक बनाएँ (जैसे, components/BlogPost.js
)
import { useRouter } from 'next/router';
import en from '../locales/en.json';
import es from '../locales/es.json';
import fr from '../locales/fr.json';
function BlogPost() {
const router = useRouter();
const { locale } = router;
let translations;
switch (locale) {
case 'es':
translations = es;
break;
case 'fr':
translations = fr;
break;
default:
translations = en;
}
return (
{translations.postTitle}
{translations.postContent}
);
}
export default BlogPost;
5. इंडेक्स पेज बनाएँ (pages/index.js
)
import { useRouter } from 'next/router';
import BlogPost from '../components/BlogPost';
import en from '../locales/en.json';
import es from '../locales/es.json';
import fr from '../locales/fr.json';
function HomePage() {
const router = useRouter();
const { locale, locales } = router;
let translations;
switch (locale) {
case 'es':
translations = es;
break;
case 'fr':
translations = fr;
break;
default:
translations = en;
}
return (
);
}
export default HomePage;
यह सरलीकृत उदाहरण Next.js अंतर्राष्ट्रीयकरण के मूलभूत सिद्धांतों को प्रदर्शित करता है। आप इस मूल ढांचे पर विस्तार कर सकते हैं ताकि अधिक जटिल सुविधाएँ, जैसे कि डायनामिक रूट और अनुवाद प्रबंधन प्रणालियों के साथ एकीकरण शामिल हो सकें। ऊपर दिए गए लिंक को Link
घटक के साथ सुधारने और उपयुक्त locale
विशेषता जोड़ने पर विचार करें।
6. एप्लिकेशन चलाएँ
एप्लिकेशन को इसके साथ चलाएँ:
npm run dev
अब आप अपने ब्लॉग को http://localhost:3000
(अंग्रेजी), http://localhost:3000/es
(स्पेनिश), और http://localhost:3000/fr
(फ्रेंच) पर एक्सेस कर सकते हैं। आपको चयनित लोकेल के आधार पर शीर्षक और ब्लॉग पोस्ट सामग्री का अनुवादित रूप देखना चाहिए।
निष्कर्ष
Next.js आपके वेब एप्लिकेशन में अंतर्राष्ट्रीयकरण को लागू करने के लिए सुविधाओं का एक व्यापक सेट प्रदान करता है। इस गाइड में उल्लिखित सिद्धांतों और तकनीकों का पालन करके, आप बहु-भाषी एप्लिकेशन बना सकते हैं जो दुनिया भर के उपयोगकर्ताओं को स्थानीयकृत अनुभव प्रदान करते हैं। अपनी i18n रणनीति की जल्दी योजना बनाना याद रखें, अपनी आवश्यकताओं के लिए सही अनुवाद विधि चुनें, और उपयोगकर्ता अनुभव को प्राथमिकता दें। सावधानीपूर्वक योजना और निष्पादन के साथ, आप ऐसे एप्लिकेशन बना सकते हैं जो वैश्विक दर्शकों के साथ प्रतिध्वनित होते हैं और विकास के नए अवसरों को खोलते हैं। निरंतर सीखना, नवीनतम रिलीज़ और सर्वोत्तम प्रथाओं के साथ बने रहना यह सुनिश्चित करेगा कि आप अपने उपकरणों और प्रौद्योगिकियों का प्रभावी ढंग से उपयोग कर रहे हैं।
जैसे-जैसे प्रौद्योगिकी आगे बढ़ती है, और अधिक उन्नत i18n सुविधाओं के उभरने की उम्मीद है। विभिन्न संस्कृतियों और भाषाई समूहों के उपयोगकर्ताओं तक पहुंचने की क्षमता दुनिया भर के एप्लिकेशन डेवलपर्स के लिए एक प्रमुख प्राथमिकता बनी रहेगी। इसलिए, i18n के मूल सिद्धांतों में महारत हासिल करना एक मूल्यवान कौशल है जो आज के वैश्विक विकास परिदृश्य में आपके मूल्य को बढ़ाएगा।