Configurer l’internationalisation (i18n) dans l’App Router de Next.js
Montez un site Next.js multilingue avec routes par langue, détection de la langue, dictionnaires côté serveur, sélecteur de langue, hreflang et formatage des dates et prix par région. Conçu pour ChatGPT, Claude, Gemini et Microsoft Copilot. Il comprend 5 variables personnalisables et vous pouvez le copier gratuitement en un clic.
Avancé · Code · En attente de relecture éditoriale
Prompt
Agis comme un développeur Next.js senior expérimenté dans les sites multilingues et le SEO international.
Contexte :
- Langues : {{langues}}
- Langue par défaut : {{langue_defaut}}
- Stratégie d'URL : {{strategie_url}}
- Approche : {{approche}}
- Source des textes : {{source_textes}}
Avant d'écrire du code, confirme avec moi la version de Next.js et s'il existe des routes à conserver ; si je ne le sais pas, indique ce que tu supposes.
Livrables :
1. L'arborescence avec le segment `[locale]` et l'articulation des layouts, pages et métadonnées.
2. Le fichier de middleware (ou son équivalent dans ta version) qui détecte la langue via le cookie choisi par l'utilisateur et l'en-tête Accept-Language, et redirige selon {{strategie_url}} sans boucle.
3. Le chargement des dictionnaires côté serveur, avec des clés typées pour que TypeScript signale celles qui manquent, et un repli sur la langue par défaut.
4. Un sélecteur de langue accessible qui conserve le chemin actuel et mémorise la préférence.
5. Les métadonnées SEO : `lang` sur l'élément html, URL canonique et alternatives hreflang (x-default compris) sur chaque page, et generateStaticParams pour prérendre chaque langue.
6. Le formatage des dates, nombres, devises et pluriels avec Intl ou les utilitaires de {{approche}}.
7. Une checklist avant la mise en ligne.
Contraintes :
- Ne traduis pas le vrai contenu : laisse les textes d'exemple en [À COMPLÉTER] pour chaque langue.
- Ne redirige pas les robots d'indexation selon la seule adresse IP et ne masque pas de contenu selon le pays.
- Garde les textes d'interface hors des composants, dans les dictionnaires.
Format : un bloc de code par fichier avec son chemin et une courte note sur chaque choix.Comment l'utiliser
- Indique les langues, celle par défaut et si toutes les URL doivent avoir un préfixe. 2. Choisis une bibliothèque ou tes propres dictionnaires. 3. Crée les fichiers sur une branche, teste les redirections et valide les hreflang avec un outil SEO avant la mise en ligne.
Exemple d'utilisation
Langues : fr, en, es · Par défaut : fr · URL : préfixe sauf pour la langue par défaut · Approche : next-intl · Textes : fichiers JSON dans le dépôt.
Exemple de résultat
Hypothèse : Next.js 15 et next-intl 4. Les routes se trouvent dans app/[locale]/layout.tsx et app/[locale]/page.tsx.
Routage, middleware et chargement des messages
// src/i18n/routing.ts
import { defineRouting } from 'next-intl/routing';
export const routing = defineRouting({
locales: ['fr', 'en', 'es'],
defaultLocale: 'fr',
localePrefix: 'as-needed', // /a-propos (fr), /en/..., /es/...
});
// src/middleware.ts
import createMiddleware from 'next-intl/middleware';
import { routing } from './i18n/routing';
export default createMiddleware(routing);
export const config = { matcher: ['/((?!api|_next|_vercel|.*\\..*).*)'] };
// src/i18n/request.ts
import { getRequestConfig } from 'next-intl/server';
import { hasLocale } from 'next-intl';
import { routing } from './routing';
export default getRequestConfig(async ({ requestLocale }) => {
const requested = await requestLocale;
const locale = hasLocale(routing.locales, requested) ? requested : routing.defaultLocale;
return { locale, messages: (await import(`../../messages/${locale}.json`)).default };
});
Le middleware lit d'abord le cookie NEXT_LOCALE, puis Accept-Language ; avec as-needed, le français n'a pas de préfixe et il n'y a pas de boucle de redirection. Les textes sont dans messages/fr.json, en.json et es.json, avec des valeurs [À COMPLÉTER]…
Informations clés
- Catégorie
- Programmation et développement · Next.js
- Type de résultat
- Code
- Niveau
- Avancé
- Conçu pour
- ChatGPT, Claude, Gemini et Microsoft Copilot
- Vérifié sur
- En attente de vérification éditoriale
- Variables
- Langues, Langue par défaut, Stratégie d’URL, Approche et Source des textes
- Langue
- Français
- Prix
- Gratuit, sans inscription
- Mis à jour
- 07/11/2026
Questions fréquentes
next-intl ou mes propres dictionnaires ?
Avec peu de textes et sans pluriels complexes, des dictionnaires maison suffisent. Si tu as besoin de pluriels, du format ICU, de traductions dans des composants client et de clés typées, une bibliothèque comme next-intl fait gagner du temps.
Faut-il rediriger automatiquement selon la langue du navigateur ?
C’est raisonnable à la première visite, mais respecte toujours le choix enregistré de l’utilisateur et laisse chaque URL de langue accessible directement, pour que les moteurs puissent explorer toutes les versions.
À quoi sert x-default dans les hreflang ?
Il indique aux moteurs quelle page afficher quand aucune langue ne correspond à celle de l’utilisateur, en général la page de la langue par défaut ou un sélecteur de langue.
À quoi sert ce prompt ?
Montez un site Next.js multilingue avec routes par langue, détection de la langue, dictionnaires côté serveur, sélecteur de langue, hreflang et formatage des dates et prix par région.
Avec quels outils d'IA fonctionne-t-il ?
Il est conçu pour ChatGPT, Claude, Gemini et Microsoft Copilot. Nous ne l'avons pas encore vérifié sur ces outils ; les résultats peuvent donc varier de l'un à l'autre.
Comment personnaliser le prompt ?
Cliquez sur « Personnaliser » et remplissez les variables (Langues, Langue par défaut, Stratégie d’URL, Approche et Source des textes). Le texte se met à jour instantanément et vous pouvez ensuite le copier en un clic. Les valeurs sont stockées uniquement dans votre navigateur.
Faut-il de l'expérience pour l'utiliser ?
Il est de niveau avancé : il s'adresse aux personnes expérimentées dans le domaine, capables d'évaluer et d'ajuster le résultat.
Ce prompt est-il gratuit ?
Oui. Tous les prompts de HomeCasa Prompts sont gratuits, sans inscription ni abonnement. Vous pouvez aussi les utiliser dans des projets professionnels.
Puis-je me fier au résultat de l'IA ?
Considérez-le comme un brouillon de qualité : vérifiez toujours les données, les chiffres et les affirmations importantes avant de publier ou de prendre des décisions.