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)