Aller au contenu

PD-227 — Rétrospective

1. Contexte

Champ Valeur
Story ID PD-227
Titre Internationalisation FR/EN
Domaine site-vitrine
Projet site
Date complétion 2025-12-19
Verdict ACCEPTÉ

2. Métriques

Métrique Valeur
Écarts bloquants 1 (E-01 liens FR↔EN)
Écarts majeurs 2 (E-02, E-03)
Écarts mineurs 1 (E-04)
Délai correction 1 jour

3. Learnings clés

  • Slugs localisés cassent le mécanisme de bascule : Le remplacement de préfixe (/fr//en/) impose des slugs identiques. Convention à adopter : slugs identiques ou mapping explicite.

  • Validation parité i18n dès le premier déploiement : Le script de validation doit être implémenté avant la première MR, pas après la revue d'acceptabilité.

  • Hébergement statique impose des contraintes sur les redirections : Pas d'accès aux headers HTTP en SSG, pas de 302 serveur natif. Astro.redirect génère des meta refresh HTML.

  • Cas "langue non supportée" souvent oublié : Le middleware pour rediriger /de/* vers /fr/* doit être prévu explicitement.

4. Patterns applicables

Nouveau pattern : i18n Astro avec slugs unifiés

// LangSwitcher.astro - fonctionne UNIQUEMENT si slugs identiques
const currentPath = Astro.url.pathname;
const otherLang = lang === 'fr' ? 'en' : 'fr';
const otherPath = currentPath.replace(`/${lang}/`, `/${otherLang}/`);

Nouveau pattern : Script validation parité i18n

#!/bin/bash
# validate-i18n.sh
LOCALES="fr en"
REFERENCE_LOCALE="fr"

for locale in $LOCALES; do
  diff <(ls src/pages/$REFERENCE_LOCALE/) <(ls src/pages/$locale/)
done

5. Signal CLAUDE.md

Priorité haute : Convention slugs i18n.

### i18n — Convention slugs identiques (2026-02-XX)

Pour le site vitrine et tout projet SSG avec bascule de langue :
- **Slugs identiques** : `/fr/legal-notice` et `/en/legal-notice`
- **Pas de slugs localisés** : `/fr/mentions-legales` INTERDIT
- **Validation CI** : `scripts/validate-i18n.sh` bloque si parité non respectée

Le mécanisme de bascule par remplacement de préfixe ne fonctionne qu'avec des slugs identiques.

6. Conclusion

PD-227 a livré l'internationalisation FR/EN après correction de 4 écarts. L'écart bloquant E-01 (slugs localisés) a révélé une hypothèse implicite du plan. La convention "slugs identiques" et le script de validation parité sont désormais obligatoires pour tout ajout de page.


Rétrospective générée 2026-02-19 (Étape 10 batch site-vitrine)