Changeset 89291 in spip-zone


Ignore:
Timestamp:
May 10, 2015, 4:42:53 PM (4 years ago)
Author:
eric@…
Message:

Mise à jour complète de la vérification des utilisations.
Il ne reste que l'affichage de l'extrait qui est mal positionné car la colonne n'est pas identifiée dans l'occurrence.

Location:
_plugins_/langonet/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/langonet/trunk/formulaires/inc-resultats_verifier_utilisation.html

    r81998 r89291  
    44<p>
    55        [(#GET{arborescence}|count
    6                 |singulier_ou_pluriel{langonet:info_verification_utilisation_arbo_1, langonet:info_verification_utilisation_arbo_n})]
     6                |singulier_ou_pluriel{langonet:info_verification_utilisation_arbo_1, langonet:info_verification_utilisation_arbo_n,     nb, #ARRAY{module, #ENV{resultats/module}}})]
    77</p>
    88<B_arborescences>
     
    1313</ul>
    1414</B_arborescences>
    15 [<p>
    16         (#ENV*{corrections/explication})
    17         [(#BOUTON_ACTION{
    18                 <:langonet:bouton_corriger:>,
    19                 #URL_ACTION_AUTEUR{langonet_telecharger, #ENV{corrections/fichier}},
    20                 '', '', ''})]
    21 </p>]
    2215
    23 <BOUCLE_pertinences(DATA) {liste non,peut_etre}{par cle}>
    24         #INCLURE{fond=prive/squelettes/liste/items_utilisation,
     16#SET{colspan, #ARRAY{non, 0, non_mais, 3, peut_etre, 2}}
     17<BOUCLE_pertinences(DATA) {liste non,non_mais,peut_etre}{par cle}>
     18        [(#INCLURE{fond=prive/squelettes/liste/items_utilisation,
    2519                items=#ENV{resultats/occurrences_#VALEUR},
     20                corrections=#ENV{corrections},
    2621                pertinence=#VALEUR,
     22                colspan=#GET{colspan}|table_valeur{#VALEUR},
    2723                module=#ENV{resultats/module},
    28                 env}
     24                env})]
    2925</BOUCLE_pertinences>
  • _plugins_/langonet/trunk/inc/langonet_verifier_items.php

    r89219 r89291  
    322322}
    323323
    324 function calculer_commentaire_utilisation($occurrences) {
    325         $commentaire = '<span>' . _T('langonet:info_utilises_non_module_nok') . '</span>';
    326         if ($occurrences) {
    327                 $commentaire .= '<ul>';
    328                 foreach ($occurrences as $_cle => $_valeur) {
    329                         foreach ($_valeur as $_ligne => $_occurence) {
    330                                 $commentaire .=
    331                                         '<li>' .
    332                                         $_cle .
    333                                         ' - L' . $_ligne .
    334                                         ' - ' . strtolower(_T('langonet:label_module')) . ' : ' . $_occurence[0][1] .
    335                                         '</li>';
    336                         }
    337                 }
    338                 $commentaire .= '</ul>';
    339         }
    340         return $commentaire;
    341 }
    342324
    343325/**
     
    393375                                        // Cas 2- : l'item est utilise avec un module différent que celui en cours
    394376                                        // de vérification ce qui peut révéler une erreur.
    395                                         // On renvoie les occurrences en cause pour affichage complet.
    396                                         $item_non_mais[$_raccourci][] = $_traduction;
    397                                         $item_non_mais[$_raccourci][] = array_intersect_key($utilisations['occurrences'], array_flip($items_suspects));
     377                                        // On renvoie les occurrences en cause pour affichage complet en reconstruisant le
     378                                        // tableau afin qu'il soit de même format que celui des items peut_etre.
     379                                        $occurrences_suspectes = array_intersect_key($utilisations['occurrences'], array_flip($items_suspects));
     380                                        foreach ($occurrences_suspectes as $_occurrences) {
     381                                                foreach ($_occurrences as $_fichier => $_ligne) {
     382                                                        foreach ($_ligne as $_no_ligne => $_occurrence) {
     383                                                                if (!isset($item_non_mais[$_raccourci][$_fichier])) {
     384                                                                        // Première occurrence dans ce fichier
     385                                                                        $item_non_mais[$_raccourci][$_fichier] = $_ligne;
     386                                                                } elseif (!isset($item_non_mais[$_raccourci][$_fichier][$_no_ligne])) {
     387                                                                        // Cette ligne n'a pas encore d'occurrence
     388                                                                        $item_non_mais[$_raccourci][$_fichier][$_no_ligne] = $_occurrence;
     389                                                                } else {
     390                                                                        // Cette ligne avait déjà une occurrence
     391                                                                        $item_non_mais[$_raccourci][$_fichier][$_no_ligne] = array_merge($item_non_mais[$_raccourci][$_fichier][$_no_ligne], $_occurrence);
     392                                                                }
     393                                                        }
     394                                                }
     395                                        }
    398396                                } else {
    399397                                        // Cas 1- : on renvoie uniquement la traduction afin de l'afficher dans les résultats.
     
    406404                }
    407405        }
    408 
     406$a=1;
    409407        return array(
    410408                        'occurrences_non' => $item_non,
  • _plugins_/langonet/trunk/lang/langonet_fr.php

    r89151 r89291  
    6363        'info_tradlang_statut_new' => 'item non encore traduit',
    6464        'info_verification_l' => 'Vous avez choisi de rechercher les cas d\'utilisation de la fonction _L() dans les fichiers PHP de l\'arborescence <code>@arborescence@</code>.',
    65         'info_verification_utilisation_arbo_1' => 'Vous avez choisi de rechercher les items de langue obsolètes dans les fichiers de l\'arborescence :',
    66         'info_verification_utilisation_arbo_n' => 'Vous avez choisi de rechercher les items de langue obsolètes dans les fichiers des arborescences :',
     65        'info_verification_utilisation_arbo_1' => 'Vous avez choisi de rechercher les items de langue du module <code>@module@</code> non utilisés dans les fichiers de l\'arborescence :',
     66        'info_verification_utilisation_arbo_n' => 'Vous avez choisi de rechercher les items de langue du module <code>@module@</code> non utilisés dans les fichiers des arborescences :',
    6767        'info_verification_definition_arbo_1' => 'Vous avez choisi de rechercher les items de langue non définis mais utilisés dans les fichiers de l\'arborescence :',
    6868        'info_verification_definition_arbo_n' => 'Vous avez choisi de rechercher les items de langue non définis mais utilisés dans les fichiers des arborescences :',
    6969        'info_verifier' => 'Cette option vous permet de vérifier les fichiers de langue d\'un module donné sous deux angles complémentaires. D\'une part, il est possible de vérifier si des items de langue utilisés dans un groupe de fichiers (un plugin, par exemple) ne sont pas définis dans le fichier de langue idoine, et d\'autre part, que certains items de langue définis ne sont plus utilisés.',
    7070        'info_verifier_l' => 'Cette option vous permet de lister et de corriger toutes les utilisations de la fonction _L() dans les fichiers PHP d\'une arborescence donnée.',
    71         'info_utilises_peut_etre' => 'Les items de langue ci-dessous sont peut-être obsolètes. Néanmoins, il est possible qu\'ils soient en fait utilisés dans un contexte complexe comme par exemple :  <code>_T(\'@module@:item_\'.$variable))</code>. Nous vous invitons donc à les vérifier un par un en utilisant les cas d\'utilisations affichés en regard de chaque item de langue suspects.',
    72         'info_utilises_non' => 'Les items de langue ci-dessous sont obsolètes. Néanmoins, il est possible que cela soit dû à une absence de détection sachant qu\'aujourd\'hui les expressions de langue écrites sur plusieurs lignes ne sont pas recensées. Nous vous invitons donc à vérifier le code.',
     71        'info_utilises_non' => 'Les items de langue ci-dessous sont <strong>obsolètes</strong>, c\'est-à-dire non utilisés avec le module <code>@module@</code> (par exemple, <code><:@module@:raccourci:></code>).<br />Néanmoins, il est possible que cela soit dû à une absence de détection sachant qu\'aujourd\'hui les expressions de langue écrites sur plusieurs lignes ne sont pas recensées. Nous vous invitons donc à vérifier le code.',
     72        'info_utilises_non_mais' => 'Les items de langue ci-dessous ne sont <strong>pas utilisés avec le module <code>@module@</code></strong>.<br />Il est donc possible que l\'utilisation d\'un autre module soit une erreur. Nous vous invitons donc à les passer un par un en vérifiant les cas d\'utilisations affichés en regard de chaque item de langue suspects.',
     73        'info_utilises_peut_etre' => 'Les items de langue ci-dessous sont <strong>peut-être obsolètes</strong>.<br />Néanmoins, il est possible qu\'ils soient en fait utilisés dans un contexte complexe comme par exemple :  <code>_T(\'@module@:item_\'.$variable))</code>. Nous vous invitons donc à les passer un par un en vérifiant les cas d\'utilisations affichés en regard de chaque item de langue suspects.',
    7374        'info_utilises_non_module_nok' => 'Cet item est quand même utilisé avec un autre module de langue. Nous vous conseillons de vérifier si cela est une erreur.',
    7475
     
    116117        'message_nok_item_trouve' => 'Aucun item de langue ne correspond à la recherche !',
    117118        'message_nok_corrections' => 'Les corrections n\'ont pas pas pu être intégrées dans le fichier de langue concerné.',
     119        'message_ok_corrections_fonction_l' => 'Les items construits à partir des cas d\'utilisation de la fonction _L() ont été intégrés dans le fichier de langue <code>@fichier@</code>.',
     120        'message_ok_corrections_utilisation' => 'La vérification a produit un fichier de langue corrigé <code>@fichier@</code> dans lequel les items obsolètes ont été mis en commentaire.',
    118121        'message_ok_definis_incertains_0' => 'Aucun item de langue n\'est utilisé dans un contexte complexe, comme par exemple, _T(\'@module@:item_\'.$variable).',
    119122        'message_ok_definis_incertains_1' => 'L\'item de langue ci-dessous est utilisé dans un contexte complexe et pourrait être non défini dans le fichier de langue  «<em>@langue@</em>». Nous vous invitons à le vérifier :',
     
    135138        'message_ok_non_definis_1' => 'L\'item de langue du module «<em>@module@</em>» affiché ci-dessous est utilisé dans des fichiers du répertoire «<em>@ou_fichier@</em>» mais n\'est pas défini dans le fichier de langue «<em>@langue@</em>» :',
    136139        'message_ok_non_definis_n' => 'Les @nberr@ items de langue du module «<em>@module@</em>» affichés ci-dessous sont utilisés dans des fichiers du répertoire «<em>@ou_fichier@</em>» mais ne sont pas définis dans le fichier de langue «<em>@langue@</em>» :',
    137         'message_ok_utilises_non_0' => 'Aucun item de langue obsolète n\'a été détecté',
    138         'message_ok_non_utilises_0s' => 'Tous les items de langue définis  dans le fichier de langue «<em>@langue@</em>» sont bien utilisés dans les fichiers des répertoires «<em>@ou_fichier@</em>».',
    139         'message_ok_utilises_non_1' => 'Un seul item de langue obsolète',
    140         'message_ok_non_utilises_1s' => 'L\'item de langue ci-dessous est bien défini dans le fichier de langue «<em>@langue@</em>», mais n\'est pas utilisé dans les fichiers des répertoires «<em>@ou_fichier@</em>» :',
    141         'message_ok_utilises_non_n' => '@nberr@ items de langue obsolètes',
    142         'message_ok_non_utilises_ns' => 'Les @nberr@ items de langue ci-dessous sont bien définis dans le fichier de langue «<em>@langue@</em>», mais ne sont pas utilisés dans les fichiers des répertoires «<em>@ou_fichier@</em>» :',
    143140        'message_ok_nonmais_definis_0' => 'Les fichiers du répertoire «<em>@ou_fichier@</em>» n\'utilisent aucun item de langue correctement défini dans un autre module que «<em>@module@</em>».',
    144141        'message_ok_nonmais_definis_1' => 'L\'item de langue ci-dessous est utilisé correctement dans des fichiers du répertoire «<em>@ou_fichier@</em>» mais est défini dans un autre module que «<em>@module@</em>». Nous vous invitons à le vérifier :',
     
    148145        'message_ok_nonmaisnok_definis_n' => 'Les @nberr@ items de langue ci-dessous sont utilisés dans des fichiers du répertoire «<em>@ou_fichier@</em>» mais pas comme des items du module «<em>@module@</em>». Étant donné qu\'ils ne sont pas définis dans leur module de rattachement, nous vous invitons à les vérifier un par un :',
    149146        'message_ok_table_creee' => 'La table des items du fichier de langue @langue@ a été correctement créée.',
     147        'message_ok_fichier_verification' => 'La vérification s\'est correctement déroulée. Vous pouvez consultez les résultats plus bas après le formulaire.',
     148        'message_ok_utilises_non_0' => 'Aucun item de langue obsolète n\'a été détecté',
     149        'message_ok_utilises_non_1' => 'Un seul item de langue obsolète',
     150        'message_ok_utilises_non_n' => '@nberr@ items de langue obsolètes',
     151        'message_ok_utilises_non_mais_0' => 'Aucun item de langue utilisé avec un autre module n\'a été détecté',
     152        'message_ok_utilises_non_mais_1' => 'Un seul item de langue utilisé avec un autre module',
     153        'message_ok_utilises_non_mais_n' => '@nberr@ items de langue utilisés avec un autre module',
    150154        'message_ok_utilises_peut_etre_0' => 'Aucun item de langue potentiellement obsolète n\'a été détecté',
    151155        'message_ok_utilises_peut_etre_1' => 'Un seul item de langue potentiellement obsolète',
    152156        'message_ok_utilises_peut_etre_n' => '@nberr@ items de langue potentiellement obsolètes',
    153         'message_ok_fichier_verification' => 'La vérification s\'est correctement déroulée. Vous pouvez consultez les résultats plus bas après le formulaire.',
    154         'message_ok_corrections_fonction_l' => 'Les items construits à partir des cas d\'utilisation de la fonction _L() ont été intégrés dans le fichier de langue <code>@fichier@</code>.',
    155         'message_ok_corrections_utilisation' => 'Les items obsolètes ont été supprimés du fichier de langue <code>@fichier@</code>.',
     157
     158        'message_ok_non_utilises_0s' => 'Tous les items de langue définis  dans le fichier de langue «<em>@langue@</em>» sont bien utilisés dans les fichiers des répertoires «<em>@ou_fichier@</em>».',
     159        'message_ok_non_utilises_1s' => 'L\'item de langue ci-dessous est bien défini dans le fichier de langue «<em>@langue@</em>», mais n\'est pas utilisé dans les fichiers des répertoires «<em>@ou_fichier@</em>» :',
     160        'message_ok_non_utilises_ns' => 'Les @nberr@ items de langue ci-dessous sont bien définis dans le fichier de langue «<em>@langue@</em>», mais ne sont pas utilisés dans les fichiers des répertoires «<em>@ou_fichier@</em>» :',
    156161
    157162        // O
  • _plugins_/langonet/trunk/langonet_fonctions.php

    r82140 r89291  
    127127                $coloriser = chercher_filtre('coloration_code_color');
    128128
    129                 // On encadre l'expression par des points avant et après sauf si on a déjà atteint le bout
    130                 // -- On détermine au préalable si le filtre de coloration_code va être appliqué ou pas pour éviter dans
    131                 //    ce cas de mettre les points de suspension typo
    132                 $suspension = ($coloriser ? '...' : '&#8230;');
    133                 $affiche = ($debut > 0 ? $suspension : '') . trim($affiche) . ($index_fin < strlen($ligne)-1 ? $suspension : '');
    134 
    135129                if ($coloriser) {
    136130                        // Traitement de la coloration de l'extrait.
     
    143137                        $affiche = '<code>' . htmlspecialchars($affiche) . '</code>';
    144138                }
     139
     140                // On encadre l'expression par des points avant et après sauf si on a déjà atteint le bout
     141                // On fait ce traitement après le htmlspecialchars pour éviter que les points de suspension
     142                // ne soient traduits en entité html. Par contre la détection du besoin de suspension s'est
     143                // faite avant sur la chaine native.
     144                $suspension = '&#8230;';
     145                $affiche = ($debut > 0 ? $suspension : '') . trim($affiche) . ($index_fin < strlen($ligne)-1 ? $suspension : '');
    145146        }
    146147
  • _plugins_/langonet/trunk/paquet.xml

    r85961 r89291  
    22        prefix="langonet"
    33        categorie="outil"
    4         version="1.0.1"
     4        version="1.0.2"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.1.*]"
  • _plugins_/langonet/trunk/prive/squelettes/liste/items_utilisation.html

    r89151 r89291  
    11<B_liste_items>
     2        <hr>
    23        [(#VAL{langonet:info_utilises_}|concat{#ENV{pertinence}}|_T{#ARRAY{module, #ENV{module}}})]
     4        [(#ENV{pertinence}|=={non}|oui)
     5                [<br /><br />
     6                <p>
     7                        (#ENV*{corrections/explication})
     8                        [(#BOUTON_ACTION{
     9                                <:langonet:bouton_corriger:>,
     10                                #URL_ACTION_AUTEUR{langonet_telecharger, #ENV{corrections/fichier}},
     11                                '', '', ''})]
     12                </p>]
     13        ]
    314<div class="liste-objets items_langue">
    415        <table class="spip liste">
     
    1324<BOUCLE_liste_items(DATA) {source table, #ENV{items}}{where?}{par cle}>
    1425                        <tr class="trouve row_odd">
    15                                 <td[ (#ENV{pertinence}|=={peut_etre}|oui)colspan="2"] class="raccourci">
     26                                <td class="raccourci"[ colspan="(#ENV{colspan})"]>
    1627                                        [<strong>(#CLE)</strong>]
    1728                                </td>
    18                 <BOUCLE_test_pertinence(CONDITION){si #ENV{pertinence}|=={non}|oui}>
     29                        [(#ENV{pertinence}|=={non}|oui)
    1930                                <td class="traduction">
    2031                                        [<span class="guillemet">&#10078;</span>
    2132                                                (#VALEUR|table_valeur{0})
    2233                                        <span class="guillemet">&#10077;</span>]
    23                                         [<div class="commentaire">(#VALEUR|table_valeur{1})</div>]
    2434                                </td>
    25                 </BOUCLE_test_pertinence>
    26                         </tr>
    27                 </B_test_pertinence>
     35                        ]
    2836                        </tr>
    2937
     
    3240                                <B_lignes>
    3341                                        <tr class="row_even">
    34                                                 <td class="fichier" colspan="2">[(#GET{fichier})]</td>
     42                                                <td class="fichier"[ colspan="(#ENV{colspan})"]>[(#GET{fichier})]</td>
    3543                                        </tr>
    3644                                <BOUCLE_lignes(DATA) {source table, #VALEUR}{par cle}>
     
    3947                                        <tr class="row_even">
    4048                                                <td class="ligne">[L(#GET{ligne}|plus{1})]</td>
     49                                        [(#ENV{pertinence}|=={non_mais}|oui)
     50                                                <td class="module">[(#VALEUR|table_valeur{1})]</td>
     51                                        ]
    4152                                                <td class="occurrence">
    4253                                                        [(#VALEUR|table_valeur{0}
     
    4758                                </BOUCLE_lignes>
    4859                        </BOUCLE_fichiers>
    49                 <//B_test_pertinence>
    5060</BOUCLE_liste_items>
    5161                </tbody>
Note: See TracChangeset for help on using the changeset viewer.