التوثيق

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