Locale incorrect récupérée depuis l'URL
Description du problème
Lorsque vous essayez d'accéder au paramètre locale depuis l'URL, vous pouvez rencontrer un problème où la valeur de la locale est incorrecte :
const { locale } = await params;console.log(locale); // retourne "about" au lieu de la locale attendueSolution
1. Vérifier la structure des fichiers
Assurez-vous que le chemin de votre routeur d'application Next.js suit cette structure :
src/app/[locale]/about/page.tsx2. Vérifier la configuration du middleware
Le problème survient souvent lorsque le middleware est absent ou non déclenché. Le fichier middleware doit se trouver à l'emplacement suivant :
src/middleware.tsCe middleware est responsable de la réécriture des routes lorsque prefixDefault est défini sur false. Par exemple, il réécrit /en/about en /about.
3. Modèles d'URL selon la configuration
Configuration par défaut (prefixDefault: false, noPrefix: false)
- Anglais : /about
- Français : /fr/about
- Espagnol : /es/about
Avec prefixDefault: true
- Anglais : /en/about
- Français : /fr/about
- Espagnol : /es/about
Avec noPrefix: true
- Anglais : /about
- Français : /about
- Espagnol : /about
src/app/[locale]/about/page.tsx
Pour plus de détails sur ces options de configuration, consultez la [Documentation de Configuration](/fr/doc/concept/configuration).