Componentes del servidor React
Magic Translate es totalmente compatible con los componentes del servidor React. El contenido se traduce en el servidor, por lo que los motores de búsqueda y los usuarios traducen el HTML sin ningún tipo de JavaScript del lado del cliente.
Instalación
# using npmnpm i @magic-translate/react-ssr# using yarnyarn add @magic-translate/react-ssr# using pnpmpnpm add @magic-translate/react-ssr
Configuración
Configura la función de traducción una vez, por ejemplo, en lib/translate.ts. Mantén tu clave de API en una variable de entorno.
import { setupT } from '@magic-translate/react-ssr';export const translate = setupT({apiKey: process.env.MAGIC_TRANSLATE_API_KEY!});
Si aún no tienes una clave de API, regístrate en Magic Translate para conseguir una.
Traducir un componente de servidor
createLocalizedT vincula la función de traducción a un idioma y devuelve el componente <T> y la función t(). Acepta Language o cualquier ubicación, como 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>);}
Como todas las páginas comparten la misma función de traducción, las traducciones se agrupan en lotes y se almacenan en caché en toda la aplicación.
Para un solo componente, createServerT lo configura todo en una sola llamada. Solo se almacena en caché dentro de esa llamada.
import { createServerT } from '@magic-translate/react-ssr';const { T } = createServerT({apiKey: process.env.MAGIC_TRANSLATE_API_KEY!,locale: 'zh'});
El componente
<T>de React SSR solo funciona en React Server Components. En los componentes del cliente, usa el cliente React en su lugar.
Elegir el idioma por componente
createT devuelve un componente <T> que toma el idioma como prop. Esto es útil cuando el idioma difiere de un componente a otro.
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>;
Todos los componentes <T> aceptan las mismas opciones que el componente <T> del cliente, como formality.
Ejemplo de proyecto
Puedes encontrar un ejemplo de proyecto de SSR en GitHub.