Aller au contenu

Configuration Next.js

Fenêtre de terminal
npm install tyndale-next
  1. Mettez à jour votre configuration Next.js

    next.config.mjs
    import { withTyndaleConfig } from 'tyndale-next/config';
    export default withTyndaleConfig({
    // your existing Next.js config
    });
  2. Ajoutez le middleware

    middleware.ts
    import { createTyndaleMiddleware } from 'tyndale-next/middleware';
    export default createTyndaleMiddleware();
    export const config = {
    matcher: ['/((?!api|_next|_tyndale|.*\\..*).*)'],
    };

    Cela gère la détection de la locale, les redirections vers des routes préfixées par la locale, et conserve la locale active dans un cookie.

  3. Ajoutez le provider serveur à votre layout

    app/[locale]/layout.tsx
    import { getDirection, TyndaleServerProvider } from 'tyndale-next/server';
    export default async function RootLayout({
    children,
    params,
    }: {
    children: React.ReactNode;
    params: Promise<{ locale: string }>;
    }) {
    const { locale } = await params;
    return (
    <html lang={locale} dir={getDirection(locale)}>
    <body>
    <TyndaleServerProvider locale={locale}>
    {children}
    </TyndaleServerProvider>
    </body>
    </html>
    );
    }

    TyndaleServerProvider charge les données de locale côté serveur. Définissez vous-même <html dir> avec getDirection(locale) dans les composants serveur ou useDirection() dans les composants client.

  • withTyndaleConfig lit tyndale.config.json, injecte les variables d’environnement au moment du build que Tyndale utilise à l’exécution, et crée un alias vers tyndale-react afin que votre application partage un contexte de provider unique
  • Le middleware redirige les requêtes vers des routes préfixées par la locale, normalise les alias de locale, et définit le cookie/header de locale pour le rendu en aval
  • TyndaleServerProvider charge les traductions côté serveur et les met à disposition de tous les composants via le contexte React