Changeset 54134 in spip-zone


Ignore:
Timestamp:
Nov 6, 2011, 8:05:45 PM (9 years ago)
Author:
esj@…
Message:

langonet quand on complète un fichier de langue commençant par un bandeau perso, reproduire ce bandeau. Et evacaution de qq indéfinis.

Location:
_plugins_/langonet
Files:
3 edited

Legend:

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

    r54088 r54134  
    6565                $resultats = $langonet_verifier_items($module, $ou_fichier);
    6666        }
    67 
    68         // Creation du fichier de langue corrige avec les items detectes comme non definis ou obsoletes
    69         // suivant la verification en cours
     67        // Creation du fichier de langue corrige avec les items detectes comme
     68        // non definis ou obsoletes suivant la verification en cours
    7069        $_l = ($verification=='fonction_l');
    7170        $all = $resultats[$_l ? "item_non" : 'item_non_mais_nok'];
    7271        if ($all) {
     72                if ($verification != 'utilisation') {
     73                        $extra = array();
     74                        foreach ($all as $item) {
     75                                // indefini si dejo normalise
     76                                $extra[$item] = @$resultats['item_md5'][$item];                         }
     77                        $mode = $_l ?'fonction_l' :  'oublie';
     78                } else {
     79                        $extra = $resultats['item_non'];
     80                        $mode = 'inutile';
     81                }
    7382                $langonet_corriger = charger_fonction('langonet_generer_fichier','inc');
    74                 if ($verification != 'utilisation') {
    75                         $oublies = array();
    76                         foreach ($all as $_item) {
    77                                 $index = preg_match('/^(.*)[{].*[}]$/', $_item, $m) ? $m[1] : $_item;
    78                                 $oublies[$index] = @$resultats['item_md5'][$_item]; // indefini si dejo normalise
    79                         }
    80                         $mode = $_l ?'fonction_l' :  'oublie';
    81                         $corrections = $langonet_corriger($module, $langue, $ou_langue, $langue, $mode, $encodage, $oublies);
    82                 }
    83                 else {
    84                         $inutiles = $resultats['item_non'];
    85                         $mode = 'inutile';
    86                         $corrections = $langonet_corriger($module, $langue, $ou_langue, $langue, $mode, $encodage, $inutiles);
    87                 }
     83                $corrections = $langonet_corriger($module, $langue, $ou_langue, $langue, $mode, $encodage, $extra);
    8884        }
    8985
     
    495491        // Pour chaque item on construit le sed
    496492        // et on collecte au passage les fichiers qui le contiennent
    497         foreach ($all as $index => $val) {
     493        if (is_array($all)) foreach ($all as $index => $val) {
    498494                foreach($val as $f => $l) $files[$f]= str_replace(_DIR_RACINE . $ou, '', $f);
    499495                $fichier = key($val);
     
    537533}
    538534
    539 // Calcul du representant canonique d'un premier argument de _L.
     535// Calcul du representant canonique d'une chmine de langue (_L ou <: :>)
    540536// C'est un transcodage ASCII, reduits aux 32 premiers caracteres,
    541537// les caracteres non alphabetiques etant remplaces par un souligne.
  • _plugins_/langonet/inc/langonet_generer_fichier.php

    r53958 r54134  
    22
    33if (!defined('_ECRIRE_INC_VERSION')) return;
     4
     5define('_LANGONET_SIGNATURE', "// Ceci est un fichier langue de SPIP -- This is a SPIP language file");
    46
    57/**
     
    1719function inc_langonet_generer_fichier($module, $langue_source, $ou_langue, $langue_cible='en', $mode='index', $encodage='utf8', $oublis_inutiles=array()) {
    1820        include_spip('inc/traduire');
     21        $bandeau = '';
    1922        $var_source = "i18n_".$module."_".$langue_source;
     23        $source = _DIR_RACINE.$ou_langue.$module.'_'.$langue_source.'.php';
     24        // Trouver dans quel cas ce fichier n'a pas deja ete inclus a ce stade
    2025        if (empty($GLOBALS[$var_source])) {
    2126                if (!file_exists($source = _DIR_RACINE.$ou_langue.$module.'_'.$langue_source.'.php'))
    2227                        return array('message_erreur' =>  _T('langonet:message_nok_fichier_langue',  array('langue' => $langue_source, 'module' => $module, 'dossier' => $ou_langue)));
     28
    2329                $GLOBALS['idx_lang'] = $var_source;     
    2430                include($source);
     31        }
     32        // Recuperer le bandeau d'origine si present.
     33        if ($file = file($source)) {
     34                array_shift($file); // saute < ? php
     35                foreach($file as $line) {
     36                        $bandeau .= $line;
     37                        if (strpos($line, _LANGONET_SIGNATURE) !== false)
     38                          {$file = ''; break;}
     39                }
     40                if ($file) $bandeau = '';
    2541        }
    2642
     
    3753        $dir = sous_repertoire(_DIR_TMP,"langonet");
    3854        $dir = sous_repertoire($dir,"generation");
    39         $producteur = "Produit automatiquement par le plugin LangOnet a partir de la langue source $langue_source";
    40         $ok = ecrire_fichier_langue_php($dir, $langue_cible, $module, $source, $producteur);
     55        $bandeau .= "// Produit automatiquement par le plugin LangOnet a partir de la langue source $langue_source";
     56        $ok = ecrire_fichier_langue_php($dir, $langue_cible, $module, $source, $bandeau);
    4157
    4258        if (!$ok) {
     
    117133                }
    118134        }
     135        if (!strpos($producteur, _LANGONET_SIGNATURE))
     136                $producteur = _LANGONET_SIGNATURE . "\n" . preg_replace(",\\n[/#]*,", "\n/// ", $producteur);
    119137
    120         return '<'.'?php' . "\n" . '
    121 // Ceci est un fichier langue de SPIP -- This is a SPIP language file' . '
    122 // ' . preg_replace(",\\n[/#]*,", "\n/// ", $producteur) . '
     138        return '<'.'?php' . "\n\n" . $producteur . '
    123139// Module: ' . $module . '
    124140// Langue: ' . $langue . '
     
    134150}
    135151
     152// Fonction aussi pour Plugonet
    136153function ecrire_fichier_langue_php($dir, $langue, $module, $items, $producteur='')
    137154{
  • _plugins_/langonet/inc/langonet_verifier_items.php

    r54051 r54134  
    103103        $utilises['modules'][$index] = $occ[1];
    104104        $utilises['item_tous'][$index][$_fichier][$ligne][] = trim($occ[0]);
    105         $utilises['suffixes'][$index] = (($occ[3][0]==='.') OR ($eval AND strpos($occ[2], '$')));
     105        $utilises['suffixes'][$index] = (($occ[3] AND ($occ[3][0]==='.')) OR ($eval AND strpos($occ[2], '$')));
    106106}
    107107
Note: See TracChangeset for help on using the changeset viewer.