Changeset 75329 in spip-zone


Ignore:
Timestamp:
Sep 9, 2013, 5:05:03 PM (6 years ago)
Author:
kent1@…
Message:

On permet d'exporter le module .php complet ou partiel, le partiel est celui qui doit être utilisé en prod, le complet ne doit servir que de base de traduction

On généralise l'export en .po sur toutes les pages

On ajoute un confirm javascript sur l'export en .po et en .php complet pour expliquer que cela ne doit servir que comme base de traduction

On en profite pour améliorer un chouilla la structure html en ajoutant des class sur les boutons par exemple

Amélioration de certains phpdoc
Passage en version 2.1.4

Location:
_plugins_/trad-lang/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk/action/tradlang_exporter_langue.php

    r70914 r75329  
    1414        $securiser_action = charger_fonction('securiser_action', 'inc');
    1515        $arg = $securiser_action();
    16 
    17         if (!preg_match(",^([0-9]+)\/(\w+)?(\/?(\w*))$,", $arg, $r))
     16        if (!preg_match(",^([0-9]+)\/(\w+)?(\/?(\w*))?(\/?(\w*))$,", $arg, $r))
    1817                spip_log("action_tradlang_exporter_langue_dist $arg pas compris","tradlang");
    1918
     
    2120        $lang_cible = $r[2];
    2221        $type = $r[4] ? $r[4] : false;
    23 
     22        $tout = ($r[6] == 'non') ? false : true;
    2423        if($lang_cible && intval($id_tradlang_module) && sql_countsel('spip_tradlangs','id_tradlang_module='.intval($id_tradlang_module).' AND lang='.sql_quote($lang_cible))){
    2524                $module = sql_getfetsel('module','spip_tradlang_modules','id_tradlang_module='.intval($id_tradlang_module));
    2625                $tradlang_sauvegarde_module = charger_fonction('tradlang_sauvegarde_module','inc');
    27                 $fichier = $tradlang_sauvegarde_module($module,$lang_cible,false,$type);
     26                $fichier = $tradlang_sauvegarde_module($module,$lang_cible,false,$type,$tout);
    2827                if(file_exists($fichier)){
    2928                        switch($type){
  • _plugins_/trad-lang/trunk/content/tradlang_module.html

    r71068 r75329  
    3737
    3838        [(#ENV{vue}|=={upload}|oui)
    39                 <p><a href="[(#SELF|parametre_url{vue,''})]" class="ajax btn"><:tradlang:lien_retour_module{module=#NOM_MOD}:></a></p>
     39                <div class="actions">
     40                        <a href="[(#SELF|parametre_url{vue,''})]" class="ajax btn icon-back"><:tradlang:lien_retour_module{module=#NOM_MOD}:></a>
     41                </div>
    4042                <INCLURE{fond=noisettes/vues/tradlang_upload_module,lang_orig=#GET{lang_orig},lang_cible=#GET{lang_cible},lang_cible_forcee=#GET{lang_cible_forcee},env,ajax}>]
    4143        [(#ENV{vue}|=={upload}|non)
  • _plugins_/trad-lang/trunk/export_lang/spip.php

    r64141 r75329  
    1414 * Fonction d'export d'une langue d'un module SPIP en php
    1515 *
    16  * @param string $module Le module à exporter
    17  * @param string $langue La langue à exporter
    18  * @param string $dir_lang Le répertoire où stocker les fichiers de langue
    19  * @return string $fichier Le fichier final
     16 * @param string $module
     17 *              Le module à exporter
     18 * @param string $langue
     19 *              La langue à exporter
     20 * @param string $dir_lang
     21 *              Le répertoire où stocker les fichiers de langue
     22 * @param bool $tout
     23 *              Si true, exporte toutes les chaines même non traduites
     24 * @return string $fichier
     25 *              Le fichier final
    2026 */
    21 function export_lang_spip_dist($module,$langue,$dir_lang){
     27function export_lang_spip_dist($module,$langue,$dir_lang,$tout=false){
    2228        /**
    2329         * Le fichier final
     
    2733
    2834        $tab = "\t";
    29 
    30         $res=sql_select("id,str,comm,statut","spip_tradlangs","module=".sql_quote($module)." AND lang=".sql_quote($langue),"id");
     35        $where = "module=".sql_quote($module)." AND lang=".sql_quote($langue);
     36        if(!$tout)
     37                $where .= " AND statut IN ('OK','MODIF')";
     38        $res=sql_select("id,str,comm,statut","spip_tradlangs",$where,"id");
    3139        $x=array();
    3240        $prev="";
  • _plugins_/trad-lang/trunk/inc/tradlang_sauvegarde_module.php

    r64115 r75329  
    1313 * Sauvegarde d'une langue d'un module dans son fichier
    1414 *
    15  * @param string $module le nom d'un module d'un module (par défaut local/cache-lang/$module)
    16  * @param string $langue la langue cible
    17  * @param string $dir_lang le répertoire de stockage des fichiers de langue
    18  * @return string $fic_exp le chemin complet du fichier de langue
     15 * @param string $module
     16 *              Le nom d'un module d'un module (par défaut local/cache-lang/$module)
     17 * @param string $langue
     18 *              La langue cible à exporter
     19 * @param string $dir_lang
     20 *              Le répertoire de stockage des fichiers de langue
     21 * @param bool $tout
     22 *              Si true, exporte toutes les chaines même non traduites (utilisé uniquement pour les modules SPIP)
     23 * @return string $fichier
     24 *              Le chemin complet du fichier de langue
    1925 */
    20 function inc_tradlang_sauvegarde_module_dist($module,$langue,$dir_lang=false,$type=false){
     26function inc_tradlang_sauvegarde_module_dist($module,$langue,$dir_lang=false,$type=false,$tout=true){
    2127        include_spip('inc/flock');
    2228        include_spip('inc/filtres'); # Pour url_absolue
    23 
    2429        if(!$dir_lang){
    25                 $dir_lang = _DIR_VAR.'cache-lang/'.$module;
    26                 if(!is_dir(_DIR_VAR.'cache-lang/')){
     30                $dir_lang = _DIR_VAR.'cache-lang/'.($tout ? '':'partiels/').$module;
     31                if(!is_dir(_DIR_VAR.'cache-lang/'))
    2732                        sous_repertoire(_DIR_VAR,'cache-lang');
    28                 }
     33                if(!$tout && !is_dir(_DIR_VAR.'cache-lang/partiels/'))
     34                        sous_repertoire(_DIR_VAR.'cache-lang/','partiels');
    2935        }
    3036        if(!is_dir($dir_lang)){
    3137                sous_repertoire($dir_lang);
    32                 if(!is_dir($dir_lang)){
    33                         return false;   
    34                 }
     38                if(!is_dir($dir_lang))
     39                        return false;
    3540        }
    36        
    3741        $tradlang_module = sql_fetsel('id_tradlang_module,type_export','spip_tradlang_modules','module='.sql_quote($module));
    38        
     42
    3943        /**
    4044         * L'URL du site de traduction
    4145         */
    4246        $url_trad = parametre_url(url_absolue(generer_url_entite($tradlang_module['id_tradlang_module'],'tradlang_module')),'lang_cible',$langue);
    43        
     47
    4448        if(!$type)
    4549                $type = $tradlang_module['type_export'];
    46        
     50
    4751        if(!$f = charger_fonction($type,'export_lang'))
    4852                $f = charger_fonction('spip','export_lang');
    49        
    50         $fichier = $f($module,$langue,$dir_lang);
    51  
     53
     54        $fichier = $f($module,$langue,$dir_lang,$tout);
     55
    5256        return $fichier;
    5357}
  • _plugins_/trad-lang/trunk/lang/tradlang_fr.php

    r72199 r75329  
    1919        'bouton_exporter_fichier' => 'Exporter le fichier',
    2020        'bouton_exporter_fichier_langue' => 'Exporter le fichier de langue en "@lang@"',
     21        'bouton_exporter_fichier_langue_complet' => 'Exporter le fichier de langue complet en "@lang@"',
    2122        'bouton_exporter_fichier_langue_original' => 'Exporter le fichier de langue original ("@lang_mere@")',
     23        'bouton_exporter_fichier_langue_po' => 'Exporter le fichier de langue en "@lang@" au format .po',
    2224        'bouton_exporter_fichier_po' => 'Exporter le fichier en .po',
    2325        'bouton_exporter_fichier_zip' => 'Exporter les fichiers en zip',
     
    102104        'info_choisir_langue' => 'Dans une langue spécifique',
    103105        'info_contributeurs' => 'Contributeurs',
     106        'info_edition_par_lot' => 'Édition par lot :',
     107        'info_export' => 'Export :',
    104108        'info_filtrer_status' => 'Filtrer par statut :',
    105109        'info_langue_mere' => '(langue mère)',
     
    229233        'menu_titre_interface' => 'Interface de traduction',
    230234        'message_afficher_vos_modules' => 'Afficher les modules :',
     235        'message_avertissement_export_langue_complet' => 'Il est préconisé de ne pas utiliser ce fichier en production. Il est préférable de ne l\'utiliser que pour base de traduction.',
     236        'message_avertissement_export_langue_po' => 'Ce fichier ne peut servir que pour traduire dans un logiciel spécialisé, vous pourrez ensuite l\'importer via le bouton adéquat.',
    231237        'message_aucun_resultat_chaine' => 'Aucun résultat correspondant à vos critères dans les chaînes de langue.',
    232238        'message_aucun_resultat_statut' => 'Aucune chaine ne correspond au statut demandé.',
  • _plugins_/trad-lang/trunk/noisettes/listes/tradlang_liste_tous.html

    r72376 r75329  
    6363                </li>
    6464        </ul>]
    65         [(#SET{texte_bouton_upload,<:tradlang:bouton_upload_langue_module:>}|attribut_html)]
    6665        [(#GET{total_ok}|=={0}|et{#GET{total_cible}|>{0}}|et{#GET{autoriser_modifier}}|oui)
    6766        [(#SET{texte_bouton_delete,<:tradlang:bouton_supprimer_langue_module:>}|attribut_html)]
    6867        <div class="actions">
    6968                [(#BOUTON_ACTION{#GET{texte_bouton_delete},[(#URL_ACTION_AUTEUR{tradlang_supprimer_langue_cible,[(#ID_TRADLANG_MODULE|concat{/#ENV{lang_cible}})],#SELF})]})]
    70                 [<span class="sep"> | </span>(#BOUTON_ACTION{#GET{texte_bouton_upload},[(#SELF|parametre_url{vue,upload})]})]
    7169        </div>]
    7270        [(#GET{total_ok}|>{0}|et{#GET{total_cible}|>{0}}|et{#GET{autoriser_modifier}}|oui)
    7371        <div class="actions">
    74                 [(#BOUTON_ACTION{[(#VAL{tradlang:bouton_exporter_fichier_langue}|_T{#ARRAY{lang,#ENV{lang_cible}}})],[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#ENV{lang_cible}})],#SELF})]})]
     72                <p class="info_export"><:tradlang:info_export:></p>
     73                [(#BOUTON_ACTION{[(#VAL{tradlang:bouton_exporter_fichier_langue}|_T{#ARRAY{lang,#ENV{lang_cible}}})],[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#ENV{lang_cible}}|concat{/#TYPE_EXPORT}|concat{/non})],#SELF})],icon-export})]
     74                [(#BOUTON_ACTION{[(#VAL{tradlang:bouton_exporter_fichier_langue_complet}|_T{#ARRAY{lang,#ENV{lang_cible}}})],[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#ENV{lang_cible}})],#SELF})],icon-export,<:tradlang:message_avertissement_export_langue_complet:>})]
     75                [(#BOUTON_ACTION{[(#VAL{tradlang:bouton_exporter_fichier_langue_po}|_T{#ARRAY{lang,#ENV{lang_cible}}})],[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#ENV{lang_cible}|concat{/po}})],#SELF})],icon-export,<:tradlang:message_avertissement_export_langue_po:>})]
    7576                [(#GET{lang_orig}|et{#GET{lang_orig}|!={#LANG_MERE}}|oui)
    76                 [<span class="sep"> | </span>(#BOUTON_ACTION{[(#VAL{tradlang:bouton_exporter_fichier_langue}|_T{#ARRAY{lang,#GET{lang_orig}}})],[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#GET{lang_orig}})],#SELF})]})]]
    77                 [<span class="sep"> | </span>(#BOUTON_ACTION{<:tradlang:bouton_exporter_fichier_langue_original{lang_mere=#LANG_MERE}|attribut_html:>,[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#LANG_MERE})],#SELF})]})]
    78                 [<span class="sep"> | </span>(#BOUTON_ACTION{#GET{texte_bouton_upload},[(#SELF|parametre_url{vue,upload})]})]
     77                [(#BOUTON_ACTION{[(#VAL{tradlang:bouton_exporter_fichier_langue}|_T{#ARRAY{lang,#GET{lang_orig}}})],[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#GET{lang_orig}})],#SELF})],icon-export})]]
     78                [(#BOUTON_ACTION{<:tradlang:bouton_exporter_fichier_langue_original{lang_mere=#LANG_MERE}|attribut_html:>,[(#URL_ACTION_AUTEUR{tradlang_exporter_langue,[(#ID_TRADLANG_MODULE|concat{/#LANG_MERE})],#SELF})],icon-export})]
    7979        </div>]
    8080</div>
    8181[(#REM)
    8282[(#GET{total_mere}|>{0}|oui)<p> <:tradlang:nb_items_langue_cible{nb=#GET{total_mere},langue=#ENV{lang_cible}}:></p>]]
    83 [(#ENV{edit}|=={1}|oui)
    84 <p><a href="[(#SELF|parametre_url{edit,2})]" class="ajax btn back"><:tradlang:lien_retour_module{module=#NOM_MOD}:></a></p>]
    85 [(#ENV{edit}|=={1}|non|et{#GET{module_existant,non}|=={oui}|oui}|et{#GET{percent_ok}|!={100}|oui}|et{#GET{autoriser_modifier}|oui}|oui)
    86         <div class="actions"><p><a href="[(#SELF|parametre_url{edit,1})]" class="ajax btn edit"><:tradlang:lien_editer_tous:></a></p></div>
    87 ]
     83<div class="actions">
     84        <p><:tradlang:info_edition_par_lot:></p>
     85        [(#SET{texte_bouton_upload,<:tradlang:bouton_upload_langue_module:>}|attribut_html)]
     86        [(#ENV{edit}|=={1}|oui)
     87        <a href="[(#SELF|parametre_url{edit,2})]" class="ajax btn icon-back"><:tradlang:lien_retour_module{module=#NOM_MOD}:></a>]
     88        [(#ENV{edit}|=={1}|non|et{#GET{module_existant,non}|=={oui}|oui}|et{#GET{percent_ok}|!={100}|oui}|et{#GET{autoriser_modifier}|oui}|oui)
     89        <a href="[(#SELF|parametre_url{edit,1})]" class="ajax btn icon-edit"><:tradlang:lien_editer_tous:></a>]
     90        [(#BOUTON_ACTION{#GET{texte_bouton_upload},[(#SELF|parametre_url{vue,upload})],icon-upload})]
     91</div>
     92
    8893<BOUCLE_si_edit(CONDITION){si #GET{autoriser_modifier}|et{#ENV{edit}|=={1}}}>
    8994[(#_module:CRAYON{tradlang_tous})]
    9095</BOUCLE_si_edit>
    9196</B_si_edit>
     97
    9298<B_statut>
    9399        [(#GRAND_TOTAL|>{1}|oui)
    94         <div class="actions"><p class="filtrer"><:tradlang:info_filtrer_status:>
    95         [(#ENV{statut}|oui)<a href="[(#_module:URL_TRADLANG_MODULE|parametre_url{statut,''}|parametre_url{lang_cible,#ENV{lang_cible}}|parametre_url{lang_orig,#ENV{lang_orig}})]" class="ajax bouton"><:tradlang:lien_aucun_status:></a><span class="sep"> | </span>]
    96         [(#ENV{statut}|non)<:tradlang:lien_aucun_status:><span class="sep"> | </span>]]
    97 <BOUCLE_statut(TRADLANGS){module}{id IN #GET{str_mere}}{lang=#ENV{lang_cible}}{fusion statut}{'<span class="sep"> | </span>'}>
    98 [(#GRAND_TOTAL|>{1}|oui)
    99         [(#STATUT|!={#ENV{statut}}|oui)<a href="[(#_module:URL_TRADLANG_MODULE|parametre_url{statut,#STATUT}|parametre_url{lang_cible,#ENV{lang_cible}}|parametre_url{lang_orig,#ENV{lang_orig}})]" class="ajax bouton">#STATUT</a>]
    100         [(#STATUT|!={#ENV{statut}}|non)#STATUT]
    101 ]
    102 #SET{statut,#STATUT}
    103 </BOUCLE_statut>
    104 [(#GRAND_TOTAL|>{1}|oui)
    105 </p></div>]
    106 
    107 [(#REM)
     100        <div class="actions">
     101                <p class="filtrer"><:tradlang:info_filtrer_status:></p>
     102                [(#ENV{statut}|oui)<a href="[(#_module:URL_TRADLANG_MODULE|parametre_url{statut,''}|parametre_url{lang_cible,#ENV{lang_cible}}|parametre_url{lang_orig,#ENV{lang_orig}})]" class="ajax bouton"><:tradlang:lien_aucun_status:></a>]
     103                [(#ENV{statut}|non)<strong class="on"><:tradlang:lien_aucun_status:></strong>]]
     104        <BOUCLE_statut(TRADLANGS){module}{id IN #GET{str_mere}}{lang=#ENV{lang_cible}}{fusion statut}>
     105        [(#GRAND_TOTAL|>{1}|oui)[(#SET{statut,#STATUT})]
     106                [(#STATUT|!={#ENV{statut}}|oui)<a href="[(#_module:URL_TRADLANG_MODULE|parametre_url{statut,#STATUT}|parametre_url{lang_cible,#ENV{lang_cible}}|parametre_url{lang_orig,#ENV{lang_orig}})]" class="ajax bouton">#STATUT</a>]
     107                [(#STATUT|!={#ENV{statut}}|non)<strong class="on">#STATUT</strong>]]
     108        </BOUCLE_statut>
     109        [(#GRAND_TOTAL|>{1}|oui)
     110        </div>]
     111</B_statut>[(#REM)
     112 
    108113        Si un seul statut et pas celui de l'environnement c'est qu'on aura pas de résultats après
    109 ]
    110 [(#GRAND_TOTAL|=={1}|et{#ENV{statut}}|et{#GET{statut}|!={#ENV{statut}}}|oui)
     114
     115][(#GRAND_TOTAL|=={1}|et{#ENV{statut}}|et{#GET{statut}|!={#ENV{statut}}}|oui)
    111116        <p><:tradlang:message_aucun_resultat_statut:></p>
    112         <p><a href="[(#_module:URL_TRADLANG_MODULE|parametre_url{statut,''}|parametre_url{lang_cible,#ENV{lang_cible}}|parametre_url{lang_orig,#ENV{lang_orig}})]"><:tradlang:lien_voir_toute_chaines_module:></a></p>
    113 ]
    114 </B_statut>
    115 [(#REM)
     117        <p><a href="[(#_module:URL_TRADLANG_MODULE|parametre_url{statut,''}|parametre_url{lang_cible,#ENV{lang_cible}}|parametre_url{lang_orig,#ENV{lang_orig}})]"><:tradlang:lien_voir_toute_chaines_module:></a></p>]
     118</B_statut>[(#REM)
     119
    116120        On affiche les id qui n'existent pas dans la langue cible
    117 ]
    118 <B_revise_inexistants>[(#SET{total_inexistants,#GRAND_TOTAL})]
     121
     122]<B_revise_inexistants>[(#SET{total_inexistants,#GRAND_TOTAL})]
    119123[(#GET{total_inexistants}|=={#GET{total_mere}}|oui)
    120124        [(#SET{texte_bouton,[(#VAL{tradlang:bouton_activer_lang}|_T{#ARRAY{lang,#ENV{lang_cible}}})]})]
     
    128132                #BOITE_OUVRIR{'',error}
    129133                        <:tradlang:erreur_langue_activer_impossible{lang=#ENV{lang_cible}}:>
    130                 #BOITE_FERMER]
    131         ]
    132 ]
     134                #BOITE_FERMER]]
    133135[(#GET{total_inexistants}|=={#GET{total_mere}}|non)
    134136        [(#SET{texte_bouton,[(#VAL{tradlang:bouton_activer_lang}|_T{#ARRAY{lang,#ENV{lang_cible}}})]})]
     
    162164        </tbody>
    163165</table>
    164 </B_revise_inexistants>
    165 [(#REM)
     166</B_revise_inexistants>[(#REM)
     167
    166168        On affiche les id qui n'existent pas dans la langue cible
    167 ]<B_revise_en_trop>
    168 #SET{total_en_trop,#GRAND_TOTAL}
     169
     170]<B_revise_en_trop>[(#SET{total_en_trop,#GRAND_TOTAL})]
    169171[<p>(#GET{total_en_trop}|singulier_ou_pluriel{tradlang:nb_items_langue_en_trop,tradlang:nb_item_langue_en_trop,nb,#ARRAY{langue,#ENV{lang_cible},langue_longue,#GET{langue_longue}}})</p>]
    170172<table class="spip liste_traductions tablesorter">
     
    188190        </tbody>
    189191</table>
    190 </B_revise_en_trop>
    191 [(#REM)
     192</B_revise_en_trop>[(#REM)
     193
    192194        On affiche finalement le tableau de traductions
     195
    193196]<B_revise_cible>
    194197<table class="spip liste_traductions tablesorter">
     
    203206                </tr>
    204207        </thead>
    205         <tbody>
    206         [(#REM)on n'affiche que les id qui existent dans la langue mère]
    207         <BOUCLE_revise_cible(TRADLANGS trandlang_modules){module}{id IN #GET{str_mere}}{statut ?}{lang=#ENV{lang_cible}}{tri #ENV{par,statut},#GET{defaut_tri}}{par id}>
     208        <tbody>[(#REM)
     209       
     210                on n'affiche que les id qui existent dans la langue mère
     211        ]<BOUCLE_revise_cible(TRADLANGS trandlang_modules){module}{id IN #GET{str_mere}}{statut ?}{lang=#ENV{lang_cible}}{tri #ENV{par,statut},#GET{defaut_tri}}{par id}>
    208212        <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})] statut_[(#STATUT|strtolower)]" id="tradlang-#ID_TRADLANG">
    209213                <td class="code_langue">#ID</td>
     
    224228<//B_si_edit>
    225229</BOUCLE_module>
    226 </B_module>
    227 [(#REM)
     230</B_module>[(#REM)
     231
    228232        Le module n'existe pas
     233
    229234][(#BOITE_OUVRIR{'',error})]
    230235        <:tradlang:erreur_module_inconnu:>
  • _plugins_/trad-lang/trunk/paquet.xml

    r72378 r75329  
    22        prefix="tradlang"
    33        categorie="outil"
    4         version="2.1.3"
     4        version="2.1.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.