Hello,
Suite à la mise en place du var_mode=traduction je me suis aperçu d’un truc bizarre dans la fonction traduire() :
-
Si on écrit dans un squelette HTML un module de langue sous la forme <:item:> le compilateur fournit à la fonction traduire l’argument $ori qui contient public|spip|ecrire:item.
-
Si dans un fichier HTML on utilise un filtre comme affdate() sur un champ date toute la traduction des mois par exemple est faite en PHP. Dans ce cas, l’argument $ori passé à la fonction traduire contient item uniquement.
Dans ce cas, le code de la fonction traduire associe à cet item les modules spip ecrire et spip et pas du tout public. Ceci n’est a priori pas du tout cohérent parce que l’item est bien issu du public et pas uniquement du privé. Il n’y a pas de rapport html=public et php=privé.
Donc, à mon avis on devrait corriger la fonction traduire en ajoutant aussi public dans le cas cité.
D’ailleurs, à ce propos, Denisb a corrigé le débusqueur (commit 20404) en rajoutant à un item de langue (message), le module public car sinon il avait un blink rouge !
En outre, qu’est ce qui justifie encore la séparation entre prive, public et spip ? Est ce vraiment un souci de performance de tout ramener dans un module unique nommé spip surtout quand on a purgé SPIP de tous les items des plugins-dist ?
Pour la compatiblité on pourrait dans traduire gérer cette transition sans souci.