Changeset 90036 in spip-zone


Ignore:
Timestamp:
Jun 9, 2015, 10:10:29 AM (6 years ago)
Author:
kent1@…
Message:

Grosse amélioration de l'import des .po, on ne gérait pas les chaînes de plusieurs lignes

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

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk/formulaires/tradlang_importer_langue.html

    r82035 r90036  
    1717                                <input type="submit" class="submit" value="<:tradlang:bouton_suivant:>" />
    1818                        </p>
    19                 </div></form>
    20         ]
     19                </div>
     20        </form>]
    2121</div>
  • _plugins_/trad-lang/trunk/formulaires/tradlang_importer_langue.php

    r90022 r90036  
    7474                                if(file_exists($dest_po)){
    7575                                        lire_fichier($dest_po,$contenu_po);
    76                                         preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr.*\"\n,Uims', $contenu_po,$matches);
     76                                        preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr(.*)\#,Uims', $contenu_po,$matches);
    7777                                        $array_po = array();
    7878                                        foreach($matches[0] as $match){
    7979                                                $statut = "OK";
    8080                                                preg_match(',\#\| msgid \"(.*)\"\n,Uims',$match,$matches);
    81                                                 preg_match(',^msgstr \"(.*)(\"\n),Uims',$match,$matches_str);
    82                                                 $str = $matches_str[1];
     81                                                preg_match(',msgstr \"(.*)\n\#,Uims',$match,$matches_str);
     82                                                $str = rtrim(trim($matches_str[1]),'"');
     83                                                $str = trim(str_replace("\"\n\"","\n",$str));
    8384                                                if(preg_match(',\#\, fuzzy\, php-format,',$match,$matches_statut))
    8485                                                        $statut = "MODIF";
     
    9091                                        foreach($langues_base as $strings_id => $strings){
    9192                                                $str_lang[$strings['id']] = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
    92                                                
    9393                                                if(isset($array_po[$strings['id']]['str']) && strlen(trim($array_po[$strings['id']]['str'])) > 0){
    9494                                                        if(($strings['str'] != $array_po[$strings['id']]['str']) OR ($strings['statut'] != $array_po[$strings['id']]['statut'])){
     
    111111
    112112function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_module,$lang) {
     113        $erreurs = array();
    113114        if(_request('_etape')==1){
    114115                $module = sql_getfetsel('module','spip_tradlang_modules','id_tradlang_module='.intval($id_tradlang_module));
     
    191192                                                else{
    192193                                                        lire_fichier($dest,$contenu_po);
    193                                                         preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr.*\"\n,Uims', $contenu_po,$matches);
     194                                                        preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr(.*)\#,Uims', $contenu_po,$matches);
    194195                                                        $array_po = array();
    195196                                                        foreach($matches[0] as $match){
    196197                                                                $statut = "OK";
    197198                                                                preg_match(',\#\| msgid \"(.*)\"\n,Uims',$match,$matches);
    198                                                                 preg_match(',^msgstr \"(.*)(\"\n),Uims',$match,$matches_str);
    199                                                                 $str = $matches_str[1];
     199                                                                preg_match(',msgstr \"(.*)\n\#,Uims',$match,$matches_str);
     200                                                                $str = rtrim(trim($matches_str[1]),'"');
     201                                                                $str = trim(str_replace("\"\n\"","\n",$str));
    200202                                                                if(preg_match(',\#\, fuzzy\, php-format,',$match,$matches_statut))
    201203                                                                        $statut = "MODIF";
     
    225227                        $erreurs['fichier_langue'] = _T('tradlang:erreur_upload_aucune_modif');
    226228        }
     229        spip_log($modifs,'test.'._LOG_ERREUR);
    227230        return $erreurs;
    228231}
     
    235238        $dest = $dir_lang.$fichier_php;
    236239        $destpo = $dir_lang.$fichier_po;
    237         $modifs = array();
     240        $modifs = $erreurs = array();
    238241        if(file_exists($dest)){
    239242                $memtrad = $GLOBALS['idx_lang'] = 'i18n_'.crc32($module).'_tmp';
     
    261264        if(!count($modifs))
    262265                $erreurs['message_erreur'] = _T('tradlang:erreur_upload_choisir_une');
     266        spip_log($modifs,'test.'._LOG_ERREUR);
    263267        return $erreurs;
    264268}
     
    266270function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,$lang) {
    267271        include_spip('action/editer_tradlang');
    268        
     272
    269273        $module = sql_getfetsel('module','spip_tradlang_modules','id_tradlang_module='.intval($id_tradlang_module));
    270274        $fichier_php = $module.'_'.$lang.'.php';
     
    318322                }
    319323                spip_unlink($dest);
    320         }else if(file_exists($dest = $dir_lang.$fichier_po)){
     324        }
     325        else if(file_exists($dest = $dir_lang.$fichier_po)){
    321326                lire_fichier($dest,$contenu_po);
    322                 preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr.*\"\n,Uims', $contenu_po,$matches);
     327                preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr(.*)\#,Uims', $contenu_po,$matches);
    323328                $array_po = array();
    324329                foreach($matches[0] as $match){
    325330                        $statut = "OK";
    326331                        preg_match(',\#\| msgid \"(.*)\"\n,Uims',$match,$matches);
    327                         preg_match(',^msgstr \"(.*)(\"\n),Uims',$match,$matches_str);
    328                         $str = $matches_str[1];
     332                        preg_match(',msgstr \"(.*)\n\#,Uims',$match,$matches_str);
     333                        $str = rtrim(trim($matches_str[1]),'"');
     334                        $str = trim(str_replace("\"\n\"","\n",$str));
    329335                        if(preg_match(',\#\, fuzzy\, php-format,',$match,$matches_statut)){
    330336                                $statut = "MODIF";
  • _plugins_/trad-lang/trunk/formulaires/tradlang_importer_langue_2.html

    r83954 r90036  
    77                #ACTION_FORMULAIRE{#ENV{action},#FORM}
    88                        <h3 class="titrem"><:tradlang:titre_form_import_step_2:></h3>
     9                        <B_modifs>
    910                        <ul>
    1011                                <li>
     
    5253                                </li>
    5354                        </ul>
     55                        </B_modifs>
    5456                        <p class="boutons">
    55                                  <input type="submit" name="_retour_etape_1" class="submit" value="<:tradlang:bouton_precedent:>" />
    56                  <input type="submit" class="submit" value="<:tradlang:bouton_suivant:>" />
     57                                <input type="submit" name="_retour_etape_1" class="submit" value="<:tradlang:bouton_precedent:>" />
     58                                <input type="submit" class="submit" value="<:tradlang:bouton_suivant:>" />
    5759                        </p>
    5860         </div></form>
Note: See TracChangeset for help on using the changeset viewer.