Next.js
Magic Translate, Next.js dosyasının her iki yönlendiricisi ile çalışır. Uygulama Yönlendiricisi ile sayfalar sunucuda çevrilir, böylece her dil arama motorları için kendi tamamen çevrilmiş HTML'sini alır.
Uygulama Yönlendiricisi
Sayfalarınızı [locale] segmentine koyun ve sunmak istediğiniz dilleri listeleyin.
// 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>);}
Ardından, dil olarak locale parametresini kullanarak sayfalarınızı React SSR ile çevirin.
// 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>);}
Sayfa başlıkları ve açıklamaları çeviri işlevi ile çevrilir.
Etkileşimli menüler gibi çevirilere ihtiyaç duyan istemci bileşenleri React istemcisini kullanabilir. Bunları bir MagicTranslateProvider içine sarın ve yerel ayarı utsLocaleToLanguage ile dönüştürün.
'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>);}
Sayfalar Yönlendirici
Önce Next.js uluslararas ılaştırma kılavuzunu izleyerek yerel ayarlarınızı oluşturun.
Ardından belirlenen Next.js yerel ayarını MagicTranslateProvider öğesine iletin. Magic Translate 'in dil kodları, Next.js dosyasının kullandığı yerel ayarlarla 1:1 eşlemez, bu nedenle bunları utsLocaleToLanguage ile dönüştürün.
// 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>);}
Web siteniz artık Next.js dosyasının belirlediği yerel ayarlara göre çevrilmiştir.