[spip-dev] (bug?) Formulaires CVT et Langues

Bonjour,

Je suis actuellement confronté à un bug (du moins je le suppose) avec les formulaires CVT, sur une SPIP 2.0.7 à jour (svn).

Lorsque je mets <formulaire|toto> dans un article, le contenu HTML du formulaire prend bien la langue de l'article en question. Cependant, les chaines de langues _T() appelées depuis verifier() ou traiter() restent en français (langue principale du site), si bien que lorsqu'on valide le formulaire, on se retrouve avec 2 langues différentes d'affichées.

Pour tester :
- langue du site en français,
- article traduit en anglais avec <formulaire|toto> dedans

et formulaires/toto.html et toto.php ci dessous :

<div class='formulaire_spip formulaire_toto'>
    [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    <form method='post' action='#ENV{action}'><div>
        #ACTION_FORMULAIRE{#ENV{action}}
        En quelle langue est écrit oui : "<:item_oui:>" #ENV{lang}.
      <p class="boutons"><input type='submit' class='submit' value='<:bouton_valider:>' /></p>
    </div></form>
</div>

<?php

function formulaires_toto_charger_dist(){
  return array();
}

function formulaires_toto_verifier_dist(){
  return array('message_erreur' => "Depuis verifier ou traiter : '" . _T('item_oui') . "' avec '".$GLOBALS['spip_lang']."'");
}

?>

Une idée du problème (s'il y a) ?

ah oui, ça pourrait bien être un oubli de conception...
comme ça, je dirais qu'il faudrait sauvegarder le contexte de langue dans les args (un array_shift) pour le restaurer avant l'appel (un array_unshift) a verifier et traiter.

Cédric

c'était le contraire...
Si tu peux tester cela :

Index: balise/formulaire_.php

Bonsoir,

cedric.morin@yterium.com a écrit :

(...)

                return false; // continuons le hit comme si de rien etait

s/etait/n'etait/g

==>

cedric.morin@yterium.com a écrit :

c'était le contraire...
Si tu peux tester cela :

Presque...

Voici ce qui fonctionne chez moi (2.0.7) :

Index: balise/formulaire_.php