دستاویزات

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>
);
}

صفحہ کے عنوانات اور تفصیلات کا ترجمہ فنکشن کے ساتھ کیا جاتا ہے۔

کلائنٹ اجزاء جن کو ترجمے کی ضرورت ہوتی ہے، جیسے انٹرایکٹو مینو، React کلائنٹ استعمال کرسکتے ہیں۔ انہیں 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 کے زبان کے کوڈز 1:1 کو Next.js استعمال کردہ مقامات پر نقشہ نہیں کرتے ہیں، لہذا انہیں 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 تعین کی بنیاد پر ترجمہ کیا گیا ہے۔