Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TECH] Use canonical locales by default #746

Open
wants to merge 7 commits into
base: dev
Choose a base branch
from

Conversation

lego-technix
Copy link
Contributor

@lego-technix lego-technix commented Mar 11, 2025

🥞 Problème

Le code de PixSite n'est pas complètement conforme à l'ADR https://github.com/1024pix/pix/blob/dev/docs/adr/0040-locales-languages.md dans le sens où les locales des différents pix-sites ne sont pas définies en forme canonique (c'est à dire fr-FR, fr-BE, nl-BE, etc.). Cela induit notamment des lourdeurs dans le code et des risques car on ne sait jamais vraiment si la locale manipulées en version canonique (comme c'est requis par l'ADR) ou dans une version non-normalisée.

🥓 Proposition

La solution proposée est de manipuler dans le code systématiquement des locales sous forme canonique en normalisant la locale uniquement à « l'entrée » à la lecture du cookie de l'utilisateur, car on ne peut avoir confiance dans une valeur en provenance d'un utilisateur.

Ainsi, notamment, on n'est plus obliger de normaliser la valeur de la locale lors de l'écriture dans le cookie.

🧃 Remarques

Au niveau de la configuration Nginx, des redirections HTTP permanentes (fr-befr-BE, nl-benl-BE) sont mises en place de manière à rediriger les utilisateurs vers les pages HTML avec des URL en version canonique et que leurs navigateurs gardent cette redirection en mémoire, ce qui évitera aux pix-sites d'exécuter des négociations de locale et des traitements inutiles, économisant ainsi du temps et de l'énergie.

😋 Pour tester

ℹ️ Tous les tests sont à accomplir en navigation privée pour ne pas être pollué par les données persistantes de son navigateur.

  • Vérifier que la présence d'un cookie locale redirige bien l'utilisateur sur la version localisée du site, pour cela :
    1. Se rendre sur Pix Site .org (https://site-pr746.review.pix.org/),
    2. Choisir la locale Belgique (Français),
    3. Constater qu'on arrive bien sur la version correspondant à la locale fr-BE du site (c'est à dire sur https://site-pr746.review.pix.org/fr-BE/)
    4. Se rendre à nouveau à la racine de Pix Site .org (https://site-pr746.review.pix.org/), en faisant la modification de l'URL dans la barre d'adresse de son navigateur,
    5. Constater qu'on revient bien sur la version version correspondant à la locale fr-BE du site.
  • Naviguer parmi les versions en différentes locales et vérifier que les URL sont maintenant toujours en forme canonique, c'est à dire avec des majuscules à la fin pour les formes suivantes : fr-FR, fr-BE, nl-BE.

Faire enfin une passe de non-régression suivant les différents configurations des Pix Sites :

  • suivant les différents sites : Pix Site et Pix Pro
  • suivant les différents domaines : .fr et .org
  • suivant les différents facteurs de taille d'affichage : format grand ou format petit (qui utilise alors le composant BurgerMenu)
  • avec les différentes locales

En effet les tests de ce projet sont encore peu couvrants et notamment quasiment absents pour Pix Pro.

@lego-technix lego-technix self-assigned this Mar 11, 2025
@lego-technix lego-technix force-pushed the use-canonical-locales-by-default branch from 1737db7 to d3c8fdb Compare March 11, 2025 14:03
@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles sur scalingo https://dashboard.scalingo.com/apps/osc-fr1/pix-site-review-pr746/environment

1 similar comment
@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles sur scalingo https://dashboard.scalingo.com/apps/osc-fr1/pix-site-review-pr746/environment

@lego-technix lego-technix force-pushed the use-canonical-locales-by-default branch from d3c8fdb to 3dadff4 Compare March 11, 2025 14:11
@lego-technix lego-technix reopened this Mar 11, 2025
@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles sur scalingo https://dashboard.scalingo.com/apps/osc-fr1/pix-site-review-pr746/environment

@lego-technix lego-technix force-pushed the use-canonical-locales-by-default branch from 8ee41f4 to 2d8b798 Compare March 21, 2025 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants