Changeset 75724 in spip-zone


Ignore:
Timestamp:
Sep 10, 2013, 10:10:26 PM (6 years ago)
Author:
kent1@…
Message:

On n'exporte que les chaines qui n'ont pas le statut NEW pour éviter d'afficher du français obligatoirement dans les sites qui ne le sont pas car la langue choisie est incomplète.

Dans ce cas là c'est la langue principale du site qui doit être affichée.

En dernier recours SPIP affichera le français cf ce thread http://thread.gmane.org/gmane.comp.web.spip.devel/64597

On en profite également pour améliorer le résumé xml de chaque module de langue en ajoutant le pourcentage de traduction demandé par _eric_ ici : http://trad.spip.net/ticket/pourcentage-de-traduction-du-une

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _dev_/salvatore2/ecriveur.php

    r71160 r75724  
    100100        }
    101101       
    102         $res=spip_query("SELECT lang,COUNT(*) as N FROM spip_tradlangs WHERE module='".$source[1]."' AND statut IN ('OK','MODIF') GROUP BY lang ORDER BY lang");
     102        $res=spip_query("SELECT lang,COUNT(*) as N FROM spip_tradlangs WHERE module='".$source[1]."' AND statut != 'NEW' GROUP BY lang ORDER BY lang");
    103103        $liste_lang=array();
    104104        $minimal = $count_original/2;
    105105        while ($row=spip_fetch_array($res)) {
    106                 if($row['N'] >= $minimal){
     106                if($row['N'] >= $minimal)
    107107                        $liste_lang[]=$row['lang'];
    108                 }else{
     108                else
    109109                        $liste_lang_non_exportees[]=$row['lang'];
    110                 }
    111110        }
    112111
    113112        // traiter chaque langue
    114         $traducteurs = array();
     113        $infos = array();
    115114        foreach($liste_lang as $lang) {
    116                 trad_log(" genere la langue $lang ");
     115                trad_log(" generation de la langue $lang ");
    117116
    118117                $tab = "\t";
    119 
    120                 $res=spip_query("SELECT id,str,comm,statut FROM spip_tradlangs WHERE module='".$source[1]."' and lang='".$lang."' GROUP BY id");
     118                // On ne prend que les MODIF et les OK pour ne pas rendre les sites multilingues en français
     119                $res=spip_query("SELECT id,str,comm,statut FROM spip_tradlangs WHERE module='".$source[1]."' AND lang='".$lang."' AND statut != 'NEW' GROUP BY id");
    121120                $x=array();
    122121                $prev="";
    123                 $traduits = 0;
    124                 $tous = $lorigine; // on part de l'origine comme ca on a tout meme si c'est pas dans la base de donnees (import de salvatore/lecteur.php)
     122                $traduits = $modifs = 0;
     123                //$tous = $lorigine; // on part de l'origine comme ca on a tout meme si c'est pas dans la base de donnees (import de salvatore/lecteur.php)
     124                $tous = array();
    125125                while ($row=spip_mysql_fetch($res)) {
    126126                        $tous[$row['id']] = $row;
     
    128128                ksort($tous);
    129129                foreach ($tous as $row) {
     130                        if ($row['statut'] == 'OK')
     131                                $traduits ++;
     132                        else if($row['statut'] == 'MODIF')
     133                                $modifs ++;
     134
    130135                        if(strlen($row['comm']) > 1){
    131136                                // On remplace les sauts de lignes des commentaires sinon ça crée des erreurs php
     
    139144                        }
    140145                       
    141                         trad_log($row['comm']);
     146                        //trad_log($row['comm']);
    142147                        if ($prev!=strtoupper($row['id'][0])) $x[] = "\n$tab// ".strtoupper($row['id'][0]);
    143148                        $prev=strtoupper($row['id'][0]);
    144                         if ($row['statut'] != 'NEW')
    145                                 $traduits ++;
     149                       
    146150                        if (strlen($row['statut']) && ($row['statut'] != 'OK'))
    147151                                $row['comm'] .= ' '.$row['statut'];
     
    165169                $orig = ($lang == $source[2]) ? $source[0] : false;
    166170
    167                 trad_log(" - traduction ($traduits/$count_original), export\n");
     171                trad_log(" - traduction ($traduits/$count_original OK | $modifs/$count_original MODIFS), export\n");
    168172                // historiquement les fichiers de lang de spip_loader ne peuvent pas etre securises
    169173                $secure = ($source[1] == 'tradloader')
     
    204208               
    205209                // noter la langue et les traducteurs pour lang/module.xml
    206                 $traducteurs[$lang] = array();
    207                 $people_unique = array();
     210                $infos[$lang] = $people_unique = array();
     211                $infos[$lang]['traducteurs'] = array();
     212                $infos[$lang]['traduits'] = $traduits;
     213                $infos[$lang]['modifs'] = $modifs;
    208214                $s = spip_query('SELECT DISTINCT(traducteur) FROM spip_tradlangs WHERE module='._q($source[1])." and lang="._q($lang));
    209215                while ($t = sql_fetch($s)){
     
    219225                                        }
    220226                                        if(isset($traducteur_supp['nom']))
    221                                                 $traducteurs[$lang][strtolower($traducteur_supp['nom'])] = $traducteur_supp;
     227                                                $infos[$lang]['traducteurs'][strtolower($traducteur_supp['nom'])] = $traducteur_supp;
    222228                                        unset($traducteur_supp);
    223229                                        $people_unique[] = $traducteur;
     
    230236        // ecrire lang/module.xml
    231237        $xml = "<traduction module=\"$source[1]\" gestionnaire=\"salvatore\" url=\"$url_site\" source=\"$source[0]\" reference=\"$source[2]\">\n";
    232         foreach($traducteurs as $lang => $peoples) {
    233                 if ($peoples) {
    234                         $xml .= "       <langue code=\"$lang\" url=\"".parametre_url($url_trad,'lang_cible',$lang)."\">\n";
    235                         ksort($peoples);
    236                         foreach ($peoples as $nom => $people) {
     238        foreach($infos as $lang => $info) {
     239                if (count($info['traducteurs'] > 0)) {
     240                        $xml .= "       <langue code=\"$lang\" url=\"".parametre_url($url_trad,'lang_cible',$lang)."\" total=\"$count_original\" traduits=\"".$info['traduits']."\" modifs=\"".$info['modifs']."\" nouveaux=\"".($count_original-($info['modifs']+$info['traduits']))."\" pourcent=\"".number_format((($info['traduits']/$count_original)*100),2)."\">\n";
     241                        ksort($info['traducteurs']);
     242                        foreach ($info['traducteurs'] as $nom => $people) {
    237243                                $xml .= "               <traducteur nom=\"".entites_html($people['nom'])."\" lien=\"".entites_html($people['lien'])."\" />\n";
    238244                        }
    239245                        $xml .= "       </langue>\n";
    240246                } else
    241                         $xml .= "       <langue code=\"$lang\" />\n";
     247                        $xml .= "       <langue code=\"$lang\" url=\"".parametre_url($url_trad,'lang_cible',$lang)."\" />\n";
    242248        }
    243249        unset($traducteurs[$source[2]]);
Note: See TracChangeset for help on using the changeset viewer.