दस्तावेज़ीकरण

Next.js

Magic Translate Next.js के दोनों राउटर के साथ काम करता है। ऐप राउटर की मदद से, पेज सर्वर पर ट्रांसलेट किए जाते हैं, इसलिए सर्च इंजन के लिए हर भाषा का अपना पूरी तरह से अनुवादित HTML मिलता है।

ऐप राउटर

अपने पेजों को [locale] सेगमेंट में रखें और उन भाषाओं को लिस्ट करें जिन्हें तुम ऑफ़र करना चाहते हो।

// app/[locale]/layout.tsx
const locales = ['en', 'de', 'fr', 'ja'];
export function generateStaticParams() {
return locales.map((locale) => ({ locale }));
}
export default async function LocaleLayout({
children,
params
}: {
children: React.ReactNode;
params: Promise<{ locale: string }>;
}) {
const { locale } = await params;
return (
<html lang={locale}>
<body>{children}</body>
</html>
);
}

फिर भाषा के तौर पर locale पैरामीटर का इस्तेमाल करके, अपने पेजों को React SSR से ट्रांसलेट करें।

// app/[locale]/page.tsx
import { createLocalizedT } from '@magic-translate/react-ssr';
import { translate } from '@/lib/translate';
export default async function HomePage({
params
}: {
params: Promise<{ locale: string }>;
}) {
const { locale } = await params;
const { T } = createLocalizedT(translate, locale);
return (
<h1>
<T>Welcome to our website</T>
</h1>
);
}

पेज के टाइटल और विवरण ट्रांसलेशन फंक्शन के साथ अनुवादित किए जाते हैं।

क्लाइंट घटक जिन्हें अनुवाद की ज़रूरत होती है, जैसे कि इंटरैक्टिव मेनू, रिएक्ट क्लाइंट का इस्तेमाल कर सकते हैं। उन्हें MagicTranslateProvider में लपेटें और लोकेल को utsLocaleToLanguage के साथ कन्वर्ट करें।

'use client';
import {
MagicTranslateProvider,
utsLocaleToLanguage
} from '@magic-translate/react';
export function Providers({
locale,
children
}: {
locale: string;
children: React.ReactNode;
}) {
return (
<MagicTranslateProvider
apiKey={process.env.NEXT_PUBLIC_MAGIC_TRANSLATE_API_KEY!}
language={utsLocaleToLanguage(locale)}
>
{children}
</MagicTranslateProvider>
);
}

पेजेस राउटर

सबसे पहले Next.js इंटरनेशनलाइज़ेशन गाइड को फ़ॉलो करके अपने स्थानीय लोगों को सेट अप करें।

इसके बाद निर्धारित लोकेल Next.js को MagicTranslateProvider पर पास करें। Magic Translate के भाषा कोड, Next.js द्वारा इस्तेमाल की जाने वाली जगहों के हिसाब से 1:1 मैप नहीं करते हैं, इसलिए उन्हें utsLocaleToLanguage के साथ कन्वर्ट करें।

// pages/_app.tsx
import type { AppProps } from 'next/app';
import { useRouter } from 'next/router';
import {
MagicTranslateProvider,
utsLocaleToLanguage
} from '@magic-translate/react';
export default function MyApp({ Component, pageProps }: AppProps) {
const { locale } = useRouter();
return (
<MagicTranslateProvider
apiKey="<your-api-key>"
language={utsLocaleToLanguage(locale)}
>
<Component {...pageProps} />
</MagicTranslateProvider>
);
}

तुम्हारी वेबसाइट का अनुवाद अब Next.js द्वारा निर्धारित लोकेल के आधार पर किया गया है।