Erreur lorsque la langue sélectionnée est l'anglais
Comme on ne connaît pas la langue du navigateur ou celle fixée dans le localstorage côté serveur NextJS, on génère les pages en français tout le temps.
Si l'utilisateur veut afficher en EN, alors la page générée par le client est différente de la page générée par le serveur et on a une erreur content does not match server-rendered HTML
(silencieuse en prod).
Pour résoudre ça, il faut pouvoir récupérer la langue sélectionnée par l'utilisateur au moment de la génération côté serveur.
L'Internationalized Routing offert par NextJs nous aide probablement à résoudre le problème de manière propre: https://nextjs.org/docs/advanced-features/i18n-routing
Pour un utilisateur connecté, il faut récupérer la lang
dans son profile.
Pour un utilisateur anonyme, il faut trouver comment envoyer la langue du nav et celle fixée dans le localstorage au serveur NextJS dès la première requête. Pour la langue du nav, il y a probablement un header mais pour le localstorage, ça va être difficile. Peut être en passant par un cookie plutôt ?
-
Langue en url -
Langue moment -
hreflang tags et locale maintenue pendant navigation -
NEXT_LOCALE cookie -
Langue materialui pickers