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 رموز لغة مختلفة، لذا قم بتحويل الإعدادات المحلية باستخدام 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.