Hello
SPIP a un comportement contrariant avec les modules de langues dans la nouvelle implémentation des balises dynamiques alias CVT.
En l'occurrence il s'agit du formulaire d'inscription, et j'ai une surcharge de pass_espace_prive_bla dans un fichier lang/local_fr.php
Quand je clique sur "vous inscrire", le formulaire apparait avec la bonne surcharge.
Si je valide mal le formulaire, il me revient avec les messages d'erreurs mais les surcharges ne sont plus prises en comptes!
J'ai tracé la fonction principale du fichier inc/traduire.php pour comprende.
La première fois, les premiers appels sont:
Sep 27 08:28:46 127.0.0.1 (pid 310) traduire public/spip/ecrire:pass_vousinscrire fr
Sep 27 08:28:46 127.0.0.1 (pid 310) traduire public/spip/ecrire:syndiquer_site fr
Sep 27 08:28:46 127.0.0.1 (pid 310) traduire pass_espace_prive_bla
La 2e:
Sep 27 08:29:57 127.0.0.1 (pid 132) traduire info_obligatoire
Sep 27 08:29:57 127.0.0.1 (pid 132) traduire pass_espace_prive_bla
La première fois la langue et les modules à chercher sont spécifiés lors de la première traduction, et la surcharge fonctionne.
La 2e fois, la langue manque, les modules aussi.
C'est l'absence de langue qui est problématique, et effectivement la globale $spip_lang n'est pas définie dans le cas des actions car ecrire/public.php initialise la langue sous condition:
if ($forcer_lang AND ($forcer_lang!=='non') AND !_request('action')) {
include_spip('inc/lang');
verifier_lang_url();
}
Pourquoi ne pas l'initialiser systématiquement ?
Committo,Ergo:Sum