Changeset 34351 in spip-zone


Ignore:
Timestamp:
Jan 10, 2010, 12:25:51 PM (10 years ago)
Author:
denisb@…
Message:

amélioration de la regexp de recherche d'item (on récupère désormais des utilisations complexes de type _T("item_de_langue9' . is_string($val) ? '_'.$val : )) ;
on passe la liste des résultats en blocs pliables/dépliables ;
suite de factorisation/simplification de la fonction inc_langonet_verifier_items()

Location:
_plugins_/langonet
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/langonet/formulaires/langonet_verifier.php

    r34338 r34351  
    4646        // Les REGEXP de recherche de l'item de langue (voir le fichier regexp.txt)
    4747        // pour les fichiers .html et .php
    48         define("_TROUVER_ITEM_HP", ",(?:<:|_[T|U]\(['\"])(?:([a-z0-9_]+):)?([a-z0-9_]+)((?:{(?:[^\|=>]*=[^\|>]*)})?(?:(?:\|[^>]*)?)(?:['\"]\s*\.\s*\\$[a-z0-9_]+)?),iS");
     48        define("_TROUVER_ITEM_HP", ",(?:<:|_[T|U]\(['\"])(?:([a-z0-9_]+):)?([a-z0-9_]+)((?:{(?:[^\|=>]*=[^\|>]*)})?(?:(?:\|[^>]*)?)(?:['\"]\s*\.\s*[^\s]+)?),iS");
    4949        // pour les fichiers .xml
    5050        define("_TROUVER_ITEM_X", ",<[a-z0-9_]+>[\n|\t|\s]*([a-z0-9_]+):([a-z0-9_]+)[\n|\t|\s]*</[a-z0-9_]+()>,iS");
     
    102102                                $texte .= _T('langonet:message_ok_non_utilises_n', array('nberr' => count($resultats['item_non']), 'ou_fichier' => $resultats['ou_fichier'], 'langue' => $resultats['langue'])) . "\n<br /><br />\n";
    103103                        }
     104                        $texte .= "</p>\n";
    104105                        asort($resultats['item_non'], SORT_STRING);
    105106                        foreach($resultats['item_non'] as $_cle => $_item) {
    106                                 $texte .= '&#8226; ' . $_item . '<br />';
     107                                $texte .= "<div class=\"titrem\">" . $_item . "</div>\n";
    107108                        }
    108109                }
     
    110111                        $texte .= _T('langonet:message_ok_non_utilises_0', array('ou_fichier' => $resultats['ou_fichier'], 'langue' => $resultats['langue']));
    111112                }
    112                 $texte .= "\n<br /><br />\n";
     113                $texte .= "\n<br /><br />\n</p>\n";
     114                $texte .= "<p class=\"reponse_formulaire reponse_formulaire_ok\">\n";
    113115                // Liste des items utilises sans certitude
    114116                if (count($resultats['item_peut_etre']) > 0) {
     
    129131        return $texte;
    130132}
    131 
    132133function afficher_lignes($tableau) {
    133         // la liste des lignes des fichiers contenant les items de langue
    134         $liste_lignes = '';
     134        include_spip('inc/layer');
     135        // detail des fichiers utilisant les items de langue
     136        $liste_lignes = "</p>\n";
    135137        ksort($tableau);
    136138        foreach ($tableau as $item => $detail) {
    137                 $liste_lignes .= "<br />\n&#8226; " .$item. "\n</p>\n";
     139                $liste_lignes .= bouton_block_depliable($item, false);
     140                $liste_lignes .= debut_block_depliable(false);
    138141                foreach ($tableau[$item] as $fichier => $ligne) {
    139                         $liste_lignes .= "<p style=\"padding-left:3em;font-weight:bold;\">" .$fichier. "</p>\n";
     142                        $liste_lignes .= "<p style=\"padding-left:2em;font-weight:bold;\">" .$fichier. "</p>\n";
    140143                        foreach ($tableau[$item][$fichier] as $ligne_n => $ligne_t) {
    141144                                $L = intval($ligne_n+1);
    142145                                $liste_lignes .= "<p style=\"padding-left:9em;text-indent: -5em;\">L.". sprintf("%04s", $L) .":<span style=\"padding-left:1em;\">".htmlentities($ligne_t[0]). "</span></p>\n";
    143146                        }
    144                         $liste_lignes .= "<p class=\"reponse_formulaire reponse_formulaire_ok\">\n";
    145147                }
     148                $liste_lignes .= fin_block();
    146149        }
    147         $liste_lignes .= "\n<br /><br />\n";
     150        $liste_lignes .= "<p class=\"reponse_formulaire reponse_formulaire_ok\">\n";
    148151       
    149152        return $liste_lignes;
  • _plugins_/langonet/inc/langonet_verifier_items.php

    r34337 r34351  
    6464        if ($verification == 'definition') {
    6565                // On construit la liste des items utilises mais non definis
    66                 $item_non = array();
    67                 $item_peut_etre = array();
    6866                foreach ($utilises['items'] as $_cle => $_valeur) {
    69                         $defini = true;
    70                         $avec_certitude = true;
    7167                        if (!$GLOBALS[$var_source][$_valeur]) {
    7268                                if (!$utilises['suffixes'][$_cle]) {
    7369                                        // L'item est vraiment non defini et c'est une erreur
    74                                         $defini = false;
     70                                        $item_non[] = $_valeur;
     71                                        if (is_array($item_tous[$_valeur])) {
     72                                                $fichier_non[$_valeur] = $item_tous[$_valeur];
     73                                        }
    7574                                }
    7675                                else {
    77                                         // L'item trouve est utilise dans un contexte variable (ie _T('meteo_'.$statut))
    78                                         // Il ne peut etre trouve directement dans le fichier de langue,
    79                                         // donc on verifie que des items de ce "type" existent dans
    80                                         // le fichier de langue
    81                                         $defini = false;
     76                                        // L'item trouve est utilise dans un contexte variable
     77                                        // (par exemple : _T('langonet_'.$variable))
     78                                        // Il ne peut etre trouve directement dans le fichier de
     79                                        // langue, donc on verifie que des items de ce "type"
     80                                        // existent dans le fichier de langue
    8281                                        foreach($GLOBALS[$var_source] as $_item => $_traduction) {
    8382                                                if (substr($_item, 0, strlen($_valeur)) == $_valeur) {
    84                                                         $defini = true;
    85                                                         $avec_certitude = false;
     83                                                        $item_peut_etre[] = $_valeur;
     84                                                        if (is_array($item_tous[$_valeur])) {
     85                                                                $fichier_peut_etre[$_item] = $item_tous[$_valeur];
     86                                                        }
    8687                                                }
    8788                                        }
    88                                 }
    89                         }
    90                         if (!$defini) {
    91                                 $item_non[] = $_valeur;
    92                                 if (is_array($item_tous[$_valeur])) {
    93                                         $fichier_non[$_valeur] = $item_tous[$_valeur];
    94                                 }
    95                         }
    96                         if (!$avec_certitude) {
    97                                 $item_peut_etre[] = $_valeur;
    98                                 if (is_array($item_tous[$_valeur])) {
    99                                         $fichier_peut_etre[$_valeur] = $item_tous[$_valeur];
    10089                                }
    10190                        }
     
    10493        else {
    10594                // On construit la liste des items definis mais plus utilises
    106                 $item_non = array();
    107                 $item_peut_etre = array();
    108                 $fichier_non = array();
    10995                foreach ($GLOBALS[$var_source] as $_item => $_traduction) {
    110                         $utilise = true;
    111                         $avec_certitude = true;
    11296                        if (!in_array ($_item, $utilises['items'])) {
    113                                 // L'item est soit non utilise, soit utilise dans un contexte variable (ie _T('meteo_'.$statut))
     97                                // L'item est soit non utilise, soit utilise dans un contexte
     98                                // variable (par exemple : _T('langonet_'.$variable))
    11499                                $contexte_variable = false;
    115100                                foreach($utilises['items'] as $_cle => $_valeur) {
     
    122107                                }
    123108                                if (!$contexte_variable) {
    124                                         // L'item est vraiment non utilise et c'est une erreur
    125                                         $utilise = false;
     109                                        // L'item est vraiment non utilise
     110                                        $item_non[] = $_item;
    126111                                }
    127112                                else {
    128                                         $avec_certitude = false;
    129                                 }
    130                         }
    131                         if (!$utilise) {
    132                                 $item_non[] = $_item;
    133                         }
    134                         if (!$avec_certitude) {
    135                                 $item_peut_etre[] = $_item;
    136                                 if (is_array($item_tous[$_valeur])) {
    137                                         $fichier_peut_etre[$_item] = $item_tous[$_valeur];
     113                                        // L'item est utilise dans un contexte variable
     114                                        $item_peut_etre[] = $_item;
     115                                        if (is_array($item_tous[$_valeur])) {
     116                                                $fichier_peut_etre[$_item] = $item_tous[$_valeur];
     117                                        }
    138118                                }
    139119                        }
  • _plugins_/langonet/lang/langonet_fr.php

    r34341 r34351  
    3232        'label_verification_utilisation' => 'D&eacute;tection des d&eacute;finitions obsol&egrave;tes',
    3333        'label_verification' => 'Type de v&eacute;rification',
     34        'langonet_test1' => 'TEST : Cet item de langue est bien d&eacute;fini dans le fichier de langue, mais est utilis&eacute; sous forme "complexe" dans les fichiers du r&eacute;pertoire scann&eacute;.',
     35        'langonet_test2' => 'TEST : Cet item de langue est bien d&eacute;fini dans le fichier de langue, mais est utilis&eacute; sous forme "complexe" dans les fichiers du r&eacute;pertoire scann&eacute;.',
    3436        'legende_generer' => 'G&eacute;n&eacute;ration des fichiers de langue',
    3537        'legende_verifier' => 'V&eacute;rification des items de langue',
     
    4446        'message_ok_definis_incertains_n' => 'Les @nberr@ items de langue ci-dessous sont utilis&eacute;s dans un contexte complexe et pourraient &ecirc;tre non d&eacute;finis dans le fichier de langue  &laquo;<em>@langue@</em>&raquo;. Nous vous invitons &agrave; les v&eacute;rifier un par un :',
    4547        'message_ok_definis_incertains_1' => 'L\'item de langue ci-dessous est utilis&eacute; dans un contexte complexe et pourrait &ecirc;tre non d&eacute;fini dans le fichier de langue  &laquo;<em>@langue@</em>&raquo;. Nous vous invitons &agrave; le v&eacute;rifier :',
    46         'message_ok_definis_incertains_0' => 'Aucun item de langue n\'est utilis&eacute; dans un contexte complexe (par exemple :  _T(\'@module@_\'.$statut)).',
     48        'message_ok_definis_incertains_0' => 'Aucun item de langue n\'est utilis&eacute; dans un contexte complexe (par exemple :  _T(\'@module@_\'.$variable)).',
    4749        'message_ok_non_definis_n' => 'Les @nberr@ items de langue ci-dessous sont utilis&eacute;s dans des fichiers du r&eacute;pertoire &laquo;<em>@ou_fichier@</em>&raquo; mais ne sont pas d&eacute;finis dans le fichier de langue &laquo;<em>@langue@</em>&raquo; :',
    4850        'message_ok_non_definis_1' => 'L\'item de langue ci-dessous est utilis&eacute; dans des fichiers du r&eacute;pertoire &laquo;<em>@ou_fichier@</em>&raquo; mais n\'est pas d&eacute;fini dans le fichier de langue &laquo;<em>@langue@</em>&raquo; :',
     
    5355        'message_ok_utilises_incertains_n' => 'Les @nberr@ items de langue ci-dessous sont peut-&ecirc;tre utilis&eacute;s dans un contexte complexe. Nous vous invitons &agrave; les v&eacute;rifier un par un :',
    5456        'message_ok_utilises_incertains_1' => 'L\'item de langue ci-dessous est peut-&ecirc;tre utilis&eacute; dans un contexte complexe. Nous vous invitons &agrave; le v&eacute;rifier :',
    55         'message_ok_utilises_incertains_0' => 'Aucun item de langue n\'est utilis&eacute; dans un contexte complexe (par exemple :  _T(\'@module@_\'.$statut)).',
     57        'message_ok_utilises_incertains_0' => 'Aucun item de langue n\'est utilis&eacute; dans un contexte complexe (par exemple :  _T(\'@module@_\'.$variable)).',
    5658        'message_nok_plugin_inactif' => 'Le plugin &laquo;<em>@plugin@</em>&raquo; n\'est pas activ&eacute;. Activez-le avant de continuer les v&eacute;rifications.',
    57         'meteo_test' => 'TEST : Cet item de langue est bien d&eacute;fini dans le fichier de langue, mais est utilis&eacute; sous forme "complexe" dans les fichiers du r&eacute;pertoire scann&eacute;.',
    5859
    5960// O
  • _plugins_/langonet/regexp.txt

    r34326 r34351  
    77la regexp suivante (pour scanner les fichiers .html et .php) :
    88
    9 ",(?:<:|_[T|U]\(['\"])(?:([a-z0-9_]+):)?([a-z0-9_]+)((?:{(?:[^\|=>]*=[^\|>]*)})?(?:(?:\|[^>]*)?)(?:['\"]\s*\.\s*\\$[a-z0-9_]+)?),iS"
     9",(?:<:|_[T|U]\(['\"])(?:([a-z0-9_]+):)?([a-z0-9_]+)((?:{(?:[^\|=>]*=[^\|>]*)})?(?:(?:\|[^>]*)?)(?:['\"]\s*\.\s*[^\s]+)?),iS"
    1010
    11 à partir des utilisations possibles des items de langue listées ci-dessous :
     11ˆ partir des utilisations possibles des items de langue listŽes ci-dessous :
    1212
    1313_T('pluga:item_de_langue1', array('dest'=>$dest, 'bli' => 'blo'))
     
    1919_T("item_de_langue7_" . $truc[$bla].'n')
    2020_U("item_de_langue8")
     21_T("item_de_langue9' . is_string($val) ? '_'.$val : '')
    2122
    2223produit le tableau :
     
    3031             [6]=>
    3132             [7]=>
     33             [8]=>
    3234
    3335[2]=> array  [0]=>item_de_langue1
     
    3941             [6]=>item_de_langue7_
    4042             [7]=>item_de_langue8
     43             [8]=>item_de_langue9
    4144
    4245[3]=> array  [0]=>
     
    4851             [6]=>" . $truc
    4952             [7]=>
     53             [8]=>' . is_string($val)
    5054
    5155-------------------------
     
    5458",<[a-z0-9_]+>[\n|\t|\s]*([a-z0-9_]+):([a-z0-9_]+)[\n|\t|\s]*</[a-z0-9_]+()>,iS"
    5559
    56 à partir des utilisations possibles des items de langue listées ci-dessous :
     60ˆ partir des utilisations possibles des items de langue listŽes ci-dessous :
    5761
    5862<label>module:item_de_langue1</label>
     
    8185
    8286autorise le scan des fichiers .html, .php ou .xml
    83 (pour y chercher des items de langue utilisés)
    84 dans toute l'arborescence demandée SAUF SI ces fichiers
    85 se trouvent dans un sous-répertoire terminal de nom :
     87(pour y chercher des items de langue utilisŽs)
     88dans toute l'arborescence demandŽe SAUF SI ces fichiers
     89se trouvent dans un sous-rŽpertoire terminal de nom :
    8690  charsets/    (ex. : ecrire/charsets/)
    8791  lang/        (ex. : ecrire/lang/ ; squelettes/lang/ ; plugins/langonet/lang/)
Note: See TracChangeset for help on using the changeset viewer.