Componenti del server React
Magic Translate supporta completamente i componenti di React Server. Il contenuto viene tradotto sul server, quindi i motori di ricerca e gli utenti ottengono l'HTML tradotto senza JavaScript sul lato client.
Installazione
# using npmnpm i @magic-translate/react-ssr# using yarnyarn add @magic-translate/react-ssr# using pnpmpnpm add @magic-translate/react-ssr
Configurazione
Imposta la funzione di traduzione una volta, ad esempio in lib/translate.ts. Conserva la tua chiave API in una variabile di ambiente.
import { setupT } from '@magic-translate/react-ssr';export const translate = setupT({apiKey: process.env.MAGIC_TRANSLATE_API_KEY!});
Se non hai ancora una chiave API, iscriviti a Magic Translate per ottenerne una.
Tradurre un componente del server
createLocalizedT associa la funzione di traduzione a una lingua e restituisce il componente <T> e la funzione t(). Accetta un Language o qualsiasi locale come de o pt-BR.
import { createLocalizedT } from '@magic-translate/react-ssr';import { translate } from '@/lib/translate';export default async function AboutPage() {const { T, t } = createLocalizedT(translate, 'de');return (<article><h1><T>About us</T></h1><img src="/team.jpg" alt={await t('Our team in Zurich')} /></article>);}
Poiché ogni pagina condivide la stessa funzione di traduzione, le traduzioni vengono raggruppate e memorizzate nella cache dell'intera app.
Per un singolo componente, createServerT configura tutto in una chiamata. Viene memorizzato nella cache solo all'interno di quella chiamata.
import { createServerT } from '@magic-translate/react-ssr';const { T } = createServerT({apiKey: process.env.MAGIC_TRANSLATE_API_KEY!,locale: 'zh'});
Il componente
<T>di React SSR funziona solo in React Server Components. Nei componenti del client, usa invece il client React.
Scelta della lingua per componente
createT restituisce un componente <T> che accetta la lingua come prop. Questo è utile quando la lingua è diversa da componente a componente.
import { createT, Language } from '@magic-translate/react-ssr';import { translate } from '@/lib/translate';const T = createT(translate);const Greeting = async () => <T lang={Language.ZH}>Please translate me!</T>;
Tutti i componenti <T> accettano le stesse opzioni del componente <T> del client, ad esempio formality.
Esempio di progetto
Puoi trovare un esempio di progetto SSR su GitHub.