Changeset 89382 in spip-zone


Ignore:
Timestamp:
May 17, 2015, 8:03:39 AM (4 years ago)
Author:
eric@…
Message:

Un lot de modifications pour mettre au point la vérification des items manquants

Location:
_plugins_/langonet/trunk
Files:
8 edited

Legend:

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

    r89151 r89382  
    44<p>
    55        [(#GET{arborescence}|count
    6                 |singulier_ou_pluriel{langonet:info_verification_definition_arbo_1, langonet:info_verification_definition_arbo_n})]
     6                |singulier_ou_pluriel{langonet:info_verification_definition_arbo_1, langonet:info_verification_definition_arbo_n, nb, #ARRAY{module, #ENV{resultats/module}}})]
    77</p>
    88<B_arborescences>
     
    1414</B_arborescences>
    1515
    16 [<p>
    17         (#ENV*{corrections/explication})
    18         [(#BOUTON_ACTION{
    19                 <:langonet:bouton_corriger:>,
    20                 #URL_ACTION_AUTEUR{langonet_telecharger, #ENV{corrections/fichier}},
    21                 '', '', ''})]
    22 </p>]
    23 
    24 <BOUCLE_pertinences(DATA) {liste non, non_mais, non_mais_nok, peut_etre}{par cle}>
    25         #INCLURE{fond=prive/squelettes/liste/items_definition,
     16#SET{colspan, #ARRAY{non, 3, non_mais, 4, peut_etre, 3, oui_mais}}
     17<BOUCLE_pertinences(DATA) {liste non, non_mais, peut_etre, oui_mais}{par cle}>
     18        [(#INCLURE{fond=prive/squelettes/liste/items_definition,
    2619                items=#ENV{resultats/occurrences_#VALEUR},
     20                complements=#ENV{resultats/complements},
     21                corrections=#ENV{corrections},
    2722                pertinence=#VALEUR,
     23                colspan=#GET{colspan}|table_valeur{#VALEUR},
    2824                module=#ENV{resultats/module},
    29                 env}
     25                env})]
    3026</BOUCLE_pertinences>
  • _plugins_/langonet/trunk/formulaires/langonet_verifier_item.php

    r89151 r89382  
    4949                $encodage = 'utf8';
    5050                if ($verification == 'definition') {
    51                         $extra = array();
     51                        $extra = $items_a_corriger;
    5252                        foreach ($items_a_corriger as $_item) {
    5353//                              $index = preg_match('/^(.*)[{].*[}]$/', $_item, $m) ? $m[1] : $_item;
     
    6565                if ($corrections['fichier']) {
    6666                        $retour['message_ok']['corrections']['fichier'] = $corrections['fichier'];
    67                         $retour['message_ok']['corrections']['explication'] = _T('langonet:message_ok_corrections_utilisation',
     67                        $retour['message_ok']['corrections']['explication'] = _T("langonet:message_ok_corrections_${verification}",
    6868                                                                                                                array('fichier' => $corrections['fichier']));
    6969                }
     
    8282                $retour['message_ok']['resultats']['ou_fichier'] = $resultats['ou_fichier'];
    8383                $retour['message_ok']['resultats']['occurrences_non'] = $resultats['occurrences_non'];
     84                $retour['message_ok']['resultats']['occurrences_non_mais'] = $resultats['occurrences_non_mais'];
    8485                $retour['message_ok']['resultats']['occurrences_peut_etre'] = $resultats['occurrences_peut_etre'];
    8586                // Uniquement pour la vérification des définitions
    86                 $retour['message_ok']['resultats']['occurrences_non_mais'] = isset($resultats['occurrences_non_mais']) ? $resultats['occurrences_non_mais'] : array();
    87                 $retour['message_ok']['resultats']['occurrences_non_mais_nok'] = isset($resultats['occurrences_non_mais_nok']) ? $resultats['occurrences_non_mais_nok'] : array();
     87                $retour['message_ok']['resultats']['occurrences_oui_mais'] = isset($resultats['occurrences_oui_mais']) ? $resultats['occurrences_oui_mais'] : array();
     88                $retour['message_ok']['resultats']['complements'] = isset($resultats['complements']) ? $resultats['complements'] : array();
    8889        }
    8990        $retour['editable'] = true;
  • _plugins_/langonet/trunk/inc/langonet_verifier_items.php

    r89293 r89382  
    112112                // Autrement dit les fichiers francais du repertoire lang/ sont la reference
    113113                $fichiers_langue = preg_files(_DIR_RACINE, '/lang/[^/]+_fr\.php$');
    114                 $resultats = reperer_items_manquants($module, $utilises, $GLOBALS[$var_langue], $fichiers_langue);
     114                $resultats = reperer_items_manquants($utilises, $module, $GLOBALS[$var_langue], $fichiers_langue);
    115115        }
    116116        elseif ($GLOBALS[$var_langue]) {
     
    279279                        // Cas HTML #VAL{xxx}|yyy|_T dynamique ou PHP _T("xxx:$yyy")
    280280                        $raccourci_partiellement_variable = true;
     281        }
     282
     283        if ($raccourci_totalement_variable) {
     284                // Si le raccourci est totalement variable il l'est a fortiori partiellement
     285                $raccourci_partiellement_variable = true;
    281286        }
    282287
     
    418423
    419424/**
    420  * Construit la liste des items utilises mais apparamment non definis.
    421  *
     425 * Détection des items de langue utilises mais apparamment non definis.
     426 * Cette fonction renvoie un tableau composé des items manquants et des items potentiellement manquants.
     427 *
     428 * @param array         $utilisations
     429 *              Tableau des occurrences d'utilisation d'items de langue dans le code de l'arborescence choisie.
    422430 * @param string        $module
    423  * @param array         $utilises
    424  * @param array         $items
     431 *              Nom du module de langue en cours de vérification.
     432 * @param array         $items_module
     433 *              Liste des items de langues contenus dans le module de langue en cours de vérification. L'index est
     434 *              le raccourci, la valeur la traduction brute.
    425435 * @param array         $fichiers_langue
     436 *              Liste des fichiers de langue 'fr' présent sur site et dans lesquels il est possible de trouver
     437 *              certains items de langue.
    426438 *
    427439 * @return array
    428440 */
    429 function reperer_items_manquants($module, $utilises, $items=array(), $fichiers_langue=array()) {
    430 
    431         // Constitution du tableau de tous les items de langue fr disponibles sur le site
    432         $tous_lang = array();
     441function reperer_items_manquants($utilisations, $module, $items_module=array(), $fichiers_langue=array()) {
     442
     443        // Constitution du tableau de tous les items de langue fr disponibles sur le site et stockage de la liste
     444        // des modules scannés
     445        $tous_lang = $modules_tous_lang = array();
    433446        foreach ($fichiers_langue as $_fichier) {
    434                 $module_def = preg_match(',/lang/([^/]+)_fr\.php$,i', $_fichier, $m) ? $m[1] : '';
    435                 foreach ($contenu = file($_fichier) as $ligne => $texte) {
    436                         if (preg_match_all("#^[\s\t]*['\"]([a-z0-9_]+)['\"][\s\t]*=>(.*)$#i", $texte, $matches, PREG_SET_ORDER)) {
    437                                 foreach ($matches as $m) {
    438                                         $index = $m[1];
    439                                         $m[0] = $_fichier;
    440                                         $m[1] = $module_def;
    441                                         $tous_lang[$index][] = $m;
    442                                 }
    443                         }
    444                 }
    445         }
    446 
    447         $item_non_mais = $item_non_mais_nok = $item_non = $definition_non_mais_nok = $item_md5 = $fichier_non = array();
    448         foreach ($utilises['items'] as $_cle => $_valeur) {
    449                 $module_utilise = $utilises['modules'][$_cle];
     447                $module_tous_lang = preg_match(',/lang/([^/]+)_fr\.php$,i', $_fichier, $m) ? $m[1] : '';
     448                foreach ($contenu = file($_fichier) as $_texte) {
     449                        if (preg_match_all("#^[\s\t]*['\"]([a-z0-9_]+)['\"][\s\t]*=>(.*)$#i", $_texte, $items, PREG_SET_ORDER)) {
     450                                foreach ($items as $_item) {
     451                                        // $_item[1] représente le raccourci
     452                                        $tous_lang[$_item[1]][] = array(0 => $_fichier, 1 => $module_tous_lang);
     453                                }
     454                        }
     455                }
     456                $modules_tous_lang[] = $module_tous_lang;
     457        }
     458
     459        $item_non = $item_non_mais = $item_peut_etre = $item_oui_mais = $complement = array();
     460        foreach ($utilisations['raccourcis'] as $_cle => $_raccourci) {
     461                $module_utilise = $utilisations['modules'][$_cle];
    450462                // Il faut absolument tester l'item complet soit module:raccourci car sinon
    451463                // on pourrait vérifier un raccourci identique d'un autre module.
    452                 if (!isset($items[$_cle]) OR ($module_utilise != $module)) {
    453                         if (!$utilises['suffixes'][$_cle]) {
     464                if (!isset($items_module[$_raccourci]) OR ($module_utilise != $module)) {
     465                        $complement[$_raccourci] = array();
     466                        if (!$utilisations['suffixes'][$_cle]) {
     467                                // L'item est explicite, il n'est ni totalement variable ni suffixé par une partie variable
    454468                                if ($module_utilise == $module) {
    455                                         // Item indefini alors que le module est explicite, c'est une erreur
    456                                         $item_non[] = $_valeur;
    457                                         $fichier_non[$_cle] = $utilises['occurrences'][$_cle];
     469                                        // Cas 1: item forcément indefini alors que le module est bien celui en cours de vérification
     470                                        // => c'est une erreur !
     471                                        $item_non[$_raccourci] = $utilisations['occurrences'][$_cle];
    458472                                } else {
    459                                         // L'item peut etre defini dans un autre module. Le fait qu'il ne soit pas
    460                                         // defini dans le fichier en cours de verification n'est pas forcement une erreur.
    461                                         // On l'identifie donc a part
    462                                         $ok = false;
    463                                         if (array_key_exists($_cle, $tous_lang)) {
    464                                                 foreach ($tous_lang[$_cle] as $_item_tous_lang) {
    465                                                         // $_item_tous_lang[1] contient toujours le nom du module exact à savoir
    466                                                         // pour le core spip, public ou ecrire
    467                                                         if (!$_item_tous_lang[1]) continue;
    468                                                         if ($ok = ($module_utilise ? ($_item_tous_lang[1] == $module_utilise) : (($_item_tous_lang[1]=='spip') OR ($_item_tous_lang[1]=='ecrire') OR ($_item_tous_lang[1]=='public')))) {
    469                                                                 break;
     473                                        // On vérifie si le raccourci appartient au module en cours de vérification.
     474                                        $raccourci_dans_module = false;
     475                                        if (isset($items_module[$_raccourci])) {
     476                                                $raccourci_dans_module = true;
     477                                        }
     478
     479                                        // On vérifie si le raccourci appartient au module utilisé par l'occurrence en cours.
     480                                        $module_utilise_verifiable = false;
     481                                        $raccourci_dans_module_utilise = false;
     482                                        if (in_array($module_utilise, $modules_tous_lang)) {
     483                                                $module_utilise_verifiable = true;
     484                                                if (array_key_exists($_raccourci, $tous_lang)) {
     485                                                        foreach ($tous_lang[$_raccourci] as $_item_tous_lang) {
     486                                                                // $_item_tous_lang[1] contient toujours le nom du module exact à savoir
     487                                                                // pour le core spip, public ou ecrire
     488                                                                if (!$_item_tous_lang[1]) continue;
     489                                                                $raccourci_dans_module_utilise =
     490                                                                        $module_utilise ?
     491                                                                        ($_item_tous_lang[1] == $module_utilise) :
     492                                                                        (($_item_tous_lang[1]=='spip') OR ($_item_tous_lang[1]=='ecrire') OR ($_item_tous_lang[1]=='public'));
     493                                                                if ($raccourci_dans_module_utilise) {
     494                                                                        break;
     495                                                                }
    470496                                                        }
    471497                                                }
    472498                                        }
    473                                         if ($ok) {
    474                                                 // On a reconnu un item de langue mais on ne sait pas si c'est bien licite pour ce module
    475                                                 $definition_non_mais[$_cle] = array_map('array_shift', $tous_lang[$_cle]);
    476                                                 $item_non_mais[] = $_valeur;
    477                                                 $fichier_non_mais[$_cle] = $utilises['occurrences'][$_cle];
     499
     500                                        if ($raccourci_dans_module) {
     501                                                // Cas 2 : le raccourci est dans le module en cours de vérification.
     502                                                // On donne la priorité au module en cours de vérification. Si le raccourci fait
     503                                                // partie de ce module on considère qu'il est plus probable que l'utilisation qui en
     504                                                // est faite soit erronée.
     505                                                // Néanmoins, si le raccourci est aussi présent dans le module utilisé par l'occurrence
     506                                                // en cours de vérification on le précise car cela diminue la probabilité d'une erreur.
     507                                                $item_non_mais[$_raccourci] = $utilisations['occurrences'][$_cle];
     508                                                $complement[$_raccourci][0] = _T('langonet:complement_definis_non_mais_cas2');
     509                                                $complement[$_raccourci][1] =
     510                                                        $raccourci_dans_module_utilise ?
     511                                                        _T('langonet:complement_definis_non_mais_cas2_1') :
     512                                                        ($module_utilise_verifiable ? _T('langonet:complement_definis_non_mais_cas2_2') : _T('langonet:complement_definis_non_mais_cas2_3'));
    478513                                        } else {
    479                                                 // Si pas normalise, c'est une auto-definition
    480                                                 // Si l'index est deja pris pour un autre texte
    481                                                 // (32 caracteres initiaux communs)
    482                                                 // forcer un suffixe md5
    483                                                 if (!preg_match(',^\w+$,', $_valeur)) {
    484                                                         if (isset($tous_lang[$_cle])
    485                                                         AND !preg_match("%^\s*'$_valeur',?\s*$%", $tous_lang[$_cle][0][2])) {
    486                                                                 $_cle .= '_' . md5($_valeur);
     514                                                if ($raccourci_dans_module_utilise) {
     515                                                        // Cas 3 : le raccourci est bien dans le module utilisé mais pas dans le module en cours
     516                                                        // de vérification. Il y a de grande chance que ce soit ok mais on le notifie
     517                                                        $item_oui_mais[] = $utilisations['occurrences'][$_cle];
     518                                                } else {
     519                                                        // Cas 4 : le raccourci n'est ni dans le module en cours de vérification, ni dans le
     520                                                        // module de l'occurrence de vérification. Il est donc non défini mais on ne sait pas
     521                                                        // si cela concerne le module en cours ou pas.
     522
     523                                                        // Si pas normalise, c'est une auto-definition
     524                                                        // Si l'index est deja pris pour un autre texte
     525                                                        // (32 caracteres initiaux communs)
     526                                                        // forcer un suffixe md5
     527                                                        $md5 = $_raccourci;
     528                                                        if (!preg_match(',^\w+$,', $_raccourci)) {
     529                                                                if (isset($tous_lang[$_raccourci])
     530                                                                AND !preg_match("%^\s*'$_raccourci',?\s*$%", $tous_lang[$_cle][0][2])) {
     531                                                                        $md5 .= '_' . md5($_raccourci);
     532                                                                }
    487533                                                        }
    488                                                         $item_md5[$_cle] = $_valeur;
     534                                                        $item_non_mais[$_raccourci] = $utilisations['occurrences'][$_cle];
     535                                                        $complement[$_raccourci][0] = _T('langonet:complement_definis_non_mais_cas4');
     536                                                        $complement[$_raccourci][1] = $module_utilise_verifiable ? '' : _T('langonet:complement_definis_non_mais_cas4_1');
    489537                                                }
    490                                                 $fichier_non_mais_nok[$_cle] = $utilises['occurrences'][$_cle];;
    491                                                 $item_non_mais_nok[] = $_cle;
    492538                                        }
    493539                                }
     
    498544                                // On regarde s'il existe des items ressemblants.
    499545                                $item_trouve = false;
    500                                 foreach($items as $_item => $_traduction) {
    501                                         if (substr($_item, 0, strlen($_valeur)) == $_valeur) {
     546                                foreach($items_module as $_item => $_traduction) {
     547                                        if (substr($_item, 0, strlen($_raccourci)) == $_raccourci) {
    502548                                                $item_trouve = true;
    503                                                 $item_peut_etre[] = $_valeur;
    504                                                 $fichier_peut_etre[$_item] = is_array($utilises['occurrences'][$_cle]) ? $utilises['occurrences'][$_cle] : array();
     549                                                $item_peut_etre[] = $_raccourci;
     550                                                $fichier_peut_etre[$_item] = is_array($utilisations['occurrences'][$_cle]) ? $utilisations['occurrences'][$_cle] : array();
    505551                                        }
    506552                                }
     
    509555                                // On ajoute ces cas aussi aux incertains (pas essentiel)
    510556                                if (!$item_trouve) {
    511                                         $_item = ltrim($_valeur, '\'".\\');
     557                                        $_item = ltrim($_raccourci, '\'".\\');
    512558                                        $item_peut_etre[] = $_item;
    513                                         $fichier_peut_etre[$_item] = is_array($utilises['occurrences'][$_cle]) ? $utilises['occurrences'][$_cle] : array();
     559                                        $fichier_peut_etre[$_item] = is_array($utilisations['occurrences'][$_cle]) ? $utilisations['occurrences'][$_cle] : array();
    514560                                }
    515561                        }
     
    518564
    519565        return array(
    520                         'occurrences_non' => $fichier_non,
    521                         'occurrences_non_mais' => $fichier_non_mais,
    522                         'occurrences_non_mais_nok' => $fichier_non_mais_nok,
    523                         'occurrences_peut_etre' => $fichier_peut_etre,
    524                         'item_non' => $item_non,
    525                         'item_non_mais' => $item_non_mais,
    526                         'item_non_mais_nok' => $item_non_mais_nok,
    527                         'item_peut_etre' => $item_peut_etre,
    528                         'definition_non_mais' => $definition_non_mais,
    529                         'definition_non_mais_nok' => $definition_non_mais_nok,
    530                         'item_md5' => $item_md5,
     566                        'occurrences_non' => $item_non,
     567                        'occurrences_non_mais' => $item_non_mais,
     568                        'occurrences_non_mais_nok' => $item_non_mais_nok,
     569                        'occurrences_oui_mais' => $item_oui_mais,
     570                        'occurrences_peut_etre' => $item_peut_etre,
     571                        'complements' => $complement,
    531572               );
    532573}
  • _plugins_/langonet/trunk/lang/langonet_fr.php

    r89291 r89382  
    2121        'bulle_telecharger_fichier_lang' => 'Télécharger le fichier de langue généré le @date@',
    2222        'bulle_telecharger_fichier_log' => 'Télécharger le log du @date@',
     23
     24        // C
     25        'complement_definis_non_mais_cas2' => 'Le raccourci est bien défini dans le module @module@. L\'utilisation d\'un autre module est probalement une erreur.',
     26        'complement_definis_non_mais_cas2_1' => 'Néanmoins, le raccourci est aussi défini dans le module @module@ utilisé dans l\'occurrence.',
     27        'complement_definis_non_mais_cas2_2' => 'En outre, le raccourci n\'est pas défini dans le module @module@ utilisé dans l\'occurrence.',
     28        'complement_definis_non_mais_cas2_3' => 'Par contre, il n\'a pas été possible de vérifier la définition du raccourci dans le module @module@ utilisé dans l\'occurrence celui-ci n\'étant pas présent sur le site.',
    2329
    2430        // E
     
    6369        'info_tradlang_statut_new' => 'item non encore traduit',
    6470        '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 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 :',
    67         '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 :',
    68         '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 :',
     71        '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 :',
     72        '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 :',
     73        'info_verification_definition_arbo_1' => 'Vous avez choisi de rechercher les items de langue non définis dans le module «<code>@module@</code>» mais utilisés dans les fichiers de l\'arborescence :',
     74        'info_verification_definition_arbo_n' => 'Vous avez choisi de rechercher les items de langue non définis dans le module «<code>@module@</code>» mais utilisés dans les fichiers des arborescences :',
    6975        '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.',
    7076        '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_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.',
     77        '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.',
     78        '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 à vérifier un par un les cas d\'utilisations affichés en regard de chaque item de langue suspects.',
     79        '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 utilisés dans un contexte complexe comme par exemple :  <code>_T(\'@module@:item_\'.$variable))</code>. Nous vous invitons donc à vérifier un par un les cas d\'utilisations affichés en regard de chaque item de langue suspects.',
    7480        '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.',
     81        'info_definis_non' => 'Les items de langue ci-dessous sont utilisés dans des fichiers passés en revue lors de la vérification mais ne sont <strong>pas définis</strong> dans le module «<code>@module@</code>».',
     82        'info_definis_non_mais' => 'Les items de langue ci-dessous sont utilisés dans des fichiers passés en revue lors de la vérification mais sont <strong>probablement en erreur</strong>. En effet, ils sont soient définis dans le module «<code>@module@</code>» mais utilisés avec un autre module, soient non définis ni dans le module «<code>@module@</code>» ni dans le module utilisé. Nous vous invitons à les vérifier un par un.',
     83        'info_definis_oui_mais' => 'Les items de langue ci-dessous sont utilisés dans des fichiers passés en revue lors de la vérification avec un autre module que celui en cours de vérification mais sont bien définis. Il est probable que ce ne soit pas une erreur mais nous vous invitons à le vérifier.',
     84        'info_definis_peut_etre' => 'Les items de langue ci-dessous sont utilisés dans un contexte complexe et pourraient être non définis dans le module «<code>@module@</code>». Nous vous invitons à les vérifier un par un.',
    7585
    7686        // L
     
    119129        '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>.',
    120130        '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.',
    121         'message_ok_definis_incertains_0' => 'Aucun item de langue n\'est utilisé dans un contexte complexe, comme par exemple, _T(\'@module@:item_\'.$variable).',
    122         '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 :',
    123         'message_ok_definis_incertains_n' => 'Les @nberr@ items de langue ci-dessous sont utilisés dans un contexte complexe et pourraient être non définis dans le fichier de langue  «<em>@langue@</em>». Nous vous invitons à les vérifier un par un :',
     131        'message_ok_corrections_definition' => 'La vérification a produit un fichier de langue corrigé <code>@fichier@</code> dans lequel les items non définis on été rajoutés avec une traduction vide qu\'il vous sera facile de compléter. Un commentaire permet de les identifier plus facilement.',
    124132        'message_ok_fichier_genere' => 'Le fichier de langue «<em>@langue@</em>» du module «<em>@module@</em>» a été généré correctement.<br />Vous pouvez récupérer le fichier «<em>@fichier@</em>».',
    125133        'message_ok_fichier_log' => 'La vérification s\'est correctement déroulée. Vous pouvez consultez les résultats plus bas dans le formulaire.<br />Le fichier «<em>@log_fichier@</em>» a été créé pour sauvegarder ces résultats.',
     
    135143        'message_ok_item_trouve_egal_1' => 'L\'item de langue ci-dessous correspond exactement au texte recherché :',
    136144        'message_ok_item_trouve_egal_n' => 'Les @sous_total@ items ci-dessous correspondent exactement au texte recherché :',
    137         'message_ok_non_definis_0' => 'Tous les items de langue du module «<em>@module@</em>» utilisés dans les fichiers du répertoire «<em>@ou_fichier@</em>» sont bien définis dans le fichier de langue «<em>@langue@</em>».',
    138         '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>» :',
    139         '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>» :',
    140         '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>».',
    141         '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 :',
    142         'message_ok_nonmais_definis_n' => 'Les @nberr@ items de langue ci-dessous sont utilisés correctement dans des fichiers du répertoire «<em>@ou_fichier@</em>» mais sont définis dans un autre module que «<em>@module@</em>». Nous vous invitons à les vérifier un par un :',
    143         'message_ok_nonmaisnok_definis_0' => 'Les fichiers du répertoire «<em>@ou_fichier@</em>» n\'utilisent aucun item de langue incorrectement défini dans un autre module que «<em>@module@</em>».',
    144         'message_ok_nonmaisnok_definis_1' => 'L\'item de langue ci-dessous est utilisé dans des fichiers du répertoire «<em>@ou_fichier@</em>» mais pas comme un item du module «<em>@module@</em>». Étant donné qu\'il n\'est pas défini dans son module de rattachement, nous vous invitons à le vérifier :',
    145         '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 :',
     145        'message_ok_definis_non_0' => 'Tous les items de langue utilisés sont bien définis',
     146        'message_ok_definis_non_1' => 'Un seul item de langue non défini',
     147        'message_ok_definis_non_n' => '@nberr@ items de langue non définis',
     148        'message_ok_definis_non_mais_0' => 'Aucun item de langue probablement indéfini',
     149        'message_ok_definis_non_mais_1' => 'Un item de langue probablement défini',
     150        'message_ok_definis_non_mais_n' => '@nberr@ items de langue probablement non définis',
     151        'message_ok_definis_oui_mais_0' => 'Aucun item de langue défini aussi dans un autre module',
     152        'message_ok_definis_oui_mais_1' => 'Un item de langue défini aussi dans un autre module',
     153        'message_ok_definis_oui_mais_n' => '@nberr@ items de langue définis aussi dans un autre module',
     154        'message_ok_definis_peut_etre_0' => 'Aucun item de langue partiellement ou totalement variable',
     155        'message_ok_definis_peut_etre_1' => 'Un item de langue partiellement ou totalement variable',
     156        'message_ok_definis_peut_etre_n' => '@nberr@ items de langue partiellement ou totalement variables',
    146157        'message_ok_table_creee' => 'La table des items du fichier de langue @langue@ a été correctement créée.',
    147158        '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.',
  • _plugins_/langonet/trunk/prive/squelettes/liste/items_definition.html

    r89151 r89382  
     1[(#ENV{pertinence}|=={non_mais}|oui)
     2        [(#ENV*|bel_env)]
     3]
    14<B_liste_items>
    2         [(#VAL{langonet:info_utilises_}|concat{#ENV{pertinence}}|_T{#ARRAY{module, #ENV{module}}})]
    3 <div class="liste-objets items_langue">
     5        <hr>
     6        [(#VAL{langonet:info_definis_}|concat{#ENV{pertinence}}|_T{#ARRAY{module, #ENV{module}}})]
     7        [(#ENV{pertinence}|=={non}|oui)
     8                [<br /><br />
     9                <p>
     10                        (#ENV*{corrections/explication})
     11                        [(#BOUTON_ACTION{
     12                                <:langonet:bouton_corriger:>,
     13                                #URL_ACTION_AUTEUR{langonet_telecharger, #ENV{corrections/fichier}},
     14                                '', '', ''})]
     15                </p>]
     16        ]
     17<div class="liste-objets items_langue[ (#ENV{pertinence})]">
    418        <table class="spip liste">
    519                <caption[ class="(#ENV{pertinence}|=={non}|?{error,notice})"]>
     
    721                        <strong class="caption">
    822                                [(#TOTAL_BOUCLE
    9                                         |singulier_ou_pluriel{#VAL{langonet:message_ok_utilises_}|concat{#ENV{pertinence}}|concat{_1}, #VAL{langonet:message_ok_utilises_}|concat{#ENV{pertinence}}|concat{_n}, nberr})]
     23                                        |singulier_ou_pluriel{#VAL{langonet:message_ok_definis_}|concat{#ENV{pertinence}}|concat{_1}, #VAL{langonet:message_ok_definis_}|concat{#ENV{pertinence}}|concat{_n}, nberr})]
    1024                        </strong>
    1125                </caption>
    1226                <tbody>
    1327<BOUCLE_liste_items(DATA) {source table, #ENV{items}}{where?}{par cle}>
     28                        #SET{complement, #ENV{complements}|table_valeur{#CLE}}
    1429                        <tr class="trouve row_odd">
    15                                 <td[ (#ENV{pertinence}|=={peut_etre}|oui)colspan="2"] class="raccourci">
     30                                <td class="raccourci"[ colspan="(#ENV{colspan})"]>
    1631                                        [<strong>(#CLE)</strong>]
    1732                                </td>
    18                         [(#ENV{pertinence}|=={non}|oui)
    19                                 <td class="traduction">
    20                                         [(#VALEUR)]
    21                                 </td>
    22                         ]
    2333                        </tr>
    24         <BOUCLE_fichiers(DATA) {source table, #VALEUR}{par cle}>
    25                 #SET{fichier, #CLE}
    26                 <B_lignes>
    27                         <tr class="row_even">
    28                                 <td class="fichier" colspan="2">[(#GET{fichier})]</td>
    29                         </tr>
    30                 <BOUCLE_lignes(DATA) {source table, #VALEUR}{par cle}>
    31                         #SET{ligne, #CLE}
    32                         <BOUCLE_occurrences(DATA) {source table, #VALEUR}{par cle}>
    33                         <tr class="row_even">
    34                                 <td class="ligne">[L(#GET{ligne}|plus{1})]</td>
    35                                 <td class="occurrence">
    36                                         [(#VALEUR|table_valeur{0}
    37                                                 |langonet_cadrer_expression{#CLE, #VALEUR|table_valeur{4}, #GET{fichier}, 8})]
    38                                 </td>
    39                         </tr>
    40                         </BOUCLE_occurrences>
    41                 </BOUCLE_lignes>
    42         </BOUCLE_fichiers>
     34
     35                        <BOUCLE_fichiers(DATA) {source table, #VALEUR}{par cle}>
     36                                #SET{fichier, #CLE}
     37                                <B_lignes>
     38                                        <tr class="row_even">
     39                                                <td class="fichier"[ colspan="(#ENV{colspan})"]>[(#GET{fichier})]</td>
     40                                        </tr>
     41                                <BOUCLE_lignes(DATA) {source table, #VALEUR}{par cle}>
     42                                        #SET{ligne, #CLE}
     43                                        <BOUCLE_occurrences(DATA) {source table, #VALEUR}{par cle}>
     44                                        <tr class="row_even">
     45                                                <td class="ligne">[L(#GET{ligne}|plus{1})]</td>
     46                                                <td class="colonne">[C(#VALEUR|table_valeur{4}|plus{1})]</td>
     47                                        [(#ENV{pertinence}|=={non_mais}|oui)
     48                                                <td class="module">[(#VALEUR|table_valeur{1})]</td>
     49                                        ]
     50                                                <td class="occurrence">
     51                                                        [(#VALEUR|table_valeur{0}
     52                                                                |langonet_cadrer_expression{#VALEUR|table_valeur{4}, #VALEUR|table_valeur{5}, #GET{fichier}, 8})]
     53                                                        [<div class="complement">
     54                                                                (#GET{complement}|table_valeur{0})
     55                                                                [<br />(#GET{complement}|table_valeur{1})]
     56                                                        </div>]
     57                                                </td>
     58                                        </tr>
     59                                        </BOUCLE_occurrences>
     60                                </BOUCLE_lignes>
     61                        </BOUCLE_fichiers>
    4362</BOUCLE_liste_items>
    4463                </tbody>
     
    4766</B_liste_items>
    4867#BOITE_OUVRIR{'', success}
    49         [(#VAL{langonet:message_ok_utilises_}|concat{#ENV{pertinence}}|concat{_0}|_T)]
     68        [(#VAL{langonet:message_ok_definis_}|concat{#ENV{pertinence}}|concat{_0}|_T)]
    5069#BOITE_FERMER
    5170<//B_liste_items>
  • _plugins_/langonet/trunk/prive/squelettes/liste/items_l.html

    r82140 r89382  
    11<B_liste_items>
    2 <div class="liste-objets items_langue">
     2<div class="liste-objets items_langue fonction_l">
    33        <table class="spip liste">
    44                <caption class="notice">
  • _plugins_/langonet/trunk/prive/squelettes/liste/items_utilisation.html

    r89293 r89382  
    1212                </p>]
    1313        ]
    14 <div class="liste-objets items_langue">
     14<div class="liste-objets items_langue[ (#ENV{pertinence})]">
    1515        <table class="spip liste">
    1616                <caption[ class="(#ENV{pertinence}|=={non}|?{error,notice})"]>
  • _plugins_/langonet/trunk/prive/style_prive_plugin_langonet.html

    r89151 r89382  
    3434.items_langue td.traduction {}
    3535.items_langue td.occurrence {font-size: 0.9em;}
     36.items_langue td.occurrence .complement {font-style: italic;}
    3637.items_langue span.guillemet {font-size: 140%;[color: (#GET{foncee});]}
    3738.items_langue .commentaire {margin-top: 0.5em;}
Note: See TracChangeset for help on using the changeset viewer.