जागतिक प्रेक्षकांपर्यंत पोहोचण्यासाठी तुमच्या 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 (
सध्याचा लोकेल: {locale}
उपलब्ध लोकेल्स: {locales.join(', ')}
डीफॉल्ट लोकेल: {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: Next.js सह विविध प्लॅटफॉर्मसाठी एकत्रीकरणासह एक क्लाउड-आधारित TMS. सहयोगी वैशिष्ट्ये आणि स्वयंचलित कार्यप्रवाह प्रदान करते.
- 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. एक भाषांतर लायब्ररी वापरणे
अनेक JavaScript लायब्ररी तुमच्या 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
:getStaticPaths
मध्ये परिभाषित नसलेले मार्ग Next.js कसे हाताळेल हे ठरवते.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
) वापरा. तुमच्या URLs मध्ये भाषा कोड समाविष्ट करा. - वापरकर्ता अनुभवाला प्राधान्य द्या: वापरकर्त्यांना भाषांमध्ये स्विच करण्याचा स्पष्ट आणि अंतर्ज्ञानी मार्ग प्रदान करा. ब्राउझर सेटिंग्जवर आधारित स्वयंचलित भाषा ओळखण्याची सोय देण्याचा विचार करा.
- अद्ययावत रहा: नवीनतम वैशिष्ट्ये आणि सुरक्षा पॅचचा लाभ घेण्यासाठी तुमची Next.js आवृत्ती आणि i18n लायब्ररी अद्ययावत ठेवा.
- सुलभतेचा (a11y) विचार करा: तुमची भाषांतरित सामग्री अपंग वापरकर्त्यांसाठी प्रवेशयोग्य असल्याची खात्री करा. प्रतिमांसाठी पर्यायी मजकूर प्रदान करा आणि योग्य ARIA विशेषता वापरा. स्क्रीन रीडर वापरून चाचणी करा.
आंतरराष्ट्रीयीकृत वेबसाइट्ससाठी एसइओ (SEO) विचार
जगभरातून सेंद्रिय रहदारी आणण्यासाठी तुमच्या आंतरराष्ट्रीयीकृत वेबसाइटला शोध इंजिनसाठी ऑप्टिमाइझ करणे आवश्यक आहे. येथे काही प्रमुख एसइओ (SEO) सर्वोत्तम पद्धती आहेत:
hreflang
टॅग्ज: तुमच्या HTML च्या<head>
मध्येhreflang
टॅग्ज लागू करा जेणेकरून शोध इंजिनला तुमच्या सामग्रीच्या भाषा आणि प्रादेशिक भिन्नतांबद्दल कळेल. हे एसइओसाठी महत्त्वपूर्ण आहे. उदाहरणार्थ:<link rel="alternate" hreflang="en" href="https://example.com/en/" />
आणि<link rel="alternate" hreflang="es" href="https://example.com/es/" />
- भाषा-विशिष्ट URLs: तुमच्या URLs मध्ये भाषा कोड वापरा (उदा.,
/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 च्या मूलभूत गोष्टींवर प्रभुत्व मिळवणे हे एक मौल्यवान कौशल्य आहे जे आजच्या जागतिक विकास लँडस्केपमध्ये तुमचे मूल्य वाढवेल.