Génération de Site Statique

Comment prendre en charge la génération de site statique pour votre application i18n

Aperçu

Ce guide vous montrera comment configurer votre application i18n pour prendre en charge la génération de site statique.


Qu'est-ce que la génération de site statique ?

La génération de site statique (SSG) est une fonctionnalité de Next.js qui vous permet de générer des pages statiques au moment de la compilation. Cela est utile pour les performances et le référencement.

SSG pour le routeur app

Prérequis

Il y a quelques prérequis pour activer la génération de site statique pour votre application i18n. Selon que vous utilisez le répertoire app ou pages, les prérequis sont légèrement différents.

  1. Votre application doit utiliser le routeur app de Next.js.
  2. Votre application doit prendre en charge le routage i18n (voir routage i18n)
  3. Votre application doit utiliser des traductions locales (voir traductions locales)

Étapes

Étape 1 : Tout d'abord, assurez-vous que votre application dispose d'un composant <GTProvider> à la racine du layout.

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

Puisque l'application utilise le routage i18n, le fournisseur doit être placé dans le fichier [locale]/layout.tsx.

Étape 2 : Ensuite, assurez-vous que votre application utilise la fonction loadTranslations pour charger les traductions. De plus, passez la locale en tant que paramètre au <GTProvider>. Vous pouvez obtenir la locale à partir de l'objet 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>
  )
}

Étape 3 : Ensuite, assurez-vous que tous vos hooks et composants sont importés depuis gt-next/client.

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

C'est important car les hooks et les composants importés depuis gt-next/client ne lisent jamais les en-têtes, qui n'existent pas au moment de la compilation pour les pages générées statiquement.

Assurez-vous d'avoir configuré correctement votre application Next.js pour utiliser la fonction getStaticParams !

C'est tout ! Votre application devrait maintenant prendre en charge la génération de site statique pour plusieurs langues !

SSG pour le routeur pages

🚧 Cette section est actuellement en construction. 🚧

Sur cette page