Next.js
Magic Translate با هر دو روتر Next.js کار می کند. با App Router، صفحات روی سرور ترجمه می شوند، بنابراین هر زبان HTML کاملا ترجمه شده خود را برای موتورهای جستجو دریافت می کند.
روتر برنامه
صفحات خود را در بخش [locale] قرار دهید و زبان هایی را که می خواهید ارائه دهید لیست کنید.
// app/[locale]/layout.tsxconst 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.tsximport { 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 (<MagicTranslateProviderapiKey={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.tsximport 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 (<MagicTranslateProviderapiKey="<your-api-key>"language={utsLocaleToLanguage(locale)}><Component {...pageProps} /></MagicTranslateProvider>);}
وب سایت شما اکنون بر اساس محلی که Next.js تعیین می کند ترجمه شده است.