[tw ↪ fix_lang_modeles_propres_5x] fix : La langue dans les modèles inclus via propre doit (…)

spip/tw

Par cerdic, le 2 septembre 2025 à 09h26min :

fix: La langue dans les modèles inclus via propre doit être celle de la boucle en cours

La langue souhaité est celle de la boucle en cours et pas celle à l’appel du squelette.

A priori un bug que l’on avait depuis longtemps mais qui passait inaperçu dans les tests unitaires legacy où l’on faisait un |propre qui ne captait pas le #ENV du squelette courant, au contraire de la compilation du traitement d’une balise #TEXTE par exemple.
L’ajout du filtre_propre_dist() (par ecrire@f602f867 )
qui récupère le #ENV du squelette pour le passer à la fonction propre() a fait apparaitre le bug dans les tests unitaires.
La fonction propre() transmet le $env aux inclusions de modèles, et quand on arrive dans recuperer_fond() celle ci change la langue si elle voit une entrée lang dans le contexte
On unset donc $env['lang'] dans propre() et typo() si il y en a un à l’appel, pour laisser la $GLOBALS['spip_lang'] faire son travail

Voir tests/legacy/unit/balises/balise_dyn_langue_modele.html · dd1f8c8d6b8b4f854261602f52f392d49b2be938 · spip-contrib-extensions / tests · GitLab

Refs: !4893
(cherry picked from commit 93f19f0173b749ed8a22be1568524fc7528cc065)

Modifié
inc/texte.php

Détails : fix: La langue dans les modèles inclus via propre doit être celle de la boucle en cours (950ced9b) · Validations · spip / tw · GitLab