Changeset 97008 in spip-zone


Ignore:
Timestamp:
May 6, 2016, 1:31:54 PM (5 years ago)
Author:
kent1@…
Message:

PSR SPIP

Location:
_plugins_/trad-lang/trunk/export_lang
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk/export_lang/csv.php

    r93933 r97008  
    11<?php
    22/**
    3  * 
     3 *
    44 * Trad-lang v2
    55 * Plugin SPIP de traduction de fichiers de langue
    66 * © Florent Jugla, Fil, kent1
    7  * 
     7 *
    88 * Fichier d'export d'un module de langue en .csv
    99 */
    10  
     10
    1111if (!defined('_ECRIRE_INC_VERSION')) {
    1212        return;
     
    1515/**
    1616 * Fonction d'export d'une langue d'un module en .csv
    17  * 
    18  * @param string $module 
     17 *
     18 * @param string $module
    1919 *              Le module à exporter (le champ "module" dans la base)
    20  * @param string $langue 
     20 * @param string $langue
    2121 *              La langue à exporter
    22  * @param string $dir_lang 
     22 * @param string $dir_lang
    2323 *              Le répertoire où stocker les fichiers de langue
    24  * @return string $fichier 
     24 * @return string $fichier
    2525 *              Le fichier final
    2626 */
    27 function export_lang_csv_dist($module,$langue,$dir_lang){
     27function export_lang_csv_dist($module, $langue, $dir_lang) {
    2828        $chaines_csv=$tous=array();
    29        
     29
    3030        /**
    3131         * Le fichier final
    3232         * local/cache-lang/module_lang.csv
    3333         */
    34         $fichier = $dir_lang."/".$module."_".$langue.".csv";
     34        $fichier = $dir_lang . '/' . $module . '_' . $langue . '.csv';
    3535
    3636        /**
    3737         * Les informations du module
    38          */     
    39         $info_module = sql_fetsel('id_tradlang_module,lang_mere,nom_mod','spip_tradlang_modules','module='.sql_quote($module));
     38         */
     39        $info_module = sql_fetsel('id_tradlang_module,lang_mere,nom_mod', 'spip_tradlang_modules', 'module = ' . sql_quote($module));
    4040
    4141        /**
    4242         * Les chaines
    4343         */
    44         $res=sql_allfetsel("id,str,statut,comm","spip_tradlangs","id_tradlang_module=".intval($info_module['id_tradlang_module'])." AND lang=".sql_quote($langue)." AND statut != 'attic'","id");
    45         foreach($res as $row){
     44        $res = sql_allfetsel('id,str,statut,comm', 'spip_tradlangs', 'id_tradlang_module = ' . intval($info_module['id_tradlang_module']) . ' AND lang=' . sql_quote($langue) . ' AND statut != "attic"', 'id');
     45        foreach ($res as $row) {
    4646                $tous[$row['id']] = $row;
    4747        }
    4848        ksort($tous);
    49        
     49
    5050        foreach ($tous as $id => $row) {
    5151                $str = $row['str'];
    5252
    5353                $oldmd5 = md5($str);
    54                 $str = str_replace("\r\n", "\n", unicode_to_utf_8(
    55                         html_entity_decode(
    56                                 preg_replace('/&([lg]t;)/S', '&amp;\1', $str),
    57                                 ENT_NOQUOTES, 'utf-8')
    58                 ));
     54                $str = str_replace("\r\n", "\n", unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8')));
    5955                $newmd5 = md5($str);
    6056
    61                 if ($oldmd5 !== $newmd5) sql_updateq("spip_tradlangs",array('md5'=>$newmd5), "md5=".sql_quote($oldmd5)." AND id_tradlang_module=".intval($info_module['id_tradlang_module']));
    62                 $str_original = sql_getfetsel('str','spip_tradlangs','id ='.sql_quote($id).' AND id_tradlang_module='.intval($info_module['id_tradlang_module']).' AND lang='.sql_quote($info_module['lang_mere']));
     57                if ($oldmd5 !== $newmd5) {
     58                        sql_updateq('spip_tradlangs', array('md5'=>$newmd5), 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']));
     59                }
     60                $str_original = sql_getfetsel('str', 'spip_tradlangs', 'id = '.sql_quote($id).' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']).' AND lang = ' . sql_quote($info_module['lang_mere']));
    6361
    6462                $chaine = array('id' => $row['id'],'str_orig'=>$str_original,'str'=>$str,'statut'=>$row['statut'],'comm'=>$row['comm']);
     
    6866
    6967        $fp = fopen($fichier, 'w');
    70        
     68
    7169        foreach ($chaines_csv as $fields) {
    7270                fputcsv($fp, $fields);
     
    7775        return $fichier;
    7876}
    79 ?>
  • _plugins_/trad-lang/trunk/export_lang/po.php

    r93933 r97008  
    11<?php
    22/**
    3  * 
     3 *
    44 * Trad-lang v2
    55 * Plugin SPIP de traduction de fichiers de langue
    66 * © Florent Jugla, Fil, kent1
    7  * 
     7 *
    88 * Fichier d'export d'un module de langue en .po (Gettext)
    99 */
    10  
     10
    1111if (!defined('_ECRIRE_INC_VERSION')) {
    1212        return;
     
    1515/**
    1616 * Fonction d'export d'une langue d'un module en .po
    17  * 
     17 *
    1818 * Les chaînes avec un statut NEW sont vidées
    1919 * Les chaînes avec un statut MODIF sont mises en "fuzzy"
    20  * 
    21  * @param string $module 
     20 *
     21 * @param string $module
    2222 *              Le module à exporter (le champ "module" dans la base)
    23  * @param string $langue 
     23 * @param string $langue
    2424 *              La langue à exporter
    25  * @param string $dir_lang 
     25 * @param string $dir_lang
    2626 *              Le répertoire où stocker les fichiers de langue
    27  * @return string $fichier 
     27 * @return string $fichier
    2828 *              Le fichier final
    2929 */
    30 function export_lang_po_dist($module,$langue,$dir_lang){
     30function export_lang_po_dist($module, $langue, $dir_lang) {
    3131        $x=$tous=array();
    3232        $contenu = '';
    33        
     33
    3434        /**
    3535         * Le fichier final
    3636         * local/cache-lang/module_lang.po
    3737         */
    38         $fichier = $dir_lang."/".$module."_".$langue.".po";
     38        $fichier = $dir_lang . '/' . $module . '_' . $langue . '.po';
    3939
    4040        /**
    4141         * Les informations du module
    42          */     
    43         $info_module = sql_fetsel('id_tradlang_module,lang_mere,nom_mod','spip_tradlang_modules','module='.sql_quote($module));
    44        
    45         $url_trad = url_absolue(parametre_url(generer_url_entite($info_module['id_tradlang_module'],'tradlang_module'),'lang_cible',$langue));
    46        
     42         */
     43        $info_module = sql_fetsel('id_tradlang_module,lang_mere,nom_mod', 'spip_tradlang_modules', 'module = ' . sql_quote($module));
     44
     45        $url_trad = url_absolue(parametre_url(generer_url_entite($info_module['id_tradlang_module'], 'tradlang_module'), 'lang_cible', $langue));
     46
    4747        /**
    4848         * Gestion des auteurs
    49          * 
     49         *
    5050         * On ajoute une liste de traducteurs en entête de fichier (non obligatoire)
    5151         * On ajoute également l'item "Last-Translator : user <email>" dans les métas ($last_auteur)
    5252         */
    5353        $last_auteur = array();
    54         if($langue != $info_module['lang_mere']){
    55                 $traducteur = sql_fetsel('id_tradlang,traducteur','spip_tradlangs',"id_tradlang_module=".intval($info_module['id_tradlang_module'])." AND lang=".sql_quote($langue),"",'maj DESC','0,1');
    56                 if(is_numeric($traducteur['traducteur']))
     54        if ($langue != $info_module['lang_mere']) {
     55                $traducteur = sql_fetsel('id_tradlang,traducteur', 'spip_tradlangs', 'id_tradlang_module = ' . intval($info_module['id_tradlang_module']) . ' AND lang = '.sql_quote($langue), '', 'maj DESC', '0,1');
     56                if (is_numeric($traducteur['traducteur'])) {
    5757                        $id_auteur = $traducteur['traducteur'];
    58                 else
    59                         $id_auteur = sql_getfetsel('id_auteur','spip_versions','objet="tradlang" AND id_objet='.intval($traducteur['id_tradlang']),"",'id_version DESC','0,1');
     58                } else {
     59                        $id_auteur = sql_getfetsel('id_auteur', 'spip_versions', 'objet="tradlang" AND id_objet = ' . intval($traducteur['id_tradlang']), '', 'id_version DESC', '0,1');
     60                }
    6061
    61                 $last_auteur = sql_fetsel('nom,email','spip_auteurs','id_auteur='.intval($id_auteur));
    62                
     62                $last_auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
     63
    6364                $traducteurs[$lang] = array();
    6465                $people_unique = array();
    65                 $liste_traducteurs = sql_select('DISTINCT(traducteur)','spip_tradlangs','id_tradlang_module='.intval($info_module['id_tradlang_module'])." and lang=".sql_quote($langue));
    66                 while ($t = sql_fetch($liste_traducteurs)){
    67                         $traducteurs_lang = explode(',',$t['traducteur']);
    68                         foreach($traducteurs_lang as $traducteur){
    69                                 if(!in_array($traducteur,$people_unique)){
    70                                         if(is_numeric($traducteur) AND $id_auteur=intval($traducteur)){
    71                                                 $traducteur_supp['nom'] = extraire_multi(sql_getfetsel('nom','spip_auteurs','id_auteur='.$id_auteur));
    72                                                 $traducteur_supp['lien'] = url_absolue(generer_url_entite($id_auteur,'auteur'),$url_site);
    73                                         }else if(trim(strlen($traducteur)) > 0){
     66                $liste_traducteurs = sql_select('DISTINCT(traducteur)', 'spip_tradlangs', 'id_tradlang_module = '.intval($info_module['id_tradlang_module']) . ' AND lang = ' . sql_quote($langue));
     67                while ($t = sql_fetch($liste_traducteurs)) {
     68                        $traducteurs_lang = explode(',', $t['traducteur']);
     69                        foreach ($traducteurs_lang as $traducteur) {
     70                                if (!in_array($traducteur, $people_unique)) {
     71                                        if (is_numeric($traducteur) and $id_auteur=intval($traducteur)) {
     72                                                $traducteur_supp['nom'] = extraire_multi(sql_getfetsel('nom', 'spip_auteurs', 'id_auteur = ' . $id_auteur));
     73                                                $traducteur_supp['lien'] = url_absolue(generer_url_entite($id_auteur, 'auteur'), $url_site);
     74                                        } elseif (trim(strlen($traducteur)) > 0) {
    7475                                                $traducteur_supp['nom'] = trim($traducteur);
    7576                                                $traducteur_supp['lien'] = '';
    7677                                        }
    77                                         if(isset($traducteur_supp['nom']))
     78                                        if (isset($traducteur_supp['nom'])) {
    7879                                                $traducteurs[$lang][] = $traducteur_supp;
     80                                        }
    7981                                        unset($traducteur_supp);
    8082                                        $people_unique[] = $traducteur;
     
    8284                        }
    8385                }
    84                 foreach($traducteurs as $lang => $peoples) {
     86                foreach ($traducteurs as $lang => $peoples) {
    8587                        $trad_texte = "#\n# Traducteurs :\n";
    8688                        if ($peoples) {
    8789                                foreach ($peoples as $people) {
    88                                         $trad_texte .= "# ".$people['nom']." (".$people['lien'].")\n";
     90                                        $trad_texte .= '# ' . $people['nom'] . ' (' . $people['lien'] . ")\n";
    8991                                }
    9092                        }
     
    119121        /**
    120122         * Les chaines
    121          * 
     123         *
    122124         * On crée un bloc pour chaque chaînes sous la forme
    123          * 
     125         *
    124126         * #, php-format
    125          * #| msgid "id_dans_la_base" 
     127         * #| msgid "id_dans_la_base"
    126128         * msgid "Item dans la langue originale"
    127129         * msgstr "Item dans la langue actuelle (traduit), si non traduit, vide"
     
    132134        }
    133135        ksort($tous);
    134        
     136
    135137        foreach ($tous as $id => $row) {
    136                 if (trim($row['comm'])) $row['comm']=" # ".trim($row['comm']); // on rajoute les commentaires ?
     138                if (trim($row['comm'])) {
     139                        /**
     140                         * on rajoute les commentaires ?
     141                         */
     142                        $row['comm'] = ' # ' . trim($row['comm']);
     143                }
    137144
    138145                $str = $row['str'];
    139146
    140147                $oldmd5 = md5($str);
    141                 $str = unicode_to_utf_8(
    142                         html_entity_decode(
    143                                 preg_replace('/&([lg]t;)/S', '&amp;\1', $str),
    144                                 ENT_NOQUOTES, 'utf-8')
    145                 );
     148                $str = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8'));
    146149                $newmd5 = md5($str);
    147150
    148                 if ($oldmd5 !== $newmd5) sql_updateq("spip_tradlangs",array('md5'=>$newmd5), "md5=".sql_quote($oldmd5)." AND id_tradlang_module=".intval($info_module['id_tradlang_module']));
    149                 $str_original = sql_getfetsel('str','spip_tradlangs','id ='.sql_quote($id).' AND id_tradlang_module='.intval($info_module['id_tradlang_module']).' AND lang='.sql_quote($info_module['lang_mere']));
    150                 $x[]=($row['comm'] ? "#".$row['comm']."\n" : "").
    151 "
    152 #, ".(($row['statut'] == 'MODIF') ? "fuzzy, php-format" : "php-format")."
     151                if ($oldmd5 !== $newmd5) {
     152                        sql_updateq('spip_tradlangs', array('md5' => $newmd5), 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']));
     153                }
     154                $str_original = sql_getfetsel('str', 'spip_tradlangs', 'id =' . sql_quote($id) . ' AND id_tradlang_module=' . intval($info_module['id_tradlang_module']) . ' AND lang=' . sql_quote($info_module['lang_mere']));
     155                $x[] = ($row['comm'] ? '#' . $row['comm']."\n" : '').
     156'
     157#, '.(($row['statut'] == 'MODIF') ? 'fuzzy, php-format' : 'php-format')."
    153158#| msgid \"".$row['id']."\"
    154 msgid \"".str_replace('"','\"',$str_original)."\"
    155 msgstr \"".(($row['statut'] == 'NEW') ? '' : str_replace('"','\"',$str))."\"";
     159msgid \"".str_replace('"', '\"', $str_original)."\"
     160msgstr \"".(($row['statut'] == 'NEW') ? '' : str_replace('"', '\"', $str))."\"";
    156161                unset($tous[$id]);
    157162        }
    158163
    159         $contenu .= str_replace("\r\n", "\n", join("\n",$x));
    160        
    161         ecrire_fichier($fichier,$contenu);
     164        $contenu .= str_replace("\r\n", "\n", join("\n", $x));
     165
     166        ecrire_fichier($fichier, $contenu);
    162167        return $fichier;
    163168}
    164 ?>
  • _plugins_/trad-lang/trunk/export_lang/spip.php

    r93933 r97008  
    11<?php
    22/**
    3  * 
     3 *
    44 * Trad-lang v2
    55 * Plugin SPIP de traduction de fichiers de langue
    66 * © Florent Jugla, Fil, kent1
    7  * 
     7 *
    88 * Fichier des fonctions spécifiques du plugin
    99 */
    1010
    11 if (!defined("_ECRIRE_INC_VERSION")) {
     11if (!defined('_ECRIRE_INC_VERSION')) {
    1212        return;
    1313}
     
    1515/**
    1616 * Fonction d'export d'une langue d'un module SPIP en php
    17  * 
     17 *
    1818 * @param string $module
    1919 *              Le module à exporter
     
    2727 *              Le fichier final
    2828 */
    29 function export_lang_spip_dist($module,$langue,$dir_lang,$tout=false){
     29function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
    3030        /**
    3131         * Le fichier final
    3232         * local/cache-lang/module_lang.php
    3333         */
    34         $fichier = $dir_lang."/".$module."_".$langue.".php";
     34        $fichier = $dir_lang . '/' . $module . '_' . $langue . '.php';
    3535
    3636        $tab = "\t";
    37         $where = "module=".sql_quote($module)." AND lang=".sql_quote($langue);
    38         if(!$tout)
     37        $where = 'module = ' . sql_quote($module) . ' AND lang = ' . sql_quote($langue);
     38        if (!$tout) {
    3939                $where .= " AND statut IN ('OK','MODIF','RELIRE')";
    40         $res=sql_allfetsel("id,str,comm,statut","spip_tradlangs",$where,"id");
     40        }
     41        $res=sql_allfetsel('id,str,comm,statut', 'spip_tradlangs', $where, 'id');
    4142        $x=array();
    42         $prev="";
    43         $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)
    44         foreach ($res as $row){
     43        $prev = '';
     44        /**
     45         * on part de l'origine comme ca on a tout
     46         * meme si c'est pas dans la base de donnees (import de salvatore/lecteur.php)
     47         */
     48        $tous = $lorigine;
     49        foreach ($res as $row) {
    4550                $tous[$row['id']] = $row;
    4651        }
    4752        ksort($tous);
    4853        foreach ($tous as $row) {
    49                 if ($prev!=strtoupper($row['id'][0])) $x[] = "\n$tab// ".strtoupper($row['id'][0]);
    50                 $prev=strtoupper($row['id'][0]);
    51                 if (strlen($row['statut']) && ($row['statut'] != 'OK'))
     54                if ($prev != strtoupper($row['id'][0])) {
     55                        $x[] = "\n$tab// ".strtoupper($row['id'][0]);
     56                }
     57                $prev = strtoupper($row['id'][0]);
     58                if (strlen($row['statut']) and ($row['statut'] != 'OK')) {
    5259                        $row['comm'] .= ' '.$row['statut'];
    53                 if (trim($row['comm'])) $row['comm']=" # ".trim($row['comm']); // on rajoute les commentaires ?
     60                }
     61                if (trim($row['comm'])) {
     62                        /**
     63                         * on rajoute les commentaires ?
     64                         */
     65                        $row['comm'] = ' # ' . trim($row['comm']);
     66                }
    5467
    5568                $str = $row['str'];
    5669
    5770                $oldmd5 = md5($str);
    58                 $str = unicode_to_utf_8(
    59                         html_entity_decode(
    60                                 preg_replace('/&([lg]t;)/S', '&amp;\1', $str),
    61                                 ENT_NOQUOTES, 'utf-8')
    62                 );
     71                $str = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8'));
    6372                $newmd5 = md5($str);
    64                 if ($oldmd5 !== $newmd5) sql_updateq("spip_tradlangs",array('md5'=>$newmd5), "md5=".sql_quote($oldmd5)." AND module=".sql_quote($module));
     73                if ($oldmd5 !== $newmd5) {
     74                        sql_updateq('spip_tradlangs', array('md5'=>$newmd5), 'md5 = ' . sql_quote($oldmd5) . ' AND module = '.sql_quote($module));
     75                }
    6576
    66                 $x[]="$tab".var_export($row['id'],1).' => ' .var_export($str,1).','.$row['comm'] ;
     77                $x[] = "$tab".var_export($row['id'], 1) . ' => ' . var_export($str, 1) . ',' . $row['comm'] ;
    6778        }
    6879
     
    8394        $x[count($x)-1] = preg_replace('/,([^,]*)$/', '\1', $x[count($x)-1]);
    8495
    85         $contenu = join("\n",$x);
    86        
     96        $contenu = join("\n", $x);
     97
    8798        /**
    8899         * On écrit le fichier
    89100         */
    90         fwrite($fd,
    91         '<'.'?php
     101        fwrite(
     102                $fd,
     103                '<'.'?php
    92104// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
    93105// extrait automatiquement de '.$url_trad.'
    94106// ** ne pas modifier le fichier **
    95107'
    96 ."\n".$secure.'$GLOBALS[$GLOBALS[\'idx_lang\']] = array(
     108                ."\n".$secure.'$GLOBALS[$GLOBALS[\'idx_lang\']] = array(
    97109'
    98 . str_replace("\r\n", "\n", $contenu)
    99 .'
     110                . str_replace("\r\n", "\n", $contenu)
     111                .'
    100112);
    101113
    102114?'.'>'
    103115        );
    104        
     116
    105117        fclose($fd);
    106118        @chmod($fichier, 0666);
    107        
     119
    108120        return $fichier;
    109121}
    110 ?>
Note: See TracChangeset for help on using the changeset viewer.