Generación de Sitios Estáticos

Cómo soportar la generación de sitios estáticos para tu aplicación i18n

Visión general

Esta guía te mostrará cómo configurar tu aplicación i18n para soportar la generación de sitios estáticos.


¿Qué es la generación de sitios estáticos?

La generación de sitios estáticos (SSG) es una característica de Next.js que te permite generar páginas estáticas durante el tiempo de compilación. Esto es útil para el rendimiento y el SEO.

SSG para el router app

Requisitos

Hay algunos requisitos para habilitar la generación de sitios estáticos para tu aplicación i18n. Dependiendo de si estás utilizando el directorio app o pages, los requisitos son ligeramente diferentes.

  1. Tu aplicación debe estar utilizando el router app de Next.js.
  2. Tu aplicación debe soportar enrutamiento i18n (ver enrutamiento i18n)
  3. Tu aplicación debe estar utilizando traducciones locales (ver traducciones locales)

Pasos

Paso 1: Primero, asegúrate de que tu aplicación tenga un componente <GTProvider> en el layout raíz.

app/[locale]/layout.tsx
import { GTProvider } from 'gt-next';

Como la aplicación está utilizando enrutamiento i18n, el proveedor debe colocarse en el archivo [locale]/layout.tsx.

Paso 2: A continuación, asegúrate de que tu aplicación esté utilizando la función loadTranslations para cargar traducciones. Además, pasa el idioma como parámetro al <GTProvider>. Puedes obtener el idioma del objeto params.

app/[locale]/layout.tsx
import { loadTranslations } from '@/i18n/loadTranslations';
import { GTProvider } from 'gt-next';
 
export default async function RootLayout({
  children,
  params,
}: {
  children: React.ReactNode;
  params: Promise<{ locale: string }>;
}) {
  const { locale } = await params;
  return (
    <GTProvider loadTranslations={loadTranslations} locale={locale}>
      {children}
    </GTProvider>
  )
}

Paso 3: Luego, asegúrate de que todos tus hooks y componentes estén importando desde gt-next/client.

import { useGT } from 'gt-next/client';
import { T } from 'gt-next/client';

Esto es importante porque los hooks y componentes importados desde gt-next/client nunca leen encabezados, que no existen en el momento de la compilación para páginas generadas estáticamente.

¡Asegúrate de haber configurado tu aplicación Next.js para usar correctamente la función getStaticParams!

¡Eso es todo! ¡Tu aplicación ahora debería soportar la generación de sitios estáticos para múltiples idiomas!

SSG para el router pages

🚧 Esta sección se encuentra actualmente en construcción. 🚧

En esta página