التوثيق

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.