Changeset 60951 in spip-zone


Ignore:
Timestamp:
May 5, 2012, 6:15:22 AM (7 years ago)
Author:
m.dulondel@…
Message:
  • Les variables des formulaires lechapt_calmon et courbe_remous correspondent désormais avec le nom des attributs de chaque section.
  • Ajout de mots dans le dictionnaire des langues.
  • Javascript + squelette du formulaire calcul_ouvrage (la fonction gestion_radios est pas encore finis à 100%)
Location:
_plugins_/hydraulic/branches/v0.3
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/hydraulic/branches/v0.3/formulaires/calcul_ouvrages.html

    r60709 r60951  
    33<script language="javascript" type="text/javascript" src="#CHEMIN{js/hyd_fonctions.js}"></script>
    44<script>
     5/*
     6 * La plupart des commentaires sont les mêmes que pour la page lechapt_calmon.html
     7 */
     8 
     9// Choix de l'ouvrage
     10var globSelectOuv = 'vRect';
     11var glob = [];
     12
     13function setVarGlob(){
     14        globSelectOuv = getSelectValue('choix_ouvrage');
     15        affSurvCheck = document.getElementById("affSurverse").checked;
     16        for(var i in glob){
     17                glob[i] = getRadioValue('choix_champs_'+i);
     18        }
     19}
     20
     21// Retourne sous forme de tableau tous les élèments de la Class classe et de type tagName
    522function elementsParClasse(classe, tagName){
    623        var divs = document.getElementsByTagName(tagName);
     
    1431}
    1532
    16 var globSelectOuv = 'vRect';
    17 var glob = [];
    18 
    19 // Variables globales contenant le choix fait pour chaque ligne 
    20 <BOUCLE_remplisglob(POUR){tableau #ENV{mes_saisies}}>
    21         if(globSelectOuv == '#CLE'){
    22         <BOUCLE_remplisglob1(POUR){tableau #VALEUR|table_valeur{1}}>
    23                 glob['#CLE'] = '#ENV{choix_champs_#CLE}';
    24         </BOUCLE_remplisglob1>
    25         }
    26 </BOUCLE_remplisglob>
    27 
    28 function setVarGlob(){
    29         globSelectOuv = getSelectValue('choix_ouvrage');
    30         <BOUCLE_remplisglob2(POUR){tableau #ENV{mes_saisies}}>
     33function affichageEtValeur(){
     34        afficher_cacher_champs_select();
     35        afficher_cacher_champs_ouv();
     36        afficher_cacher_surverse();
     37}
     38
     39function afficher_cacher_champs_select(){
     40        setVarGlob();
     41        var tabAfficher = [];
     42
     43        <BOUCLE_tabS(POUR){tableau #ENV{mes_saisies}}>
    3144                if(globSelectOuv == '#CLE'){
    32                 <BOUCLE_remplisglob3(POUR){tableau #VALEUR|table_valeur{1}}>
    33                         glob['#CLE'] = getRadioValue('choix_champs_#CLE');
    34                 </BOUCLE_remplisglob3>
    35                 }
    36         </BOUCLE_remplisglob2>
    37 }
    38 
     45                        <BOUCLE_tabS2(POUR){tableau #VALEUR|table_valeur{2}}>
     46                                tabAfficher.push([(#VALEUR|table_valeur{0})]);
     47                        </BOUCLE_tabS2>
     48                }
     49        </BOUCLE_tabS>
     50
     51        for(var i = 0; i < document.getElementById("choix_equation_debit").length; i++){
     52                document.getElementById("choix_equation_debit").options[i].style.display="none";
     53                document.getElementById("choix_equation_debit").options[i].selected=false;
     54        }
     55
     56        var cpt = 0;
     57        for(var i in tabAfficher){
     58                document.getElementById("choix_equation_debit").options[tabAfficher[i]-1].style.display="list-item";
     59                if(cpt == 0){
     60                        document.getElementById("choix_equation_debit").options[tabAfficher[i]-1].selected=true;
     61                        cpt++;
     62                }
     63        }
     64}
     65
     66function afficher_cacher_champs_ouv(){
     67        setVarGlob();
     68        var tabOuvrageAfficher = [];
     69        var tabOuvrageCacher = [];
     70       
     71        <BOUCLE_remplisTabOuv(POUR) {tableau #ENV{mes_saisies}}>
     72                if(globSelectOuv == '#CLE'){
     73                <BOUCLE_remplisTabOuv2(POUR) {tableau #VALEUR|table_valeur{1}}>
     74                        tabOuvrageAfficher.push('#CLE');
     75                </BOUCLE_remplisTabOuv2>
     76                }
     77        </BOUCLE_remplisTabOuv>
     78       
     79        <BOUCLE_libEquat(POUR){tableau #ENV{saisie_equat}}>
     80                tabOuvrageCacher.push('#CLE');
     81        </BOUCLE_libEquat>
     82       
     83        for(var i in tabOuvrageCacher){
     84                document.getElementById('ouvrage_'+tabOuvrageCacher[i]).style.display='none';
     85        }
     86       
     87        for(var i in tabOuvrageAfficher){
     88                document.getElementById('ouvrage_'+tabOuvrageAfficher[i]).style.display='table-row';
     89        }
     90       
     91}
     92
     93function afficher_cacher_surverse(){
     94        setVarGlob();
     95        var tabAffSurv = [];
     96
     97        <BOUCLE_vanne1(POUR){tableau #ENV{mes_saisies}}>
     98        #SET{afficherVanne, #VALEUR|table_valeur{1}}
     99                <BOUCLE_vanne2(CONDITION){si #VALEUR|table_valeur{0}|substr{0,5}|== {'vanne'}}>
     100                        tabAffSurv.push('#CLE');
     101                </BOUCLE_vanne2>
     102        </BOUCLE_vanne1>
     103
     104        // Afficher ou cacher le fieldset + la case a cocher si cest pas une vanne
     105        if(tabAffSurv.indexOf(globSelectOuv) !== -1){
     106                document.getElementById("surverseField").style.display='table-row';     
     107                document.getElementById("afficher_surverse").style.display='table-row';         
     108                               
     109        }
     110        else{
     111                document.getElementById("surverseField").style.display='none';                 
     112                document.getElementById("afficher_surverse").style.display='none';             
     113                document.getElementById("affSurverse").checked=false;           
     114        }
     115       
     116        var f = document.getElementById("form_calcul_ouvrages");
     117        if(f) {
     118                var champs = f.getElementsByTagName("tr");
     119                for(var i=0, n=champs.length; i<n; i++) {
     120                        if(champs[i].getAttribute("id") !== null && champs[i].getAttribute("id").indexOf('field_surverse',0) !== -1 && document.getElementById("affSurverse").checked){
     121                                document.getElementById(champs[i].getAttribute("id")).style.display="table-row";
     122                                document.getElementById('loi_debit_surverse').style.display="table-row";
     123                        }
     124                        else if(champs[i].getAttribute("id") !== null && champs[i].getAttribute("id").indexOf('field_surverse',0) !== -1 && !document.getElementById("affSurverse").checked){
     125                                document.getElementById(champs[i].getAttribute("id")).style.display="none";
     126                                document.getElementById('loi_debit_surverse').style.display="none";
     127                        }
     128                }
     129        }
     130}
     131
     132// Gére le comportement des boutons radios
    39133function gestion_radios(nom,valeur){
     134        // Ce tableau contiendra tous les indices , ainsi que leur valeur, excepté celle qui a été cliquée
    40135        var tabPartiel = [];
     136       
     137        // On supprime du tableau l'élément sur lequel on a cliqué
     138        delete(tabPartiel[nom]);
     139       
     140        // Tableau des indices
    41141        var tabIndice = [];
    42         setVarGlob();
    43 
    44 <BOUCLE_libelleCaract3(POUR){tableau #ENV{mes_saisies}}>
    45         if(globSelectOuv == '#CLE'){
    46         <BOUCLE_libelleCaract4(POUR){tableau #VALEUR|table_valeur{1}}>
    47                 tabPartiel['#CLE'] = glob['#CLE'];
    48                         tabIndice.push('#CLE');
    49                 </BOUCLE_libelleCaract4>
    50                 }
    51                 </BOUCLE_libelleCaract3>
    52                
    53         delete(tabPartiel[nom]);
    54         // Si on appuis sur un bouton de type "calcul_val"
     142
    55143        if(valeur.substr(0,3) == 'cal'){
    56144                /*
     
    70158        }
    71159
    72         // Si on appuis sur un bouton de type "varier_val" ou "val_fixe"
     160        // Si on appuit sur un bouton de type "varier_val" ou "val_fixe"
    73161        else if(valeur.substr(0,3) == 'var' || valeur.substr(0,3)=='val'){
    74162                for(var cle in tabPartiel){
    75                         var test = 0;
    76163                        if(document.getElementById('varier_val_'+cle).checked && (glob[nom] != "calcul_val_"+nom)){
    77164                                if(document.getElementById('varier_val_'+nom).checked){
     
    97184                // Si aucune calcul_val n'est checké
    98185                if(cptValCal == 0){
    99                        
     186                        // Alors on chercher l'indice suivant...
    100187                        indice = '';
    101188                        for(var i = 0; i < tabIndice.length; i++){
     
    111198                               
    112199                        }
     200                        // ... et on le met a calcul_val
    113201                        document.getElementById('calcul_val_'+indice).checked=true;
    114202                        document.getElementById('caract_'+nom).disabled=false;
     
    122210        }
    123211
     212        // Si on appuis sur un bouton de type varier_val
    124213        if(valeur.substr(0,3) == 'var'){
    125214                setVarGlob();
     
    130219                        }       
    131220                }
    132                 alert(nom);
     221               
     222                // on affiche les champs correspondant au bouton sélectionné
    133223                var afficher = elementsParClasse('champs_var_'+nom, 'tr');
    134224                for(var i in afficher){
    135225                        afficher[i].style.display='table-row';
    136226                }
    137                
     227                // On cache tous les autres champs de variations.
    138228                for(var cle in tabPartiel){     
    139229                        var cacher = elementsParClasse('champs_var_'+cle, 'tr');
     
    165255                }
    166256        }
     257       
    167258        setVarGlob();
    168 }       
     259}
     260
    169261</script>
     262
    170263<form method="post" action="#ENV{action}" id="form_calcul_ouvrages">
    171264   #ACTION_FORMULAIRE{#ENV{action}}
     
    213306                                        </BOUCLE_conditionAff>
    214307                                </BOUCLE_tabMesSaisies>
    215                                         <option value="#CLE" [(#ENV{choixEquation}|=={#CLE}|?{'selected',''})] style="display: [(#CLE|=={#GET{affichage}}|?{'list-item','none'})]">#VALEUR</option>
     308                                        <option value="#CLE" [(#ENV{choixEquation}|=={#CLE}|?{'selected',''})] style="display: [(#CLE|=={#GET{affichage}}|?{'list-item','none'})]">[(#VALEUR|traduction_hydraulic)]</option>
    216309                                </BOUCLE_choixEquat>
    217310                                </select>
     
    304397                        </td>                   
    305398                        <td>
    306                                 <input type="checkbox" id="affSurverse" name="afficher_surverse" onclick="afficher_case_a_cocher()" [(#ENV{afficher_surverse}|=={'on'}|?{'checked', ''})]/>
     399                                <input type="checkbox" id="affSurverse" name="afficher_surverse" onclick="afficher_cacher_surverse()" [(#ENV{afficher_surverse}|=={'on'}|?{'checked', ''})]/>
    307400                                [<div class='hyd_erreur'>(#ENV**{erreurs}|table_valeur{[(#VALEUR|table_valeur{0})]})</div>]
    308401                        </td>   
  • _plugins_/hydraulic/branches/v0.3/formulaires/calcul_ouvrages.php

    r60709 r60951  
    2525
    2626        $numLoi = array(
    27                 1 => 'Déversoir/Orifice Cemagref 88',
    28                 2 => 'Vanne de fond/Seuil Cemagref 88',
    29                 3 => 'Seuil dénoyé',   
    30                 4 => 'Seuil noyé',
    31                 5 => 'Vanne dénoyé',
    32                 6 => 'Vanne noyé',
    33                 7 => 'Cunge 1980',
    34                 8 => 'Déversoir/Orifice Cemagref 02',
    35                 9 => 'Vanne de fond/Seuil Cemagref 02'
     27                1 => 'or_cemagref88',
     28                2 => 's_cemagref88',
     29                3 => 's_denoye',       
     30                4 => 's_noye',
     31                5 => 'v_denoye',
     32                6 => 'v_noye',
     33                7 => 'cunge',
     34                8 => 'or_cemagref02',
     35                9 => 's_cemagref02'
    3636        );
    3737       
  • _plugins_/hydraulic/branches/v0.3/formulaires/courbe_remous.html

    r60709 r60951  
    66function afficher_cacher() {
    77        var section = getSelectValue('choix_section_cr');
     8        // On récupère tous le formulaire
    89        var f = document.getElementById("form_courbe_remous");
    910    if(f) {
     11                // On récupère seulement les lignes <tr> du formulaire stocké dans f
    1012                var champs = f.getElementsByTagName("tr");
    1113                // On parcourt tous les <tr> du formulaire
  • _plugins_/hydraulic/branches/v0.3/formulaires/lechapt_calmon.html

    r60709 r60951  
    22<script language="javascript" type="text/javascript" src="#CHEMIN{js/hyd_fonctions.js}"></script>
    33<script>
    4 // Permet de switcher les valeur de L, M et N en fonction du matériau choisie
     4// Permet de switcher les valeur de L, M et N en fonction du matériau choisis
    55function change_valeur() {
     6        /*
     7         * Le select commence à 1 donc on diminue son indice de 1 vu qu'on utilise un tableau pour stocker
     8         * les valeurs (on commence a 0)
     9         */
    610        var choix_mat = getSelectValue('choix_materiau')-1;
    711        var materiau = new Array();
     
    1822}
    1923
     24// Retourne sous forme de tableau tous les élèments de la Class classe et de type tagName
    2025function elementsParClasse(classe, tagName){
    2126        var divs = document.getElementsByTagName(tagName);
     
    2934}
    3035
     36// Tableau contenant tous les choix des groupes de boutons radios
    3137var glob = [];
    3238
     
    3945function setVarGlob(){
    4046        <BOUCLE_sans_coeff2(POUR){tableau #ENV{tableau_caract}}>
     47                // On récupère le choix effectué parmis les groupes de champs radios.
    4148                glob['#CLE'] = getRadioValue('choix_champs_#CLE');
    4249        </BOUCLE_sans_coeff2>
     
    4653function gestion_radios(nom,valeur){
    4754
    48         // Ce tableau contiendra tous les indices , ainsi que leur valeur, excepté celle qui a été cliqué
     55        // Ce tableau contiendra tous les indices , ainsi que leur valeur, excepté celle qui a été cliquée
    4956        var tabPartiel = {
    5057                <BOUCLE_sans_coeff3(POUR){tableau #ENV{tableau_caract}}>
     
    5360        };
    5461       
     62        // On supprime du tableau l'élément sur lequel on a cliqué
    5563        delete(tabPartiel[nom]);
    5664       
     
    7987        }
    8088
    81         // Si on appuis sur un bouton de type "varier_val" ou "val_fixe"
     89        // Si on appuit sur un bouton de type "varier_val" ou "val_fixe"
    8290        else if(valeur.substr(0,3) == 'var' || valeur.substr(0,3)=='val'){
    8391                for(var cle in tabPartiel){
    84                         var test = 0;
    8592                        if(document.getElementById('varier_val_'+cle).checked && (glob[nom] != "calcul_val_"+nom)){
    8693                                if(document.getElementById('varier_val_'+nom).checked){
     
    106113                // Si aucune calcul_val n'est checké
    107114                if(cptValCal == 0){
    108                        
     115                        // Alors on chercher l'indice suivant...
    109116                        indice = '';
    110117                        for(var i = 0; i < tabIndice.length; i++){
     
    120127                               
    121128                        }
     129                        // ... et on le met a calcul_val
    122130                        document.getElementById('calcul_val_'+indice).checked=true;
    123131                        document.getElementById('caract_'+nom).disabled=false;
     
    131139        }
    132140
     141        // Si on appuis sur un bouton de type varier_val
    133142        if(valeur.substr(0,3) == 'var'){
    134143                setVarGlob();
     
    140149                }
    141150               
     151                // on affiche les champs correspondant au bouton sélectionné
    142152                var afficher = elementsParClasse('champs_var_'+nom, 'tr');
    143153                for(var i in afficher){
    144154                        afficher[i].style.display='table-row';
    145155                }
    146                
     156                // On cache tous les autres champs de variations.
    147157                for(var cle in tabPartiel){     
    148158                        var cacher = elementsParClasse('champs_var_'+cle, 'tr');
  • _plugins_/hydraulic/branches/v0.3/formulaires/lechapt_calmon.php

    r60709 r60951  
    3939 */
    4040 
     41// Cette fonction renvoit tous les indices des champs présents dans le formulaire.
    4142function mes_champs_coeff_materiau() {
    4243        $mes_champs_coeff = array('L','M','N','Q','D','J','Lg');
     
    4445}
    4546
     47// Cette fonction renvoit seulement les paramètres fixes, ainsi que leur code pour le dictionnaires des langues
    4648function mes_champs_sans_coeff_materiau(){
    4749        $mes_champs_sans_coeff = array(
     
    5557}
    5658
     59// Découpe le paramètre champs en suivant les "_" et renvoit l'avant derner morceau.
    5760function id_decoupe($champs){
    5861        $decoup = explode('_', $champs, 3);
     
    6063}
    6164
    62 /* Tableau des données pour chaque type de tuyau. Ces valeurs sont associées
     65/*
     66 * Tableau des données pour chaque type de tuyau. Ces valeurs sont associées
    6367 * aux numéros des options du select (voir page lechapt_calmon.php)
    6468 */
     
    130134         * La suite de cette fonction se chargera de supprimer les valeurs non obligatoires.
    131135         */
    132          
    133136        $tChOblig = mes_champs_coeff_materiau();
    134137        $tChUtil = mes_champs_sans_coeff_materiau();
     
    179182 
    180183        $mes_champs = mes_champs_sans_coeff_materiau();
     184        // On parcourt tous le tableau des indices, et on initialise les valeurs des boutons radios, et des champs de variation
    181185        foreach($mes_champs as $cle=>$valeur){
    182186                if($cle == 'Q'){
     
    204208                        $erreurs[$obligatoire] = _T('hydraulic:champ_obligatoire');
    205209        }
     210        // Les coefficients des matériaux doivent être strictement positifs
    206211        else if(($obligatoire == 'L' || $obligatoire == 'M' || $obligatoire == 'N') && _request($obligatoire) == 0){
    207212                        $erreurs[$obligatoire] = _T('hydraulic:valeur_positive');                       
     
    258263    $CacheFileName=md5(serialize($datas));
    259264
     265        // On transforme les champs du tableau en variables
    260266        foreach($champs_materiau_coeff as $champs){
    261267                ${$champs} = _request($champs);
    262268        }
    263269       
     270        // On récupère les différents choix effectué sur les boutons radios ainsi que les libelles de tous les paramètres
    264271        foreach($champs_materiau_sans_coeff as $cle=>$valeur){
    265272                $choix_radio[$cle] = _request('choix_champs_'.$cle);
     
    273280               
    274281        foreach($choix_radio as $ind){
     282                // Si il y a une valeur a calculer
    275283                if(substr($ind, 0, 3) == 'cal'){
    276284                        $ValCal = id_decoupe($ind);
    277285                }
     286                // Sinon si une valeur varie
    278287                else if(substr($ind, 0, 3) == 'var'){
     288                        // alors on récupère sa valeur maximum, minimum et son pas de variation
    279289                        $min = _request('val_min_'.id_decoupe($ind));
    280290                        $max = _request('val_max_'.id_decoupe($ind));
    281291                        $pas = _request('pas_var_'.id_decoupe($ind));
     292                        // On fait pointer la variable qui varie sur l'indice de parcours du tableau i
    282293                        ${id_decoupe($ind)} = &$i;
    283294                }
    284295        }
     296       
     297        // Pour afficher correctement la valeur maximum
    285298        $max += $pas/2;
    286299       
     
    291304    }
    292305    else {
     306                /*
     307                 * Selon la variable à calculer, on gère les valeurs = à 0  et les valeurs infinies
     308                 * et on fait le valcul correspondant.
     309                 */
    293310                switch($ValCal){
    294311                        case 'Q':
     
    368385        $tabClass = array();
    369386       
     387        // On compte le nombre de valeur qui varie
    370388        foreach($tabLibelle as $cle=>$valeur){
    371389                if(substr(_request('choix_champs_'.$cle), 0, 3) == 'var'){
     
    373391                }
    374392        }
    375        
     393        // On répertorie toutes les valeurs selon leur type dans un tableau
    376394        foreach($tabLibelle as $cle=>$valeur){
    377395                if(substr(_request('choix_champs_'.$cle), 0, 3) == 'cal'){
     
    391409        }
    392410       
     411        // On génère les entêtes du tableau de résulats
    393412        $echo.='<table class="spip">
    394413                        <thead>
     
    417436        }
    418437       
     438        // On insère les différents résultats dans le tableau correspondant.
    419439        foreach($result as $indice){
    420440                $i++;
     
    440460        </table>';
    441461
     462        // Si la première valeur est infinie alors on la supprime et on tasse le tableau
    442463        if(is_infinite($result[0])){
    443464                unset($result[0]);
  • _plugins_/hydraulic/branches/v0.3/hyd_inc/section.class.php

    r60927 r60951  
    237237            switch($sDonnee) {
    238238                case 'B' : // Largeur aux berges
     239               
    239240                    $this->arCalcGeo[$sDonnee] = $this->CalcB();
    240241                    if($this->arCalcGeo[$sDonnee] < $this->oP->rYB / 100) {
  • _plugins_/hydraulic/branches/v0.3/hyd_inc/section.php

    r60728 r60951  
    4040            'def_section_rect',
    4141            array(
    42                 'rLarg'  =>array('largeur_fond',2.5),
     42                'rLargeurBerge'  =>array('largeur_fond',2.5),
    4343            )
    4444        ),
     
    5454            'def_section_parab',
    5555            array(
    56                 'rCoef' =>array('coef',0.5),
    57                 'rLargBerge' =>array('largeur_berge', 4)
     56                'rk' =>array('coef',0.5),
     57                'rLargeurBerge' =>array('largeur_berge', 4)
    5858            )
    5959        )
  • _plugins_/hydraulic/branches/v0.3/hyd_inc/sectionPuiss.class.php

    r60927 r60951  
    3030 */
    3131class cSnPuiss extends acSection {
    32     protected $rk;      /// Coefficient de forme compris entre 0 et 1
     32    public $rk;      /// Coefficient de forme compris entre 0 et 1
    3333    //$LargeurBerge => La largeur des berges est déjà présente dans acSection
    3434    protected $nbDessinPoints=50;
  • _plugins_/hydraulic/branches/v0.3/hyd_inc/sectionRectang.class.php

    r60416 r60951  
    3030 */
    3131class cSnRectang extends acSection {
    32 
     32       
    3333    function __construct(&$oLog,&$oP,$rLargeurFond) {
    3434        $this->rLargeurBerge = $rLargeurFond;
  • _plugins_/hydraulic/branches/v0.3/lang/hydraulic_fr.php

    r60728 r60951  
    2929    'cote_eau'        => "Côte de l'eau (m)",
    3030    'coef'            => "Coefficient",
     31    'cunge'           => "Cunge 1980",
    3132    // D
    3233    'debit_amont'     => "Débit amont (m³/s)",
     
    6970    // O
    7071    'ordonnee'        => "Ordonnée",
     72    'or_cemagref88'   => "Déversoir/Orifice Cemagref 88",
     73    'or_cemagref02'   => "Déversoir/Orifice Cemagref 02",
    7174    // P
    7275    'param_calcul'    => "Paramètres de calcul",
     
    8790    'perim_mouille'   => "Le périmètre mouillé (m)",
    8891    'perte_charge'    => "La perte de charge (m/m)",
    89 
    9092    //R
    9193    'rayon_hyd'       => "Le rayon hydraulique (m)",
     
    98100    'section_parab'   => "Section Parabolique",
    99101    'surf_mouille'    => "La surface mouillée (m²)",
     102    's_cemagref88'    => "Vanne de fond/Seuil Cemagref 88",
     103    's_denoye'        => "Seuil dénoyé",
     104    's_noye'          => "Seuil noyé",
     105    's_cemagref02'    => "Vanne de fond/Seuil Cemagref 02",
    100106    //T
    101107    'tirant_eau'      => "Tirant d'eau (m)",
     
    120126    'vit_moy'         => "La vitesse moyenne (m/s)",
    121127    'var_lin'         => "Variation linéaire de l'énergie spécifique (m/m)",
     128    'v_denoye'        => "Vanne dénoyé",
     129    'v_noye'          => "Vanne noyé",
    122130
    123131);
Note: See TracChangeset for help on using the changeset viewer.