مستندات

Next.js

Magic Translate با هر دو روتر Next.js کار می کند. با App Router، صفحات روی سرور ترجمه می شوند، بنابراین هر زبان 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>
);
}

سپس صفحات خود را با React SSR ترجمه کنید، با استفاده از پارامتر locale به عنوان زبان.

// 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 تعیین می کند ترجمه شده است.