"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > रूटिंग के साथ नेक्स्ट.जेएस में अंतर्राष्ट्रीयकरण (i) के लिए गाइड

रूटिंग के साथ नेक्स्ट.जेएस में अंतर्राष्ट्रीयकरण (i) के लिए गाइड

2024-07-30 को प्रकाशित
ब्राउज़ करें:579

Guide to Internationalisation (i) in Next.js with Routing

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

इंस्टालेशन

सबसे पहले, आपको नेक्स्ट-इंटल लाइब्रेरी स्थापित करने की आवश्यकता है, जो नेक्स्ट.जेएस में अंतर्राष्ट्रीयकरण के प्रबंधन की सुविधा प्रदान करती है। अपने टर्मिनल में निम्नलिखित कमांड चलाएँ:

npm install next-intl

परियोजना संरचना

प्रोजेक्ट संरचना इस प्रकार होगी:

├── messages
│   ├── en.json
│   └── es.json
├── next.config.mjs
└── src
    ├── i18n.ts
    ├── middleware.ts
    └── app
        └── [locale]
            ├── layout.tsx
            └── page.tsx

1. अनुवाद संदेश सेट करना

अपने प्रोजेक्ट के मूल में एक संदेश निर्देशिका बनाएं। इस निर्देशिका के अंदर, उस प्रत्येक भाषा के लिए JSON फ़ाइलें जोड़ें जिसका आप समर्थन करना चाहते हैं।

messages/en.json

{
  "greeting": "Hello Codú",
  "farewell": "Goodbye Codú"
}

संदेश/es.json

{
  "greeting": "Hola Codú",
  "farewell": "Adiós Codú"
}

इन फ़ाइलों में उन वाक्यांशों के अनुवाद शामिल हैं जिनका उपयोग आपका एप्लिकेशन करेगा।

2. Next.js को कॉन्फ़िगर करना

Next.config.mjs में अंतर्राष्ट्रीयकरण का समर्थन करने के लिए Next.js को कॉन्फ़िगर करें।

Next.config.mjs

import { getRequestConfig } from 'next-intl/server';

// List of supported languages
const locales = ['en', 'es'];

export default getRequestConfig(async ({ locale }) => {
  // Validate that the incoming `locale` parameter is valid
  if (!locales.includes(locale)) {
    return { notFound: true };
  }

  return {
    messages: (await import(`./messages/${locale}.json`)).default
  };
});

यह फ़ाइल अनुरोधित भाषा के आधार पर सही अनुवाद संदेशों को लोड करने के लिए Next.js को कॉन्फ़िगर करती है।

3. अंतर्राष्ट्रीयकरण मिडलवेयर

पुनर्निर्देशन को संभालने और डिफ़ॉल्ट भाषा सेट करने के लिए मिडलवेयर बनाएं।

src/middleware.ts

import createMiddleware from 'next-intl/middleware';

export default createMiddleware({
  // List of all supported languages
  locales: ['en', 'es'],

  // Default language
  defaultLocale: 'en'
});

export const config = {
  // Only match internationalised pathnames
  matcher: ['/', '/(en|es)/:path*']
};

यदि कोई निर्दिष्ट नहीं है तो यह मिडलवेयर डिफ़ॉल्ट भाषा पर पुनर्निर्देशन को संभालता है।

4. अंतर्राष्ट्रीयकरण विन्यास

अंतर्राष्ट्रीयकरण सेटिंग्स प्रबंधित करने के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएं।

src/i18n.ts

import { notFound } from 'next/navigation';
import { getRequestConfig } from 'next-intl/server';

const locales = ['en', 'es'];

export default getRequestConfig(async ({ locale }) => {
  if (!locales.includes(locale as any)) notFound();

  return {
    messages: (await import(`../messages/${locale}.json`)).default
  };
});

यह फ़ाइल स्थानों को मान्य करती है और संबंधित संदेशों को लोड करती है।

5. लेआउट और पेज सेट करना

अंतर्राष्ट्रीयकरण का समर्थन करने के लिए लेआउट और मुख्य पृष्ठ कॉन्फ़िगर करें।

src/app/[locale]/layout.tsx

import { useLocale } from 'next-intl';
import { ReactNode } from 'react';

export default function Layout({ children }: { children: ReactNode }) {
  const locale = useLocale();
  return (
    
      {children}
    
  );
}

src/app/[locale]/page.tsx

import { useTranslations } from 'next-intl';

export default function Page() {
  const t = useTranslations();
  return (
    

{t('greeting')}

{t('farewell')}

); }

ये फ़ाइलें अनुवाद का उपयोग करने के लिए लेआउट और मुख्य पृष्ठ को कॉन्फ़िगर करती हैं।

6. भाषा स्विचर बनाना

अंत में, अंग्रेजी और स्पेनिश के बीच टॉगल करने के लिए एक भाषा स्विचर बनाएं।

src/app/[locale]/switcher.tsx

'use client';

import { useLocale } from 'next-intl';
import { useRouter } from 'next/navigation';
import { ChangeEvent, useTransition } from 'react';

export default function LocalSwitcher() {
  const [isPending, startTransition] = useTransition();
  const router = useRouter();
  const localActive = useLocale();

  const onSelectChange = (e: ChangeEvent) => {
    const nextLocale = e.target.value;
    startTransition(() => {
      router.replace(`/${nextLocale}`);
    });
  };

  return (
    
  );
}

यह घटक उपयोगकर्ताओं को इंटरफ़ेस भाषा बदलने की अनुमति देता है।

निष्कर्ष

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/adrianbailador/guide-to-internationalisation-i18n-in-nextjs-with-routing-3kje?1 यदि कोई उल्लंघन है, तो कृपया हटाने के लिए स्टडी_गोलंग@163.com पर संपर्क करें। यह
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3