Salome HOME
suite chgt copyright et menage pre_V8_4
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 18 Sep 2017 14:29:03 +0000 (16:29 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 18 Sep 2017 14:29:03 +0000 (16:29 +0200)
61 files changed:
Editeur/comploader.py
Extensions/CreeTraductions/eficas.pro
Extensions/localisation.py
Extensions/translationQT4.py [deleted file]
InterfaceQT4/qtEficas.py
ProcessOutputs_Eficas/EssaiMulti.py [new file with mode: 0755]
ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py [new file with mode: 0644]
ProcessOutputs_Eficas/ProcessOutputs_Cata.py [new file with mode: 0644]
ProcessOutputs_Eficas/properties.py [new file with mode: 0644]
UiQT5/eficas_en.ts
UiQT5/eficas_fr.ts
Validation/V_AU_MOINS_UN.py
Validation/V_AU_PLUS_UN.py
Validation/V_A_CLASSER.py
Validation/V_ENSEMBLE.py
Validation/V_ETAPE.py
Validation/V_EXCLUS.py
Validation/V_JDC.py
Validation/V_MACRO_ETAPE.py
Validation/V_MCBLOC.py
Validation/V_MCCOMPO.py
Validation/V_MCFACT.py
Validation/V_MCLIST.py
Validation/V_MCSIMP.py
Validation/V_MEME_NOMBRE.py
Validation/V_PRESENT_ABSENT.py
Validation/V_PRESENT_PRESENT.py
Validation/V_PROC_ETAPE.py
Validation/V_UN_PARMI.py
generator/CMakeLists.txt
generator/Formatage.py
generator/__init__.py
generator/generator_CARMEL3D.py [deleted file]
generator/generator_CARMEL3D_frequentiel.py
generator/generator_CARMEL3D_temporel.py
generator/generator_CARMELCND.py [deleted file]
generator/generator_CARMELCS.py [deleted file]
generator/generator_GroupMA.py
generator/generator_PSEN.py
generator/generator_ProcessOutputs.py
generator/generator_TELEMAC.py
generator/generator_ZCracks.py [deleted file]
generator/generator_aplat.py
generator/generator_dico.py
generator/generator_dicoImbrique.py
generator/generator_file_from_template.py [deleted file]
generator/generator_ini.py [deleted file]
generator/generator_map.py
generator/generator_modification.py
generator/generator_pyth.py [deleted file]
generator/generator_python.py
generator/generator_python6.py [deleted file]
generator/generator_vers3DSalome.py
generator/oldCodes/generator_CARMEL3D.py [new file with mode: 0644]
generator/oldCodes/generator_CARMELCND.py [new file with mode: 0755]
generator/oldCodes/generator_CARMELCS.py [new file with mode: 0644]
generator/oldCodes/generator_ZCracks.py [new file with mode: 0644]
generator/oldCodes/generator_file_from_template.py [new file with mode: 0644]
generator/oldCodes/generator_ini.py [new file with mode: 0644]
generator/oldCodes/generator_pyth.py [new file with mode: 0644]
generator/oldCodes/generator_python6.py [new file with mode: 0644]

index ca8d24f9bea8c5389b36b9a9fd899273d652c72f..9c823dfdfa1fd28944f68095997af456a5057828 100644 (file)
@@ -38,7 +38,7 @@ import os,glob,types
 # Ce dictionnaire est renseigne par la methode charger_composants 
 composants = {}
 
-def charger_composants(Ihm="TK"):
+def charger_composants(Ihm="QT"):
     """
         Cette fonction a pour but de charger tous les modules composants graphiques
         (fichiers compo*.py dans le meme repertoire que ce module )
@@ -51,8 +51,6 @@ def charger_composants(Ihm="TK"):
     else :
        repertoire=reper+"/../InterfaceQT4"
        package="InterfaceQT4"
-       #repertoire=reper+"/../InterfaceQT"
-       #package="InterfaceQT"
     listfich=glob.glob(os.path.join(repertoire, "compo*.py"))
     for fichier in listfich:
         m= os.path.basename(fichier)[:-3]
index 0beca07ea8f6735c40fb4f2261da17b0329f6cd7..58884b7b300ce72c6aad7242be26add4a1d649e0 100644 (file)
-SOURCES = ../../convert/autre_parseur.py \
-#          pourValidation.py \
-          ../../convert/convert_asterv5.py \
-          ../../convert/convert_cuve2dg.py \
-          ../../convert/convert_file_from_template.py \
-          ../../convert/convert_ini.py \
-          ../../convert/convert_map.py \
-          ../../convert/convert_openturns_study.py \
-          ../../convert/convert_openturns_wrapper.py \
-          ../../convert/convert_perfect.py \
-          ../../convert/convert_python6.py\
-          ../../convert/convert_python.py\
-          ../../convert/convert_pyth.py\
-          ../../convert/convert_SEP.py \
-          ../../convert/parseur_python.py\
-          ../../Editeur/analyse_catalogue_initial.py \
-          ../../Editeur/analyse_catalogue.py \
-          ../../Editeur/autre_analyse_cata.py \
-          ../../Editeur/basestyle.py \
-          ../../Editeur/catadesc.py \
-          ../../Editeur/comploader.py \
-          ../../Editeur/comploaderqt4.py \
-          ../../Editeur/fontes.py \
-          ../../Editeur/import_code.py \
-          ../../Editeur/listePatrons.py \
-          ../../Editeur/Objecttreeitem.py \
-          ../../Editeur/session.py \
-          ../../Editeur/styles.py \
-          ../../Editeur/TroisDPal.py \
-          ../../Editeur/uiinfo.py \
-          ../../Editeur/utils.py \
-          ../../Extensions/commande_comm.py \
-          ../../Extensions/commentaire.py \
-          ../../Extensions/eficas_exception.py \
-          ../../Extensions/etape_niveau.py \
-          ../../Extensions/interpreteur_formule.py \
-          ../../Extensions/jdc_include.py \
-          ../../Extensions/jdc.py \
-          ../../Extensions/localisation.py \
-          ../../Extensions/mcnuplet.py \
-          ../../Extensions/niveau.py \
-          ../../Extensions/nuplet.py \
-          ../../Extensions/param2.py \
-          ../../Extensions/parametre_eval.py \
-          ../../Extensions/parametre.py \
-          ../../Extensions/pluginloader.py \
-          ../../generator/DefautASTER.py \
-          ../../generator/Formatage.py \
-          ../../generator/generator_aplat.py \
-          ../../generator/generator_asterv5.py \
-          ../../generator/generator_CARMEL3D.py \
-          ../../generator/generator_Creation.py \
-          ../../generator/generator_cuve2dg.py \
-          ../../generator/generator_file_from_template.py \
-          ../../generator/generator_GroupMA.py \
-          ../../generator/generator_homard.py \
-          ../../generator/generator_ini.py \
-          ../../generator/generator_map.py \
-          ../../generator/generator_openturns.py \
-          ../../generator/generator_openturns_study.py \
-          ../../generator/generator_openturns_wrapper.py \
-          ../../generator/generator_python6.py\
-          ../../generator/generator_python.py\
-          ../../generator/generator_pyth.py\
-          ../../generator/generator_SEP.py \
-          ../../generator/generator_vers3DSalome.py \
-          ../../generator/OpenturnsBase.py \
-          ../../generator/OpenturnsSTD.py \
-          ../../generator/OpenturnsXML.py \
-          ../../generator/tube.py \
-          ../../Ihm/CONNECTOR.py \
-          ../../Ihm/I_A_CLASSER.py \
-          ../../Ihm/I_ASSD.py \
-          ../../Ihm/I_AVANT.py \
-          ../../Ihm/I_ENTITE.py \
-          ../../Ihm/I_ETAPE.py \
-          ../../Ihm/I_EVAL.py \
-          ../../Ihm/I_EXCLUS.py \
-          ../../Ihm/I_FONCTION.py \
-          ../../Ihm/I_FORM_ETAPE.py \
-          ../../Ihm/I_JDC_CATA.py \
-          ../../Ihm/I_JDC.py \
-          ../../Ihm/I_LASSD.py \
-          ../../Ihm/I_MACRO_ETAPE.py \
-          ../../Ihm/I_MCBLOC.py \
-          ../../Ihm/I_MCCOMPO.py \
-          ../../Ihm/I_MCFACT.py \
-          ../../Ihm/I_MCLIST.py \
-          ../../Ihm/I_MCSIMP.py \
-          ../../Ihm/I_OBJECT.py \
-          ../../Ihm/I_PRESENT_ABSENT.py \
-          ../../Ihm/I_PRESENT_PRESENT.py \
-          ../../Ihm/I_PROC_ETAPE.py \
-          ../../Ihm/I_REGLE.py \
-          ../../Ihm/I_UN_PARMI.py \
-          ../../Ihm/I_VALIDATOR.py \
-          ../../InterfaceQT4/browser.py \
-          ../../InterfaceQT4/compobloc.py \
-          ../../InterfaceQT4/compocomm.py \
-          ../../InterfaceQT4/compofact.py \
-          ../../InterfaceQT4/compoformule.py \
-          ../../InterfaceQT4/compojdc.py \
-          ../../InterfaceQT4/compomacro.py \
-          ../../InterfaceQT4/compomclist.py \
-          ../../InterfaceQT4/compooper.py \
-          ../../InterfaceQT4/compoparam.py \
-          ../../InterfaceQT4/compoproc.py \
-          ../../InterfaceQT4/composimp.py \
-          ../../InterfaceQT4/configuration.py \
-          ../../InterfaceQT4/editor.py \
-          ../../InterfaceQT4/eficas_go.py \
-          ../../InterfaceQT4/feuille.py \
-          ../../InterfaceQT4/gereIcones.py \
-          ../../InterfaceQT4/gereListe.py \
-          ../../InterfaceQT4/gereRegles.py \
-          ../../InterfaceQT4/gereTraduction.py \
-          ../../InterfaceQT4/getVersion.py \
-          ../../InterfaceQT4/groupe.py \
-          ../../InterfaceQT4/monBoutonValide.py \
-          ../../InterfaceQT4/monChoixCata.py \
-          ../../InterfaceQT4/monChoixCode.py \
-          ../../InterfaceQT4/monChoixCommande.py \
-          ../../InterfaceQT4/monFonctionPanel.py \
-          ../../InterfaceQT4/monLabelClic.py \
-          ../../InterfaceQT4/monRecherche.py \
-          ../../InterfaceQT4/monSelectVal.py \
-          ../../InterfaceQT4/monViewTexte.py \
-          ../../InterfaceQT4/monVisu.py \
-          ../../InterfaceQT4/monWidget4a6RadioButton.py \
-          ../../InterfaceQT4/monWidget4a6RadioButtonSD.py \
-          ../../InterfaceQT4/monWidgetBloc.py \
-          ../../InterfaceQT4/monWidgetCB.py \
-          ../../InterfaceQT4/monWidgetCBSD.py \
-          ../../InterfaceQT4/monWidgetCommande.py \
-          ../../InterfaceQT4/monWidgetCommentaire.py \
-          ../../InterfaceQT4/monWidgetCreeParam.py \
-          ../../InterfaceQT4/monWidgetDate.py \
-          ../../InterfaceQT4/monWidgetFactPlie.py \
-          ../../InterfaceQT4/monWidgetFact.py \
-          ../../InterfaceQT4/monWidgetHeure.py \
-          ../../InterfaceQT4/monWidgetInfo.py \
-          ../../InterfaceQT4/monWidgetMatrice.py \
-          ../../InterfaceQT4/monWidgetOptionnel.py \
-          ../../InterfaceQT4/monWidgetParam.py \
-          ../../InterfaceQT4/monWidgetPlusieursBase.py \
-          ../../InterfaceQT4/monWidgetPlusieursASSDIntoOrdonne.py\
-          ../../InterfaceQT4/monWidgetPlusieursIntoOrdonne.py \
-          ../../InterfaceQT4/monWidgetPlusieursInto.py \
-          ../../InterfaceQT4/monWidgetPlusieursTuple2.py \
-          ../../InterfaceQT4/monWidgetPlusieursTuple3.py \
-          ../../InterfaceQT4/monWidgetPlusieursTuple.py \
-          ../../InterfaceQT4/monWidgetPlusieursPlie.py \
-          ../../InterfaceQT4/monWidgetRadioButton.py \
-          ../../InterfaceQT4/monWidgetSDCOInto.py \
-          ../../InterfaceQT4/monWidgetSimpBase.py \
-          ../../InterfaceQT4/monWidgetSimpBool.py \
-          ../../InterfaceQT4/monWidgetSimpComplexe.py \
-          ../../InterfaceQT4/monWidgetSimpFichier.py \
-          ../../InterfaceQT4/monWidgetSimpTuple2.py \
-          ../../InterfaceQT4/monWidgetSimpTuple3.py \
-          ../../InterfaceQT4/monWidgetSimpTuple.py \
-          ../../InterfaceQT4/monWidgetSimpTxt.py \
-          ../../InterfaceQT4/monWidgetUniqueSDCO.py \
-          ../../InterfaceQT4/monWidgetVide.py \
-          ../../InterfaceQT4/politiquesValidation.py \
-          ../../InterfaceQT4/qtEficas.py \
-          ../../InterfaceQT4/qtEficas_with_log.py \
-          ../../InterfaceQT4/qtSaisie.py \
-          ../../InterfaceQT4/readercata.py \
-          ../../InterfaceQT4/ssIhm.py \
-          ../../InterfaceQT4/typeNode.py \
-          ../../InterfaceQT4/utilIcons.py \
-          ../../InterfaceQT4/viewManager.py \
-          ../../Traducteur/calcG.py \
-          ../../Traducteur/changeValeur.py \
-          ../../Traducteur/dictErreurs.py \
-          ../../Traducteur/inseremocle.py \
-          ../../Traducteur/load.py \
-          ../../Traducteur/log.py \
-          ../../Traducteur/mocles.py \
-          ../../Traducteur/movemocle.py \
-          ../../Traducteur/parseur.py \
-          ../../Traducteur/regles.py \
-          ../../Traducteur/removemocle.py \
-          ../../Traducteur/renamemocle.py \
-          ../../Traducteur/traduitV7V8.py \
-          ../../Traducteur/traduitV8V9.py \
-          ../../Traducteur/traduitV9V10.py \
-          ../../Traducteur/utils.py \
-          ../../Traducteur/visiteur.py \
-          ../../Validation/V_A_CLASSER.py \
-          ../../Noyau/N_VALIDATOR.py \
-          ../../Noyau/N_JDC.py \
-          ../../CarmelCND/PourTraductionCarmel.py \
-          ../../Carmel3D/PourTraduction.py \
-          ../../monCode/EssaiTraduction.py \
-          ../../Validation/V_A_CLASSER.py \
-          ../../Validation/V_AU_MOINS_UN.py \
-          ../../Validation/V_AU_PLUS_UN.py \
-          ../../Validation/V_ENSEMBLE.py \
-          ../../Validation/V_ETAPE.py \
-          ../../Validation/V_EXCLUS.py \
-          ../../Validation/V_JDC.py \
-          ../../Validation/V_MACRO_ETAPE.py \
-          ../../Validation/V_MCBLOC.py \
-          ../../Validation/V_MCCOMPO.py \
-          ../../Validation/V_MCFACT.py \
-          ../../Validation/V_MCLIST.py \
-          ../../Validation/V_MCSIMP.py \
-          ../../Validation/V_MEME_NOMBRE.py \
-          ../../Validation/V_PRESENT_ABSENT.py \
-          ../../Validation/V_PRESENT_PRESENT.py \
-          ../../Validation/V_PROC_ETAPE.py \
-          ../../Validation/V_UN_PARMI.py 
+          convert/autre_parseur.py  \ 
+          convert/convert_ini.py  \ 
+          convert/convert_map.py  \ 
+          convert/convert_python.py \ 
+          convert/parseur_python.py \ 
+         convert/convert_TELEMAC.py \
+          Editeur/analyse_catalogue_initial.py  \ 
+          Editeur/analyse_catalogue.py  \ 
+          Editeur/autre_analyse_cata.py  \ 
+          Editeur/basestyle.py  \ 
+          Editeur/catadesc.py  \ 
+          Editeur/comploader.py  \ 
+          Editeur/fontes.py  \ 
+          Editeur/import_code.py  \ 
+          Editeur/listePatrons.py  \ 
+          Editeur/Objecttreeitem.py  \ 
+          Editeur/session.py  \ 
+          Editeur/styles.py  \ 
+          Editeur/TroisDPal.py  \ 
+          Editeur/uiinfo.py  \ 
+          Extensions/commande_comm.py  \ 
+          Extensions/commentaire.py  \ 
+          Extensions/eficas_exception.py  \ 
+          Extensions/etape_niveau.py  \ 
+          Extensions/interpreteur_formule.py  \ 
+          Extensions/jdc_include.py  \ 
+          Extensions/jdc.py  \ 
+          Extensions/localisation.py  \ 
+          Extensions/mcnuplet.py  \ 
+          Extensions/niveau.py  \ 
+          Extensions/nuplet.py  \ 
+          Extensions/param2.py  \ 
+          Extensions/parametre_eval.py  \ 
+          Extensions/parametre.py  \ 
+          Extensions/pluginloader.py  \ 
+          generator/Formatage.py  \ 
+          generator/generator_aplat.py  \ 
+          generator/generator_dicoImbrique.py  \ 
+          generator/generator_dico.py  \ 
+          generator/generator_GroupMA.py  \ 
+          generator/generator_map.py  \ 
+          generator/generator_modification.py  \ 
+          generator/generator_python.py \ 
+          generator/generator_vers3DSalome.py  \ 
+          Ihm/CONNECTOR.py  \ 
+          Ihm/I_A_CLASSER.py  \ 
+          Ihm/I_ASSD.py  \ 
+          Ihm/I_AVANT.py  \ 
+          Ihm/I_ENTITE.py  \ 
+          Ihm/I_ETAPE.py  \ 
+          Ihm/I_EVAL.py  \ 
+          Ihm/I_EXCLUS.py  \ 
+          Ihm/I_FONCTION.py  \ 
+          Ihm/I_FORM_ETAPE.py  \ 
+          Ihm/I_JDC_CATA.py  \ 
+          Ihm/I_JDC.py  \ 
+          Ihm/I_LASSD.py  \ 
+          Ihm/I_MACRO_ETAPE.py  \ 
+          Ihm/I_MCBLOC.py  \ 
+          Ihm/I_MCCOMPO.py  \ 
+          Ihm/I_MCFACT.py  \ 
+          Ihm/I_MCLIST.py  \ 
+          Ihm/I_MCSIMP.py  \ 
+          Ihm/I_OBJECT.py  \ 
+          Ihm/I_PRESENT_ABSENT.py  \ 
+          Ihm/I_PRESENT_PRESENT.py  \ 
+          Ihm/I_PROC_ETAPE.py  \ 
+          Ihm/I_REGLE.py  \ 
+          Ihm/I_UN_PARMI.py  \ 
+          Ihm/I_VALIDATOR.py  \ 
+          InterfaceQT4/browser.py  \ 
+          InterfaceQT4/compobloc.py  \ 
+          InterfaceQT4/compocommandecomm.py \
+          InterfaceQT4/compocomm.py  \ 
+          InterfaceQT4/compofact.py  \ 
+          InterfaceQT4/compoformule.py  \ 
+          InterfaceQT4/compojdc.py  \ 
+          InterfaceQT4/compomacro.py  \ 
+          InterfaceQT4/compomclist.py  \ 
+          InterfaceQT4/compooper.py  \ 
+          InterfaceQT4/compoparam.py  \ 
+          InterfaceQT4/compoproc.py  \ 
+          InterfaceQT4/composimp.py  \ 
+          InterfaceQT4/configuration.py  \ 
+          InterfaceQT4/editor.py  \ 
+          InterfaceQT4/eficas_go.py  \ 
+          InterfaceQT4/feuille.py  \ 
+          InterfaceQT4/gereIcones.py  \ 
+          InterfaceQT4/gereListe.py  \ 
+          InterfaceQT4/gereRegles.py  \ 
+          InterfaceQT4/gereTraduction.py  \ 
+          InterfaceQT4/getVersion.py  \ 
+          InterfaceQT4/groupe.py  \ 
+          InterfaceQT4/monBoutonValide.py  \ 
+          InterfaceQT4/monChoixCata.py  \ 
+          InterfaceQT4/monChoixCode.py  \ 
+          InterfaceQT4/monChoixCommande.py  \ 
+          InterfaceQT4/monChoixLangue.py  \ 
+          InterfaceQT4/monFonctionPanel.py  \ 
+          InterfaceQT4/monLabelClic.py  \ 
+          InterfaceQT4/monRecherche.py  \ 
+          InterfaceQT4/monRechercheCatalogue.py  \ 
+          InterfaceQT4/monSelectVal.py  \ 
+          InterfaceQT4/monViewTexte.py  \ 
+          InterfaceQT4/monViewRegle.py  \ 
+          InterfaceQT4/monVisu.py  \ 
+          InterfaceQT4/monWidget4a6RadioButton.py  \ 
+          InterfaceQT4/monWidget4a6RadioButtonSD.py  \ 
+          InterfaceQT4/monWidgetBloc.py  \ 
+          InterfaceQT4/monWidgetCB.py  \ 
+          InterfaceQT4/monWidgetCBSD.py  \ 
+          InterfaceQT4/monWidgetCommande.py  \ 
+          InterfaceQT4/monWidgetCommentaire.py  \ 
+          InterfaceQT4/monWidgetCreeParam.py  \ 
+          InterfaceQT4/monWidgetDate.py  \ 
+          InterfaceQT4/monWidgetFactPlie.py  \ 
+          InterfaceQT4/monWidgetFact.py  \ 
+          InterfaceQT4/monWidgetFormule.py  \ 
+          InterfaceQT4/monWidgetHeure.py  \ 
+          InterfaceQT4/monWidgetInfo.py  \ 
+          InterfaceQT4/monWidgetInactif.py  \ 
+          InterfaceQT4/monWidgetMatrice.py  \ 
+          InterfaceQT4/monWidgetOptionnel.py  \ 
+          InterfaceQT4/monWidgetParam.py  \ 
+          InterfaceQT4/monWidgetPlusieursBase.py  \ 
+          InterfaceQT4/monWidgetPlusieursASSDIntoOrdonne.py \ 
+          InterfaceQT4/monWidgetPlusieursIntoOrdonne.py  \ 
+          InterfaceQT4/monWidgetPlusieursInto.py  \ 
+          InterfaceQT4/monWidgetPlusieursTuple2.py  \ 
+          InterfaceQT4/monWidgetPlusieursTuple3.py  \ 
+          InterfaceQT4/monWidgetPlusieursTuple.py  \ 
+          InterfaceQT4/monWidgetPlusieursPlie.py  \ 
+          InterfaceQT4/monWidgetRadioButton.py  \ 
+          InterfaceQT4/monWidgetSDCOInto.py  \ 
+          InterfaceQT4/monWidgetSimpBase.py  \ 
+          InterfaceQT4/monWidgetSimpBool.py  \ 
+          InterfaceQT4/monWidgetSimpComplexe.py  \ 
+          InterfaceQT4/monWidgetSimpFichier.py  \ 
+          InterfaceQT4/monWidgetSimpTuple2.py  \ 
+          InterfaceQT4/monWidgetSimpTuple3.py  \ 
+          InterfaceQT4/monWidgetSimpTuple.py  \ 
+          InterfaceQT4/monWidgetSimpSalome.py  \ 
+          InterfaceQT4/monWidgetSimpTxt.py  \ 
+          InterfaceQT4/monWidgetUniqueSDCO.py  \ 
+          InterfaceQT4/monWidgetVide.py  \ 
+          InterfaceQT4/politiquesValidation.py  \ 
+          InterfaceQT4/qtEficas.py  \ 
+          InterfaceQT4/qtEficas_with_log.py  \ 
+          InterfaceQT4/qtSaisie.py  \ 
+          InterfaceQT4/readercata.py  \ 
+          InterfaceQT4/ssIhm.py  \ 
+          InterfaceQT4/typeNode.py  \ 
+          InterfaceQT4/viewManager.py  \ 
+          Traducteur/calcG.py  \ 
+          Traducteur/changeValeur.py  \ 
+          Traducteur/dictErreurs.py  \ 
+          Traducteur/inseremocle.py  \ 
+          Traducteur/load.py  \ 
+          Traducteur/log.py  \ 
+          Traducteur/mocles.py  \ 
+          Traducteur/movemocle.py  \ 
+          Traducteur/parseur.py  \ 
+          Traducteur/regles.py  \ 
+          Traducteur/removemocle.py  \ 
+          Traducteur/renamemocle.py  \ 
+          Traducteur/traduitV7V8.py  \ 
+          Traducteur/traduitV8V9.py  \ 
+          Traducteur/traduitV9V10.py  \ 
+          Traducteur/utils.py  \ 
+          Traducteur/visiteur.py  \ 
+          Noyau/N_VALIDATOR.py  \ 
+          Noyau/N_JDC.py  \ 
+          Validation/V_A_CLASSER.py  \ 
+          Validation/V_AU_MOINS_UN.py  \ 
+          Validation/V_AU_PLUS_UN.py  \ 
+          Validation/V_ENSEMBLE.py  \ 
+          Validation/V_ETAPE.py  \ 
+          Validation/V_EXCLUS.py  \ 
+          Validation/V_JDC.py  \ 
+          Validation/V_MACRO_ETAPE.py  \ 
+          Validation/V_MCBLOC.py  \ 
+          Validation/V_MCCOMPO.py  \ 
+          Validation/V_MCFACT.py  \ 
+          Validation/V_MCLIST.py  \ 
+          Validation/V_MCSIMP.py  \ 
+          Validation/V_MEME_NOMBRE.py  \ 
+          Validation/V_PRESENT_ABSENT.py  \ 
+          Validation/V_PRESENT_PRESENT.py  \ 
+          Validation/V_PROC_ETAPE.py  \ 
+          Validation/V_UN_PARMI.py  
 
-FORMS=   \
-        ../../UiQT4/myMain.ui \
-       ../../UiQT4/desBaseWidget.ui \
-       ../../UiQT4/desChoixCata.ui \
-       ../../UiQT4/desChoixCode.ui \
-       ../../UiQT4/desChoixCommandes.ui \
-       ../../UiQT4/desRecherche.ui \
-       ../../UiQT4/desSelectVal.ui \
-       ../../UiQT4/desViewTexte.ui \
-       ../../UiQT4/desViewRegles.ui \
-       ../../UiQT4/desVisu.ui \
-       ../../UiQT4/desWidgetCreeParam.ui \
-       ../../UiQT4/desWidgetCommande.ui \
-       ../../UiQT4/desWidgetOptionnel.ui \
-       ../../UiQT4/Tuple2.ui \
-       ../../UiQT4/Tuple3.ui \
-       ../../UiQT4/desWidgetBloc.ui \
-       ../../UiQT4/desWidgetCB.ui \
-       ../../UiQT4/desWidgetCommentaire.ui \
-       ../../UiQT4/desWidgetDate.ui \
-       ../../UiQT4/desWidgetFact.ui \
-       ../../UiQT4/desWidgetFactPlie.ui \
-       ../../UiQT4/desWidgetHeure.ui \
-       ../../UiQT4/desWidgetInformation.ui \
-       ../../UiQT4/desWidgetMatrice.ui \
-       ../../UiQT4/desWidgetParam.ui \
-       ../../UiQT4/desWidgetPlusieursBase.ui \
-       ../../UiQT4/desWidgetPlusieursInto.ui \
-       ../../UiQT4/desWidgetPlusieursIntoOrdonne.ui \
-       ../../UiQT4/desWidgetPlusieursTuple.ui \
-       ../../UiQT4/desWidgetPlusieursPlie.ui \
-       ../../UiQT4/desWidgetRadioButton.ui \
-       ../../UiQT4/desWidget4a6RadioButton.ui \
-       ../../UiQT4/desWidgetSDCOInto.ui \
-       ../../UiQT4/desWidgetSimpBase.ui \
-       ../../UiQT4/desWidgetSimpBool.ui \
-       ../../UiQT4/desWidgetSimpComplexe.ui \
-       ../../UiQT4/desWidgetSimpFichier.ui \
-       ../../UiQT4/desWidgetSimpTxt.ui \
-       ../../UiQT4/desWidgetTuple2.ui \
-       ../../UiQT4/desWidgetTuple3.ui \
-       ../../UiQT4/desWidgetUniqueSDCO.ui \
-       ../../UiQT4/desWidgetVide.ui \
-       ../../UiQT4/myMain.ui 
+FORMS = \
+         UiQT5/desBaseWidget.ui \ 
+         UiQT5/desChoixCata.ui \ 
+         UiQT5/desChoixCode.ui \ 
+         UiQT5/desChoixCommandes.ui \ 
+         UiQT5/desChoixLangue.ui \ 
+         UiQT5/desGroupeOptionnel.ui \ 
+         UiQT5/desPBOptionnelMT.ui \ 
+         UiQT5/desRechercheCatalogue.ui \ 
+         UiQT5/desRecherche.ui \ 
+         UiQT5/desSelectVal.ui \ 
+         UiQT5/desViewRegles.ui \ 
+         UiQT5/desViewTexte.ui \ 
+         UiQT5/desVisu.ui \ 
+         UiQT5/desWidget4a6RadioButton.ui \ 
+         UiQT5/desWidgetBloc.ui \ 
+         UiQT5/desWidgetCB.ui \ 
+         UiQT5/desWidgetCommande.ui \ 
+         UiQT5/desWidgetCommentaire.ui \ 
+         UiQT5/desWidgetCreeParam.ui \ 
+         UiQT5/desWidgetDate.ui \ 
+         UiQT5/desWidgetFactHorizon.ui \ 
+         UiQT5/desWidgetFactPlie.ui \ 
+         UiQT5/desWidgetFact.ui \ 
+         UiQT5/desWidgetFormule.ui \ 
+         UiQT5/desWidgetHeure.ui \ 
+         UiQT5/desWidgetInactif.ui \ 
+         UiQT5/desWidgetInformation.ui \ 
+         UiQT5/desWidgetIntoSug.ui \ 
+         UiQT5/desWidgetMatrice.ui \ 
+         UiQT5/desWidgetOptionnelMC.ui \ 
+         UiQT5/desWidgetOptionnel.ui \ 
+         UiQT5/desWidgetParam.ui \ 
+         UiQT5/desWidgetPlusieursBase.ui \ 
+         UiQT5/desWidgetPlusieursIntoOrdonne.ui \ 
+         UiQT5/desWidgetPlusieursInto.ui \ 
+         UiQT5/desWidgetPlusieursPlie.ui \ 
+         UiQT5/desWidgetPlusieursTuple.ui \ 
+         UiQT5/desWidgetRadioButton.ui \ 
+         UiQT5/desWidgetSDCOInto.ui \ 
+         UiQT5/desWidgetSimpBase.ui \ 
+         UiQT5/desWidgetSimpBool.ui \ 
+         UiQT5/desWidgetSimpComplexe.ui \ 
+         UiQT5/desWidgetSimpFichier.ui \ 
+         UiQT5/desWidgetSimpSalome.ui \ 
+         UiQT5/desWidgetSimpTxt.ui \ 
+         UiQT5/desWidgetTuple2.ui \ 
+         UiQT5/desWidgetTuple3.ui \ 
+         UiQT5/desWidgetUniqueSDCO.ui \ 
+         UiQT5/desWidgetVide.ui \ 
+         UiQT5/myMain.ui \ 
+         UiQT5/Tuple2.ui \ 
+         UiQT5/Tuple3.ui  
 
-TRANSLATIONS = ../../UiQT4/eficas_fr.ts ../../UiQT4/eficas_en.ts
+TRANSLATIONS = UiQT5/eficas_fr.ts UiQT5/eficas_en.ts 
index 544063dd5bafd503737e56104c81f81b33ea186d..5ea45541fd45b6414ffe29ffd06d9411789ca661 100644 (file)
@@ -51,6 +51,7 @@ def localise(application, locale=None,file=None,translatorFichier=None, debug=Fa
        print ("Unable to load Eficas translator!")
      
     global code_translator
+    if debug : print  ('translatorFichier :' ,translatorFichier)
     if translatorFichier != None :
        if (code_translator.load(translatorFichier)) and debug:
            print (translatorFichier, ' loaded')
diff --git a/Extensions/translationQT4.py b/Extensions/translationQT4.py
deleted file mode 100644 (file)
index ba4940f..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-# -*- coding: utf-8 -*-
-# copyright 2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
-# contact http://www.logilab.fr -- mailto:contact@logilab.fr
-#
-# This program is free software: you can redistribute it and/or modify it under
-# the terms of the GNU Lesser General Public License as published by the Free
-# Software Foundation, either version 2.1 of the License, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
-# details.
-#
-# You should have received a copy of the GNU Lesser General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Main module of the ``i18n`` package, for internationalizing strings via the Qt
-mechanism, in the ``Eficas`` application of EDF. Handles unformatted and
-formatted strings, according to all formatting schemes: via dictionaries,
-tuples, or atoms.
-
-``PyQt4`` is currently supported.
-"""
-from Extensions.eficas_exception import EficasException
-def _reformat_qstring_from_tuple(qstring, params):
-    """
-    _reformat_qstring_from_tuple(QString, tuple) -> QString
-
-    Module-internal method.
-    Returns a formatted QString from an unformatted QString
-    and a tuple specifying the parameters of the QString.
-    """
-    from PyQt4.QtCore import QRegExp, QString
-    reg = QRegExp("\%\.[1-9]{1,2}f")
-    for p, j in zip(params, range(len(params))):
-        try:
-            i += 1 + qstring[i + 1:].indexOf("%")
-        except NameError:
-            i = qstring.indexOf("%")
-        if i == reg.indexIn(qstring):
-            precision = reg.cap(0).split('.')[1].split('f')[0]
-            qstring = qstring[:i + 2 + len(precision)].\
-                      replace("%." + precision, "%" + unicode(1 + j)) + \
-                      qstring[i + 3 + len(precision):]
-            qstring = qstring.arg(QString.number(float(params[j]), 'f',\
-                                                 int(precision)))
-        else:
-            qstring = qstring[:i + 1].replace("%", "%" + unicode(1 + j)) + \
-                      qstring[i + 2:]
-            if isinstance(params[j], unicode):
-                qstring = qstring.arg(params[j])
-            elif isinstance(params[j], float):
-                qstring = qstring.arg(QString.number(params[j], 'f',\
-                                                     len(unicode(params[j]).\
-                                                         split('.')[1])))
-            elif isinstance(params[j], int):
-                qstring = qstring.arg(QString.number(params[j], 10))
-            elif isinstance(params[j], list):
-                qstring = qstring.arg(repr(params[j]))
-            else:
-                raise EficasException("TypeError: i18n.translation: \
-                                      Unicode, list or number expected!")
-    return qstring
-
-def _reformat_qstring_from_dict(qstring, params):
-    """
-    _reformat_qstring_from_dict(QString, dict) -> QString
-
-    Module-internal method.
-    Returns a formatted QString from an unformatted QString
-    and a dictionary specifying the parameters of the QString.
-    """
-    from PyQt4.QtCore import QRegExp, QString
-    for p, j in zip(params, range(len(params))):
-        p_reg = QRegExp("\%\("+ p + "\)\.[1-9]{1,2}f")
-        p_index = p_reg.indexIn(qstring)
-        if p_index != -1:
-            precision = p_reg.cap(0).split('.')[1].split('f')[0]
-            qstring = qstring.replace("%(" + p + ")." + precision + "f",\
-                                      "%" + unicode(1 + j)).\
-                                      arg(QString.number(float(params[p]), \
-                                                         'f', \
-                                                         int(precision)))
-        else:
-            qstring.remove(QRegExp("\\)[sdf]{1}"))
-            qstring = qstring.replace("%(" + p, "%" + unicode(1 + j))
-            if isinstance(params[p], unicode):
-                qstring = qstring.arg(params[p])
-            elif isinstance(params[p], float):
-                qstring = qstring.arg(QString.number(params[p], 'f', \
-                          len(unicode(params[p]).split('.')[1])))
-            elif isinstance(params[p], int):
-                qstring = qstring.arg(QString.number(params[p], 10))
-            elif isinstance(params[p], list):
-                qstring = qstring.arg(repr(params[p]))
-            else:
-                raise EficasException("TypeError: i18n.translation: \
-                                      Improper string parameter type.")
-    return qstring
-
-def _reformat_qstring_from_atom(qstring, params):
-    """
-    _reformat_qstring_from_atom(QString, int-or-float) -> QString
-
-    Module-internal method.
-    Returns a formatted QString from an unformatted QString
-    and an integer or a float specifying the parameter of 
-    the QString.
-    """
-    from PyQt4.QtCore import QRegExp, QString
-    reg = QRegExp("\%\.[1-9]{1,2}f")
-    if qstring.count("%") == 0:
-        qstring.append("%1")
-        try:
-            qstring = qstring.arg(unicode(params))
-        except AttributeError:
-            qstring = qstring.arg(params)
-    elif qstring.count("%") == 1:
-        i = qstring.indexOf("%")
-        if i == reg.indexIn(qstring):
-            precision = reg.cap(0).split('.')[1].split('f')[0]
-            qstring = qstring[: i + 2 + len(precision)].\
-                      replace("%." + precision, "%1") + \
-                      qstring[i + 3 + len(precision):]
-            qstring = qstring.arg(QString.number(float(params), 'f',\
-                                                 int(precision)))
-        else:
-            qstring = qstring[:i + 1].replace("%", "%1") + \
-                      qstring[i + 2:]
-            if isinstance(params, (unicode, str)):
-                qstring = qstring.arg(_preprocess_atom(params))
-            elif isinstance(params, float):
-                qstring = qstring.arg(QString.number(params, 'f', \
-                                                     len(unicode(params).\
-                                                         split('.')[1])))
-            elif isinstance(params, int):
-                qstring = qstring.arg(QString.number(params, 10))
-            else:
-                raise EficasException("TypeError: i18n.translation: Unicode, \
-                                      string or number expected!")
-    return qstring
-
-def _reformat_qstring_from_list(qstring, params):
-    """
-    _reformat_qstring_from_list(QString, tuple) -> QString
-
-    Module-internal method.
-    Returns a formatted QString from an unformatted QString
-    and a list whose concatenation specifies the parameter 
-    of the QString.
-    """
-    # XXX to add further functionality, e.g. list processing
-    # when ``%`` not at the end.
-    if qstring.count("%") == 1 and \
-       unicode(qstring).strip()[:-1].endswith("%"):
-        qstring = qstring[:qstring.indexOf("%") + 1].append("1")
-        qstring = qstring.arg(u' '.join(map(unicode, params)))
-    elif qstring.count("%") == 0:
-        qstring.append("%1")
-        qstring = qstring.arg(u' '.join(map(unicode, params)))
-    else:
-        raise EficasException("ValueError: i18n.translation: \
-                              At most one '%' expected!")
-    return qstring
-
-def _preprocess_atom(string):
-    """
-    _preprocess_atom(string-or-number-or-unicode) -> unicode
-    Test if input is a Unicode object or a number; if so, then return it; 
-    otherwise, test if the input is a string; if so, then try to create 
-    a Unicode object out of it. To this end, assume the string is encoded 
-    in utf-8; if this fails, then assume the string is encoded in Latin-9.
-    """
-    if isinstance(string, (unicode, int, float, complex)):
-        return string
-    elif isinstance(string, str):
-        return _str_to_unicode(string)
-    else:
-        raise EficasException("TypeError: Expected number, string or\
-                              Unicode object!")
-
-def _str_to_unicode(string):
-    """
-    _str_to_unicode(string) -> unicode
-    Tries to create a Unicode object out of the input string; assumes 
-    the string is UTF-8 encoded; if not, then assume the string is 
-    Latin-9 encoded.
-    """
-    try:
-        string = unicode(string, "utf-8")
-    except UnicodeDecodeError:
-        try:
-            string = unicode(string, "iso-8859-15")
-        except UnicodeDecodeError:
-            raise EficasException("UnicodeDecodeError: UTF-8, Latin-1 \
-                                  or Latin-9 expected")
-    return string
-
-def tr(string, *args):
-    """tr(string-or-unicode, iterable-or-float-or-int) -> unicode
-       tr(string-or-unicode) -> unicode
-       
-       Returns a formatted Unicode object from an unformatted 
-       string or Unicode object with formatting specifications, and, 
-       optionally, an iterable or an int or float.
-       Lets Python do the string formatting."""
-    from PyQt4.QtGui import QApplication
-    string = _preprocess_atom(string)
-    if len(args) == 0:
-        r = unicode(QApplication.translate("@default", string))
-    elif len(args) == 1:
-        if isinstance(args[0], (dict, tuple)):
-            if string.count("%") == len(args[0]):
-                r = unicode(QApplication.translate("@default", string)) % args[0]
-            elif string.count("%") == 1 and string.count("%(") == 0:
-                r = unicode(QApplication.translate("@default", string))\
-                    % _preprocess_atom(repr(args[0]))
-            elif string.count("%") == 0:
-                r = (unicode(QApplication.translate("@default", string)), args[0])
-            else:
-                raise EficasException("ValueError: i18n.translate.tr: \
-                                      Improper input string formatting")
-        elif isinstance(args[0], (unicode, str, int, float, complex)):
-            if string.count("%") == 1:
-                r = unicode(QApplication.translate("@default", string))\
-                    % _preprocess_atom(args[0])
-            else:
-                r = unicode(QApplication.translate("@default", string)) +\
-                    unicode(_preprocess_atom(args[0]))
-        elif isinstance(args[0], list) or args[0] is None:
-            if string.count("%") == 1:
-                r = unicode(QApplication.translate("@default", string))\
-                    % _preprocess_atom(repr(args[0]))
-            else:
-                r = (unicode(QApplication.translate("@default", string)), args[0])
-
-        else:
-            raise EficasException("ValueError: i18n.translation.tr: \
-                                  Wrong type for formatted string \
-                                  arguments: %s" % type(args[0]))
-    else:
-        raise EficasException("ValueError: i18n.translation.tr: \
-                              Wrong formatted string arguments")
-    return r
-
-
-def tr_qt(string, *args):
-    """tr_qt(string, iterable-or-float-or-int) -> unicode
-       t_qtr(string) -> unicode
-       
-       Returns a formatted string from an unformatted 
-       Unicode string with formatting specifications, and, 
-       optionally, an iterable or an int or float.
-       Lets PyQt4 do the string formatting. To this end,
-       a conversion from Python to Qt string formatting
-       syntax is performed."""
-    string = _preprocess_atom(string)
-    from PyQt4.QtGui import QApplication
-    if len(args) == 0:
-        r = QApplication.translate("@default", string)
-    elif len(args) == 1:
-        r = QApplication.translate("@default", string)
-        if isinstance(args[0], (dict, tuple)):
-            if r.count("%") == len(args[0]):
-                if isinstance(args[0], dict):
-                    r = _reformat_qstring_from_dict(r, args[0])
-                elif isinstance(args[0], tuple):
-                    r = _reformat_qstring_from_tuple(r, args[0])
-            # XXX Pay attention to this: distinguish between tuple, 
-            # dict and dict with key given in string.
-            elif r.count("%") in range(2) and r.count("%(") == 0:
-                r = _reformat_qstring_from_atom(r, _preproces_atom(repr(args[0])))
-            else:
-                raise EficasException("ValueError: i18n.translation.tr_qt: \
-                                      Improper formatting string parameters")
-        elif isinstance(args[0], (unicode, str, int, float, complex)):
-            r = _reformat_qstring_from_atom(r, args[0])
-        elif isinstance(args[0], list):
-            r = _reformat_qstring_from_list(r, args[0])
-        elif args[0] is None:
-            r = _reformat_qstring_from_atom(r, _preprocess_string_from_atom(repr(args[0])))
-        else:
-            raise EficasException("ValueError: i18n.translation.tr_qt: \
-                                  Wrong string formatting parameter types")
-    else:
-        raise EficasException("ValueError: i18n.translation.tr_qt: \
-                              Improper formatted string parameter set")
-    return unicode(r)
-
-
-if __name__ == "__main__":
-    import sys
-    tr(sys.argv[1], *args)
-    tr_qt(sys.argv[1], *args)
index 550fce2f2662bb1ecaf674189dede9ed3925d26e..2bc9ba644c1a8f2266f40b9f7aa249f3c133b749 100755 (executable)
@@ -96,10 +96,6 @@ class Appli(Ui_Eficas,QMainWindow):
              self.definitCode(code,ssCode)
              if code==None: return
 
-
-
-
-
         self.suiteTelemac=False
         if hasattr (self, 'CONFIGURATION') :
            if self.CONFIGURATION.force_langue :
@@ -192,12 +188,14 @@ class Appli(Ui_Eficas,QMainWindow):
         self.CONFIGStyle = None
         if hasattr(configuration,'make_config_style'):
            self.CONFIGStyle = configuration.make_config_style(self,prefsCode.repIni)
-        # 
-        #from Extensions import localisation
-        #app=QApplication
-        #if hasattr (self, 'CONFIGURATION') : localisation.localise(None,self.langue,translatorFichier=self.CONFIGURATION.translatorFichier)
+
+        if hasattr (self,'CONFIGURATION') and self.CONFIGURATION.translatorFichier : 
+           from Extensions import localisation
+           localisation.localise(None,self.langue,translatorFichier=self.CONFIGURATION.translatorFichier)
+
         #PN --> pb d exception qui font planter salome
         # plus supporte en python 3
+        #app=QApplication
         #if hasattr(prefsCode,'encoding'):
         #   import sys
         #   reload(sys)
diff --git a/ProcessOutputs_Eficas/EssaiMulti.py b/ProcessOutputs_Eficas/EssaiMulti.py
new file mode 100755 (executable)
index 0000000..87f9905
--- /dev/null
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import os
+import sys
+from multiprocessing import Process
+from multiprocessing import Lock
+from multiprocessing import Pool
+
+def worker(num):
+    """thread worker function"""
+    print 'Worker:', num
+    return
+
+def test1():
+    for i in range(5):
+        p = Process(target=worker, args=(i,))
+        p.start()
+        p.join()
+
+def info(title):
+    print(title)
+    print('parent process:', os.getppid())
+    print('process id:', os.getpid())
+
+def f(name):
+    info('function f')
+    print('hello', name)
+
+def test2():
+    info('test2')
+    p = Process(target=f, args=('pascale',))
+    p.start()
+    p.join()
+
+def f(l, i):
+    l.acquire()
+    try:
+        print('hello world', i)
+    finally:
+        l.release()
+
+
+def test3(lock):
+    for num in range(10):
+        Process(target=f, args=(lock, num)).start()
+
+    # sorties evt desordonnees
+    for i in range(50):
+        p = Process(target=worker, args=(i,)).start()
+
+def g(x):
+    return x*x
+
+
+def test4():
+    import traceback
+    traceback.print_stack()
+    num_cores = 4
+    FolderPath='tmp'
+
+    monPool=Pool(maxtasksperchild=1) #create a multiprocessing.Pool object
+    for l in range(num_cores):
+        print(" lct on core "+str(l) )
+        p= monPool.apply_async(g,(l,))
+
+    res = monPool.apply_async(g, (20,))      # runs in *only* one process
+    print res.get(timeout=1)                 # prints "400"
+
+    # evaluate "os.getpid()" asynchronously
+    res = monPool.apply_async(os.getpid, ()) # runs in *only* one process
+    print res.get(timeout=1)              # prints the PID of that process
+
+    # launching multiple evaluations asynchronously *may* use more processes
+    multiple_results = [monPool.apply_async(os.getpid, ()) for i in range(4)]
+    print [res.get(timeout=1) for res in multiple_results]
+
+
+
+if __name__ == '__main__':
+   #test1()
+
+   #test2()
+   
+   #lock = Lock()
+   #test3(lock)
+   print ('je suis dans main du run')
+   test4()
+
diff --git a/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py b/ProcessOutputs_Eficas/ExtractGeneratorLoadLineandTransfoDicoProcess.py
new file mode 100644 (file)
index 0000000..653e23f
--- /dev/null
@@ -0,0 +1,631 @@
+import os\r
+import sys\r
+import numpy as np\r
+import copy\r
+\r
+path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','TreatOutputs'))\r
+sys.path.append(path1)\r
+import Options\r
+\r
+\r
+def getNominalkV(NetworkFile):\r
+\r
+    print "version en dur"\r
+\r
+    BusList=[11.0, 30.0, 90.0]\r
+    LinesList=[30.0, 90.0]\r
+    TransfosList=['11.0 - 30.0', '11.0 - 90.0', '30.0 - 90.0', '90.0 - 30.0']\r
+    return BusList, LinesList, TransfosList\r
+\r
+\r
+\r
+\r
+\r
+    import psspy\r
+    import redirect\r
+\r
+    psspy.psseinit(80000)\r
+    redirect.psse2py()\r
+    psspy.progress_output(6)\r
+\r
+    psspy.case(NetworkFile)\r
+    # Buses\r
+\r
+    sid = -1\r
+    flag = 2\r
+    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
+    Options.BusBase = ret[0]\r
+\r
+    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
+    Options.BusBaseList = {}\r
+    for i in range(len(carray[0])):\r
+        Options.BusBaseList[carray[0][i]] = ret[0][i]\r
+\r
+    BusList = []\r
+    for item in Options.BusBase:\r
+        if item not in BusList:\r
+            BusList.append(item)\r
+    BusList = sorted(BusList)\r
+\r
+    # Lines\r
+\r
+    owner = 1\r
+    ties = 1\r
+    flag = 2\r
+    entry = 1\r
+    string = ['FROMNAME', 'TONAME']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    for i in range(len(carray[0])):\r
+        nom = Options.BusBaseList[carray[0][i]]\r
+        name = carray[0][i] + '-' + carray[1][i]\r
+        Options.LinesBaseList[name] = nom\r
+        Options.LinesBase.append(nom)\r
+\r
+    LinesList = []\r
+    for item in Options.LinesBase:\r
+        if item not in LinesList:\r
+            LinesList.append(item)\r
+    LinesList = sorted(LinesList)\r
+\r
+    # Transfos\r
+\r
+    owner = 1\r
+    ties = 1\r
+    flag = 6\r
+    entry = 1\r
+    string = ['FROMNAME', 'TONAME']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    for i in range(len(carray[0])):\r
+        nom1 = Options.BusBaseList[carray[0][i]]\r
+        nom2 = Options.BusBaseList[carray[1][i]]\r
+        name = carray[0][i] + '-' + carray[1][i]\r
+        Options.TransfoBaseList[name] = [nom1, nom2]\r
+        Options.TransfoBase.append([nom1, nom2])\r
+\r
+    TransfosList = []\r
+    for item in Options.TransfoBase:\r
+        string = str(item[0]) + ' - ' + str(item[1])\r
+        if string not in TransfosList:\r
+            TransfosList.append(string)\r
+    TransfosList = sorted(TransfosList)\r
+\r
+    # Generators\r
+\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.amachint(sid,flag,string)\r
+\r
+    string = ['NAME','ID']\r
+    ierr,carray = psspy.amachchar(sid,flag,string)\r
+\r
+    for i in range(len(iarray[0])):\r
+        idname = "GR" + carray[1][i]\r
+        machinename = carray[0][i].strip()+ "__" + idname\r
+        machinename = machinename.replace(" ","_")\r
+        machinename = machinename.replace("-","_")\r
+        machinename = machinename.replace(".","_")\r
+        machinename = machinename.replace("&","and")\r
+        try:\r
+            int(machinename[0])\r
+            machinename = "_" + machinename\r
+        except:\r
+            pass\r
+        Options.GenBaseList[machinename] = iarray[0][i]\r
+\r
+    return BusList, LinesList, TransfosList\r
+\r
+def getBusNominalkV(NetworkFile):\r
+    import psspy\r
+    import redirect\r
+\r
+    psspy.psseinit(80000)\r
+    redirect.psse2py()\r
+    psspy.progress_output(6)\r
+\r
+    psspy.case(NetworkFile)\r
+\r
+    sid = -1\r
+    flag = 2\r
+    ierr, ret = psspy.abusreal(sid, flag, ['BASE'])\r
+    Options.BusBase = ret[0]\r
+\r
+    ierr, carray = psspy.abuschar(sid, flag, ['NAME'])\r
+    buses = {}\r
+    for i in range(len(carray[0])):\r
+        buses[carray[0][i]] = ret[0][i]\r
+    Options.BusNames = buses\r
+    ret = []\r
+    for item in Options.BusBase:\r
+        if item not in ret:\r
+            ret.append(item)\r
+    return sorted(ret)\r
+\r
+def updateConts():\r
+    Options.ContFullList = []\r
+    tmp = Options.BusBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    tmp = Options.GenBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    tmp = Options.LinesBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    tmp = Options.TransfoBaseList\r
+    tmp.sort()\r
+    for key in tmp:\r
+        Options.ContFullList.append(key)\r
+    print Options.ContFullList\r
+    return Options.ContFullList\r
+\r
+def newContingency(MatList):\r
+    Options.CustomContingencies.append(MatList)\r
+\r
+def checkIfBorder(graph, key, depth, tmplist):\r
+    #print "in checkifBorder"\r
+    #print "depth ",depth\r
+    #print graph\r
+    if key in tmplist:\r
+        return True\r
+    if depth == 0:\r
+        return False\r
+    NonBorders = 0\r
+    for item in graph[key]:\r
+        if not checkIfBorder(graph, item, depth - 1, tmplist):\r
+            NonBorders += 1\r
+    if NonBorders < 2: # A generator is considered as isolated if it has less than two non-borders neighbours\r
+        if key not in tmplist:\r
+            tmplist.append(key)\r
+        return True\r
+    return False\r
+\r
+def getTrueLines(NetworkFile):\r
+    import psspy\r
+    import redirect\r
+\r
+    psspy.psseinit(80000)\r
+    redirect.psse2py()\r
+    psspy.progress_output(6)\r
+\r
+    psspy.case(NetworkFile)\r
+\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 4 # 6 for two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNAME', 'TONAME', 'ID']\r
+    ierr, iarray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+    string = ['FROMNUMBER', 'TONUMBER']\r
+    ierr, carray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
+\r
+    lst = []\r
+    tmplist = []\r
+    try:\r
+        for i in range(len(carray[0])):\r
+            if carray[0][i] not in lst and carray[0][i] not in tmplist:\r
+                tmplist.append(carray[0][i])\r
+            elif carray[0][i] not in lst and carray[0][i] in tmplist:\r
+                tmplist.remove(carray[0][i])\r
+                lst.append(carray[0][i])\r
+            if carray[1][i] not in lst and carray[1][i] not in tmplist:\r
+                tmplist.append(carray[1][i])\r
+            elif carray[1][i] not in lst and carray[1][i] in tmplist:\r
+                tmplist.remove(carray[1][i])\r
+                lst.append(carray[1][i])\r
+    except:\r
+        pass\r
+\r
+    # Create the graph\r
+    graph = {}\r
+    for i in range(len(carray[0])):\r
+        try:\r
+            if graph[carray[0][i]]:\r
+                pass\r
+        except:\r
+            graph[carray[0][i]] = []\r
+        if carray[1][i] not in graph[carray[0][i]]:\r
+            graph[carray[0][i]].append(carray[1][i])\r
+        try:\r
+            if graph[carray[1][i]]:\r
+                pass\r
+        except:\r
+            graph[carray[1][i]] = []\r
+        if carray[0][i] not in graph[carray[1][i]]:\r
+            graph[carray[1][i]].append(carray[0][i])\r
+\r
+\r
+    # Search it twice, to ensure everything is mapped\r
+    for key in sorted(graph):\r
+        #print key\r
+        checkIfBorder(graph, key, Options.RecursiveDepth, tmplist)\r
+        #print "out of Checkif 0"\r
+        #print ""\r
+    for key in reversed(sorted(graph)):\r
+        checkIfBorder(graph, key, Options.RecursiveDepth, tmplist)\r
+\r
+    Options.IsolatedGenList = []\r
+    # Unfold it\r
+    for i in range(len(carray[0])):\r
+        if carray[0][i] in tmplist:\r
+            if iarray[0][i] not in Options.IsolatedGenList:\r
+                Options.IsolatedGenList.append(iarray[0][i])\r
+        if carray[1][i] in tmplist:\r
+            if iarray[1][i] not in Options.IsolatedGenList:\r
+                Options.IsolatedGenList.append(iarray[1][i])\r
+\r
+    lines = []\r
+    outLines = []\r
+    for i in range(len(iarray[0])):\r
+        name = iarray[0][i] + '-' + iarray[1][i]\r
+        if '@' in iarray[2][i] or '*' in iarray[2][i]:\r
+            outLines.append(name)\r
+        elif iarray[0][i] not in Options.IsolatedGenList and iarray[1][i] not in Options.IsolatedGenList:\r
+            lines.append(name)\r
+        else:\r
+            outLines.append(name)\r
+    Options.TrueLines = lines\r
+\r
+    return lines\r
+\r
+NoBreakersandSwitches = True\r
+\r
+def ExtractGeneratorLoadLineandTransfoDico(NetworkFile,PSSE_PATH):\r
\r
+    print "version en dur"\r
+    MachineDico={'M1':'M1','M2':'M2','M3':'M3','M4':'M4','B6_BUS13__1':'AZ','CSPRING__1':'DD','GT12B__1':'ER','BSTMB__1':'JJ'}\r
+    LoadDico={'C1':'C1','C2':'C2','C3':'C3','C4':'C4'}\r
+    LineDico={'L1':'L1','L2':'L2','L3':'L3','L4':'L4'}\r
+    TfoDico={'T1':'T1','T2':'T2','T3':'T3','T4':'T4'}\r
+    MDico={'MZ1':'MZ1','MZ2':'MZ2','MZ3':'MZ3','MZ4':'MZ4'}\r
+    BranchesDico={'B11':'B1','B2':'B2','B3':'B3','B4':'B4'}\r
+    BusNomial={'Bus1':'Bus1','Bus2':'Bus2','Bus3':'Bus3','Bus4':'Bus4'}\r
+\r
+    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
+\r
+\r
+    import os\r
+    import sys\r
+    import numpy as np\r
+\r
+    sys.path.append(PSSE_PATH)\r
+    os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
+\r
+    import psspy\r
+    import redirect\r
+\r
+    ###initialization PSSE\r
+    psspy.psseinit(10000)\r
+    _i=psspy.getdefaultint()\r
+    _f=psspy.getdefaultreal()\r
+    _s=psspy.getdefaultchar()\r
+    redirect.psse2py()\r
+\r
+    # Silent execution of PSSe\r
+    islct=6 # 6=no output; 1=standard\r
+    psspy.progress_output(islct)\r
+\r
+    #open Network File\r
+    psspy.case(NetworkFile)\r
+\r
+    # Extract Buses\r
+    sid = -1 # all buses\r
+    flag = 2\r
+    string = ['NUMBER']\r
+    ierr, iarray = psspy.abusint(sid, flag, string)\r
+\r
+    string = ['NAME', 'EXNAME']\r
+    ierr, carray = psspy.abuschar(sid, flag, string)\r
+\r
+    string = ['BASE']\r
+    ierr, ret = psspy.abusreal(sid, flag, string)\r
+\r
+    BusDico = {}\r
+    BusNominal = {}\r
+    for i in range(len(iarray[0])):\r
+        BusNum = iarray[0][i]\r
+        BusDico[str(BusNum)] = carray[0][i].strip()\r
+        BusNominal[BusDico[str(BusNum)]] = ret[0][i]    \r
+\r
+    #Extract Loads\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.aloadint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.aloadchar(sid,flag,string)\r
+\r
+    string = ['mvaact']\r
+    ierr, xdata = psspy.aloadcplx(sid, flag, string)\r
+\r
+    LoadDico = {}  # [Bus name, load ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Lo" + carray[1][i].strip()\r
+#        try: #id is an integer\r
+#            idname = "Lo" + str(int(carray[1][i]))\r
+#        except: #id is not an integer\r
+#            idname = "Lo" + carray[1][i]\r
+        loadname = carray[0][i].strip()+ "__" + idname\r
+        loadname = loadname.replace(" ","_")\r
+        loadname = loadname.replace("-","_")\r
+        loadname = loadname.replace(".","_")\r
+        loadname = loadname.replace("&","and")\r
+        try:\r
+            int(loadname[0])\r
+            loadname="_" + loadname\r
+        except:\r
+            pass\r
+        LoadDico[loadname]= {}\r
+        LoadDico[loadname]['NAME'] = carray[0][i].strip()\r
+        LoadDico[loadname]['ID'] = carray[1][i]\r
+        LoadDico[loadname]['EXNAME'] =carray[2][i]\r
+        LoadDico[loadname]['NUMBER']=iarray[0][i]\r
+        LoadDico[loadname]['P']=np.real(xdata)[0][i]\r
+        LoadDico[loadname]['Q']=np.imag(xdata)[0][i]\r
+\r
+    #Extract Generators\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+    string = ['NUMBER']\r
+    ierr,iarray = psspy.amachint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.amachchar(sid,flag,string)\r
+\r
+    rstrings = ['pgen','qgen','mbase','pmax','qmax','pmin','qmin']\r
+    ierr, rarray = psspy.amachreal(sid, flag, rstrings)\r
+\r
+    MachineDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Gr" + carray[1][i].strip()\r
+##        try:\r
+##            idname = "Gr" + str(int(carray[1][i]))\r
+##        except:\r
+##            idname = "Gr" + carray[1][i]\r
+        machinename = carray[0][i].strip()+ "__" + idname\r
+        machinename = machinename.replace(" ","_")\r
+        machinename = machinename.replace("-","_")\r
+        machinename = machinename.replace(".","_")\r
+        machinename = machinename.replace("&","and")\r
+        try:\r
+            int(machinename[0])\r
+            machinename="_" + machinename\r
+        except:\r
+            pass\r
+        MachineDico[machinename]={}\r
+        MachineDico[machinename]['NAME'] = carray[0][i].strip()\r
+        MachineDico[machinename]['ID'] = carray[1][i]\r
+        MachineDico[machinename]['EXNAME'] =carray[2][i]\r
+        MachineDico[machinename]['NUMBER']=iarray[0][i]\r
+        MachineDico[machinename]['P']=rarray[0][i]\r
+        MachineDico[machinename]['Q']=rarray[1][i]\r
+        MachineDico[machinename]['PMAX']=rarray[3][i]\r
+        MachineDico[machinename]['QMAX']=rarray[4][i]\r
+        MachineDico[machinename]['PMIN']=rarray[5][i]\r
+        MachineDico[machinename]['QMIN']=rarray[6][i]\r
+\r
+    #Extract Motors\r
+    sid = -1 #all buses\r
+    flag = 1 #all in service loads/generators (4 all loads/generators)\r
+\r
+    string = ['NUMBER','PSETCODE','BASECODE']\r
+    ierr,iarray = psspy.aindmacint(sid,flag,string)\r
+\r
+    string = ['NAME','ID','EXNAME']\r
+    ierr,carray = psspy.aindmacchar(sid,flag,string)\r
+\r
+    rstrings = ['psetpoint','mbase','p','q']\r
+    ierr, rarray = psspy.aindmacreal(sid, flag, rstrings)\r
+\r
+\r
+    MotorDico = {} # [Bus name, machine ID, extended bus name, bus number]\r
+    for i in range(len(iarray[0])):\r
+        idname = "Mo" + carray[1][i].strip()\r
+##        try:\r
+##            idname = "Gr" + str(int(carray[1][i]))\r
+##        except:\r
+##            idname = "Gr" + carray[1][i]\r
+        motorname = carray[0][i].strip()+ "__" + idname\r
+        motorname = motorname.replace(" ","_")\r
+        motorname = motorname.replace("-","_")\r
+        motorname = motorname.replace(".","_")\r
+        motorname = motorname.replace("&","and")\r
+        try:\r
+            int(motorname[0])\r
+            motorname="_" + motorname\r
+        except:\r
+            pass\r
+        MotorDico[motorname]={}\r
+        MotorDico[motorname]['NAME'] = carray[0][i].strip()\r
+        MotorDico[motorname]['ID'] = carray[1][i]\r
+        MotorDico[motorname]['EXNAME'] =carray[2][i]\r
+        MotorDico[motorname]['NUMBER']=iarray[0][i]\r
+        MotorDico[motorname]['PSETCODE']=iarray[1][i]\r
+        MotorDico[motorname]['BASECODE']=iarray[2][i]\r
+        MotorDico[motorname]['PSETPOINT']=rarray[0][i]\r
+        MotorDico[motorname]['MBASE']=rarray[1][i]\r
+        MotorDico[motorname]['P']=rarray[2][i]\r
+        MotorDico[motorname]['Q']=rarray[3][i]\r
+\r
+\r
+    #Extract Lignes\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 2 #6 for two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+\r
+    LineDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = carray[4][i].strip()\r
+        #idname = carray[4][i]\r
+        if '@' in idname:\r
+            idname = idname.replace('@','Br')\r
+        elif '*' in idname:\r
+            idname = idname.replace('*','Sw')\r
+        else:\r
+            try:\r
+                idname = 'Li' + str(int(idname))\r
+            except:\r
+                idname = 'Li' + idname\r
+        linename =carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        linename = linename.replace(" ","_")\r
+        linename = linename.replace("-","_")\r
+        linename = linename.replace(".","_")\r
+        linename = linename.replace("&","and")\r
+        try:\r
+            int(linename[0])\r
+            linename="_" + linename\r
+        except:\r
+            pass\r
+        if NoBreakersandSwitches:\r
+            if 'Br' not in idname and 'Sw' not in idname:\r
+                LineDico[linename]={}\r
+                LineDico[linename]['FROMNAME']=carray[0][i].strip()\r
+                LineDico[linename]['TONAME']=carray[1][i].strip()\r
+                LineDico[linename]['ID']=carray[4][i]\r
+                LineDico[linename]['FROMEXNAME']=carray[2][i]\r
+                LineDico[linename]['TOEXNAME']=carray[3][i]\r
+                LineDico[linename]['FROMNUMBER']=iarray[0][i]\r
+                LineDico[linename]['TONUMBER']=iarray[1][i]\r
+\r
+    #Extract Branches\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 4 # lines & transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr, iarray = psspy.abrnint(sid, owner, ties, flag, entry, string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr, carray = psspy.abrnchar(sid, owner, ties, flag, entry, string)\r
+\r
+    BranchesDico = {} #[linename, Bus name 1, Bus name 2, ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = carray[4][i]\r
+        if '@' in idname:\r
+            idname = idname.replace('@','Br')\r
+        elif '*' in idname:\r
+            idname = idname.replace('*','Sw')\r
+        else:\r
+            idname = 'LI' + idname\r
+        linename = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        linename = linename.replace(" ","_")\r
+        linename = linename.replace("-","_")\r
+        linename = linename.replace(".","_")\r
+        linename = linename.replace("&","and")\r
+        try:\r
+            int(linename[0])\r
+            linename = "_" + linename\r
+        except:\r
+            pass\r
+        if linename[-1] == '_':\r
+            linename = linename[:-1]\r
+        BranchesDico[linename] = {}\r
+        BranchesDico[linename]['FROMNAME'] = carray[0][i].strip()\r
+        BranchesDico[linename]['TONAME'] = carray[1][i].strip()\r
+        BranchesDico[linename]['ID'] = carray[4][i]\r
+        BranchesDico[linename]['FROMEXNAME'] = carray[2][i]\r
+        BranchesDico[linename]['TOEXNAME'] = carray[3][i]\r
+        BranchesDico[linename]['FROMNUMBER'] = iarray[0][i]\r
+        BranchesDico[linename]['TONUMBER'] = iarray[1][i]\r
+\r
+    \r
+    #Extract Transfos\r
+    sid = -1\r
+    owner = 1\r
+    ties = 1\r
+    flag = 6 #two-winding transfos\r
+    entry = 1 #each branch once, not both directions\r
+    string = ['FROMNUMBER','TONUMBER']\r
+    ierr,iarray = psspy.abrnint(sid,owner,ties,flag,entry,string)\r
+    string = ['FROMNAME','TONAME','FROMEXNAME','TOEXNAME','ID']\r
+    ierr,carray = psspy.abrnchar(sid,owner,ties,flag,entry,string)\r
+\r
+    TfoDico = {} #[linename, Bus name 1, Bus name 2, machine ID, extended bus name 1, extended bus name 2, bus number 1, bus number 2]\r
+    for i in range(len(iarray[0])):\r
+        idname = 'Tr' + carray[4][i].strip()\r
+##        try:\r
+##            idname = 'Tr' + str(int(carray[4][i]))\r
+##        except:\r
+##            idname = 'Tr' + carray[4][i]\r
+        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + idname\r
+        tfoname = tfoname.replace(" ","_")\r
+        tfoname = tfoname.replace("-","_")\r
+        tfoname = tfoname.replace(".","_")\r
+        tfoname = tfoname.replace("&","and")\r
+        try:\r
+            int(tfoname[0])\r
+            tfoname="_" + tfoname\r
+        except:\r
+            pass\r
+        TfoDico[tfoname]={}\r
+        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
+        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
+        TfoDico[tfoname]['ID']=carray[4][i]\r
+        TfoDico[tfoname]['FROMEXNAME']=carray[2][i]\r
+        TfoDico[tfoname]['TOEXNAME']=carray[3][i]\r
+        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
+        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
+        TfoDico[tfoname]['#WIND']=2\r
+\r
+    #Extract 3 winding Transfos\r
+    sid = -1 #assume a subsystem containing all buses in working case\r
+    owner_3flow = 1 #1 = use bus ownership 2 = use tfo ownership\r
+    ties_3flow = 3 #ignored bc sid is negative. 3 = interior subsystem and subsystem tie 3 winding transformers \r
+    flag=3 #all 3 winding transfo windings\r
+    string = ['wind1number','wind2number','wind3number']\r
+    ierr,iarray = psspy.awndint(sid,owner,ties,flag,entry,string)\r
+    string = ['wind1name','wind2name','wind3name','wind1exname','wind2exname','wind3exname','id']\r
+    ierr,carray = psspy.awndchar(sid,owner,ties,flag,entry,string)\r
+\r
+    #[Bus name 1, Bus name 2, Bus name 3, machine ID, extended bus name 1, extended bus name 2, extended bus name 3, bus number 1, bus number 2, bus number 3]\r
+    for i in range(len(iarray[0])):\r
+        idname = 'Tr' + carray[6][i].strip()\r
+##        try:\r
+##            idname = 'Tr' + str(int(carray[4][i]))\r
+##        except:\r
+##            idname = 'Tr' + carray[4][i]\r
+        tfoname = carray[0][i].strip() + "__" + carray[1][i].strip() + "__" + carray[2][i].strip() + "__" + idname\r
+        tfoname = tfoname.replace(" ","_")\r
+        tfoname = tfoname.replace("-","_")\r
+        tfoname = tfoname.replace(".","_")\r
+        tfoname = tfoname.replace("&","and")\r
+        try:\r
+            int(tfoname[0])\r
+            tfoname="_" + tfoname\r
+        except:\r
+            pass\r
+        TfoDico[tfoname]={}\r
+        TfoDico[tfoname]['FROMNAME']=carray[0][i].strip()\r
+        TfoDico[tfoname]['TONAME']=carray[1][i].strip()\r
+        TfoDico[tfoname]['3NAME']=carray[2][i].strip()\r
+        TfoDico[tfoname]['ID']=carray[6][i]\r
+        TfoDico[tfoname]['FROMEXNAME']=carray[3][i]\r
+        TfoDico[tfoname]['TOEXNAME']=carray[4][i]\r
+        TfoDico[tfoname]['3EXNAME']=carray[5][i]\r
+        TfoDico[tfoname]['FROMNUMBER']=iarray[0][i]\r
+        TfoDico[tfoname]['TONUMBER']=iarray[1][i]\r
+        TfoDico[tfoname]['3NUMBER']=iarray[2][i]\r
+        TfoDico[tfoname]['#WIND']=3\r
+\r
+    #print MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
+    return MachineDico, LoadDico, LineDico, TfoDico, MotorDico, BusDico, BranchesDico, BusNominal\r
+\r
+\r
+\r
diff --git a/ProcessOutputs_Eficas/ProcessOutputs_Cata.py b/ProcessOutputs_Eficas/ProcessOutputs_Cata.py
new file mode 100644 (file)
index 0000000..7014466
--- /dev/null
@@ -0,0 +1,240 @@
+# -*- coding: iso-8859-1 -*-
+# Copyright (C) 2007-2013   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+from Accas import *
+import opsPSEN_N1
+import pn
+#
+
+# import types
+class Tuple:
+   def __init__(self,ntuple):
+     self.ntuple=ntuple
+
+   def __convert__(self,valeur):
+     import types
+     if type(valeur) == types.StringType:
+       return None
+     if len(valeur) != self.ntuple:
+       return None
+     return valeur
+
+   def info(self):
+     return "Tuple de %s elements" % self.ntuple
+
+   __repr__=info
+   __str__=info
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'PSEN',
+                 execmodul = None,
+                 regles = ( AU_MOINS_UN ( 'CASE_SELECTION', 'CONTINGENCY_PROCESSING' ),
+                            AU_MOINS_UN ( 'CONTINGENCY_SELECTION','N_PROCESSING_OPTIONS','CONTINGENCY_PROCESSING' ),
+                            PRESENT_PRESENT ( 'CONTINGENCY_SELECTION','CONTINGENCY_OPTIONS' ),
+                            # AU_MOINS_UN ( 'SIMULATION' ),
+                            # AU_PLUS_UN ( 'PSSE_PARAMETERS' ),
+                            AU_PLUS_UN ( 'CASE_SELECTION' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_OPTIONS' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_SELECTION' ),
+                            AU_PLUS_UN ( 'CONTINGENCY_PROCESSING' ),
+                            AU_PLUS_UN ( 'N_PROCESSING_OPTIONS' ),
+                            # AU_PLUS_UN ( 'N_1_LINES' ),
+                            # AU_PLUS_UN ( 'N_1_LOADS' ),
+                            # AU_PLUS_UN ( 'N_1_TRANSFORMERS' ),
+
+                            ),
+                 ) # Fin JDC_CATA
+
+MODIFICATION_CATALOGUE = MACRO ( nom = "MODIFICATION_CATALOGUE",
+                     sd_prod = pn.modification_catalogue,
+                     op_init=  pn.modification_catalogue2,
+                     op=None,
+                     UIinfo={"groupes":("CACHE")},
+                     Fonction=SIMP(statut='o', typ='TXM', into=['ajoutDefinitionMC']),
+                     Etape=SIMP(statut='o', typ='TXM',),
+                     Genea=SIMP(statut='o', typ='TXM', min=0, max='**'),
+                     NomSIMP=SIMP(statut='o', typ='TXM',),
+                     TypeSIMP=SIMP(statut='o', typ='TXM',),
+                     PhraseArguments=SIMP(statut='o', typ='TXM',),
+)
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+## TODO : RUN
+CASE_SELECTION = MACRO ( nom = "CASE_SELECTION",
+                      sd_prod = opsPSEN_N1.INCLUDE,
+                      op_init = opsPSEN_N1.INCLUDE_context,
+                      fichier_ini = 1,
+                      op = None,
+                      fr = "Sélectionnez les cas à analyser",
+                      ang = 'Select the cases to analyze',
+                      PSSE_path = SIMP(statut="o",typ='Repertoire',defaut='C:\Program Files (x86)\PTI\PSSE33\PSSBIN'),
+                      output_folder = SIMP(statut="o", typ="Repertoire"),
+
+
+                      BusesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      LinesList = SIMP(statut = 'f', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      TransformersList = SIMP(statut = 'f', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                      MaxDepth = SIMP(statut = 'o', typ = 'I', defaut = 5),
+                      OutputNewCsv = SIMP ( statut = "o",typ=bool,defaut=False,),
+                 )
+N_PROCESSING_OPTIONS = PROC ( nom = 'N_PROCESSING_OPTIONS',
+                            op = None,
+                            ang = "Select whether the program should be displaying data about the different categories.\nThe values displayed will be the min, max, and mean of each item, plus a chart.",  
+                           Output_bus_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_lines_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Output_transformer_values = SIMP(statut = 'o', typ = bool, defaut = True),
+                           Threshold_selection_for_the_treated_cases = FACT(
+                              statut = 'f',
+                              Branches = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Transformers = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              High_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                              Low_voltage = SIMP(statut="o",typ=Tuple(3),defaut=(0,0,0),validators=VerifTypeTuple(('R','R','R'),),),
+                           ),
+                           )
+
+
+CONTINGENCY_OPTIONS = PROC (nom = 'CONTINGENCY_OPTIONS',
+                            op = None,
+                            
+                            GeneralOptions = FACT(statut='o',
+                                Vmin = SIMP(statut = 'o', typ = 'R', defaut = 0.9, val_min = 0),
+                                Vmax = SIMP(statut = 'o', typ = 'R', defaut = 1.1, val_min = 0),
+                                ContingencyRate = SIMP(statut = 'o', typ = 'TXM', defaut = 'a', into=['a', 'b']),
+                                FlowLimitLines = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                FlowLimitTransformers = SIMP(statut = 'o', typ = 'I', defaut = 120, val_min = 0),
+                                Tolerance = SIMP(statut = 'o', typ = 'R', defaut = 0.5, val_min = 0),
+                                TripLines = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripTransfos = SIMP(statut = 'o', typ = bool, defaut = True),
+                                TripGenerators = SIMP(statut = 'o', typ = bool, defaut = True),
+                                ),                            
+
+                            LoadFlowOptions = FACT(statut='o',
+                                AdjustTaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Lock', '1 - Stepping', '2 - Direct'], defaut = '1 - Stepping'),
+                                AdjustDCtaps = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable'], defaut = '1 - Enable'),
+                                SolutionMethod = SIMP(statut = 'o', typ = 'TXM', into = ['0 - FDNS', '1 - FNSL', '2 - Optimized FDNS'], defaut = '1 - FNSL'),
+                                AdjustSwitchedShunts = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Enable', '2 - Enable continuous mode'], defaut = '1 - Enable'),
+                                DispatchMode = SIMP(statut = 'o', typ = 'TXM', into = ['0 - Disable', '1 - Reserve', '2 - Pmax', '3 - Inertia', '4 - Droop'], defaut = '1 - Reserve'),
+                                FlatStart = SIMP(statut = 'o', typ = bool, defaut = False),
+                                VarLimits = SIMP(statut = 'o', typ = 'I', defaut = 99,ang = 'if set to -1, var limits will not be applied'),
+                                ),
+                            
+#                            OutputOptions = FACT(statut='o',
+#                                consigne1 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Output PSSE multiple contingency report to Shell?'),
+#                                MultipleContingencyReport = SIMP(statut = 'o', typ = bool, defaut = True, ang = 'Output PSSE multiple contingency report to Shell?'),
+#                                consigne2 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Write an Excel file for the results of each case file?'),
+#                                WriteIndivExcels = SIMP(statut = 'o', typ = bool, defaut = True),
+#                                consigne3 = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Add a tab in Excel results file for the differences between the max flow rate (MVAR) and the actual flow rate in lines and transformers?'),
+#                                WriteFlowDifs = SIMP(statut = 'o', typ = bool, defaut = True),                            
+#                            ),
+                        )
+
+
+
+
+CONTINGENCY_SELECTION = PROC(nom='CONTINGENCY_SELECTION',op = None,
+                      SelectionMethod = SIMP(statut='o',typ='TXM',into=['CaseSelectionFromFile','SelectAllCases','SelectWorstCases'],
+                      ),
+                      
+                      b_file = BLOC(condition="SelectionMethod=='CaseSelectionFromFile'",
+                      CaseSelectionFromFiles = FACT(
+                           statut = 'o',
+                           case = FACT(statut='o',max='**',
+                                       case_name=SIMP(statut='o',typ='TXM'),
+                                       csv_file= SIMP(statut='o', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)',),),),
+#                           regles=(AU_MOINS_UN('branch_cases','transformer_cases','high_voltage_cases','low_voltage_cases',),),
+#                           branch_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+#                           transformer_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde',),),
+#                           high_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+#                           low_voltage_cases = SIMP(statut='o', defaut='', typ = ('Fichier', 'CSV file (*.csv);;All Files (*)','Sauvegarde'),),
+                        ),
+#                        ',
+#                      CaseSelectionFromFile = FACT(
+#                           statut = 'o',
+#                           input_path = SIMP(statut="o",typ='Repertoire'),
+#                           branch_cases = SIMP(statut='o', typ='TXM'),
+#                           transformer_cases = SIMP(statut='o', typ='TXM'),
+#                           high_cases = SIMP(statut='o', typ='TXM'),
+#                           low_cases = SIMP(statut='o', typ='TXM'),
+#                        ),
+                        
+                        ),
+                        
+#                      b_all = BLOC(condition="SelectionMethod=='SelectAllCases'",
+#                      SelectAllCases = FACT(
+#                           statut='o',
+#                           all_cases = SIMP(statut='o', typ=bool, defaut = True),
+#                         ),
+#                         ),
+                         
+                      b_worst = BLOC(condition="SelectionMethod=='SelectWorstCases'",
+                      SelectWorstCases = FACT(
+                          regles = (AU_MOINS_UN('AvgBranchLoad', 'AvgBranchLoadPercent','AvgTransformerLoad','AvgTransformerLoadPercent','AvgHighVoltage', 'AvgHighVoltagePercent','AvgLowVoltage', 'AvgLowVoltagePercent'),
+                                    EXCLUS('AvgBranchLoad', 'AvgBranchLoadPercent'),EXCLUS('AvgTransformerLoad','AvgTransformerLoadPercent'),EXCLUS('AvgHighVoltage', 'AvgHighVoltagePercent'),EXCLUS('AvgLowVoltage', 'AvgLowVoltagePercent'),),
+                          statut = 'o',
+                          consigne = SIMP(statut='o',homo='information',typ = "TXM",defaut = 'Choose at least one of the potential selection criteria from the SelectWorstCases list on the right.'),
+                          AvgBranchLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgBranchLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgTransformerLoad = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgTransformerLoadPercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgHighVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgHighVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                          AvgLowVoltage = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0),
+                          AvgLowVoltagePercent = SIMP(statut = 'f', typ = 'I', defaut = 0, val_min = 0, val_max = 100),
+                        ),
+                        ),
+
+
+                      Automatic_N_2_Selection = FACT(statut='f',
+                                                     
+                          BusesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          LinesList = SIMP(statut = 'o', typ = 'R', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),
+                          TransformersList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'),                                                    
+                        ),
+
+                     MultipleContingencyList = FACT (statut='f',
+                                                          max="**",
+                                                          ComponentList=SIMP(statut='o', typ = 'TXM', max='**', homo = 'SansOrdreNiDoublon',),
+                     ),
+
+                      )
+
+CONTINGENCY_PROCESSING = MACRO ( nom = 'CONTINGENCY_PROCESSING',
+                        sd_prod = opsPSEN_N1.PROCESS,
+                        op_init = opsPSEN_N1.PROCESS_context,
+                        op = None,
+                        fichier_ini = 1,
+                        fr = "",
+                        ang="",
+                        XLS_file = SIMP(statut="f", typ = ('Fichier', 'XLS file (*.xls);;All Files (*)',),),
+                        b_TabList = BLOC(condition="XLS_file != None and XLS_file != ''",
+                            TabList = SIMP(statut = 'o', typ = 'TXM', min = 0, max = '**', defaut = (), homo = 'SansOrdreNiDoublon'), 
+                        
+                          ),
+                        
+                    )
+
+Ordre_Des_Commandes = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
+Classement_Commandes_Ds_Arbre = ('CASE_SELECTION' , 'N_PROCESSING_OPTIONS' , 'CONTINGENCY_SELECTION', 'CONTINGENCY_OPTIONS' ,'CONTINGENCY_PROCESSING',)
diff --git a/ProcessOutputs_Eficas/properties.py b/ProcessOutputs_Eficas/properties.py
new file mode 100644 (file)
index 0000000..1d328a4
--- /dev/null
@@ -0,0 +1,24 @@
+#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+#     IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+#     DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "1.2"
+date = "25/05/2010"
+exploit = False
index 6cf1e9a93e8fd6565f6dd5f5282e87202c86e1ab..28a3e1fe67f5b425bf442f475bc66d6f782415e0 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="en">
+<!DOCTYPE TS><TS version="2.0" language="en" sourcelanguage="">
 <context>
     <name>@default</name>
     <message>
-        <location filename="../../convert/convert_ini.py" line="81"/>
+        <location filename="convert/convert_ini.py" line="81"/>
         <source>lecture du fichier impossible :</source>
-        <translation>unable to read file :</translation>
+        <translation type="obsolete">unable to read file :</translation>
     </message>
     <message>
-        <location filename="../../convert/convert_python.py" line="105"/>
+        <location filename="convert/convert_python.py" line="105"/>
         <source>Impossible d&apos;ouvrir le fichier %s</source>
-        <translation>unable to open file %s</translation>
+        <translation type="obsolete">unable to open file %s</translation>
     </message>
     <message>
-        <location filename="../../convert/convert_python.py" line="116"/>
+        <location filename="convert/convert_python.py" line="116"/>
         <source>Impossible de convertir le fichier Python qui doit contenir des erreurs.
 
                                   On retourne le fichier non converti. Prevenir la maintenance.
 
  %s</source>
-        <translation>Unable to translate the file. it probably contains mistake
+        <translation type="obsolete">Unable to translate the file. it probably contains mistake
 ask eficas team
 %s</translation>
     </message>
     <message>
-        <location filename="../../convert/convert_pyth.py" line="115"/>
+        <location filename="convert/convert_pyth.py" line="115"/>
         <source>Format de sortie : %s, non supporte</source>
-        <translation>Unsupported format  %s</translation>
+        <translation type="obsolete">Unsupported format  %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue_initial.py" line="44"/>
+        <location filename="Editeur/analyse_catalogue_initial.py" line="44"/>
         <source>Impossible d&apos;ouvrir le fichier : %s</source>
-        <translation>unable to open file: %s</translation>
+        <translation type="obsolete">unable to open file: %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="65"/>
+        <location filename="Editeur/analyse_catalogue.py" line="65"/>
         <source>Erreur ! Erreur !</source>
-        <translation>Error!</translation>
+        <translation type="obsolete">Error!</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="92"/>
+        <location filename="Editeur/analyse_catalogue.py" line="92"/>
         <source>Erreur rencontree dans recherche_enfants : %s</source>
-        <translation>Error in recherche_enfants : %s</translation>
+        <translation type="obsolete">Error in recherche_enfants : %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="102"/>
+        <location filename="Editeur/analyse_catalogue.py" line="102"/>
         <source>Erreur dans la creation du mot-cle : %s</source>
-        <translation>Error when creating %s</translation>
+        <translation type="obsolete">Error when creating %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="191"/>
+        <location filename="Editeur/analyse_catalogue.py" line="191"/>
         <source>Impossible d&apos;ouvrir le fichier : %s </source>
-        <translation>unable to open file : %s</translation>
+        <translation type="obsolete">unable to open file : %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="208"/>
+        <location filename="Editeur/analyse_catalogue.py" line="208"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande ou d&apos;un operateur : </source>
-        <translation>text is no eficas text:</translation>
+        <translation type="obsolete">text is no eficas text:</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="216"/>
+        <location filename="Editeur/analyse_catalogue.py" line="216"/>
         <source>Erreur dans la recherche  du nom de la commande : </source>
-        <translation>error when searching command&apos;s name :</translation>
+        <translation type="obsolete">error when searching command&apos;s name :</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="219"/>
+        <location filename="Editeur/analyse_catalogue.py" line="219"/>
         <source>Erreur dans la recherche des  args de la commande :</source>
-        <translation>error when searching argument&apos;s command :</translation>
+        <translation type="obsolete">error when searching argument&apos;s command :</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="238"/>
+        <location filename="Editeur/analyse_catalogue.py" line="238"/>
         <source>Erreur dans la recherche du  nom de la commande : </source>
-        <translation>error when searching command&apos;s name :</translation>
+        <translation type="obsolete">error when searching command&apos;s name :</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="241"/>
+        <location filename="Editeur/analyse_catalogue.py" line="241"/>
         <source>Erreur dans la recherche des args de la commande : </source>
-        <translation>error when searching argument&apos;s command :</translation>
+        <translation type="obsolete">error when searching argument&apos;s command :</translation>
     </message>
     <message>
-        <location filename="../../Editeur/Objecttreeitem.py" line="304"/>
+        <location filename="Editeur/Objecttreeitem.py" line="304"/>
         <source>%d n&apos;est pas un index valide pour append_brother</source>
-        <translation>%d is not a valid  index for append-brother</translation>
+        <translation type="obsolete">%d is not a valid  index for append-brother</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="96"/>
+        <location filename="Editeur/session.py" line="96"/>
         <source>le fichier de commandes %s n&apos;existe pas</source>
-        <translation>commands file %s does not exist</translation>
+        <translation type="obsolete">commands file %s does not exist</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="104"/>
+        <location filename="Editeur/session.py" line="104"/>
         <source>un fichier de commandes doit etre defini avant une poursuite %s</source>
-        <translation>You have to define principal commands file before a secondary (poursuite) file %s</translation>
+        <translation type="obsolete">You have to define principal commands file before a secondary (poursuite) file %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="106"/>
+        <location filename="Editeur/session.py" line="106"/>
         <source>le fichier poursuite %s n&apos;existe pas</source>
-        <translation>the secondary (poursuite) file does not exist</translation>
+        <translation type="obsolete">the secondary (poursuite) file does not exist</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="117"/>
+        <location filename="Editeur/session.py" line="117"/>
         <source>include mal defini %s</source>
-        <translation>include is not correct %s</translation>
+        <translation type="obsolete">include is not correct %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="123"/>
+        <location filename="Editeur/session.py" line="123"/>
         <source>un fichier de commandes doit etre defini avant un include %s</source>
-        <translation>You have to define principal commands file before include %s</translation>
+        <translation type="obsolete">You have to define principal commands file before include %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="125"/>
+        <location filename="Editeur/session.py" line="125"/>
         <source>le fichier include %s n&apos;existe pas</source>
-        <translation>include file does not exist</translation>
+        <translation type="obsolete">include file does not exist</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="154"/>
+        <location filename="Editeur/session.py" line="154"/>
         <source>jdc %(v_1)s, le fichier
                                       de commandes %(v_2)s n&apos;existe pas</source>
         <comment>v_1</comment>
-        <translation>jdc %(v_1)s : .comm  %(v_2)s does not exist</translation>
+        <translation type="obsolete">jdc %(v_1)s : .comm  %(v_2)s does not exist</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="188"/>
+        <location filename="Editeur/session.py" line="188"/>
         <source> le fichier jdc %s n&apos;existe pas</source>
-        <translation>file %s does not exist</translation>
+        <translation type="obsolete">file %s does not exist</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="198"/>
+        <location filename="Editeur/session.py" line="198"/>
         <source> jdc %s manque option jdc dans section jdc</source>
-        <translation>jdc %s does not have jdc option in command line</translation>
+        <translation type="obsolete">jdc %s does not have jdc option in command line</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="218"/>
+        <location filename="Editeur/session.py" line="218"/>
         <source>%(v_1)s include %(v_2)s : %(v_3)s</source>
         <comment>v_1</comment>
-        <translation>%(v_1)s include %(v_2)s : %(v_3)s</translation>
+        <translation type="obsolete">%(v_1)s include %(v_2)s : %(v_3)s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="222"/>
+        <location filename="Editeur/session.py" line="222"/>
         <source>%(v_1)s fichier poursuite: %(v_2)s</source>
         <comment>v_1</comment>
-        <translation>%(v_1)ssecondary (poursuite) file  %(v_2)s </translation>
+        <translation type="obsolete">%(v_1)ssecondary (poursuite) file  %(v_2)s </translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="229"/>
+        <location filename="Editeur/session.py" line="229"/>
         <source>nom etude : %s</source>
-        <translation>study&apos;s name : %s</translation>
+        <translation type="obsolete">study&apos;s name : %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="236"/>
+        <location filename="Editeur/session.py" line="236"/>
         <source>utilisation : %prog [options]</source>
-        <translation>use : %prog[options]</translation>
+        <translation type="obsolete">use : %prog[options]</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="238"/>
+        <location filename="Editeur/session.py" line="238"/>
         <source>nom du fichier de commandes</source>
-        <translation>principal .comm file&apos;s name</translation>
+        <translation type="obsolete">principal .comm file&apos;s name</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="242"/>
+        <location filename="Editeur/session.py" line="242"/>
         <source>nom du fichier poursuite</source>
-        <translation>secondary (poursuite) file&apos;s name</translation>
+        <translation type="obsolete">secondary (poursuite) file&apos;s name</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="246"/>
+        <location filename="Editeur/session.py" line="246"/>
         <source>numero d&apos;unite suivi du nom du fichier include</source>
-        <translation>unit number and include file&apos;s name</translation>
+        <translation type="obsolete">unit number and include file&apos;s name</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="250"/>
+        <location filename="Editeur/session.py" line="250"/>
         <source>fichier decrivant une etude</source>
-        <translation>file containing a study</translation>
+        <translation type="obsolete">file containing a study</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="254"/>
+        <location filename="Editeur/session.py" line="254"/>
         <source>version de catalogue a utiliser</source>
-        <translation> catalog&apos;s version</translation>
+        <translation type="obsolete"> catalog&apos;s version</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="257"/>
+        <location filename="Editeur/session.py" line="257"/>
         <source>nom du code a utiliser</source>
-        <translation>code&apos;s name</translation>
+        <translation type="obsolete">code&apos;s name</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="260"/>
+        <location filename="Editeur/session.py" line="260"/>
         <source>niveau de debug</source>
-        <translation>debug level</translation>
+        <translation type="obsolete">debug level</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="263"/>
+        <location filename="Editeur/session.py" line="263"/>
         <source>schema</source>
-        <translation>schema</translation>
+        <translation type="obsolete">schema</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="298"/>
+        <location filename="Editeur/session.py" line="298"/>
         <source>Nombre incorrect d&apos;arguments</source>
-        <translation>incorrect number of arguments</translation>
+        <translation type="obsolete">incorrect number of arguments</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="296"/>
+        <location filename="Editeur/session.py" line="296"/>
         <source>Localisation specifiee pour l&apos;application.</source>
-        <translation>specified localization for the application.</translation>
+        <translation type="obsolete">specified localization for the application.</translation>
     </message>
     <message>
-        <location filename="../../Editeur/utils.py" line="130"/>
+        <location filename="Editeur/utils.py" line="130"/>
         <source>Impossible de transferer les fichiers requis dans : %s</source>
-        <translation>unable to transfer files to : %s</translation>
+        <translation type="obsolete">unable to transfer files to : %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCLIST.py" line="97"/>
+        <location filename="Ihm/I_MCLIST.py" line="97"/>
         <source>Erreur</source>
-        <translation>error</translation>
+        <translation type="obsolete">error</translation>
     </message>
     <message>
-        <location filename="../../Extensions/commande_comm.py" line="199"/>
+        <location filename="Extensions/commande_comm.py" line="199"/>
         <source>Erreurs fatales</source>
-        <translation>fatale error</translation>
+        <translation type="obsolete">fatale error</translation>
     </message>
     <message>
-        <location filename="../../Extensions/commande_comm.py" line="202"/>
+        <location filename="Extensions/commande_comm.py" line="202"/>
         <source>Impossible reconstruire commande
 </source>
-        <translation>unable to construct command</translation>
+        <translation type="obsolete">unable to construct command</translation>
     </message>
     <message>
-        <location filename="../../Extensions/commentaire.py" line="146"/>
+        <location filename="Extensions/commentaire.py" line="146"/>
         <source>Objet commentaire non valorise</source>
-        <translation>comment object has no value</translation>
+        <translation type="obsolete">comment object has no value</translation>
     </message>
     <message>
-        <location filename="../../Extensions/interpreteur_formule.py" line="110"/>
+        <location filename="Extensions/interpreteur_formule.py" line="110"/>
         <source>Debut Fonction %s</source>
-        <translation>start function %s</translation>
+        <translation type="obsolete">start function %s</translation>
     </message>
     <message>
-        <location filename="../../Extensions/interpreteur_formule.py" line="111"/>
+        <location filename="Extensions/interpreteur_formule.py" line="111"/>
         <source>Fin Fonction %s</source>
-        <translation>end function %s</translation>
+        <translation type="obsolete">end function %s</translation>
     </message>
     <message>
-        <location filename="../../Extensions/jdc_include.py" line="94"/>
+        <location filename="Extensions/jdc_include.py" line="94"/>
         <source>Nom de concept deja defini : %s</source>
-        <translation>Concept&apos;s name %s is already existing</translation>
+        <translation type="obsolete">Concept&apos;s name %s is already existing</translation>
     </message>
     <message>
-        <location filename="../../Extensions/mcnuplet.py" line="104"/>
+        <location filename="Extensions/mcnuplet.py" line="104"/>
         <source>Longueur incorrecte</source>
-        <translation>incorrect length</translation>
+        <translation type="obsolete">incorrect length</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="65"/>
+        <location filename="Extensions/nuplet.py" line="65"/>
         <source>L&apos;attribut &apos;min&apos; doit etre un entier : </source>
-        <translation>min must be an integer :</translation>
+        <translation type="obsolete">min must be an integer :</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="68"/>
+        <location filename="Extensions/nuplet.py" line="68"/>
         <source>L&apos;attribut &apos;max&apos; doit etre un entier : </source>
-        <translation>max must be an integer :</translation>
+        <translation type="obsolete">max must be an integer :</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="70"/>
+        <location filename="Extensions/nuplet.py" line="70"/>
         <source>Nombres d&apos;occurrence min et max invalides :</source>
-        <translation>min and max are invalid:</translation>
+        <translation type="obsolete">min and max are invalid:</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="72"/>
+        <location filename="Extensions/nuplet.py" line="72"/>
         <source>L&apos;attribut &apos;fr&apos; doit etre une chaine de caracteres</source>
-        <translation>&apos;fr&apos; must be a string</translation>
+        <translation type="obsolete">&apos;fr&apos; must be a string</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="74"/>
+        <location filename="Extensions/nuplet.py" line="74"/>
         <source>L&apos;attribut &apos;statut&apos; doit valoir &apos;o&apos;,&apos;f&apos;,&apos;c&apos; ou &apos;d&apos;</source>
-        <translation>values for statut arguments are : &apos;o&apos;,&apos;f&apos;,&apos;c&apos; or &apos;d&apos;</translation>
+        <translation type="obsolete">values for statut arguments are : &apos;o&apos;,&apos;f&apos;,&apos;c&apos; or &apos;d&apos;</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="76"/>
+        <location filename="Extensions/nuplet.py" line="76"/>
         <source>L&apos;attribut &apos;docu&apos; doit etre une chaine de caracteres</source>
-        <translation>docu must be a string</translation>
+        <translation type="obsolete">docu must be a string</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="105"/>
+        <location filename="Extensions/nuplet.py" line="105"/>
         <source>Fin </source>
-        <translation>end</translation>
+        <translation type="obsolete">end</translation>
     </message>
     <message>
-        <location filename="../../Extensions/parametre_eval.py" line="149"/>
+        <location filename="Extensions/parametre_eval.py" line="149"/>
         <source>Le parametre EVAL %s ne peut valoir None</source>
-        <translation>None is not a valid value for Eval parameter %s </translation>
+        <translation type="obsolete">None is not a valid value for Eval parameter %s </translation>
     </message>
     <message>
-        <location filename="../../Extensions/parametre_eval.py" line="163"/>
+        <location filename="Extensions/parametre_eval.py" line="163"/>
         <source>Pas de nom donne au parametre EVAL</source>
-        <translation>No name for parameter EVAL</translation>
+        <translation type="obsolete">No name for parameter EVAL</translation>
     </message>
     <message>
-        <location filename="../../Extensions/parametre_eval.py" line="166"/>
+        <location filename="Extensions/parametre_eval.py" line="166"/>
         <source>Un nom de parametre ne peut depasser 8 caracteres</source>
-        <translation>parameter&apos;s name can not exceed 8 characters</translation>
+        <translation type="obsolete">parameter&apos;s name can not exceed 8 characters</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="159"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="159"/>
         <source>Un concept de nom %s existe deja !</source>
-        <translation>Concept&apos;s name %s is already existing!</translation>
+        <translation type="obsolete">Concept&apos;s name %s is already existing!</translation>
     </message>
     <message>
-        <location filename="../../generator/Formatage.py" line="129"/>
+        <location filename="generator/Formatage.py" line="129"/>
         <source>ERREUR</source>
-        <translation>ERROR</translation>
+        <translation type="obsolete">ERROR</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_asterv5.py" line="101"/>
+        <location filename="generator/generator_asterv5.py" line="101"/>
         <source>Format pas implemente : %s</source>
-        <translation>format : %s not implemented</translation>
+        <translation type="obsolete">format : %s not implemented</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_asterv5.py" line="145"/>
+        <location filename="generator/generator_asterv5.py" line="145"/>
         <source>Type d&apos;objet non prevu : %s</source>
-        <translation>object type not expected : %s</translation>
+        <translation type="obsolete">object type not expected : %s</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="256"/>
+        <location filename="generator/generator_CARMEL3D.py" line="256"/>
         <source> ce groupe de maillage %s est associe a au moins un materiau  et au moins une source.</source>
-        <translation>mesh group %s is associated with at least one material and at least a source.</translation>
+        <translation type="obsolete">mesh group %s is associated with at least one material and at least a source.</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="267"/>
+        <location filename="generator/generator_CARMEL3D.py" line="267"/>
         <source>ce groupe de maillage %s  n&apos;est associe a aucun materiau ou source.</source>
-        <translation>mesh group %s is associated with no material or no source.</translation>
+        <translation type="obsolete">mesh group %s is associated with no material or no source.</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="541"/>
-        <source>ATTENTION! Une source constante n&apos;est possible qu&apos;a frequence nulle en regime frequentiel</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_Creation.py" line="83"/>
+        <location filename="generator/generator_Creation.py" line="83"/>
         <source>toutes les donnees ne sont pas connues</source>
-        <translation>all data are not available</translation>
+        <translation type="obsolete">all data are not available</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_file_from_template.py" line="59"/>
+        <location filename="generator/generator_file_from_template.py" line="59"/>
         <source>Fichier patron %s n&apos;existe pas.</source>
-        <translation>pattern file %s does not exist.</translation>
+        <translation type="obsolete">pattern file %s does not exist.</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_pyth.py" line="100"/>
+        <location filename="generator/generator_pyth.py" line="100"/>
         <source>Pas supporte</source>
-        <translation>not implemented</translation>
+        <translation type="obsolete">not implemented</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_ini.py" line="105"/>
+        <location filename="generator/generator_ini.py" line="105"/>
         <source>Entite inconnue ou interdite :%s</source>
-        <translation>Unknown or unsupported entity : %s</translation>
+        <translation type="obsolete">Unknown or unsupported entity : %s</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_ini.py" line="123"/>
+        <location filename="generator/generator_ini.py" line="123"/>
         <source>Entite inconnue ou interdite :%s. Elle est ignoree</source>
-        <translation>Unknown or unsupported entity : %s. ignored</translation>
+        <translation type="obsolete">Unknown or unsupported entity : %s. ignored</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_ini.py" line="133"/>
+        <location filename="generator/generator_ini.py" line="133"/>
         <source>Les tuples ne sont pas supportes pour le format ini :%s </source>
-        <translation>Tuple are not allowed for format ini : %s</translation>
+        <translation type="obsolete">Tuple are not allowed for format ini : %s</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_ini.py" line="139"/>
+        <location filename="generator/generator_ini.py" line="139"/>
         <source>Type de valeur non supportee par le format ini :%(nom)s
 %(exception)s</source>
         <comment>nom</comment>
-        <translation>Unsupported type of value for .ini format %(nom)s
+        <translation type="obsolete">Unsupported type of value for .ini format %(nom)s
 %(exception)s</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_openturns.py" line="124"/>
+        <location filename="generator/generator_openturns.py" line="124"/>
         <source>Il y a un pb a la Creation du XML</source>
-        <translation>problem when creating XML</translation>
+        <translation type="obsolete">problem when creating XML</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_openturns_study.py" line="127"/>
+        <location filename="generator/generator_openturns_study.py" line="127"/>
         <source>Il y a un pb a la Creation du STD</source>
-        <translation>problem when creating STD</translation>
+        <translation type="obsolete">problem when creating STD</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_pyth.py" line="130"/>
+        <location filename="generator/generator_pyth.py" line="130"/>
         <source>Entite inconnue ou interdite : %s. Elle est ignoree</source>
-        <translation>unkown ou unsupported entity : %s. ignored</translation>
+        <translation type="obsolete">unkown ou unsupported entity : %s. ignored</translation>
     </message>
     <message>
-        <location filename="../../generator/OpenturnsXML.py" line="228"/>
+        <location filename="generator/OpenturnsXML.py" line="228"/>
         <source>Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs.</source>
-        <translation>Tag %s not defined. Ask developpeurs team.</translation>
+        <translation type="obsolete">Tag %s not defined. Ask developpeurs team.</translation>
     </message>
     <message>
-        <location filename="../../generator/OpenturnsXML.py" line="240"/>
+        <location filename="generator/OpenturnsXML.py" line="240"/>
         <source> Le mot-cle %s est obligatoire.</source>
-        <translation>mandatory keyword : %s.</translation>
+        <translation type="obsolete">mandatory keyword : %s.</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ASSD.py" line="29"/>
+        <location filename="Ihm/I_ASSD.py" line="29"/>
         <source>concept %(inst_name)s de type %(class_name)s</source>
         <comment>inst_name</comment>
-        <translation>concept %(inst_name)s of type  %(class_name)s</translation>
+        <translation type="obsolete">concept %(inst_name)s of type  %(class_name)s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="108"/>
+        <location filename="Ihm/I_ETAPE.py" line="108"/>
         <source>Un nom de concept doit etre un identificateur Python</source>
-        <translation>concept&apos;s name must be a python identifier</translation>
+        <translation type="obsolete">concept&apos;s name must be a python identifier</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="126"/>
+        <location filename="Ihm/I_ETAPE.py" line="126"/>
         <source>Concept existant</source>
-        <translation>allready existing concept</translation>
+        <translation type="obsolete">allready existing concept</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="128"/>
+        <location filename="Ihm/I_ETAPE.py" line="128"/>
         <source>Operateur reentrant mais concept non existant</source>
-        <translation>operator &apos;reentrant&apos; but concept does not exist</translation>
+        <translation type="obsolete">operator &apos;reentrant&apos; but concept does not exist</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="140"/>
+        <location filename="Ihm/I_ETAPE.py" line="140"/>
         <source>Operateur reentrant et concept existant trouve</source>
-        <translation>Operator &apos;re-entrant&apos; and concept exists</translation>
+        <translation type="obsolete">Operator &apos;re-entrant&apos; and concept exists</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="142"/>
+        <location filename="Ihm/I_ETAPE.py" line="142"/>
         <source>Concept deja existant et de mauvais type</source>
-        <translation>already existing concept of not supported type</translation>
+        <translation type="obsolete">already existing concept of not supported type</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="198"/>
+        <location filename="Ihm/I_ETAPE.py" line="198"/>
         <source>Nommage du concept refuse : un concept de meme nom existe deja</source>
-        <translation>Name is refused : already existing concept</translation>
+        <translation type="obsolete">Name is refused : already existing concept</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="52"/>
+        <location filename="InterfaceQT4/compooper.py" line="52"/>
         <source>Nommage du concept effectue</source>
-        <translation>Concept named</translation>
+        <translation type="obsolete">Concept named</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="176"/>
+        <location filename="Ihm/I_ETAPE.py" line="176"/>
         <source>Nommage impossible %s</source>
-        <translation>unable to name %s</translation>
+        <translation type="obsolete">unable to name %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="105"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="105"/>
         <source>La liste des arguments d&apos;une formule doit etre entre parentheses : parenthese ouvrante manquante</source>
-        <translation>formula expects a list of arguments : no left parenthesis</translation>
+        <translation type="obsolete">formula expects a list of arguments : no left parenthesis</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="107"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="107"/>
         <source>La liste des arguments d&apos;une formule doit etre entre parentheses : parenthese fermante manquante</source>
-        <translation>formula expects a list of arguments : no right parenthes</translation>
+        <translation type="obsolete">formula expects a list of arguments : no right parenthes</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="152"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="152"/>
         <source>Pas de nom donne a la FORMULE</source>
-        <translation>no name given</translation>
+        <translation type="obsolete">no name given</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="154"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="154"/>
         <source>Un nom de FORMULE ne peut depasser 8 caracteres</source>
-        <translation>name too  long (8 characters max)</translation>
+        <translation type="obsolete">name too  long (8 characters max)</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="156"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="156"/>
         <source>Un nom de FORMULE ne peut pas commencer par un chiffre</source>
-        <translation>name does not begin with a figure</translation>
+        <translation type="obsolete">name does not begin with a figure</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="173"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="173"/>
         <source>Le type de la valeur retournee n&apos;est pas specifie</source>
-        <translation>no type is specified for the return value</translation>
+        <translation type="obsolete">no type is specified for the return value</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="175"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="175"/>
         <source>Une formule ne peut retourner une valeur de type : %s</source>
-        <translation>impossible to return a value of type : %s</translation>
+        <translation type="obsolete">impossible to return a value of type : %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="308"/>
+        <location filename="Ihm/I_JDC.py" line="308"/>
         <source>Impossible d&apos;ajouter la commande</source>
-        <translation>unable to add the keyword (commande)</translation>
+        <translation type="obsolete">unable to add the keyword (commande)</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="314"/>
+        <location filename="Ihm/I_JDC.py" line="314"/>
         <source>Impossible d ajouter la commande</source>
-        <translation>unable to add the keyword (commande)</translation>
+        <translation type="obsolete">unable to add the keyword (commande)</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="629"/>
+        <location filename="Ihm/I_JDC.py" line="629"/>
         <source>Pas implemente</source>
-        <translation>not implemented</translation>
+        <translation type="obsolete">not implemented</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="724"/>
+        <location filename="Ihm/I_JDC.py" line="724"/>
         <source>Nom de concept deja defini </source>
-        <translation>already defined concept</translation>
+        <translation type="obsolete">already defined concept</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="899"/>
+        <location filename="Ihm/I_JDC.py" line="899"/>
         <source> Nom de concept deja  defini : </source>
-        <translation>already defined concept :</translation>
+        <translation type="obsolete">already defined concept :</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_JDC.py" line="942"/>
+        <location filename="Ihm/I_JDC.py" line="942"/>
         <source>Impossible de trouver le fichier correspondant a l&apos;unite </source>
-        <translation>unable to find file corresponding to unit</translation>
+        <translation type="obsolete">unable to find file corresponding to unit</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="725"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="725"/>
         <source> n&apos;est pas un fichier existant</source>
-        <translation>is not an existing file</translation>
+        <translation type="obsolete">is not an existing file</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1107"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="1107"/>
         <source>Fichier invalide %s</source>
-        <translation>invalid file %s</translation>
+        <translation type="obsolete">invalid file %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="559"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="559"/>
         <source>Impossible de construire le jeu de commandes correspondant au fichier</source>
-        <translation>unable to create the jdc corresponding to the file</translation>
+        <translation type="obsolete">unable to create the jdc corresponding to the file</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1057"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="1057"/>
         <source>Erreur lors de l&apos;evaluation du fichier inclus</source>
-        <translation>Error when reading the &apos;include&apos; file</translation>
+        <translation type="obsolete">Error when reading the &apos;include&apos; file</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1195"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="1195"/>
         <source>Ce fichier ne sera pas pris en compte
  %s</source>
-        <translation>the file is ignored
+        <translation type="obsolete">the file is ignored
 %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="735"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="735"/>
         <source>Ce fichier ne sera pas pris en compte
 Le fichier associe n&apos;est pas defini</source>
-        <translation>the file is ignored : associated file is not defined</translation>
+        <translation type="obsolete">the file is ignored : associated file is not defined</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="907"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="907"/>
         <source>Le fichier n est pas defini</source>
-        <translation>file is not defined</translation>
+        <translation type="obsolete">file is not defined</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="944"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="944"/>
         <source>le fichier doit contenir une unique variable de sortie</source>
-        <translation>file must declare a single output variable</translation>
+        <translation type="obsolete">file must declare a single output variable</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="990"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="990"/>
         <source>Fichier invalide</source>
-        <translation>invalid file</translation>
+        <translation type="obsolete">invalid file</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="993"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="993"/>
         <source>Le contenu de ce fichier ne sera pas pris en compte
  %s</source>
-        <translation>the file will be ignored :
+        <translation type="obsolete">the file will be ignored :
 %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1047"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="1047"/>
         <source>Le fichier INCLUDE n est pas defini</source>
-        <translation>include file is not defined</translation>
+        <translation type="obsolete">include file is not defined</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1057"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="1057"/>
         <source>Le contenu de ce fichier ne sera pas pris en compte
 </source>
-        <translation>file will be ignored
+        <translation type="obsolete">file will be ignored
 </translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1195"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="1195"/>
         <source>Erreur lors de l&apos;evaluation du fichier poursuite</source>
-        <translation>Error when creating secondary (poursuite) file</translation>
+        <translation type="obsolete">Error when creating secondary (poursuite) file</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCCOMPO.py" line="224"/>
+        <location filename="Ihm/I_MCCOMPO.py" line="224"/>
         <source>L&apos;objet %(v_1)s ne peut  etre un fils de %(v_2)s</source>
         <comment>v_1</comment>
-        <translation>Object %(v_1)s can not be a child for %(v_2)s</translation>
+        <translation type="obsolete">Object %(v_1)s can not be a child for %(v_2)s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCCOMPO.py" line="253"/>
+        <location filename="Ihm/I_MCCOMPO.py" line="253"/>
         <source>L&apos;objet %s ne peut pas etre repete</source>
-        <translation>Object %s can not be repeated</translation>
+        <translation type="obsolete">Object %s can not be repeated</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCFACT.py" line="50"/>
+        <location filename="Ihm/I_MCFACT.py" line="50"/>
         <source>Erreur - mclist inexistante : %s</source>
-        <translation>Error - mclist does not exist : %s</translation>
+        <translation type="obsolete">Error - mclist does not exist : %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCFACT.py" line="59"/>
+        <location filename="Ihm/I_MCFACT.py" line="59"/>
         <source>Erreur - mot cle facteur de nom : %s</source>
-        <translation>Error - keyword &quot;mot-clef facteur&quot; nammed : %s</translation>
+        <translation type="obsolete">Error - keyword &quot;mot-clef facteur&quot; nammed : %s</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCLIST.py" line="94"/>
+        <location filename="Ihm/I_MCLIST.py" line="94"/>
         <source>traitement non-prevu</source>
-        <translation>unexpected task</translation>
+        <translation type="obsolete">unexpected task</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCLIST.py" line="97"/>
+        <location filename="Ihm/I_MCLIST.py" line="97"/>
         <source>L&apos;objet %s ne peut pas etre ajoute</source>
-        <translation>Object %s cannot be add</translation>
+        <translation type="obsolete">Object %s cannot be add</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="258"/>
+        <location filename="Ihm/I_MCSIMP.py" line="258"/>
         <source>None n&apos;est pas une valeur autorisee</source>
-        <translation>None is not a valid value</translation>
+        <translation type="obsolete">None is not a valid value</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="490"/>
+        <location filename="Ihm/I_MCSIMP.py" line="490"/>
         <source>un concept de meme nom existe deja</source>
-        <translation>concept already exists</translation>
+        <translation type="obsolete">concept already exists</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="512"/>
+        <location filename="Ihm/I_MCSIMP.py" line="512"/>
         <source>Concept cree</source>
-        <translation>concept created</translation>
+        <translation type="obsolete">concept created</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="643"/>
+        <location filename="Ihm/I_MCSIMP.py" line="643"/>
         <source>La matrice n&apos;est pas une matrice %(n_lign)d sur %(n_col)d</source>
         <comment>n_lign</comment>
-        <translation>matrix is not a %(n_lign)d x %(n_col)d matrix</translation>
+        <translation type="obsolete">matrix is not a %(n_lign)d x %(n_col)d matrix</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compocomm.py" line="41"/>
+        <location filename="InterfaceQT4/compocomm.py" line="41"/>
         <source>Decommenter</source>
-        <translation>uncomment</translation>
+        <translation type="obsolete">uncomment</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compocomm.py" line="43"/>
+        <location filename="InterfaceQT4/compocomm.py" line="43"/>
         <source>Decommente la commande </source>
-        <translation>uncomment the command</translation>
+        <translation type="obsolete">uncomment the command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compofact.py" line="133"/>
+        <location filename="InterfaceQT4/compofact.py" line="133"/>
         <source>Impossible de supprimer un mot-cle obligatoire </source>
-        <translation>mandatory keyword cannot be deleted</translation>
+        <translation type="obsolete">mandatory keyword cannot be deleted</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compofact.py" line="136"/>
+        <location filename="InterfaceQT4/compofact.py" line="136"/>
         <source>Mot-cle %s supprime</source>
-        <translation>Keyword %s deleted</translation>
+        <translation type="obsolete">Keyword %s deleted</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compofact.py" line="141"/>
+        <location filename="InterfaceQT4/compofact.py" line="141"/>
         <source>Pb interne : impossible de supprimer ce mot-cle</source>
-        <translation>internal problem : unable to delete keyword</translation>
+        <translation type="obsolete">internal problem : unable to delete keyword</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compojdc.py" line="86"/>
+        <location filename="InterfaceQT4/compojdc.py" line="86"/>
         <source>Commentaire supprime</source>
-        <translation>comment is deleted</translation>
+        <translation type="obsolete">comment is deleted</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compojdc.py" line="88"/>
+        <location filename="InterfaceQT4/compojdc.py" line="88"/>
         <source>Commande %s supprimee</source>
-        <translation>command %s is deleted</translation>
+        <translation type="obsolete">command %s is deleted</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compojdc.py" line="91"/>
+        <location filename="InterfaceQT4/compojdc.py" line="91"/>
         <source>Pb interne : impossible de supprimer cet objet</source>
-        <translation>internal problem : unable to delete object</translation>
+        <translation type="obsolete">internal problem : unable to delete object</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compomacro.py" line="125"/>
+        <location filename="InterfaceQT4/compomacro.py" line="125"/>
         <source>Le fichier de commande n&apos;a pas pu etre converti pour etre editable par Eficas
 
 </source>
-        <translation>unable to convert .comm file in order to open it with Eficas</translation>
+        <translation type="obsolete">unable to convert .comm file in order to open it with Eficas</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compomacro.py" line="157"/>
+        <location filename="InterfaceQT4/compomacro.py" line="157"/>
         <source>Include vide</source>
-        <translation>include file is empty</translation>
+        <translation type="obsolete">include file is empty</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compomacro.py" line="157"/>
+        <location filename="InterfaceQT4/compomacro.py" line="157"/>
         <source>L&apos;include doit etre correctement initialise pour etre visualise</source>
-        <translation>include file must be correct</translation>
+        <translation type="obsolete">include file must be correct</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compomclist.py" line="223"/>
+        <location filename="InterfaceQT4/compomclist.py" line="223"/>
         <source>Impossible de supprimer ce mot-clef</source>
-        <translation>unable to delete this keyword</translation>
+        <translation type="obsolete">unable to delete this keyword</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="67"/>
+        <location filename="InterfaceQT4/compooper.py" line="67"/>
         <source>View3D</source>
-        <translation>View3D</translation>
+        <translation type="obsolete">View3D</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="69"/>
+        <location filename="InterfaceQT4/compooper.py" line="69"/>
         <source>affiche dans Geom les elements de structure</source>
-        <translation>diplay SE in Geom</translation>
+        <translation type="obsolete">diplay SE in Geom</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="76"/>
+        <location filename="InterfaceQT4/compooper.py" line="76"/>
         <source>Graphique</source>
-        <translation>graphic</translation>
+        <translation type="obsolete">graphic</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="78"/>
+        <location filename="InterfaceQT4/compooper.py" line="78"/>
         <source>affiche la distribution </source>
-        <translation>display distribution</translation>
+        <translation type="obsolete">display distribution</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="201"/>
+        <location filename="InterfaceQT4/compooper.py" line="201"/>
         <source>Impossible de supprimer un mot-clef obligatoire </source>
-        <translation>unable to delete a mandatory keyword</translation>
+        <translation type="obsolete">unable to delete a mandatory keyword</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="203"/>
+        <location filename="InterfaceQT4/compooper.py" line="203"/>
         <source>Mot-clef %s supprime </source>
-        <translation>Keyword %s is deleted</translation>
+        <translation type="obsolete">Keyword %s is deleted</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compoparam.py" line="146"/>
+        <location filename="InterfaceQT4/compoparam.py" line="146"/>
         <source>Definition d&apos;un parametre</source>
-        <translation>defines a parameter</translation>
+        <translation type="obsolete">defines a parameter</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/configuration.py" line="156"/>
+        <location filename="InterfaceQT4/configuration.py" line="156"/>
         <source>Import du fichier de Configuration</source>
-        <translation>import configuration file</translation>
+        <translation type="obsolete">import configuration file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/configuration.py" line="156"/>
+        <location filename="InterfaceQT4/configuration.py" line="156"/>
         <source>Erreur a la lecture du fichier de configuration %s </source>
-        <translation>Error when reading configuration file</translation>
+        <translation type="obsolete">Error when reading configuration file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="196"/>
+        <location filename="InterfaceQT4/editor.py" line="196"/>
         <source>Erreur fatale au chargement de %s</source>
-        <translation>fatal error when loading %s</translation>
+        <translation type="obsolete">fatal error when loading %s</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="197"/>
+        <location filename="InterfaceQT4/editor.py" line="197"/>
         <source>Erreur fatale au chargement d&apos;un fichier</source>
-        <translation>Fatal error when loading file</translation>
+        <translation type="obsolete">Fatal error when loading file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="313"/>
+        <location filename="InterfaceQT4/editor.py" line="313"/>
         <source>fichier modifie</source>
-        <translation>file updated </translation>
+        <translation type="obsolete">file updated </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="313"/>
+        <location filename="InterfaceQT4/editor.py" line="313"/>
         <source>Attention! fichier change hors EFICAS</source>
-        <translation>Warning ! this file was modified outside Eficas</translation>
+        <translation type="obsolete">Warning ! this file was modified outside Eficas</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="367"/>
+        <location filename="InterfaceQT4/editor.py" line="367"/>
         <source>Type de fichier non reconnu</source>
-        <translation>unsupported file type</translation>
+        <translation type="obsolete">unsupported file type</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="324"/>
+        <location filename="InterfaceQT4/editor.py" line="324"/>
         <source>EFICAS ne sait pas ouvrir le type de fichier %s</source>
-        <translation>Eficas is not able to open this file&apos;s type : %s</translation>
+        <translation type="obsolete">Eficas is not able to open this file&apos;s type : %s</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="367"/>
+        <location filename="InterfaceQT4/editor.py" line="367"/>
         <source>EFICAS ne sait pas ouvrir ce type de fichier</source>
-        <translation>Eficas is not able to open this file&apos;s type</translation>
+        <translation type="obsolete">Eficas is not able to open this file&apos;s type</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="610"/>
+        <location filename="InterfaceQT4/editor.py" line="610"/>
         <source>Copie impossible</source>
-        <translation>unable to copy</translation>
+        <translation type="obsolete">unable to copy</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="582"/>
+        <location filename="InterfaceQT4/editor.py" line="582"/>
         <source>Veuillez selectionner un objet a copier</source>
-        <translation>you have to select an object to copy</translation>
+        <translation type="obsolete">you have to select an object to copy</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="587"/>
+        <location filename="InterfaceQT4/editor.py" line="587"/>
         <source>Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne</source>
-        <translation>You have to select a single object : copy will be done after the selected node</translation>
+        <translation type="obsolete">You have to select a single object : copy will be done after the selected node</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="610"/>
+        <location filename="InterfaceQT4/editor.py" line="610"/>
         <source>Aucun Objet n a ete copie ou coupe</source>
-        <translation>No object was cut or copied</translation>
+        <translation type="obsolete">No object was cut or copied</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="636"/>
+        <location filename="InterfaceQT4/editor.py" line="636"/>
         <source>Copie refusee</source>
-        <translation>rejected copy</translation>
+        <translation type="obsolete">rejected copy</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="622"/>
+        <location filename="InterfaceQT4/editor.py" line="622"/>
         <source>Eficas n a pas reussi a copier l objet</source>
-        <translation>Eficas cannot copy this object</translation>
+        <translation type="obsolete">Eficas cannot copy this object</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="636"/>
+        <location filename="InterfaceQT4/editor.py" line="636"/>
         <source>Copie refusee pour ce type d objet</source>
-        <translation>Copy rejected : bad object type</translation>
+        <translation type="obsolete">Copy rejected : bad object type</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="648"/>
+        <location filename="InterfaceQT4/editor.py" line="648"/>
         <source>Deplacement refuse</source>
-        <translation>move rejected</translation>
+        <translation type="obsolete">move rejected</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="648"/>
+        <location filename="InterfaceQT4/editor.py" line="648"/>
         <source>Deplacement refuse entre 2 fichiers. Seule la copie est autorisee </source>
-        <translation>move rejected. no move between two files : only copy is available</translation>
+        <translation type="obsolete">move rejected. no move between two files : only copy is available</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="684"/>
+        <location filename="InterfaceQT4/editor.py" line="684"/>
         <source>Copie impossible a cet endroit</source>
-        <translation>unable to copy here</translation>
+        <translation type="obsolete">unable to copy here</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="684"/>
+        <location filename="InterfaceQT4/editor.py" line="684"/>
         <source>Veuillez selectionner une commande, un parametre, un commentaire ou une macro</source>
-        <translation>select a command; a parameter, a comment or a macro</translation>
+        <translation type="obsolete">select a command; a parameter, a comment or a macro</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="745"/>
+        <location filename="InterfaceQT4/editor.py" line="745"/>
         <source>Choix d&apos;un fichier XML</source>
-        <translation>Choice of XML file</translation>
+        <translation type="obsolete">Choice of XML file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="66"/>
+        <location filename="InterfaceQT4/viewManager.py" line="66"/>
         <source>Ouvrir Fichier</source>
-        <translation>Open file</translation>
+        <translation type="obsolete">Open file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1036"/>
+        <location filename="InterfaceQT4/editor.py" line="1036"/>
         <source>Erreur a la generation</source>
-        <translation>Error when generating</translation>
+        <translation type="obsolete">Error when generating</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1036"/>
+        <location filename="InterfaceQT4/editor.py" line="1036"/>
         <source>EFICAS ne sait pas convertir ce JDC</source>
-        <translation>Eficas is unable to convert JDC</translation>
+        <translation type="obsolete">Eficas is unable to convert JDC</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1040"/>
+        <location filename="InterfaceQT4/editor.py" line="1040"/>
         <source>Format %s non reconnu</source>
-        <translation> not supported format %s</translation>
+        <translation type="obsolete"> not supported format %s</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="895"/>
+        <location filename="InterfaceQT4/editor.py" line="895"/>
         <source>Execution impossible </source>
-        <translation>Unable to execute</translation>
+        <translation type="obsolete">Unable to execute</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="832"/>
+        <location filename="InterfaceQT4/editor.py" line="832"/>
         <source>le JDC doit etre valide pour une execution MAP</source>
-        <translation>JDC has to be valid before run</translation>
+        <translation type="obsolete">JDC has to be valid before run</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="835"/>
+        <location filename="InterfaceQT4/editor.py" line="835"/>
         <source>le JDC doit contenir un et un seul composant</source>
-        <translation>JDC must contains a single componant</translation>
+        <translation type="obsolete">JDC must contains a single componant</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="935"/>
+        <location filename="InterfaceQT4/editor.py" line="935"/>
         <source>sauvegarde</source>
-        <translation>save</translation>
+        <translation type="obsolete">save</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
+        <location filename="InterfaceQT4/editor.py" line="944"/>
         <source>Sauvegarde du Fichier</source>
-        <translation>save file</translation>
+        <translation type="obsolete">save file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
+        <location filename="InterfaceQT4/editor.py" line="944"/>
         <source>Le fichier &lt;b&gt;%s&lt;/b&gt; existe deja.</source>
-        <translation>file  &lt;b&gt;%s&lt;/b&gt; already exists.</translation>
+        <translation type="obsolete">file  &lt;b&gt;%s&lt;/b&gt; already exists.</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
+        <location filename="InterfaceQT4/editor.py" line="944"/>
         <source>&amp;Ecraser</source>
-        <translation>&amp;Replace</translation>
+        <translation type="obsolete">&amp;Replace</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1178"/>
+        <location filename="InterfaceQT4/editor.py" line="1178"/>
         <source>Donnez le nom du fichier correspondant a l unite logique </source>
-        <translation>Choose file corresponding to unit </translation>
+        <translation type="obsolete">Choose file corresponding to unit </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1181"/>
+        <location filename="InterfaceQT4/editor.py" line="1181"/>
         <source>Choix d&apos;un fichier de poursuite</source>
-        <translation>Choose poursuite file</translation>
+        <translation type="obsolete">Choose poursuite file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1182"/>
+        <location filename="InterfaceQT4/editor.py" line="1182"/>
         <source>Le fichier %s contient une commande POURSUITE
 </source>
-        <translation>file %s contains a POURSUITE command</translation>
+        <translation type="obsolete">file %s contains a POURSUITE command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="37"/>
+        <location filename="InterfaceQT4/gereTraduction.py" line="37"/>
         <source>Traduire Fichier</source>
-        <translation>file translation</translation>
+        <translation type="obsolete">file translation</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="37"/>
+        <location filename="InterfaceQT4/gereTraduction.py" line="37"/>
         <source>Fichiers JDC  (*.comm);;Tous les Fichiers (*)</source>
-        <translation>JDC files(*.comm);; All FIles(*)</translation>
+        <translation type="obsolete">JDC files(*.comm);; All FIles(*)</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="62"/>
+        <location filename="InterfaceQT4/gereTraduction.py" line="62"/>
         <source>Fichier Traduit : %s
 
 </source>
-        <translation>Translated file : %s</translation>
+        <translation type="obsolete">Translated file : %s</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="72"/>
+        <location filename="InterfaceQT4/gereTraduction.py" line="72"/>
         <source>Pas de difference entre le fichier origine et le fichier traduit</source>
-        <translation>No difference between the primary file and the translated file</translation>
+        <translation type="obsolete">No difference between the primary file and the translated file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monChoixCata.py" line="42"/>
+        <location filename="InterfaceQT4/monChoixCata.py" line="42"/>
         <source>%d versions du catalogue sont disponibles</source>
-        <translation>%d catalogs versions are available</translation>
+        <translation type="obsolete">%d catalogs versions are available</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="115"/>
+        <location filename="InterfaceQT4/typeNode.py" line="115"/>
         <source>&amp;Ok</source>
-        <translation>&amp;Ok</translation>
+        <translation type="obsolete">&amp;Ok</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="173"/>
+        <location filename="InterfaceQT4/feuille.py" line="173"/>
         <source>Entrez </source>
-        <translation>enter</translation>
+        <translation type="obsolete">enter</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="119"/>
+        <location filename="InterfaceQT4/feuille.py" line="119"/>
         <source> valeurs </source>
-        <translation> values </translation>
+        <translation type="obsolete"> values </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="174"/>
+        <location filename="InterfaceQT4/feuille.py" line="174"/>
         <source>Entrez entre </source>
-        <translation>enter between </translation>
+        <translation type="obsolete">enter between </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="174"/>
+        <location filename="InterfaceQT4/feuille.py" line="174"/>
         <source> et </source>
-        <translation> and </translation>
+        <translation type="obsolete"> and </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="245"/>
+        <location filename="InterfaceQT4/gereIcones.py" line="245"/>
         <source>Selection</source>
-        <translation>selection</translation>
+        <translation type="obsolete">selection</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpBase.py" line="86"/>
+        <location filename="InterfaceQT4/monWidgetSimpBase.py" line="86"/>
         <source>Type de base inconnu</source>
-        <translation>unkown type</translation>
+        <translation type="obsolete">unkown type</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="209"/>
+        <location filename="InterfaceQT4/gereIcones.py" line="209"/>
         <source>Visualisation Fichier </source>
-        <translation>view file</translation>
+        <translation type="obsolete">view file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="209"/>
+        <location filename="InterfaceQT4/gereIcones.py" line="209"/>
         <source>Impossibilite d&apos;afficher le Fichier</source>
-        <translation>Unable to display file</translation>
+        <translation type="obsolete">Unable to display file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="222"/>
+        <location filename="InterfaceQT4/gereIcones.py" line="222"/>
         <source>Sauvegarder Fichier</source>
-        <translation>save File</translation>
+        <translation type="obsolete">save File</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="236"/>
+        <location filename="InterfaceQT4/gereIcones.py" line="236"/>
         <source>Fichier selectionne</source>
-        <translation>file selected</translation>
+        <translation type="obsolete">file selected</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="116"/>
+        <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="116"/>
         <source>expression valide</source>
-        <translation>valid expression</translation>
+        <translation type="obsolete">valid expression</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="122"/>
+        <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="122"/>
         <source>expression invalide</source>
-        <translation>unvalid expression</translation>
+        <translation type="obsolete">unvalid expression</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="128"/>
+        <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="128"/>
         <source>expression n est pas de la forme a+bj</source>
-        <translation>expression is not as a+bj</translation>
+        <translation type="obsolete">expression is not as a+bj</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="140"/>
+        <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="140"/>
         <source>entrer une seule valeur SVP</source>
-        <translation>Please, enter a single value</translation>
+        <translation type="obsolete">Please, enter a single value</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="158"/>
+        <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="158"/>
         <source>saisir le type de complexe</source>
-        <translation>choose complex&apos;s type</translation>
+        <translation type="obsolete">choose complex&apos;s type</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monViewTexte.py" line="69"/>
+        <location filename="InterfaceQT4/monViewTexte.py" line="69"/>
         <source>Sauvegarder le fichier</source>
-        <translation>save file</translation>
+        <translation type="obsolete">save file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monViewTexte.py" line="69"/>
+        <location filename="InterfaceQT4/monViewTexte.py" line="69"/>
         <source>Le fichier &lt;b&gt;%(v_1)s&lt;/b&gt; n&apos;a pu etre sauvegarde. &lt;br&gt;Raison : %(v_2)s</source>
         <comment>v_1</comment>
-        <translation>file &lt;b&gt;%(v_1)s&lt;/b&gt; was not saved. Raison : %(v_2)s</translation>
+        <translation type="obsolete">file &lt;b&gt;%(v_1)s&lt;/b&gt; was not saved. Raison : %(v_2)s</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="78"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="78"/>
         <source>&amp;Recents</source>
-        <translation>&amp;Recently Opened</translation>
+        <translation type="obsolete">&amp;Recently Opened</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="147"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="147"/>
         <source>Aide specifique </source>
-        <translation>code&apos;s help</translation>
+        <translation type="obsolete">code&apos;s help</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="189"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="189"/>
         <source>Traduction</source>
-        <translation>translation</translation>
+        <translation type="obsolete">translation</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="194"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="194"/>
         <source>Options</source>
-        <translation>Options</translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="273"/>
-        <source>TraduitV7V8</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="274"/>
-        <source>TraduitV8V9</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="275"/>
-        <source>TraduitV9V10</source>
-        <translation></translation>
+        <translation type="obsolete">Options</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="284"/>
-        <source>Acquiert Groupe Maille</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="289"/>
-        <source>Specificites Maille</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="409"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="409"/>
         <source>version </source>
-        <translation>version</translation>
+        <translation type="obsolete">version</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="276"/>
+        <location filename="InterfaceQT4/readercata.py" line="276"/>
         <source> pour </source>
-        <translation> for </translation>
+        <translation type="obsolete"> for </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="436"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="436"/>
         <source>Aide Indisponible</source>
-        <translation>no help avalaible</translation>
+        <translation type="obsolete">no help avalaible</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="450"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="450"/>
         <source>Parametrage</source>
-        <translation>Options</translation>
+        <translation type="obsolete">Options</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="443"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="443"/>
         <source>Veuillez d abord choisir un code</source>
-        <translation>Choose a code</translation>
+        <translation type="obsolete">Choose a code</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="450"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="450"/>
         <source>Pas de possibilite de personnalisation de la configuration </source>
-        <translation>no options avalaible for configuration</translation>
+        <translation type="obsolete">no options avalaible for configuration</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="471"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="471"/>
         <source>&amp;Effacer</source>
-        <translation>&amp;Delete</translation>
+        <translation type="obsolete">&amp;Delete</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtSaisie.py" line="98"/>
+        <location filename="InterfaceQT4/qtSaisie.py" line="98"/>
         <source>Veuillez entrer le complexe sous forme aster ou sous forme python</source>
-        <translation>enter a complex</translation>
+        <translation type="obsolete">enter a complex</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="147"/>
+        <location filename="InterfaceQT4/readercata.py" line="147"/>
         <source>Import du catalogue</source>
-        <translation>Loading catalog</translation>
+        <translation type="obsolete">Loading catalog</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="95"/>
+        <location filename="InterfaceQT4/readercata.py" line="95"/>
         <source>Pas de catalogue defini pour le code </source>
-        <translation>No catalog for this code</translation>
+        <translation type="obsolete">No catalog for this code</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="119"/>
+        <location filename="InterfaceQT4/readercata.py" line="119"/>
         <source>Aucun catalogue trouve</source>
-        <translation>No catalog</translation>
+        <translation type="obsolete">No catalog</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="278"/>
+        <location filename="InterfaceQT4/readercata.py" line="278"/>
         <source> avec le catalogue </source>
-        <translation>with catalog  </translation>
+        <translation type="obsolete">with catalog  </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="147"/>
+        <location filename="InterfaceQT4/readercata.py" line="147"/>
         <source>Impossible d&apos;importer le catalogue </source>
-        <translation>unable to load catalog</translation>
+        <translation type="obsolete">unable to load catalog</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="268"/>
+        <location filename="InterfaceQT4/readercata.py" line="268"/>
         <source>Choix d une version du code </source>
-        <translation>Choose a version for </translation>
+        <translation type="obsolete">Choose a version for </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="270"/>
+        <location filename="InterfaceQT4/readercata.py" line="270"/>
         <source>Choix d une version </source>
-        <translation>choose a version</translation>
+        <translation type="obsolete">choose a version</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="219"/>
+        <location filename="InterfaceQT4/typeNode.py" line="219"/>
         <source>Parametre</source>
-        <translation>parameter</translation>
+        <translation type="obsolete">parameter</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="37"/>
+        <location filename="InterfaceQT4/typeNode.py" line="37"/>
         <source>Insere un parametre</source>
-        <translation>insert a parameter</translation>
+        <translation type="obsolete">insert a parameter</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="115"/>
+        <location filename="InterfaceQT4/typeNode.py" line="115"/>
         <source>item invalide</source>
-        <translation>invalid item</translation>
+        <translation type="obsolete">invalid item</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="115"/>
+        <location filename="InterfaceQT4/typeNode.py" line="115"/>
         <source>l item doit etre valide</source>
-        <translation>item must be valid</translation>
+        <translation type="obsolete">item must be valid</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="141"/>
+        <location filename="InterfaceQT4/typeNode.py" line="141"/>
         <source>apres</source>
-        <translation>after</translation>
+        <translation type="obsolete">after</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="136"/>
+        <location filename="InterfaceQT4/typeNode.py" line="136"/>
         <source>Insere un commentaire apres la commande </source>
-        <translation>insert a comment after the command</translation>
+        <translation type="obsolete">insert a comment after the command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="144"/>
+        <location filename="InterfaceQT4/typeNode.py" line="144"/>
         <source>avant</source>
-        <translation>before</translation>
+        <translation type="obsolete">before</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="139"/>
+        <location filename="InterfaceQT4/typeNode.py" line="139"/>
         <source>Insere un commentaire avant la commande </source>
-        <translation>insert a comment before the command</translation>
+        <translation type="obsolete">insert a comment before the command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="143"/>
+        <location filename="InterfaceQT4/typeNode.py" line="143"/>
         <source>Insere un parametre apres la commande </source>
-        <translation>insert a parameter after the command</translation>
+        <translation type="obsolete">insert a parameter after the command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="146"/>
+        <location filename="InterfaceQT4/typeNode.py" line="146"/>
         <source>Insere un parametre avant la commande </source>
-        <translation>insert a parameter before the commande</translation>
+        <translation type="obsolete">insert a parameter before the commande</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="148"/>
+        <location filename="InterfaceQT4/typeNode.py" line="148"/>
         <source>Supprimer</source>
-        <translation>delete</translation>
+        <translation type="obsolete">delete</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="150"/>
+        <location filename="InterfaceQT4/typeNode.py" line="150"/>
         <source>supprime le mot clef </source>
-        <translation>delete keyword</translation>
+        <translation type="obsolete">delete keyword</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="151"/>
+        <location filename="InterfaceQT4/typeNode.py" line="151"/>
         <source>Documentation</source>
-        <translation>documentation</translation>
+        <translation type="obsolete">documentation</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="153"/>
+        <location filename="InterfaceQT4/typeNode.py" line="153"/>
         <source>documentation sur la commande </source>
-        <translation>command&apos;s documentation</translation>
+        <translation type="obsolete">command&apos;s documentation</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="183"/>
+        <location filename="InterfaceQT4/typeNode.py" line="183"/>
         <source>Documentation Vide</source>
-        <translation>empty documentation</translation>
+        <translation type="obsolete">empty documentation</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="163"/>
+        <location filename="InterfaceQT4/typeNode.py" line="163"/>
         <source>Aucune documentation n&apos;est associee a ce noeud</source>
-        <translation>no documentation is available for this node</translation>
+        <translation type="obsolete">no documentation is available for this node</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="170"/>
+        <location filename="InterfaceQT4/typeNode.py" line="170"/>
         <source>impossible de trouver la commande  </source>
-        <translation>unable to find command</translation>
+        <translation type="obsolete">unable to find command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="171"/>
+        <location filename="InterfaceQT4/typeNode.py" line="171"/>
         <source>Lecteur PDF</source>
-        <translation>PDF reader</translation>
+        <translation type="obsolete">PDF reader</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="182"/>
+        <location filename="InterfaceQT4/typeNode.py" line="182"/>
         <source>impossible d&apos;ouvrir </source>
-        <translation>unable to open</translation>
+        <translation type="obsolete">unable to open</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="215"/>
+        <location filename="InterfaceQT4/typeNode.py" line="215"/>
         <source>Commentaire</source>
-        <translation>Comment</translation>
+        <translation type="obsolete">Comment</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="232"/>
+        <location filename="InterfaceQT4/typeNode.py" line="232"/>
         <source>ce noeud</source>
-        <translation>this node</translation>
+        <translation type="obsolete">this node</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="234"/>
+        <location filename="InterfaceQT4/typeNode.py" line="234"/>
         <source>commente le noeud </source>
-        <translation>comment this node</translation>
+        <translation type="obsolete">comment this node</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="64"/>
+        <location filename="InterfaceQT4/viewManager.py" line="64"/>
         <source>Fichiers JDC (*.comm);;Tous les Fichiers (*)</source>
-        <translation>JDC Files (*.comm);;All Files(*)</translation>
+        <translation type="obsolete">JDC Files (*.comm);;All Files(*)</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="84"/>
+        <location filename="InterfaceQT4/viewManager.py" line="84"/>
         <source>&amp;Quitter</source>
-        <translation>&amp;Exit</translation>
+        <translation type="obsolete">&amp;Exit</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="116"/>
+        <location filename="InterfaceQT4/viewManager.py" line="116"/>
         <source>Quitter</source>
-        <translation>Exit</translation>
+        <translation type="obsolete">Exit</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="337"/>
+        <location filename="InterfaceQT4/viewManager.py" line="337"/>
         <source>Fichier Duplique</source>
-        <translation>file is duplicated</translation>
+        <translation type="obsolete">file is duplicated</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="337"/>
+        <location filename="InterfaceQT4/viewManager.py" line="337"/>
         <source>Le fichier ne sera pas sauvegarde.</source>
-        <translation>File will not be saved.</translation>
+        <translation type="obsolete">File will not be saved.</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
+        <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>&amp;Annuler</source>
-        <translation>&amp;Cancel</translation>
+        <translation type="obsolete">&amp;Cancel</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
+        <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>Fichier</source>
-        <translation>File</translation>
+        <translation type="obsolete">File</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
+        <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>Le fichier &lt;b&gt;%s&lt;/b&gt; est deja ouvert.</source>
-        <translation>File  &lt;b&gt;%s&lt;/b&gt; is already open.</translation>
+        <translation type="obsolete">File  &lt;b&gt;%s&lt;/b&gt; is already open.</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
+        <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>&amp;Duplication</source>
-        <translation>&amp;Duplication</translation>
+        <translation type="obsolete">&amp;Duplication</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
+        <location filename="InterfaceQT4/viewManager.py" line="267"/>
         <source>&amp;Abort</source>
-        <translation>&amp;Abort</translation>
+        <translation type="obsolete">&amp;Abort</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
+        <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>Fichier Modifie</source>
-        <translation>File is modified</translation>
+        <translation type="obsolete">File is modified</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
+        <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>Le fichier %s n a pas ete sauvegarde.</source>
-        <translation>file %s was not saved.</translation>
+        <translation type="obsolete">file %s was not saved.</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
+        <location filename="InterfaceQT4/viewManager.py" line="349"/>
         <source>&amp;Sauvegarder</source>
-        <translation>&amp;Save</translation>
+        <translation type="obsolete">&amp;Save</translation>
     </message>
     <message>
-        <location filename="../../convert/convert_pyth.py" line="109"/>
+        <location filename="convert/convert_pyth.py" line="109"/>
         <source>Erreur a l&apos;evaluation :
  %s</source>
-        <translation>Error when loadind :
+        <translation type="obsolete">Error when loadind :
 %s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/utils.py" line="50"/>
+        <location filename="Editeur/utils.py" line="50"/>
         <source>Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom</source>
-        <translation>File %s already exists : unable to create a directory with the same name</translation>
+        <translation type="obsolete">File %s already exists : unable to create a directory with the same name</translation>
     </message>
     <message>
-        <location filename="../../Editeur/utils.py" line="56"/>
+        <location filename="Editeur/utils.py" line="56"/>
         <source>Creation du repertoire %s impossible
  Verifiez vos droits d&apos;acces</source>
-        <translation>Unable to create directory : check your access rights</translation>
+        <translation type="obsolete">Unable to create directory : check your access rights</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="266"/>
+        <location filename="Editeur/session.py" line="266"/>
         <source>localisation de l&apos;application, pour la traduction</source>
-        <translation>use for application translation</translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="820"/>
-        <source>ERREUR! ce groupe de maille (%s) n&apos;a pas de prefixe valable</source>
-        <translation></translation>
+        <translation type="obsolete">use for application translation</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="825"/>
-        <source>ERREUR! ce type de bloc (%s) n&apos;est pas valable</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/browser.py" line="435"/>
+        <location filename="InterfaceQT4/browser.py" line="435"/>
         <source>  n&apos;est pas un index valide pour append_brother</source>
-        <translation>is not correct - no possible &quot;append_brother&quot;</translation>
+        <translation type="obsolete">is not correct - no possible &quot;append_brother&quot;</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="114"/>
+        <location filename="InterfaceQT4/compooper.py" line="114"/>
         <source>Erreur interne</source>
-        <translation>Internal error</translation>
+        <translation type="obsolete">Internal error</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="114"/>
+        <location filename="InterfaceQT4/compooper.py" line="114"/>
         <source>La PDF de la loi ne peut pas etre affichee.</source>
-        <translation>unable to display law&apos;s PDF.</translation>
+        <translation type="obsolete">unable to display law&apos;s PDF.</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="746"/>
+        <location filename="InterfaceQT4/editor.py" line="746"/>
         <source>Le fichier contient une commande MODEL
 </source>
-        <translation>file contains MODEL command </translation>
+        <translation type="obsolete">file contains MODEL command </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="747"/>
-        <source>Donnez le nom du fichier XML qui contient la description des variables</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1176"/>
+        <location filename="InterfaceQT4/editor.py" line="1176"/>
         <source>Choix unite %d </source>
-        <translation>Choice for unit %d</translation>
+        <translation type="obsolete">Choice for unit %d</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1179"/>
+        <location filename="InterfaceQT4/editor.py" line="1179"/>
         <source>Fichier pour unite </source>
-        <translation>File for unit </translation>
+        <translation type="obsolete">File for unit </translation>
     </message>
     <message>
-        <location filename="../../Extensions/interpreteur_formule.py" line="97"/>
+        <location filename="Extensions/interpreteur_formule.py" line="97"/>
         <source>La formule passee a l&apos;interpreteur doit etre sous forme de tuple</source>
-        <translation>formula must be written as tuple</translation>
+        <translation type="obsolete">formula must be written as tuple</translation>
     </message>
     <message>
-        <location filename="../../Extensions/nuplet.py" line="104"/>
+        <location filename="Extensions/nuplet.py" line="104"/>
         <source>Debut </source>
-        <translation>Beginning</translation>
+        <translation type="obsolete">Beginning</translation>
     </message>
     <message>
-        <location filename="../../Extensions/parametre_eval.py" line="150"/>
+        <location filename="Extensions/parametre_eval.py" line="150"/>
         <source>Le parametre EVAL ne peut valoir None</source>
-        <translation>None is not a valid value for EVAL</translation>
+        <translation type="obsolete">None is not a valid value for EVAL</translation>
     </message>
     <message>
-        <location filename="../../Extensions/parametre.py" line="188"/>
+        <location filename="Extensions/parametre.py" line="188"/>
         <source>Pas de nom donne au parametre </source>
-        <translation>No name given</translation>
+        <translation type="obsolete">No name given</translation>
     </message>
     <message>
-        <location filename="../../Extensions/parametre.py" line="193"/>
+        <location filename="Extensions/parametre.py" line="193"/>
         <source>Le parametre %s ne peut valoir None</source>
-        <translation>None is an incorrect value for parameter %s</translation>
+        <translation type="obsolete">None is an incorrect value for parameter %s</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_aplat.py" line="147"/>
+        <location filename="generator/generator_aplat.py" line="147"/>
         <source>Format non implemente : %s</source>
-        <translation>Not implemented format</translation>
+        <translation type="obsolete">Not implemented format</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_pyth.py" line="143"/>
+        <location filename="generator/generator_pyth.py" line="143"/>
         <source>Type de valeur non supporte par le format pyth : n %(exception)s</source>
         <comment>nom</comment>
-        <translation>unsupported type of value</translation>
+        <translation type="obsolete">unsupported type of value</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="138"/>
+        <location filename="Ihm/I_FORM_ETAPE.py" line="138"/>
         <source>Impossible de realiser la verification de la formule</source>
-        <translation>unable to verify formula</translation>
+        <translation type="obsolete">unable to verify formula</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="208"/>
+        <location filename="InterfaceQT4/compooper.py" line="208"/>
         <source>Pb interne : impossible de supprimer ce mot-clef</source>
-        <translation>internal problem : unable to delete keyword</translation>
+        <translation type="obsolete">internal problem : unable to delete keyword</translation>
     </message>
     <message>
-        <location filename="../../convert/parseur_python.py" line="499"/>
+        <location filename="convert/parseur_python.py" line="499"/>
         <source>Eficas ne peut pas traiter plusieurs instructions 
                                                  sur la meme ligne : %s</source>
-        <translation>Eficas is not able to manage many instructions on a same line</translation>
+        <translation type="obsolete">Eficas is not able to manage many instructions on a same line</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="209"/>
+        <location filename="Editeur/analyse_catalogue.py" line="209"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande ou 
                                          d&apos;un operateur : %s</source>
-        <translation>text is not valid for a command or a operaor</translation>
+        <translation type="obsolete">text is not valid for a command or a operaor</translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="229"/>
+        <location filename="Editeur/analyse_catalogue.py" line="229"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande connue : 
                                         %(v_1)s %(v_2)s</source>
         <comment>v_1</comment>
-        <translation>text is not valid for command %(v_1)s %(v_2)s </translation>
+        <translation type="obsolete">text is not valid for command %(v_1)s %(v_2)s </translation>
     </message>
     <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="231"/>
+        <location filename="Editeur/analyse_catalogue.py" line="231"/>
         <source>le texte a analyser n&apos;est pas celui d&apos;une commande connue : 
                                          %(v_1)s %(v_2)s</source>
         <comment>v_1</comment>
-        <translation>text is not valid for command %(v_1)s %(v_2)s</translation>
+        <translation type="obsolete">text is not valid for command %(v_1)s %(v_2)s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="149"/>
+        <location filename="Editeur/session.py" line="149"/>
         <source> jdc %(v_1)s manque 
                                       fichier comm dans section %(v_2)s</source>
         <comment>v_1</comment>
-        <translation>file %(v_1)s need a .comm file in section %(v_2)s   </translation>
+        <translation type="obsolete">file %(v_1)s need a .comm file in section %(v_2)s   </translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="170"/>
+        <location filename="Editeur/session.py" line="170"/>
         <source> jdc %(v_1)s 
                                    fichier include %(v_2)s, %(v_3)s 
                                    n&apos;existe pas</source>
         <comment>v_1</comment>
-        <translation>file %(v_1)s need an include  file  %(v_2)s,%(v_3)s does not exist </translation>
+        <translation type="obsolete">file %(v_1)s need an include  file  %(v_2)s,%(v_3)s does not exist </translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="202"/>
+        <location filename="Editeur/session.py" line="202"/>
         <source> jdc %(v_1)s manque fichier comm 
                                 dans section %(v_2)s</source>
         <comment>v_1</comment>
-        <translation>file %(v_1)s need a .comm file in section %(v_2)s</translation>
+        <translation type="obsolete">file %(v_1)s need a .comm file in section %(v_2)s</translation>
     </message>
     <message>
-        <location filename="../../Editeur/session.py" line="206"/>
+        <location filename="Editeur/session.py" line="206"/>
         <source>jdc %(v_1)s, le fichier de commandes 
                                 %(v_2)s n&apos;existe pas</source>
         <comment>v_1</comment>
-        <translation>jdc%(v_1)s, .comm  %(v_2)s does not exist</translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="482"/>
-        <source>ATTENTION! Une source constante 
-                                  n&apos;est possible qu&apos;a frequence nulle 
-                                  en regime frequentiel</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="491"/>
-        <source>ERREUR! Une forme de la source du 
-                               type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="512"/>
-        <source>ATTENTION! Une source constante n&apos;est 
-                                  possible qu&apos;a frequence nulle en regime frequentiel</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="548"/>
-        <source>ERREUR! Une forme de la source du type 
-                               WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="817"/>
-        <source>ERREUR! ce groupe de maille (%s) n&apos;a pas de prefixe 
-                                indiquant le type de materiau ou de source associee</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="827"/>
-        <source>ERREUR! ce groupe de maille (%(nom)s) n&apos;a pas 
-                                        le prefixe correct pour etre associe a un type %(type_bloc)s</source>
-        <comment>nom</comment>
-        <translation></translation>
+        <translation type="obsolete">jdc%(v_1)s, .comm  %(v_2)s does not exist</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="485"/>
+        <location filename="Ihm/I_ETAPE.py" line="485"/>
         <source>
    Include Invalide. 
   ne sera pas pris en compte</source>
-        <translation>Invalid include file. text will not be included</translation>
+        <translation type="obsolete">Invalid include file. text will not be included</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="167"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="167"/>
         <source>Impossible de relire le fichier %s 
  </source>
-        <translation>unable to read file</translation>
+        <translation type="obsolete">unable to read file</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="178"/>
+        <location filename="Ihm/I_MACRO_ETAPE.py" line="178"/>
         <source>Le fichier include contient des erreurs </source>
-        <translation>include file contains errors</translation>
+        <translation type="obsolete">include file contains errors</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/compoparam.py" line="86"/>
+        <location filename="InterfaceQT4/compoparam.py" line="86"/>
         <source>PARAMETRE</source>
-        <translation>PARAMETER</translation>
+        <translation type="obsolete">PARAMETER</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1041"/>
+        <location filename="InterfaceQT4/editor.py" line="1041"/>
         <source>EFICAS ne sait pas convertir le JDC selon le format </source>
-        <translation>Eficas does not know how to convert data according to the defined format</translation>
+        <translation type="obsolete">Eficas does not know how to convert data according to the defined format</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="871"/>
+        <location filename="InterfaceQT4/editor.py" line="871"/>
         <source>le JDC doit etre valide pour une execution </source>
-        <translation>Before a run action, JDC must be valid</translation>
+        <translation type="obsolete">Before a run action, JDC must be valid</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="895"/>
+        <location filename="InterfaceQT4/editor.py" line="895"/>
         <source>Sauvegarder SVP avant l&apos;execution </source>
-        <translation>Save before run action</translation>
+        <translation type="obsolete">Save before run action</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1020"/>
+        <location filename="InterfaceQT4/editor.py" line="1020"/>
         <source>Sauvegarde de l&apos;input impossible </source>
-        <translation>unable to save input file</translation>
+        <translation type="obsolete">unable to save input file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1020"/>
+        <location filename="InterfaceQT4/editor.py" line="1020"/>
         <source>Un JdC valide est necessaire pour creer un .input</source>
-        <translation>file must be valid to create a .input file</translation>
+        <translation type="obsolete">file must be valid to create a .input file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="964"/>
+        <location filename="InterfaceQT4/editor.py" line="964"/>
         <source>Choix du composant obligatoire</source>
-        <translation>You have to choose a component</translation>
+        <translation type="obsolete">You have to choose a component</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1177"/>
+        <location filename="InterfaceQT4/editor.py" line="1177"/>
         <source>Le fichier %s contient une commande INCLUDE 
 </source>
-        <translation>file %s contains an &quot;INCLUDE&quot; command</translation>
+        <translation type="obsolete">file %s contains an &quot;INCLUDE&quot; command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1183"/>
+        <location filename="InterfaceQT4/editor.py" line="1183"/>
         <source>Donnez le nom du fichier dont vous 
  voulez faire une poursuite</source>
-        <translation>Name the principal file</translation>
+        <translation type="obsolete">Name the principal file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1311"/>
+        <location filename="InterfaceQT4/editor.py" line="1311"/>
         <source>Fichiers Med (*.med);;Tous les Fichiers (*)</source>
-        <translation>Med Files (*.med);;All Files(*)</translation>
+        <translation type="obsolete">Med Files (*.med);;All Files(*)</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1314"/>
+        <location filename="InterfaceQT4/editor.py" line="1314"/>
         <source>Fichier Med</source>
-        <translation>Med File</translation>
+        <translation type="obsolete">Med File</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1314"/>
+        <location filename="InterfaceQT4/editor.py" line="1314"/>
         <source>Veuillez selectionner un fichier Med</source>
-        <translation>Choose a Med file</translation>
+        <translation type="obsolete">Choose a Med file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="165"/>
+        <location filename="InterfaceQT4/feuille.py" line="165"/>
         <source>reel</source>
-        <translation>float</translation>
+        <translation type="obsolete">float</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="166"/>
+        <location filename="InterfaceQT4/feuille.py" line="166"/>
         <source>entier</source>
-        <translation>integer</translation>
+        <translation type="obsolete">integer</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="167"/>
+        <location filename="InterfaceQT4/feuille.py" line="167"/>
         <source>complexe</source>
-        <translation>complex</translation>
+        <translation type="obsolete">complex</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="436"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="436"/>
         <source>l&apos;aide n est pas installee </source>
-        <translation>Help is not available</translation>
+        <translation type="obsolete">Help is not available</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="291"/>
+        <location filename="InterfaceQT4/gereIcones.py" line="291"/>
         <source>Export Med vers Fichier </source>
-        <translation>export Med Mesh in a file</translation>
+        <translation type="obsolete">export Med Mesh in a file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="291"/>
+        <location filename="InterfaceQT4/gereIcones.py" line="291"/>
         <source>Impossibilite d exporter le Fichier</source>
-        <translation>Unable to export file</translation>
+        <translation type="obsolete">Unable to export file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monBoutonValide.py" line="43"/>
+        <location filename="InterfaceQT4/monBoutonValide.py" line="43"/>
         <source>objet valide</source>
-        <translation>valid object</translation>
+        <translation type="obsolete">valid object</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpTuple3.py" line="47"/>
+        <location filename="InterfaceQT4/monWidgetSimpTuple3.py" line="47"/>
         <source>Valeur non modifiable</source>
-        <translation>value can not be changed</translation>
+        <translation type="obsolete">value can not be changed</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetOptionnel.py" line="91"/>
+        <location filename="InterfaceQT4/monWidgetOptionnel.py" line="91"/>
         <source>Options pour 
 </source>
-        <translation>Settings </translation>
+        <translation type="obsolete">Settings </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursInto.py" line="172"/>
+        <location filename="InterfaceQT4/monWidgetPlusieursInto.py" line="172"/>
         <source>Nombre minimal de valeurs : </source>
-        <translation>minimal number of values :</translation>
+        <translation type="obsolete">minimal number of values :</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursInto.py" line="174"/>
+        <location filename="InterfaceQT4/monWidgetPlusieursInto.py" line="174"/>
         <source>Nombre maximal de valeurs : </source>
-        <translation>Maximal number of values :</translation>
+        <translation type="obsolete">Maximal number of values :</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="84"/>
+        <location filename="InterfaceQT4/monWidgetSimpComplexe.py" line="84"/>
         <source>l expression n est pas de la forme a+bj</source>
-        <translation>expression must be as a+bj</translation>
+        <translation type="obsolete">expression must be as a+bj</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/politiquesValidation.py" line="157"/>
+        <location filename="InterfaceQT4/politiquesValidation.py" line="157"/>
         <source>Valeur du mot-cle enregistree</source>
-        <translation>Value is recorded</translation>
+        <translation type="obsolete">Value is recorded</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/politiquesValidation.py" line="162"/>
+        <location filename="InterfaceQT4/politiquesValidation.py" line="162"/>
         <source>Valeur du mot-cle non autorisee </source>
-        <translation>Value is not authorized</translation>
+        <translation type="obsolete">Value is not authorized</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="299"/>
+        <location filename="InterfaceQT4/viewManager.py" line="299"/>
         <source>Fichier non encore nomme </source>
-        <translation>unnamed file</translation>
+        <translation type="obsolete">unnamed file</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="1"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="1"/>
         <source>SOURCE</source>
-        <translation>SOURCE</translation>
+        <translation type="obsolete">SOURCE</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="2"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="2"/>
         <source>EnveloppeConnexeInducteur</source>
-        <translation>Bounding_Box</translation>
+        <translation type="obsolete">Bounding_Box</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="3"/>
-        <source>EnveloppeConnexe2</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="4"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="4"/>
         <source>VecteurDirecteur</source>
-        <translation>Direction_Vector</translation>
+        <translation type="obsolete">Direction_Vector</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="5"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="5"/>
         <source>Centre</source>
-        <translation>Center<byte value="x9"/></translation>
+        <translation type="obsolete">Center<byte value="x9"/></translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="6"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="6"/>
         <source>SectionBobine</source>
-        <translation>Section</translation>
+        <translation type="obsolete">Section</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="7"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="7"/>
         <source>Amplitude</source>
-        <translation>Amplitude</translation>
+        <translation type="obsolete">Amplitude</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="8"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="8"/>
         <source>NbdeTours</source>
-        <translation>NbTurns</translation>
+        <translation type="obsolete">NbTurns</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="9"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="9"/>
         <source>CONDUCTEUR</source>
-        <translation>CONDUCTOR</translation>
+        <translation type="obsolete">CONDUCTOR</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="10"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="10"/>
         <source>Conductivite</source>
-        <translation>Conductivity</translation>
+        <translation type="obsolete">Conductivity</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="11"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="11"/>
         <source>PermeabiliteRelative</source>
-        <translation>Relative_Permeability</translation>
+        <translation type="obsolete">Relative_Permeability</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="12"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="12"/>
         <source>NOCOND</source>
-        <translation>DIELECTRIC</translation>
+        <translation type="obsolete">DIELECTRIC</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="13"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="13"/>
         <source>VCUT</source>
-        <translation>CUT</translation>
+        <translation type="obsolete">CUT</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="14"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="14"/>
         <source>Orientation</source>
-        <translation>Orientation</translation>
+        <translation type="obsolete">Orientation</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="15"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="15"/>
         <source>ZS</source>
-        <translation>ZS</translation>
+        <translation type="obsolete">ZS</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="5"/>
+        <location filename="Carmel3D/PourTraduction.py" line="5"/>
         <source>RepCarmel</source>
-        <translation>Carmel_Directory</translation>
+        <translation type="obsolete">Carmel_Directory</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="18"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="18"/>
         <source>TypedeFormule</source>
-        <translation>Formula</translation>
+        <translation type="obsolete">Formula</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="19"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="19"/>
         <source>Frequence</source>
-        <translation>Frequency</translation>
+        <translation type="obsolete">Frequency</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="20"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="20"/>
         <source>Nb_Max_Iterations</source>
-        <translation>Max_Nb_Iterations</translation>
+        <translation type="obsolete">Max_Nb_Iterations</translation>
     </message>
     <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="21"/>
+        <location filename="CarmelCND/PourTraductionCarmel.py" line="21"/>
         <source>Erreur_Max</source>
-        <translation>Max_Error</translation>
+        <translation type="obsolete">Max_Error</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_python.py" line="112"/>
+        <location filename="generator/generator_python.py" line="112"/>
         <source>Format non implemente </source>
-        <translation>non implemented format</translation>
+        <translation type="obsolete">non implemented format</translation>
     </message>
     <message>
-        <location filename="../../generator/generator_python.py" line="163"/>
-        <source>Type d&apos;objet non prevu</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereListe.py" line="193"/>
+        <location filename="InterfaceQT4/gereListe.py" line="193"/>
         <source>Fichier de donnees</source>
-        <translation>data file</translation>
+        <translation type="obsolete">data file</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereListe.py" line="193"/>
+        <location filename="InterfaceQT4/gereListe.py" line="193"/>
         <source>Tous les  Fichiers (*)</source>
-        <translation>all files (*)</translation>
+        <translation type="obsolete">all files (*)</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetCB.py" line="51"/>
+        <location filename="InterfaceQT4/monWidgetCB.py" line="51"/>
         <source>Select</source>
-        <translation>select</translation>
+        <translation type="obsolete">select</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursBase.py" line="226"/>
+        <location filename="InterfaceQT4/monWidgetPlusieursBase.py" line="226"/>
         <source>nb min de valeurs : </source>
-        <translation>minimal number of values :</translation>
+        <translation type="obsolete">minimal number of values :</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursBase.py" line="231"/>
+        <location filename="InterfaceQT4/monWidgetPlusieursBase.py" line="231"/>
         <source>nb max de valeurs atteint</source>
-        <translation>maximum number of values</translation>
+        <translation type="obsolete">maximum number of values</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="384"/>
-        <source>TraduitV10V11</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="387"/>
-        <source>TraduitV11V12</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="389"/>
+        <location filename="InterfaceQT4/qtEficas.py" line="389"/>
         <source>Sauve Format Ligne</source>
-        <translation>save file in line format</translation>
+        <translation type="obsolete">save file in line format</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtSaisie.py" line="138"/>
+        <location filename="InterfaceQT4/qtSaisie.py" line="138"/>
         <source>Valeur du mot-clef enregistree</source>
-        <translation>value recorded</translation>
+        <translation type="obsolete">value recorded</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtSaisie.py" line="142"/>
+        <location filename="InterfaceQT4/qtSaisie.py" line="142"/>
         <source>Valeur du mot-clef non autorisee :</source>
-        <translation>unvalid value</translation>
+        <translation type="obsolete">unvalid value</translation>
     </message>
     <message>
-        <location filename="../../Noyau/N_VALIDATOR.py" line="170"/>
+        <location filename="Noyau/N_VALIDATOR.py" line="170"/>
         <source>%s n&apos;est pas un fichier valide</source>
-        <translation>%s is not a valid file</translation>
+        <translation type="obsolete">%s is not a valid file</translation>
     </message>
     <message>
-        <location filename="../../Noyau/N_VALIDATOR.py" line="1554"/>
+        <location filename="Noyau/N_VALIDATOR.py" line="1554"/>
         <source>: verifie les types dans un tuple</source>
-        <translation>valids type in a tuple</translation>
+        <translation type="obsolete">valids type in a tuple</translation>
     </message>
     <message>
-        <location filename="../../Noyau/N_VALIDATOR.py" line="1557"/>
+        <location filename="Noyau/N_VALIDATOR.py" line="1557"/>
         <source>Les types entres ne sont pas permis</source>
-        <translation type="unfinished">unvalid type for values</translation>
+        <translation type="obsolete">unvalid type for values</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monFonctionPanel.py" line="62"/>
+        <location filename="InterfaceQT4/monFonctionPanel.py" line="62"/>
         <source>La cardinalite n&apos;est pas correcte, la derniere valeur est ignoree</source>
-        <translation>unvalid multiplicity. last value will be ignored</translation>
+        <translation type="obsolete">unvalid multiplicity. last value will be ignored</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monFonctionPanel.py" line="110"/>
+        <location filename="InterfaceQT4/monFonctionPanel.py" line="110"/>
         <source> n est pas un tuple de </source>
-        <translation>is not a tuple</translation>
+        <translation type="obsolete">is not a tuple</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monFonctionPanel.py" line="112"/>
+        <location filename="InterfaceQT4/monFonctionPanel.py" line="112"/>
         <source> valeurs</source>
-        <translation> values </translation>
+        <translation type="obsolete"> values </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetCreeParam.py" line="96"/>
+        <location filename="InterfaceQT4/monWidgetCreeParam.py" line="96"/>
         <source>Valeur incorrecte</source>
-        <translation>incorrect value</translation>
+        <translation type="obsolete">incorrect value</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetCreeParam.py" line="105"/>
+        <location filename="InterfaceQT4/monWidgetCreeParam.py" line="105"/>
         <source> n est pas un identifiant correct
  </source>
-        <translation>is not a valid name</translation>
+        <translation type="obsolete">is not a valid name</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="78"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="78"/>
         <source>Entrer un float SVP</source>
-        <translation>Float expected</translation>
+        <translation type="obsolete">Float expected</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="83"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="83"/>
         <source>Entrer un float inferieur a </source>
-        <translation>float lower than</translation>
+        <translation type="obsolete">float lower than</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="88"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="88"/>
         <source>Entrer un float superieur a </source>
-        <translation>float superior than</translation>
+        <translation type="obsolete">float superior than</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="111"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="111"/>
         <source>Mauvaise execution </source>
-        <translation>bad run</translation>
+        <translation type="obsolete">bad run</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="111"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="111"/>
         <source>impossible d executer la methode </source>
-        <translation>unable to run method</translation>
+        <translation type="obsolete">unable to run method</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="135"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="135"/>
         <source>Mauvaise Commande </source>
-        <translation>bad command</translation>
+        <translation type="obsolete">bad command</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="135"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="135"/>
         <source>Aucune variable connue</source>
-        <translation>no possible variable </translation>
+        <translation type="obsolete">no possible variable </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="183"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="183"/>
         <source>Mauvaise dimension de matrice</source>
-        <translation>bad matrix dimension</translation>
+        <translation type="obsolete">bad matrix dimension</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="181"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="181"/>
         <source>le nombre de ligne n est pas egal a </source>
-        <translation>number of lines is not </translation>
+        <translation type="obsolete">number of lines is not </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="183"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="183"/>
         <source>le nombre de colonne n est pas egal a </source>
-        <translation>number of columns is not</translation>
+        <translation type="obsolete">number of columns is not</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="191"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="191"/>
         <source>Mauvaise Valeur</source>
-        <translation>bad value</translation>
+        <translation type="obsolete">bad value</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="191"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="191"/>
         <source>l element </source>
-        <translation>element</translation>
+        <translation type="obsolete">element</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="191"/>
+        <location filename="InterfaceQT4/monWidgetMatrice.py" line="191"/>
         <source>n est pas correct</source>
-        <translation>is not correct</translation>
+        <translation type="obsolete">is not correct</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="94"/>
+        <location filename="InterfaceQT4/monWidgetParam.py" line="94"/>
         <source>Modification Impossible</source>
-        <translation>unable to modify</translation>
+        <translation type="obsolete">unable to modify</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="94"/>
+        <location filename="InterfaceQT4/monWidgetParam.py" line="94"/>
         <source>le parametre n&apos;est pas valide</source>
-        <translation>parameter is not valid</translation>
+        <translation type="obsolete">parameter is not valid</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="108"/>
+        <location filename="InterfaceQT4/monWidgetParam.py" line="108"/>
         <source> n est pas un identifiant correct</source>
-        <translation>is not a correct name</translation>
+        <translation type="obsolete">is not a correct name</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="127"/>
+        <location filename="InterfaceQT4/monWidgetParam.py" line="127"/>
         <source>Valeur incorrecte: </source>
-        <translation>incorrect value :</translation>
+        <translation type="obsolete">incorrect value :</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="130"/>
+        <location filename="InterfaceQT4/monWidgetParam.py" line="130"/>
         <source>Valeur incorrecte </source>
-        <translation>incorrect value</translation>
+        <translation type="obsolete">incorrect value</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="133"/>
+        <location filename="InterfaceQT4/monWidgetParam.py" line="133"/>
         <source>Valeur correcte </source>
-        <translation>valid value</translation>
+        <translation type="obsolete">valid value</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetSDCOInto.py" line="77"/>
+        <location filename="InterfaceQT4/monWidgetSDCOInto.py" line="77"/>
         <source>impossible d&apos;evaluer : </source>
-        <translation>unable to evaluate :</translation>
+        <translation type="obsolete">unable to evaluate :</translation>
     </message>
     <message>
-        <location filename="../../Extensions/parametre_eval.py" line="170"/>
+        <location filename="Extensions/parametre_eval.py" line="170"/>
         <source>Un concept de nom %s existe d&#xe9;j&#xe0; !</source>
-        <translation>already existing concept with name : %s !</translation>
+        <translation type="obsolete">already existing concept with name : %s !</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetCreeParam.py" line="109"/>
+        <location filename="InterfaceQT4/monWidgetCreeParam.py" line="109"/>
         <source> existe deja
  </source>
-        <translation>already exists</translation>
+        <translation type="obsolete">already exists</translation>
     </message>
     <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="624"/>
+        <location filename="Ihm/I_MCSIMP.py" line="624"/>
         <source>La matrice n&apos;a pas le bon entete</source>
-        <translation>header does not match with matrix</translation>
+        <translation type="obsolete">header does not match with matrix</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="463"/>
+        <location filename="InterfaceQT4/browser.py" line="463"/>
         <source>le mot clef </source>
-        <translation>keyword </translation>
+        <translation type="obsolete">keyword </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="455"/>
+        <location filename="InterfaceQT4/browser.py" line="455"/>
         <source> doit etre insere avant </source>
-        <translation> has to be inserted before </translation>
+        <translation type="obsolete"> has to be inserted before </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="464"/>
+        <location filename="InterfaceQT4/browser.py" line="464"/>
         <source>insertion impossible</source>
-        <translation>unable to insert keyword</translation>
+        <translation type="obsolete">unable to insert keyword</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/browser.py" line="463"/>
+        <location filename="InterfaceQT4/browser.py" line="463"/>
         <source> doit etre insere apres </source>
-        <translation> has to be inserted after </translation>
+        <translation type="obsolete"> has to be inserted after </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursTuple.py" line="244"/>
+        <location filename="InterfaceQT4/monWidgetPlusieursTuple.py" line="244"/>
         <source>Nb maximum de valeurs atteint</source>
-        <translation>Maximal number of values </translation>
+        <translation type="obsolete">Maximal number of values </translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/gereRegles.py" line="58"/>
+        <location filename="InterfaceQT4/gereRegles.py" line="58"/>
         <source>pas de regle de construction pour ce jeu de commandes</source>
-        <translation>No specific rules for building this dataset</translation>
+        <translation type="obsolete">No specific rules for building this dataset</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="260"/>
+        <location filename="InterfaceQT4/qtEficas.py" line="260"/>
         <source>Gestion Maillage</source>
-        <translation>Mesh Menu</translation>
+        <translation type="obsolete">Mesh Menu</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="401"/>
+        <location filename="InterfaceQT4/qtEficas.py" line="401"/>
         <source>Acquiert groupe mailles</source>
-        <translation>Read elements mesh</translation>
+        <translation type="obsolete">Read elements mesh</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="406"/>
+        <location filename="InterfaceQT4/qtEficas.py" line="406"/>
         <source>Acquisition Groupe Maille</source>
-        <translation>Read elements mesh</translation>
+        <translation type="obsolete">Read elements mesh</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="1"/>
+        <location filename="Carmel3D/PourTraduction.py" line="1"/>
         <source>VERSION</source>
-        <translation>VERSION_EN</translation>
+        <translation type="obsolete">VERSION_EN</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="2"/>
+        <location filename="Carmel3D/PourTraduction.py" line="2"/>
         <source>NUM</source>
-        <translation>NUMBER</translation>
+        <translation type="obsolete">NUMBER</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="3"/>
+        <location filename="Carmel3D/PourTraduction.py" line="3"/>
         <source>FILETYPE</source>
-        <translation>FILETYPE</translation>
+        <translation type="obsolete">FILETYPE</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="4"/>
+        <location filename="Carmel3D/PourTraduction.py" line="4"/>
         <source>PARAMETERS</source>
-        <translation>Parametres</translation>
+        <translation type="obsolete">Parametres</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="6"/>
+        <location filename="Carmel3D/PourTraduction.py" line="6"/>
         <source>Fichier_maillage</source>
-        <translation>FichierMaillage</translation>
+        <translation type="obsolete">FichierMaillage</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="7"/>
+        <location filename="Carmel3D/PourTraduction.py" line="7"/>
         <source>Echelle_du_maillage</source>
-        <translation>MeshScale</translation>
+        <translation type="obsolete">MeshScale</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="8"/>
+        <location filename="Carmel3D/PourTraduction.py" line="8"/>
         <source>Formulation</source>
-        <translation>Fomulation</translation>
+        <translation type="obsolete">Fomulation</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="9"/>
+        <location filename="Carmel3D/PourTraduction.py" line="9"/>
         <source>Timeproblem</source>
-        <translation>TimeProblem</translation>
+        <translation type="obsolete">TimeProblem</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="10"/>
+        <location filename="Carmel3D/PourTraduction.py" line="10"/>
         <source>spectral </source>
-        <translation>EssaiSpectral</translation>
+        <translation type="obsolete">EssaiSpectral</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="11"/>
+        <location filename="Carmel3D/PourTraduction.py" line="11"/>
         <source>Basis</source>
-        <translation>Basis</translation>
+        <translation type="obsolete">Basis</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="12"/>
+        <location filename="Carmel3D/PourTraduction.py" line="12"/>
         <source>Fourier</source>
-        <translation>Fourier</translation>
+        <translation type="obsolete">Fourier</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="13"/>
+        <location filename="Carmel3D/PourTraduction.py" line="13"/>
         <source>Ordre</source>
-        <translation>Ordre</translation>
+        <translation type="obsolete">Ordre</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="14"/>
+        <location filename="Carmel3D/PourTraduction.py" line="14"/>
         <source>FREQUENCY</source>
-        <translation>Frequency</translation>
+        <translation type="obsolete">Frequency</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="15"/>
+        <location filename="Carmel3D/PourTraduction.py" line="15"/>
         <source>minimisation</source>
-        <translation>Minimisation</translation>
+        <translation type="obsolete">Minimisation</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="16"/>
+        <location filename="Carmel3D/PourTraduction.py" line="16"/>
         <source>no</source>
-        <translation>no</translation>
+        <translation type="obsolete">no</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="17"/>
+        <location filename="Carmel3D/PourTraduction.py" line="17"/>
         <source>yes</source>
-        <translation>yes</translation>
+        <translation type="obsolete">yes</translation>
     </message>
     <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="18"/>
+        <location filename="Carmel3D/PourTraduction.py" line="18"/>
         <source>nb_procs_para</source>
-        <translation>NbProcs</translation>
+        <translation type="obsolete">NbProcs</translation>
     </message>
     <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="1"/>
+        <location filename="monCode/EssaiTraduction.py" line="1"/>
         <source>POLYMER</source>
-        <translation>Polymer_en_Anglais</translation>
+        <translation type="obsolete">Polymer_en_Anglais</translation>
     </message>
     <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="2"/>
+        <location filename="monCode/EssaiTraduction.py" line="2"/>
         <source>MODEL_DATABASE</source>
-        <translation>MoDEL_DATa_Anglais</translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/commande_comm.py" line="62"/>
-        <source>Objet commande commentaris&#xe9; invalide</source>
-        <translation type="unfinished"></translation>
+        <translation type="obsolete">MoDEL_DATa_Anglais</translation>
     </message>
 </context>
 <context>
     <name>ChoixCode</name>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="20"/>
+        <location filename="desChoixCode.ui" line="20"/>
         <source>Choix du code</source>
         <translation>Choose code</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="38"/>
+        <location filename="desChoixCode.ui" line="38"/>
         <source>Veuillez choisir un code :</source>
         <translation>Choose code :</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="91"/>
+        <location filename="desChoixCode.ui" line="106"/>
         <source>&amp;Cancel</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="126"/>
+        <location filename="desChoixCode.ui" line="141"/>
         <source>Validate choice</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="136"/>
+        <location filename="desChoixCode.ui" line="151"/>
         <source>&amp;OK</source>
         <translation></translation>
     </message>
@@ -2175,95 +2067,123 @@ Le fichier associe n&apos;est pas defini</source>
 <context>
     <name>ChoixCommandes</name>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="26"/>
+        <location filename="desChoixCommandes.ui" line="26"/>
         <source>DMacro</source>
         <translation>DMacro</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="89"/>
+        <location filename="desChoixCommandes.ui" line="119"/>
         <source>Alphabetique</source>
         <translation>alphabetic sort</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="109"/>
+        <location filename="desChoixCommandes.ui" line="139"/>
         <source>Par Groupe</source>
         <translation>Sort by group</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="79"/>
+        <location filename="desChoixCommandes.ui" line="109"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; text-decoration: underline;&quot;&gt;Affichage&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; text-decoration: underline;&quot;&gt;Order&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="86"/>
+        <location filename="desChoixCommandes.ui" line="116"/>
         <source>affiche les commandes par ordre alphabetique</source>
         <translation>display commands in alphabetic order</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="106"/>
+        <location filename="desChoixCommandes.ui" line="136"/>
         <source>affiche les commandes selon les thèmes</source>
         <translation>display commands by thema</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="99"/>
+        <location filename="desChoixCommandes.ui" line="129"/>
         <source>Ordre de la modélisation</source>
         <translation>ordered by modelisation</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="166"/>
+        <location filename="desChoixCommandes.ui" line="193"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;Filtre Commande&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;Filters Commands&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="188"/>
+        <location filename="desChoixCommandes.ui" line="231"/>
         <source>filter commands</source>
         <translation>filters commands</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="283"/>
+        <location filename="desChoixCommandes.ui" line="341"/>
         <source>affiche les régles de validité</source>
         <translation>display validity rules</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="289"/>
+        <location filename="desChoixCommandes.ui" line="347"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="306"/>
+        <location filename="desChoixCommandes.ui" line="364"/>
         <source>Règles de construction</source>
         <translation>Building Rules</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="203"/>
+        <location filename="desChoixCommandes.ui" line="250"/>
         <source>Sensible à la casse</source>
         <translation>case-sensitive</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="240"/>
+        <location filename="desChoixCommandes.ui" line="300"/>
         <source>Effacer </source>
         <translation>Clear</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="154"/>
+        <location filename="desChoixCommandes.ui" line="181"/>
         <source>selectionne les mots qui CONTIENNENT l expression</source>
         <translation>select words that CONTAINS the filter</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="231"/>
+        <location filename="desChoixCommandes.ui" line="291"/>
         <source>ré-affiche toutes les commandes</source>
         <translation>re-display the list of commands</translation>
     </message>
 </context>
+<context>
+    <name>ChoixLangue</name>
+    <message>
+        <location filename="desChoixLangue.ui" line="20"/>
+        <source>Langue</source>
+        <translation>lang</translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desChoixLangue.ui" line="53"/>
+        <source>Français</source>
+        <translation>French</translation>
+    </message>
+    <message>
+        <location filename="desChoixLangue.ui" line="60"/>
+        <source>English</source>
+        <translation>English</translation>
+    </message>
+    <message>
+        <location filename="desChoixLangue.ui" line="96"/>
+        <source>Validate choice</source>
+        <translation>Validate choice</translation>
+    </message>
+    <message>
+        <location filename="desChoixLangue.ui" line="106"/>
+        <source>&amp;OK</source>
+        <translation>&amp;OK</translation>
+    </message>
+</context>
 <context>
     <name>DChoixCata</name>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="14"/>
+        <location filename="desChoixCata.ui" line="14"/>
         <source>Choix d&apos;une version du code Aster</source>
         <translation>Choose a version for code Aster</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="31"/>
+        <location filename="desChoixCata.ui" line="31"/>
         <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
@@ -2272,17 +2192,17 @@ p, li { white-space: pre-wrap; }
         <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;p, li { white-space: pre-wrap; }&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;2 catalogs are available &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="180"/>
+        <location filename="desChoixCata.ui" line="180"/>
         <source>&amp;OK</source>
         <translation>&amp;Ok</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="135"/>
+        <location filename="desChoixCata.ui" line="135"/>
         <source>&amp;Cancel</source>
         <translation>&amp;Cancel</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="170"/>
+        <location filename="desChoixCata.ui" line="170"/>
         <source>Validate choice</source>
         <translation>validate choice</translation>
     </message>
@@ -2290,37 +2210,37 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>DSelVal</name>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desSelectVal.ui" line="20"/>
+        <location filename="desSelectVal.ui" line="20"/>
         <source>Sélection de valeurs</source>
         <translation>Values Selections</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="72"/>
+        <location filename="desSelectVal.ui" line="78"/>
         <source>Separateur</source>
         <translation>marker</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="114"/>
+        <location filename="desSelectVal.ui" line="120"/>
         <source>espace</source>
         <translation>space</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="124"/>
+        <location filename="desSelectVal.ui" line="130"/>
         <source>virgule</source>
         <translation>comma</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="131"/>
+        <location filename="desSelectVal.ui" line="137"/>
         <source>point-virgule</source>
         <translation>semi-colon</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="238"/>
+        <location filename="desSelectVal.ui" line="244"/>
         <source>Ajouter Selection</source>
         <translation>add selected value</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="207"/>
+        <location filename="desSelectVal.ui" line="213"/>
         <source>Importer Tout</source>
         <translation>imports all values</translation>
     </message>
@@ -2328,7 +2248,7 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>DVisu</name>
     <message>
-        <location filename="../../UiQT4/desVisu.ui" line="14"/>
+        <location filename="desVisu.ui" line="14"/>
         <source>Visualisation Include Materiau</source>
         <translation>View Include</translation>
     </message>
@@ -2336,338 +2256,333 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>Eficas</name>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="20"/>
+        <location filename="myMain.ui" line="20"/>
         <source>MainWindow</source>
         <translation>Main Window</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="132"/>
+        <location filename="myMain.ui" line="138"/>
         <source>&amp;Fichier</source>
         <translation>&amp;File</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="173"/>
+        <location filename="myMain.ui" line="182"/>
         <source>&amp;Aide</source>
         <translation>&amp;Help</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="187"/>
+        <location filename="myMain.ui" line="196"/>
         <source>toolBar</source>
         <translation>toolBar</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="219"/>
+        <location filename="myMain.ui" line="227"/>
         <source>&amp;Nouveau</source>
         <translation>&amp;New</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="222"/>
+        <location filename="myMain.ui" line="230"/>
         <source>Ctrl+N</source>
         <translation>Ctrl+N</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="227"/>
+        <location filename="myMain.ui" line="235"/>
         <source>Nouvel Include</source>
         <translation>New Include</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="245"/>
+        <location filename="myMain.ui" line="252"/>
         <source>&amp;Ouvrir</source>
         <translation>&amp;Open</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="248"/>
+        <location filename="myMain.ui" line="255"/>
         <source>Ctrl+O</source>
         <translation>Ctrl+O</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="258"/>
+        <location filename="myMain.ui" line="264"/>
         <source>Enregistrer</source>
         <translation>Save</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="276"/>
+        <location filename="myMain.ui" line="281"/>
         <source>Enregistrer sous</source>
         <translation>Save as</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="284"/>
+        <location filename="myMain.ui" line="289"/>
         <source>Fermer </source>
         <translation>Close</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="287"/>
+        <location filename="myMain.ui" line="292"/>
         <source>Ctrl+W</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="292"/>
+        <location filename="myMain.ui" line="297"/>
         <source>Fermer tout</source>
         <translation>Close all</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="302"/>
+        <location filename="myMain.ui" line="306"/>
         <source>Couper</source>
         <translation>Cut</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="305"/>
+        <location filename="myMain.ui" line="309"/>
         <source>Ctrl+X</source>
         <translation>Ctrl+X</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="318"/>
+        <location filename="myMain.ui" line="321"/>
         <source>Copier</source>
         <translation>Copy</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="321"/>
+        <location filename="myMain.ui" line="324"/>
         <source>Ctrl+C</source>
         <translation>Ctrl+C</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="334"/>
+        <location filename="myMain.ui" line="336"/>
         <source>Coller</source>
         <translation>Paste</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="337"/>
+        <location filename="myMain.ui" line="339"/>
         <source>Ctrl+V</source>
         <translation>Ctrl+V</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="345"/>
+        <location filename="myMain.ui" line="347"/>
         <source>Quitter</source>
         <translation>Exit</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="348"/>
+        <location filename="myMain.ui" line="350"/>
         <source>Ctrl+Q</source>
         <translation>Ctrl+Q</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="353"/>
+        <location filename="myMain.ui" line="355"/>
         <source>Rapport de Validation</source>
         <translation>Validation Report</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="364"/>
+        <location filename="myMain.ui" line="366"/>
         <source>Fichier Source</source>
         <translation>Source File</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="369"/>
+        <location filename="myMain.ui" line="371"/>
         <source>Fichier Résultat</source>
         <translation>Result File</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="266"/>
+        <location filename="myMain.ui" line="272"/>
         <source>Parametres Eficas</source>
         <translation>Eficas Parameters</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="374"/>
+        <location filename="myMain.ui" line="376"/>
         <source>Lecteur documentation</source>
         <translation>documentation reader</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="379"/>
+        <location filename="myMain.ui" line="381"/>
         <source>Eficas</source>
         <translation>Eficas</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="384"/>
+        <location filename="myMain.ui" line="386"/>
         <source>Version</source>
         <translation>Version</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="394"/>
+        <location filename="myMain.ui" line="395"/>
         <source>Supprimer</source>
         <translation>Delete</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="418"/>
+        <location filename="myMain.ui" line="418"/>
         <source>Rechercher</source>
         <translation>Find</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="421"/>
+        <location filename="myMain.ui" line="421"/>
         <source> Rechercher dans l&apos;arbre d&apos;etude</source>
         <translation>Find in Data Tree</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="424"/>
+        <location filename="myMain.ui" line="424"/>
         <source>Ctrl+F</source>
         <translation>Ctrl+F</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="432"/>
+        <location filename="myMain.ui" line="432"/>
         <source>Replier/Deplier</source>
         <translation>Expand/Collapse</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="158"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="158"/>
         <source>Execution</source>
-        <translation>Run</translation>
+        <translation type="obsolete">Run</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="166"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="166"/>
         <source>Execution </source>
-        <translation>Run</translation>
+        <translation type="obsolete">Run</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="326"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="326"/>
         <source>Patrons</source>
-        <translation>Patterns</translation>
+        <translation type="obsolete">Patterns</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="114"/>
+        <location filename="myMain.ui" line="120"/>
         <source>Tab 1</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="148"/>
+        <location filename="myMain.ui" line="154"/>
         <source>&amp;Edition</source>
         <translation>&amp;Edit</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="161"/>
+        <location filename="myMain.ui" line="167"/>
         <source>&amp;JeuDeDonnées</source>
         <translation>&amp;Data</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="230"/>
+        <location filename="myMain.ui" line="238"/>
         <source>Shift+I</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="261"/>
+        <location filename="myMain.ui" line="267"/>
         <source>Ctrl+S</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="279"/>
+        <location filename="myMain.ui" line="284"/>
         <source>Ctrl+Shift+S</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="356"/>
+        <location filename="myMain.ui" line="358"/>
         <source>Shift+V</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="399"/>
+        <location filename="myMain.ui" line="400"/>
         <source>Chercher Mot-Clef</source>
         <translation> Find Keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="402"/>
+        <location filename="myMain.ui" line="403"/>
         <source> Rechercher dans le catalogue</source>
         <translation>Find Keyword in Catalog</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="405"/>
+        <location filename="myMain.ui" line="406"/>
         <source>Shift+F</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="435"/>
+        <location filename="myMain.ui" line="435"/>
         <source>Shift+D</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="440"/>
+        <location filename="myMain.ui" line="440"/>
         <source>Commentaire</source>
         <translation>Comment</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="443"/>
+        <location filename="myMain.ui" line="443"/>
         <source>Shift+C</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="452"/>
+        <location filename="myMain.ui" line="452"/>
         <source>Paramètres</source>
         <translation>Parameters</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="455"/>
+        <location filename="myMain.ui" line="455"/>
         <source>Gestion des paramètres</source>
         <translation>Managing parameters</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="458"/>
+        <location filename="myMain.ui" line="458"/>
         <source>Shift+P</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="463"/>
+        <location filename="myMain.ui" line="463"/>
         <source>Parametre Eficas</source>
         <translation>Eficas Settings</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="176"/>
+        <location filename="InterfaceQT4/qtEficas_with_log.py" line="176"/>
         <source>Save Run</source>
-        <translation>Save run</translation>
+        <translation type="obsolete">Save run</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="184"/>
+        <location filename="InterfaceQT4/qtEficas.py" line="184"/>
         <source>Run</source>
-        <translation>run</translation>
+        <translation type="obsolete">run</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="235"/>
+        <location filename="myMain.ui" line="243"/>
         <source>&amp;bad</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="468"/>
+        <location filename="myMain.ui" line="468"/>
         <source>Régles du JdC</source>
         <translation>Rules for dataset</translation>
     </message>
-</context>
-<context>
-    <name>JDCEditor</name>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="785"/>
-        <source>Save File</source>
-        <translation></translation>
-    </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="785"/>
-        <source>The file &lt;b&gt;%1&lt;/b&gt; could not be saved.&lt;br&gt;Reason: %2</source>
-        <translation></translation>
+        <location filename="myMain.ui" line="473"/>
+        <source>Cacher l&apos;Arbre</source>
+        <translation>Hide dataset tree</translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="930"/>
-        <source>JDC (*.comm);;All Files (*)</source>
-        <translation></translation>
+        <location filename="myMain.ui" line="478"/>
+        <source>Afficher l&apos;Arbre</source>
+        <translation>Show dataset tree</translation>
     </message>
+</context>
+<context>
+    <name>JDCEditor</name>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
+        <location filename="InterfaceQT4/editor.py" line="944"/>
         <source>&amp;Abandonner</source>
-        <translation>&amp;Cancel</translation>
+        <translation type="obsolete">&amp;Cancel</translation>
     </message>
 </context>
 <context>
     <name>Tuple2</name>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="20"/>
+        <location filename="Tuple2.ui" line="20"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="41"/>
+        <location filename="Tuple2.ui" line="41"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="82"/>
+        <location filename="Tuple2.ui" line="82"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="118"/>
+        <location filename="Tuple2.ui" line="118"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -2675,22 +2590,22 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>Tuple3</name>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="14"/>
+        <location filename="Tuple3.ui" line="14"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="26"/>
+        <location filename="Tuple3.ui" line="26"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="100"/>
+        <location filename="Tuple3.ui" line="100"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="136"/>
+        <location filename="Tuple3.ui" line="136"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -2698,32 +2613,32 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>Widget4a6RadioButton</name>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="97"/>
+        <location filename="desWidget4a6RadioButton.ui" line="97"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="320"/>
+        <location filename="desWidget4a6RadioButton.ui" line="332"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="32"/>
+        <location filename="desWidget4a6RadioButton.ui" line="32"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="326"/>
+        <location filename="desWidget4a6RadioButton.ui" line="338"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="158"/>
+        <location filename="desWidget4a6RadioButton.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="260"/>
+        <location filename="desWidget4a6RadioButton.ui" line="272"/>
         <source>RadioButton</source>
         <translation></translation>
     </message>
@@ -2731,7 +2646,7 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetBloc</name>
     <message>
-        <location filename="../../UiQT4/desWidgetBloc.ui" line="14"/>
+        <location filename="desWidgetBloc.ui" line="14"/>
         <source>Form</source>
         <translation></translation>
     </message>
@@ -2739,27 +2654,27 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetCB</name>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="100"/>
+        <location filename="desWidgetCB.ui" line="100"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>display validation report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCB.ui" line="261"/>
+        <location filename="desWidgetCB.ui" line="261"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="32"/>
+        <location filename="desWidgetCB.ui" line="32"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="267"/>
+        <location filename="desWidgetCB.ui" line="267"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="161"/>
+        <location filename="desWidgetCB.ui" line="161"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -2767,87 +2682,87 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetCommande</name>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="90"/>
+        <location filename="desWidgetCommande.ui" line="127"/>
         <source>Affiche le rapport de validité de la commande</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="147"/>
+        <location filename="desWidgetCommande.ui" line="184"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;command &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="176"/>
+        <location filename="desWidgetCommande.ui" line="213"/>
         <source>Nom de l&apos;objet. Seuls, les objets valides peuvent être nommés</source>
         <translation>Object Name. Only valid objects can be named </translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="240"/>
+        <location filename="desWidgetCommande.ui" line="290"/>
         <source>Lance un script associé à la commande</source>
         <translation>Run associated script</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="278"/>
+        <location filename="desWidgetCommande.ui" line="347"/>
         <source>ouvre un navigateur sur l&apos;aide contextuelle</source>
         <translation>open a browser to navigate to contextual help</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="316"/>
+        <location filename="desWidgetCommande.ui" line="385"/>
         <source>affiche les régles de validité</source>
         <translation>display validity rules</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="372"/>
+        <location filename="desWidgetCommande.ui" line="441"/>
         <source>Détruit la commande</source>
         <translation>Delete the command</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="422"/>
+        <location filename="desWidgetCommande.ui" line="490"/>
         <source>Affiche les commandes possibles</source>
         <translation>display allowed commands</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="431"/>
+        <location filename="desWidgetCommande.ui" line="499"/>
         <source>&amp;Commandes</source>
         <translation>&amp;Commands</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="528"/>
+        <location filename="desWidgetCommande.ui" line="606"/>
         <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
         <translation>Shift+A, Alt+A, Alt+A, Alt+A</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="470"/>
+        <location filename="desWidgetCommande.ui" line="548"/>
         <source>Affiche le formulaire de la commande précédente</source>
         <translation>display previous command</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="516"/>
+        <location filename="desWidgetCommande.ui" line="594"/>
         <source>Affiche le formulaire de la commande suivante</source>
         <translation>display next command</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="26"/>
+        <location filename="desWidgetCommande.ui" line="26"/>
         <source>DCommandeUnique</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="378"/>
+        <location filename="desWidgetCommande.ui" line="447"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="479"/>
+        <location filename="desWidgetCommande.ui" line="557"/>
         <source>&lt;&lt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="525"/>
+        <location filename="desWidgetCommande.ui" line="603"/>
         <source>&gt;&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="547"/>
+        <location filename="desWidgetCommande.ui" line="515"/>
         <source>TextLabel</source>
         <translation></translation>
     </message>
@@ -2855,85 +2770,100 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetCommentaire</name>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="147"/>
+        <location filename="UiQT4/desWidgetCommentaire.ui" line="147"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Commentaire&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Comment&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+        <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Comment&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="227"/>
+        <location filename="desWidgetCommentaire.ui" line="330"/>
         <source>Affiche les commandes possibles</source>
         <translation>display allowed commands</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="333"/>
+        <location filename="desWidgetCommentaire.ui" line="436"/>
         <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
         <translation>Shift+A, Alt+A, Alt+A, Alt+A</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="182"/>
+        <location filename="UiQT4/desWidgetCommentaire.ui" line="182"/>
         <source>Détruit le commentaire</source>
-        <translation>Delete the comment</translation>
+        <translation type="obsolete">Delete the comment</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="236"/>
+        <location filename="desWidgetCommentaire.ui" line="339"/>
         <source>&amp;Commandes</source>
         <translation>&amp;Commands</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="275"/>
+        <location filename="desWidgetCommentaire.ui" line="378"/>
         <source>Affiche le formulaire de la commande précédente</source>
         <translation>display previous command</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="321"/>
+        <location filename="desWidgetCommentaire.ui" line="424"/>
         <source>Affiche le formulaire de la commande suivante</source>
         <translation>display next command</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="26"/>
+        <location filename="desWidgetCommentaire.ui" line="26"/>
         <source>DCommandeUnique</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="188"/>
+        <location filename="desWidgetCommentaire.ui" line="285"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="284"/>
+        <location filename="desWidgetCommentaire.ui" line="387"/>
         <source>&lt;&lt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="330"/>
+        <location filename="desWidgetCommentaire.ui" line="433"/>
         <source>&gt;&gt;</source>
         <translation></translation>
     </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommentaire.ui" line="152"/>
+        <source>Affiche le rapport de validité de la commande</source>
+        <translation>Display validity report for the keyword</translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="209"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Commentaire&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Comment&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommentaire.ui" line="279"/>
+        <source>Détruit la commande</source>
+        <translation>Delete the command</translation>
+    </message>
 </context>
 <context>
     <name>WidgetDate</name>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="91"/>
+        <location filename="desWidgetDate.ui" line="91"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetDate.ui" line="230"/>
+        <location filename="desWidgetDate.ui" line="230"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="26"/>
+        <location filename="desWidgetDate.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="236"/>
+        <location filename="desWidgetDate.ui" line="236"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="152"/>
+        <location filename="desWidgetDate.ui" line="152"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -2941,89 +2871,342 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetFact</name>
     <message>
-        <location filename="../../UiQT4/desWidgetFact.ui" line="17"/>
+        <location filename="desWidgetFact.ui" line="17"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetFact.ui" line="344"/>
+        <location filename="desWidgetFact.ui" line="404"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetFact.ui" line="175"/>
+        <location filename="desWidgetFact.ui" line="175"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;TextLabel&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFact.ui" line="262"/>
+        <source>Lance un script associé à la commande</source>
+        <translation>Run associated script</translation>
+    </message>
+</context>
+<context>
+    <name>WidgetFactHorizon</name>
+    <message>
+        <location filename="desWidgetFactHorizon.ui" line="17"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFactHorizon.ui" line="382"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFactHorizon.ui" line="175"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;TextLabel&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFactHorizon.ui" line="262"/>
+        <source>Lance un script associé à la commande</source>
+        <translation>Run associated script</translation>
+    </message>
 </context>
 <context>
     <name>WidgetFactPlie</name>
     <message>
-        <location filename="../../UiQT4/desWidgetFactPlie.ui" line="142"/>
+        <location filename="desWidgetFactPlie.ui" line="128"/>
         <source>TextLabel</source>
         <translation>TextLabel</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetFactPlie.ui" line="14"/>
+        <location filename="desWidgetFactPlie.ui" line="14"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetFactPlie.ui" line="189"/>
+        <location filename="desWidgetFactPlie.ui" line="191"/>
         <source>...</source>
         <translation></translation>
     </message>
 </context>
+<context>
+    <name>WidgetFormule</name>
+    <message>
+        <location filename="desWidgetFormule.ui" line="26"/>
+        <source>DCommandeUnique</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFormule.ui" line="90"/>
+        <source>Affiche le rapport de validité de la commande</source>
+        <translation>Display validity report for the keyword</translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="264"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="147"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Formule&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFormule.ui" line="176"/>
+        <source>Nom de l&apos;objet. Seuls, les objets valides peuvent être nommés</source>
+        <translation type="unfinished">Object Name. Only valid objects can be named </translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFormule.ui" line="258"/>
+        <source>Détruit la commande</source>
+        <translation type="unfinished">Delete the command</translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="308"/>
+        <source>Affiche les commandes possibles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="317"/>
+        <source>&amp;Commandes</source>
+        <translation type="unfinished">&amp;Commands</translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="414"/>
+        <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
+        <translation type="unfinished">Shift+A, Alt+A, Alt+A, Alt+A</translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFormule.ui" line="356"/>
+        <source>Affiche le formulaire de la commande précédente</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="365"/>
+        <source>&lt;&lt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="402"/>
+        <source>Affiche le formulaire de la commande suivante</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="411"/>
+        <source>&gt;&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="477"/>
+        <source>&lt;h3&gt;&lt;p align=&quot;center&quot;&gt;&lt;u&gt;&lt;b&gt;Nom de la formule&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;/h3&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="489"/>
+        <source>&lt;h3&gt;&lt;p align=&quot;center&quot;&gt;&lt;u&gt;&lt;b&gt;Arguments&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;/h3&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFormule.ui" line="499"/>
+        <source>variables séparées par des &quot;,&quot;
+          par ex. : x,y,z</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="524"/>
+        <source>&lt;h3&gt;&lt;p align=&quot;center&quot;&gt;&lt;u&gt;&lt;b&gt;Expression&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;/h3&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="562"/>
+        <source>&lt;h1&gt;&lt;b&gt;(&lt;/b&gt;&lt;/h1&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="582"/>
+        <source>&lt;h1&gt;&lt;b&gt;)&lt;/b&gt;&lt;/h1&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFormule.ui" line="627"/>
+        <source>&lt;font size=&quot;+4&quot; face=&quot;Helvetica&quot;&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>WidgetHeure</name>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="86"/>
+        <location filename="desWidgetHeure.ui" line="86"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="203"/>
+        <location filename="desWidgetHeure.ui" line="203"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="26"/>
+        <location filename="desWidgetHeure.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="209"/>
+        <location filename="desWidgetHeure.ui" line="209"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="132"/>
+        <location filename="desWidgetHeure.ui" line="132"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="145"/>
+        <location filename="desWidgetHeure.ui" line="145"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
 </context>
+<context>
+    <name>WidgetInactif</name>
+    <message>
+        <location filename="desWidgetInactif.ui" line="20"/>
+        <source>DInactif</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="77"/>
+        <source>Affiche le rapport de validité de la commande</source>
+        <translation>Display validity report for the keyword</translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="137"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;command &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html</translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="217"/>
+        <source>Détruit la commande</source>
+        <translation>Delete the command</translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="223"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="266"/>
+        <source>Affiche les commandes possibles</source>
+        <translation>Available commands</translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="275"/>
+        <source>&amp;Commandes</source>
+        <translation>>&amp;Commands</translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="372"/>
+        <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
+        <translation type="unfinished">Shift+A, Alt+A, Alt+A, Alt+A</translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="314"/>
+        <source>Affiche le formulaire de la commande précédente</source>
+        <translation>previous command</translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="323"/>
+        <source>&lt;&lt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="360"/>
+        <source>Affiche le formulaire de la commande suivante</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetInactif.ui" line="369"/>
+        <source>&gt;&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="410"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;Le noeud sélectionné&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;ne correspond pas à un objet actif&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="433"/>
+        <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;&quot;&gt;&lt;span style=&quot; font-size:x-large;&quot;&gt;Seules les commandes placées&lt;/span&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;&quot;&gt;&lt;span style=&quot; font-size:x-large;&quot;&gt; entre : DEBUT / FIN sont actives &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>WidgetInformative</name>
     <message>
-        <location filename="../../UiQT4/desWidgetInformation.ui" line="26"/>
+        <location filename="desWidgetInformation.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
 </context>
+<context>
+    <name>WidgetIntoSug</name>
+    <message>
+        <location filename="desWidgetIntoSug.ui" line="26"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetIntoSug.ui" line="57"/>
+        <source>permet de gérer la liste</source>
+        <translation type="unfinished">manage list</translation>
+    </message>
+    <message>
+        <location filename="desWidgetIntoSug.ui" line="410"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetIntoSug.ui" line="95"/>
+        <source>Affiche le rapport de validation du mot-clef</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetIntoSug.ui" line="158"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetIntoSug.ui" line="246"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetIntoSug.ui" line="295"/>
+        <source>Valeurs hors liste - la valeur saisie sera ajoutée à la liste</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetIntoSug.ui" line="404"/>
+        <source>Détruit le mot-clef</source>
+        <translation type="unfinished">Delete the keyword</translation>
+    </message>
+</context>
 <context>
     <name>WidgetOptionnel</name>
     <message>
-        <location filename="../../UiQT4/desWidgetOptionnel.ui" line="69"/>
+        <location filename="desWidgetOptionnel.ui" line="84"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;command &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetOptionnel.ui" line="26"/>
+        <location filename="desWidgetOptionnel.ui" line="26"/>
         <source>WidgetOptionnel</source>
         <translation></translation>
     </message>
@@ -3031,284 +3214,334 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetParam</name>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetParam.ui" line="141"/>
+        <location filename="desWidgetParam.ui" line="188"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#000000;&quot;&gt;Paramètre&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#000000;&quot;&gt;Parameter&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetParam.ui" line="176"/>
+        <location filename="UiQT4/desWidgetParam.ui" line="176"/>
         <source>Détruit le commentaire</source>
-        <translation>Delete the comment</translation>
+        <translation type="obsolete">Delete the comment</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="460"/>
+        <location filename="desWidgetParam.ui" line="568"/>
         <source>Affiche les commandes possibles</source>
         <translation>Display allowed commands</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="230"/>
+        <location filename="desWidgetParam.ui" line="335"/>
         <source>&amp;Commandes</source>
         <translation>&amp;Commands</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="472"/>
+        <location filename="desWidgetParam.ui" line="580"/>
         <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
         <translation>Shift+A, Alt+A, Alt+A, Alt+A</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetParam.ui" line="269"/>
+        <location filename="desWidgetParam.ui" line="374"/>
         <source>Affiche le formulaire de la commande précédente</source>
         <translation>Display previous command</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="315"/>
+        <location filename="desWidgetParam.ui" line="420"/>
         <source>Affiche le formulaire de la commande suivante</source>
         <translation>Display next command</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="385"/>
+        <location filename="desWidgetParam.ui" line="493"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Valeur: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Value: &lt;/p&gt;&lt;/body&gt;&lt;/html&lt;</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="425"/>
+        <location filename="desWidgetParam.ui" line="533"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Name: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="469"/>
+        <location filename="desWidgetParam.ui" line="577"/>
         <source>Verifie la valeur</source>
         <translation>Valid the value</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="26"/>
+        <location filename="desWidgetParam.ui" line="26"/>
         <source>DCommandeUnique</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="182"/>
+        <location filename="desWidgetParam.ui" line="264"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="278"/>
+        <location filename="desWidgetParam.ui" line="383"/>
         <source>&lt;&lt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="324"/>
+        <location filename="desWidgetParam.ui" line="429"/>
         <source>&gt;&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="487"/>
+        <location filename="desWidgetParam.ui" line="595"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetParam.ui" line="131"/>
+        <source>Affiche le rapport de validité de la commande</source>
+        <translation>Display validity report for the keyword</translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetParam.ui" line="258"/>
+        <source>Détruit la commande</source>
+        <translation>Delete the command</translation>
+    </message>
 </context>
 <context>
     <name>WidgetPlusieursBase</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="116"/>
+        <location filename="desWidgetPlusieursBase.ui" line="116"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="386"/>
+        <location filename="desWidgetPlusieursBase.ui" line="398"/>
         <source>Remonte la ligne</source>
         <translation>up</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="425"/>
+        <location filename="desWidgetPlusieursBase.ui" line="436"/>
         <source>Descend la ligne</source>
         <translation>down</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="464"/>
+        <location filename="desWidgetPlusieursBase.ui" line="474"/>
         <source>supprime une ligne</source>
         <translation>deletes a line</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="503"/>
+        <location filename="desWidgetPlusieursBase.ui" line="512"/>
         <source>Ajoute une ligne</source>
         <translation>add a line</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="559"/>
+        <location filename="desWidgetPlusieursBase.ui" line="568"/>
         <source>Montre l&apos;ensemble des valeurs</source>
         <translation>display all the value</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="621"/>
+        <location filename="desWidgetPlusieursBase.ui" line="630"/>
         <source>Sélectionne depuis Salome</source>
         <translation>from salome</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="659"/>
+        <location filename="desWidgetPlusieursBase.ui" line="668"/>
         <source>Visualise dans Salome</source>
         <translation>Show in salome</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="717"/>
+        <location filename="desWidgetPlusieursBase.ui" line="726"/>
         <source>Ouvre un fichier de sélection des valeurs</source>
         <translation>Open a file for selection</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="772"/>
+        <location filename="desWidgetPlusieursBase.ui" line="780"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="26"/>
+        <location filename="desWidgetPlusieursBase.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="778"/>
+        <location filename="desWidgetPlusieursBase.ui" line="786"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="182"/>
+        <location filename="desWidgetPlusieursBase.ui" line="182"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="78"/>
+        <location filename="desWidgetPlusieursBase.ui" line="78"/>
         <source>permet de gérer la liste</source>
-        <translation type="unfinished">manage list</translation>
+        <translation>manage list</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="234"/>
+        <location filename="desWidgetPlusieursBase.ui" line="234"/>
         <source>TextLabel</source>
-        <translation type="unfinished">TextLabel</translation>
+        <translation>TextLabel</translation>
     </message>
 </context>
 <context>
     <name>WidgetPlusieursInto</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="110"/>
+        <location filename="desWidgetPlusieursInto.ui" line="95"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="350"/>
+        <location filename="desWidgetPlusieursInto.ui" line="525"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="26"/>
+        <location filename="desWidgetPlusieursInto.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="356"/>
+        <location filename="desWidgetPlusieursInto.ui" line="531"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="252"/>
+        <location filename="desWidgetPlusieursInto.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="72"/>
+        <location filename="desWidgetPlusieursInto.ui" line="57"/>
         <source>permet de gérer la liste</source>
-        <translation type="unfinished">manage list</translation>
+        <translation>manage list</translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursInto.ui" line="255"/>
+        <source>Cherche la valeur</source>
+        <translation>Values</translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursInto.ui" line="295"/>
+        <source>Original</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursInto.ui" line="302"/>
+        <source>Alpha</source>
+        <translation>Alpha</translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursInto.ui" line="402"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>WidgetPlusieursIntoOrdonne</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="110"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="110"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="228"/>
+        <location filename="UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="228"/>
         <source>TextLabel</source>
-        <translation>TextLabel</translation>
+        <translation type="obsolete">TextLabel</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="450"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="618"/>
         <source>Remonte d&apos;une ligne</source>
         <translation>Up</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="486"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="653"/>
         <source>Descend d&apos;une ligne</source>
         <translation>Down</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="522"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="688"/>
         <source>Détruit une ligne</source>
         <translation>Delete a line</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="557"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="723"/>
         <source>ajoute une ligne</source>
         <translation>add a line</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="607"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="773"/>
         <source>visualise l&apos;ensemble des valeurs</source>
         <translation>show all values</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="678"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="844"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="26"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="684"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="850"/>
         <source>...</source>
         <translation></translation>
     </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="72"/>
+        <source>permet de gérer la liste</source>
+        <translation>manage list</translation>
+    </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="176"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation></translation>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="369"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="226"/>
+        <source>Cherche dans la liste</source>
+        <translation>find</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="72"/>
-        <source>permet de gérer la liste</source>
-        <translation type="unfinished">manage list</translation>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="261"/>
+        <source>remet le filtre à blanc</source>
+        <translation>clean filter</translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="290"/>
+        <source>Catalogue</source>
+        <translation>Catalog</translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="297"/>
+        <source>Alpha</source>
+        <translation>Alpha</translation>
     </message>
 </context>
 <context>
     <name>WidgetPlusieursPlie</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="26"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="101"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="101"/>
         <source>Affiche le rapport de validité du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="273"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="234"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="162"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="162"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="66"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="66"/>
         <source>permet de gérer la liste</source>
         <translation>manage list</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="267"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="228"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
@@ -3316,62 +3549,62 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetPlusieursTuple</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="26"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="93"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="93"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="621"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="632"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="161"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="161"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="337"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="355"/>
         <source>Remonte la ligne</source>
         <translation>Up</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="376"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="393"/>
         <source>Descend la ligne</source>
         <translation>Down</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="415"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="431"/>
         <source>supprime une ligne</source>
         <translation>delete a line</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="454"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="466"/>
         <source>Ajoute une ligne</source>
         <translation>add a line</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="510"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="522"/>
         <source>Montre l&apos;ensemble des valeurs</source>
         <translation>show all values</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="560"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="572"/>
         <source>Ouvre un fichier de sélection des valeurs</source>
         <translation>import data from a file</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="615"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="626"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="213"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="213"/>
         <source>TextLabel</source>
         <translation type="unfinished">TextLabel</translation>
     </message>
@@ -3379,32 +3612,32 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetRadioButton</name>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="97"/>
+        <location filename="desWidgetRadioButton.ui" line="97"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="283"/>
+        <location filename="desWidgetRadioButton.ui" line="260"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="32"/>
+        <location filename="desWidgetRadioButton.ui" line="32"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="289"/>
+        <location filename="desWidgetRadioButton.ui" line="266"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="158"/>
+        <location filename="desWidgetRadioButton.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="251"/>
+        <location filename="desWidgetRadioButton.ui" line="222"/>
         <source>RadioButton</source>
         <translation></translation>
     </message>
@@ -3412,37 +3645,37 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSDCOInto</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="91"/>
+        <location filename="desWidgetSDCOInto.ui" line="91"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="186"/>
+        <location filename="desWidgetSDCOInto.ui" line="186"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Structures de données du type requis &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Objects with the recquired type&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="243"/>
+        <location filename="desWidgetSDCOInto.ui" line="243"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ou Nom du concept&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>or name the object</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="309"/>
+        <location filename="desWidgetSDCOInto.ui" line="309"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="26"/>
+        <location filename="desWidgetSDCOInto.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="315"/>
+        <location filename="desWidgetSDCOInto.ui" line="315"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="152"/>
+        <location filename="desWidgetSDCOInto.ui" line="152"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -3450,27 +3683,27 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpBase</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="97"/>
+        <location filename="desWidgetSimpBase.ui" line="97"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="251"/>
+        <location filename="desWidgetSimpBase.ui" line="251"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="32"/>
+        <location filename="desWidgetSimpBase.ui" line="32"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="257"/>
+        <location filename="desWidgetSimpBase.ui" line="257"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="158"/>
+        <location filename="desWidgetSimpBase.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -3478,37 +3711,37 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpBool</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="88"/>
+        <location filename="desWidgetSimpBool.ui" line="88"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="246"/>
+        <location filename="desWidgetSimpBool.ui" line="249"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="32"/>
+        <location filename="desWidgetSimpBool.ui" line="32"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="252"/>
+        <location filename="desWidgetSimpBool.ui" line="255"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="149"/>
+        <location filename="desWidgetSimpBool.ui" line="149"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="166"/>
+        <location filename="desWidgetSimpBool.ui" line="166"/>
         <source>True</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="189"/>
+        <location filename="desWidgetSimpBool.ui" line="189"/>
         <source>False</source>
         <translation></translation>
     </message>
@@ -3516,42 +3749,42 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpComplexe</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="203"/>
+        <location filename="desWidgetSimpComplexe.ui" line="203"/>
         <source>Complexe : a+bj</source>
         <translation>Complex : a+bj</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="259"/>
+        <location filename="desWidgetSimpComplexe.ui" line="259"/>
         <source>Réel/Imaginaire</source>
         <translation>Real/Imaginary</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="266"/>
+        <location filename="desWidgetSimpComplexe.ui" line="266"/>
         <source>Module/Phase</source>
         <translation>Module/Phase</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="103"/>
+        <location filename="desWidgetSimpComplexe.ui" line="103"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="32"/>
+        <location filename="desWidgetSimpComplexe.ui" line="32"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="339"/>
+        <location filename="desWidgetSimpComplexe.ui" line="339"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="164"/>
+        <location filename="desWidgetSimpComplexe.ui" line="164"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="244"/>
+        <location filename="desWidgetSimpComplexe.ui" line="244"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;OU &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -3559,65 +3792,103 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpFichier</name>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="82"/>
+        <location filename="desWidgetSimpFichier.ui" line="82"/>
         <source>Affiche le rapport de validité du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="222"/>
+        <location filename="desWidgetSimpFichier.ui" line="222"/>
         <source>affiche l&apos;explorateur de fichier</source>
         <translation>open file explorer</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="252"/>
+        <location filename="desWidgetSimpFichier.ui" line="252"/>
         <source>ouvre le fichier choisi</source>
         <translation>Open the file</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="309"/>
+        <location filename="desWidgetSimpFichier.ui" line="309"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="26"/>
+        <location filename="desWidgetSimpFichier.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="315"/>
+        <location filename="desWidgetSimpFichier.ui" line="315"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="143"/>
+        <location filename="desWidgetSimpFichier.ui" line="143"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
 </context>
+<context>
+    <name>WidgetSimpSalome</name>
+    <message>
+        <location filename="desWidgetSimpSalome.ui" line="26"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetSimpSalome.ui" line="82"/>
+        <source>Affiche le rapport de validité du mot-clef</source>
+        <translation>Display validity report for the keyword</translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpSalome.ui" line="314"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpSalome.ui" line="143"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpSalome.ui" line="222"/>
+        <source>affiche l&apos;explorateur de fichier</source>
+        <translation type="unfinished">open file explorer</translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpSalome.ui" line="251"/>
+        <source>ouvre le fichier choisi</source>
+        <translation type="unfinished">Open the file</translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetSimpSalome.ui" line="308"/>
+        <source>Détruit le mot-clef</source>
+        <translation type="unfinished">Delete the keyword</translation>
+    </message>
+</context>
 <context>
     <name>WidgetSimpTxt</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="97"/>
+        <location filename="desWidgetSimpTxt.ui" line="97"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="251"/>
+        <location filename="desWidgetSimpTxt.ui" line="251"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="32"/>
+        <location filename="desWidgetSimpTxt.ui" line="32"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="257"/>
+        <location filename="desWidgetSimpTxt.ui" line="257"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="158"/>
+        <location filename="desWidgetSimpTxt.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -3625,42 +3896,42 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetTuple2</name>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="94"/>
+        <location filename="desWidgetTuple2.ui" line="94"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="288"/>
+        <location filename="desWidgetTuple2.ui" line="288"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="26"/>
+        <location filename="desWidgetTuple2.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="294"/>
+        <location filename="desWidgetTuple2.ui" line="294"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="155"/>
+        <location filename="desWidgetTuple2.ui" line="155"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="174"/>
+        <location filename="desWidgetTuple2.ui" line="174"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="212"/>
+        <location filename="desWidgetTuple2.ui" line="212"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="248"/>
+        <location filename="desWidgetTuple2.ui" line="248"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -3668,42 +3939,42 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetTuple3</name>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="91"/>
+        <location filename="desWidgetTuple3.ui" line="91"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="309"/>
+        <location filename="desWidgetTuple3.ui" line="309"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="26"/>
+        <location filename="desWidgetTuple3.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="315"/>
+        <location filename="desWidgetTuple3.ui" line="315"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="152"/>
+        <location filename="desWidgetTuple3.ui" line="152"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="169"/>
+        <location filename="desWidgetTuple3.ui" line="169"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="238"/>
+        <location filename="desWidgetTuple3.ui" line="238"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="274"/>
+        <location filename="desWidgetTuple3.ui" line="274"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -3711,32 +3982,32 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetUniqueSDCO</name>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="82"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="82"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="181"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="181"/>
         <source>Attend un objet de type CO </source>
         <translation>expect a CO Object</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="223"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="223"/>
         <source>Détruit le mot-clef</source>
         <translation>Delete the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="26"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="229"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="229"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="143"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="143"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
@@ -3744,22 +4015,22 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetVide</name>
     <message>
-        <location filename="../../UiQT4/desWidgetVide.ui" line="26"/>
+        <location filename="desWidgetVide.ui" line="26"/>
         <source>Form</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetVide.ui" line="296"/>
+        <location filename="desWidgetVide.ui" line="296"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetVide.ui" line="129"/>
+        <location filename="desWidgetVide.ui" line="129"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0055ff;&quot;&gt;Label&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetVide.ui" line="158"/>
+        <location filename="desWidgetVide.ui" line="158"/>
         <source>Attend un objet de type XXXX. Il faut le créer</source>
         <translation>object must be created</translation>
     </message>
@@ -3767,25 +4038,38 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>baseWidget</name>
     <message>
-        <location filename="../../UiQT4/desBaseWidget.ui" line="26"/>
+        <location filename="desBaseWidget.ui" line="26"/>
         <source>DMacro</source>
         <translation>DMacro</translation>
     </message>
 </context>
+<context>
+    <name>customPB</name>
+    <message>
+        <location filename="desPBOptionnelMT.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desPBOptionnelMT.ui" line="60"/>
+        <source>PushButton</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>dView</name>
     <message>
-        <location filename="../../UiQT4/desViewTexte.ui" line="13"/>
+        <location filename="desViewTexte.ui" line="13"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desViewTexte.ui" line="35"/>
+        <location filename="desViewTexte.ui" line="35"/>
         <source>Fermer</source>
         <translation>Close</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desViewTexte.ui" line="42"/>
+        <location filename="desViewTexte.ui" line="42"/>
         <source>Sauver</source>
         <translation>Save</translation>
     </message>
@@ -3793,40 +4077,63 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>desRecherche</name>
     <message>
-        <location filename="../../UiQT4/desRecherche.ui" line="14"/>
+        <location filename="desRecherche.ui" line="14"/>
         <source>Rechercher dans le JDC</source>
         <translation>Find in JDC</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desRecherche.ui" line="63"/>
+        <location filename="desRecherche.ui" line="63"/>
         <source>Suivant</source>
         <translation>Next</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desRecherche.ui" line="17"/>
+        <location filename="desRecherche.ui" line="17"/>
         <source>Next</source>
         <translation></translation>
     </message>
 </context>
+<context>
+    <name>desRechercheCatalogue</name>
+    <message>
+        <location filename="desRechercheCatalogue.ui" line="14"/>
+        <source>Rechercher dans le Catalogue</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desRechercheCatalogue.ui" line="34"/>
+        <source>Mot à chercher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desRechercheCatalogue.ui" line="46"/>
+        <source>Généalogie</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desRechercheCatalogue.ui" line="65"/>
+        <source>Documentation</source>
+        <translation type="unfinished">documentation</translation>
+    </message>
+</context>
 <context encoding="UTF-8">
     <name>desWidgetCreeParam</name>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="14"/>
+        <location filename="desWidgetCreeParam.ui" line="14"/>
         <source>Gestion des Paramètres</source>
         <translation>Parameters</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="153"/>
+        <location filename="desWidgetCreeParam.ui" line="156"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="180"/>
+        <location filename="desWidgetCreeParam.ui" line="183"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Valeur: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>Value</translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="208"/>
+        <location filename="desWidgetCreeParam.ui" line="211"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; text-decoration: underline;&quot;&gt;Créer un paramètre&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; text-decoration: underline;&quot;&gt;New Parameter&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
     </message>
@@ -3834,50 +4141,71 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>desWidgetMatrice</name>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="14"/>
+        <location filename="desWidgetMatrice.ui" line="14"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="70"/>
+        <location filename="desWidgetMatrice.ui" line="79"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation>Display validity report for the keyword</translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="76"/>
+        <location filename="desWidgetMatrice.ui" line="85"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="108"/>
+        <location filename="desWidgetMatrice.ui" line="120"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Met à jour l&apos;en-tête&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="146"/>
+        <location filename="desWidgetMatrice.ui" line="170"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation></translation>
     </message>
 </context>
 <context>
-    <name>self.appliEficas</name>
+    <name>desWidgetOptionnel</name>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="750"/>
-        <source>Wrapper Files (*.xml);;All Files (*)</source>
-        <translation></translation>
+        <location filename="desWidgetOptionnelMC.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="348"/>
-        <source>Noname</source>
-        <translation></translation>
+        <location filename="desWidgetOptionnelMC.ui" line="50"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">TextLabel</translation>
+    </message>
+</context>
+<context>
+    <name>groupeOptionnel</name>
+    <message>
+        <location filename="desGroupeOptionnel.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desGroupeOptionnel.ui" line="53"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;command &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html</translation>
     </message>
 </context>
+<context>
+    <name>self.appliEficas</name>
+</context>
 <context>
     <name>viewRegles</name>
     <message>
-        <location filename="../../UiQT4/desViewRegles.ui" line="14"/>
+        <location filename="desViewRegles.ui" line="14"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
+    <message>
+        <location filename="desViewRegles.ui" line="20"/>
+        <source>Fermer</source>
+        <translation type="unfinished">Close</translation>
+    </message>
 </context>
 </TS>
index a976a389baa6796511f6c12dbc38252d51f3ac28..124f62104f059e45b6fe139699f8c7f8910d8786 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="en">
+<!DOCTYPE TS><TS version="2.0" language="en" sourcelanguage="">
 <context>
     <name>@defaut</name>
     <message>
         <location filename="../../convert/convert_ini.py" line="81"/>
         <source>lecture du fichier impossible :</source>
-        <translation type="unfinished"> unable to read file</translation>
+        <translation type="obsolete"> unable to read file</translation>
     </message>
     <message>
         <location filename="../../convert/convert_python.py" line="105"/>
         <source>Impossible d&apos;ouvrir le fichier %s</source>
-        <translation type="unfinished"> unable to read file</translation>
+        <translation type="obsolete"> unable to read file</translation>
     </message>
     <message>
-        <location filename="../../convert/convert_pyth.py" line="115"/>
-        <source>Format de sortie : %s, non supporte</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue_initial.py" line="44"/>
-        <source>Impossible d&apos;ouvrir le fichier : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../convert/convert_pyth.py" line="109"/>
-        <source>Erreur a l&apos;evaluation :
- %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="65"/>
-        <source>Erreur ! Erreur !</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="92"/>
-        <source>Erreur rencontree dans recherche_enfants : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="102"/>
-        <source>Erreur dans la creation du mot-cle : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="191"/>
-        <source>Impossible d&apos;ouvrir le fichier : %s </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="208"/>
-        <source>le texte a analyser n&apos;est pas celui d&apos;une commande ou d&apos;un operateur : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="216"/>
-        <source>Erreur dans la recherche  du nom de la commande : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="219"/>
-        <source>Erreur dans la recherche des  args de la commande :</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="238"/>
-        <source>Erreur dans la recherche du  nom de la commande : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="241"/>
-        <source>Erreur dans la recherche des args de la commande : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/Objecttreeitem.py" line="304"/>
-        <source>%d n&apos;est pas un index valide pour append_brother</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="96"/>
-        <source>le fichier de commandes %s n&apos;existe pas</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="104"/>
-        <source>un fichier de commandes doit etre defini avant une poursuite %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="106"/>
-        <source>le fichier poursuite %s n&apos;existe pas</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="117"/>
-        <source>include mal defini %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="123"/>
-        <source>un fichier de commandes doit etre defini avant un include %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="125"/>
-        <source>le fichier include %s n&apos;existe pas</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="188"/>
-        <source> le fichier jdc %s n&apos;existe pas</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="198"/>
-        <source> jdc %s manque option jdc dans section jdc</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="218"/>
-        <source>%(v_1)s include %(v_2)s : %(v_3)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="222"/>
-        <source>%(v_1)s fichier poursuite: %(v_2)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="229"/>
-        <source>nom etude : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="236"/>
-        <source>utilisation : %prog [options]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="238"/>
-        <source>nom du fichier de commandes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="242"/>
-        <source>nom du fichier poursuite</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="246"/>
-        <source>numero d&apos;unite suivi du nom du fichier include</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="250"/>
-        <source>fichier decrivant une etude</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="254"/>
-        <source>version de catalogue a utiliser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="257"/>
-        <source>nom du code a utiliser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="260"/>
-        <source>niveau de debug</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="263"/>
-        <source>schema</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="266"/>
-        <source>localisation de l&apos;application, pour la traduction</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="298"/>
-        <source>Nombre incorrect d&apos;arguments</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="296"/>
-        <source>Localisation specifiee pour l&apos;application.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/utils.py" line="50"/>
-        <source>Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/utils.py" line="56"/>
-        <source>Creation du repertoire %s impossible
- Verifiez vos droits d&apos;acces</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/utils.py" line="130"/>
-        <source>Impossible de transferer les fichiers requis dans : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCLIST.py" line="97"/>
-        <source>Erreur</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/commande_comm.py" line="199"/>
-        <source>Erreurs fatales</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/commande_comm.py" line="202"/>
-        <source>Impossible reconstruire commande
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/commentaire.py" line="146"/>
-        <source>Objet commentaire non valorise</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/interpreteur_formule.py" line="110"/>
-        <source>Debut Fonction %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/interpreteur_formule.py" line="111"/>
-        <source>Fin Fonction %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/jdc_include.py" line="94"/>
-        <source>Nom de concept deja defini : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/mcnuplet.py" line="104"/>
-        <source>Longueur incorrecte</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="65"/>
-        <source>L&apos;attribut &apos;min&apos; doit etre un entier : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="68"/>
-        <source>L&apos;attribut &apos;max&apos; doit etre un entier : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="70"/>
-        <source>Nombres d&apos;occurrence min et max invalides :</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="72"/>
-        <source>L&apos;attribut &apos;fr&apos; doit etre une chaine de caracteres</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="74"/>
-        <source>L&apos;attribut &apos;statut&apos; doit valoir &apos;o&apos;,&apos;f&apos;,&apos;c&apos; ou &apos;d&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="76"/>
-        <source>L&apos;attribut &apos;docu&apos; doit etre une chaine de caracteres</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="105"/>
-        <source>Fin </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/parametre_eval.py" line="149"/>
-        <source>Le parametre EVAL %s ne peut valoir None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/parametre_eval.py" line="150"/>
-        <source>Le parametre EVAL ne peut valoir None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/parametre_eval.py" line="163"/>
-        <source>Pas de nom donne au parametre EVAL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/parametre_eval.py" line="166"/>
-        <source>Un nom de parametre ne peut depasser 8 caracteres</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/Formatage.py" line="129"/>
-        <source>ERREUR</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_asterv5.py" line="101"/>
-        <source>Format pas implemente : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_asterv5.py" line="145"/>
-        <source>Type d&apos;objet non prevu : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="256"/>
-        <source> ce groupe de maillage %s est associe a au moins un materiau  et au moins une source.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="267"/>
-        <source>ce groupe de maillage %s  n&apos;est associe a aucun materiau ou source.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="541"/>
-        <source>ATTENTION! Une source constante n&apos;est possible qu&apos;a frequence nulle en regime frequentiel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="820"/>
-        <source>ERREUR! ce groupe de maille (%s) n&apos;a pas de prefixe valable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="825"/>
-        <source>ERREUR! ce type de bloc (%s) n&apos;est pas valable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_Creation.py" line="83"/>
-        <source>toutes les donnees ne sont pas connues</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_file_from_template.py" line="59"/>
-        <source>Fichier patron %s n&apos;existe pas.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_pyth.py" line="100"/>
-        <source>Pas supporte</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_ini.py" line="105"/>
-        <source>Entite inconnue ou interdite :%s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_ini.py" line="123"/>
-        <source>Entite inconnue ou interdite :%s. Elle est ignoree</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_ini.py" line="133"/>
-        <source>Les tuples ne sont pas supportes pour le format ini :%s </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_ini.py" line="139"/>
-        <source>Type de valeur non supportee par le format ini :%(nom)s
-%(exception)s</source>
-        <comment>nom</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_openturns.py" line="124"/>
-        <source>Il y a un pb a la Creation du XML</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_openturns_study.py" line="127"/>
-        <source>Il y a un pb a la Creation du STD</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_pyth.py" line="130"/>
-        <source>Entite inconnue ou interdite : %s. Elle est ignoree</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_pyth.py" line="143"/>
-        <source>Type de valeur non supporte par le format pyth : n %(exception)s</source>
-        <comment>nom</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/OpenturnsXML.py" line="228"/>
-        <source>Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/OpenturnsXML.py" line="240"/>
-        <source> Le mot-cle %s est obligatoire.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ASSD.py" line="29"/>
-        <source>concept %(inst_name)s de type %(class_name)s</source>
-        <comment>inst_name</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="108"/>
-        <source>Un nom de concept doit etre un identificateur Python</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="126"/>
-        <source>Concept existant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="128"/>
-        <source>Operateur reentrant mais concept non existant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="140"/>
-        <source>Operateur reentrant et concept existant trouve</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="142"/>
-        <source>Concept deja existant et de mauvais type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="198"/>
-        <source>Nommage du concept refuse : un concept de meme nom existe deja</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="52"/>
-        <source>Nommage du concept effectue</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="176"/>
-        <source>Nommage impossible %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="105"/>
-        <source>La liste des arguments d&apos;une formule doit etre entre parentheses : parenthese ouvrante manquante</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="107"/>
-        <source>La liste des arguments d&apos;une formule doit etre entre parentheses : parenthese fermante manquante</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="152"/>
-        <source>Pas de nom donne a la FORMULE</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="154"/>
-        <source>Un nom de FORMULE ne peut depasser 8 caracteres</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="156"/>
-        <source>Un nom de FORMULE ne peut pas commencer par un chiffre</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="173"/>
-        <source>Le type de la valeur retournee n&apos;est pas specifie</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="175"/>
-        <source>Une formule ne peut retourner une valeur de type : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_JDC.py" line="308"/>
-        <source>Impossible d&apos;ajouter la commande</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_JDC.py" line="314"/>
-        <source>Impossible d ajouter la commande</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_JDC.py" line="629"/>
-        <source>Pas implemente</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_JDC.py" line="724"/>
-        <source>Nom de concept deja defini </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_JDC.py" line="899"/>
-        <source> Nom de concept deja  defini : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_JDC.py" line="942"/>
-        <source>Impossible de trouver le fichier correspondant a l&apos;unite </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="725"/>
-        <source> n&apos;est pas un fichier existant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1107"/>
-        <source>Fichier invalide %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="559"/>
-        <source>Impossible de construire le jeu de commandes correspondant au fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1057"/>
-        <source>Erreur lors de l&apos;evaluation du fichier inclus</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1195"/>
-        <source>Ce fichier ne sera pas pris en compte
- %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="735"/>
-        <source>Ce fichier ne sera pas pris en compte
-Le fichier associe n&apos;est pas defini</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="907"/>
-        <source>Le fichier n est pas defini</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="944"/>
-        <source>le fichier doit contenir une unique variable de sortie</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="990"/>
-        <source>Fichier invalide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="993"/>
-        <source>Le contenu de ce fichier ne sera pas pris en compte
- %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1047"/>
-        <source>Le fichier INCLUDE n est pas defini</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1057"/>
-        <source>Le contenu de ce fichier ne sera pas pris en compte
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="1195"/>
-        <source>Erreur lors de l&apos;evaluation du fichier poursuite</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCCOMPO.py" line="224"/>
-        <source>L&apos;objet %(v_1)s ne peut  etre un fils de %(v_2)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCCOMPO.py" line="253"/>
-        <source>L&apos;objet %s ne peut pas etre repete</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCFACT.py" line="50"/>
-        <source>Erreur - mclist inexistante : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCFACT.py" line="59"/>
-        <source>Erreur - mot cle facteur de nom : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCLIST.py" line="94"/>
-        <source>traitement non-prevu</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCLIST.py" line="97"/>
-        <source>L&apos;objet %s ne peut pas etre ajoute</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="258"/>
-        <source>None n&apos;est pas une valeur autorisee</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="490"/>
-        <source>un concept de meme nom existe deja</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="512"/>
-        <source>Concept cree</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="643"/>
-        <source>La matrice n&apos;est pas une matrice %(n_lign)d sur %(n_col)d</source>
-        <comment>n_lign</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="167"/>
-        <source>Impossible de relire le fichier %s 
- </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MACRO_ETAPE.py" line="178"/>
-        <source>Le fichier include contient des erreurs </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/browser.py" line="435"/>
-        <source>  n&apos;est pas un index valide pour append_brother</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compocomm.py" line="41"/>
-        <source>Decommenter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compocomm.py" line="43"/>
-        <source>Decommente la commande </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compofact.py" line="133"/>
-        <source>Impossible de supprimer un mot-cle obligatoire </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compofact.py" line="136"/>
-        <source>Mot-cle %s supprime</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compofact.py" line="141"/>
-        <source>Pb interne : impossible de supprimer ce mot-cle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compojdc.py" line="86"/>
-        <source>Commentaire supprime</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compojdc.py" line="88"/>
-        <source>Commande %s supprimee</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compojdc.py" line="91"/>
-        <source>Pb interne : impossible de supprimer cet objet</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compomacro.py" line="125"/>
-        <source>Le fichier de commande n&apos;a pas pu etre converti pour etre editable par Eficas
-
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compomacro.py" line="157"/>
-        <source>Include vide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compomacro.py" line="157"/>
-        <source>L&apos;include doit etre correctement initialise pour etre visualise</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compomclist.py" line="223"/>
-        <source>Impossible de supprimer ce mot-clef</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="67"/>
-        <source>View3D</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="69"/>
-        <source>affiche dans Geom les elements de structure</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="76"/>
-        <source>Graphique</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="78"/>
-        <source>affiche la distribution </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="114"/>
-        <source>Erreur interne</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="114"/>
-        <source>La PDF de la loi ne peut pas etre affichee.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
-        <source>&amp;Annuler</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="201"/>
-        <source>Impossible de supprimer un mot-clef obligatoire </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="203"/>
-        <source>Mot-clef %s supprime </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compooper.py" line="208"/>
-        <source>Pb interne : impossible de supprimer ce mot-clef</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/compoparam.py" line="146"/>
-        <source>Definition d&apos;un parametre</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/configuration.py" line="156"/>
-        <source>Import du fichier de Configuration</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/configuration.py" line="156"/>
-        <source>Erreur a la lecture du fichier de configuration %s </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="196"/>
-        <source>Erreur fatale au chargement de %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="197"/>
-        <source>Erreur fatale au chargement d&apos;un fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="313"/>
-        <source>fichier modifie</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="313"/>
-        <source>Attention! fichier change hors EFICAS</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="367"/>
-        <source>Type de fichier non reconnu</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="324"/>
-        <source>EFICAS ne sait pas ouvrir le type de fichier %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="367"/>
-        <source>EFICAS ne sait pas ouvrir ce type de fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="610"/>
-        <source>Copie impossible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="582"/>
-        <source>Veuillez selectionner un objet a copier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="587"/>
-        <source>Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="610"/>
-        <source>Aucun Objet n a ete copie ou coupe</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="636"/>
-        <source>Copie refusee</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="622"/>
-        <source>Eficas n a pas reussi a copier l objet</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="636"/>
-        <source>Copie refusee pour ce type d objet</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="648"/>
-        <source>Deplacement refuse</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="648"/>
-        <source>Deplacement refuse entre 2 fichiers. Seule la copie est autorisee </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="684"/>
-        <source>Copie impossible a cet endroit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="684"/>
-        <source>Veuillez selectionner une commande, un parametre, un commentaire ou une macro</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="745"/>
-        <source>Choix d&apos;un fichier XML</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="746"/>
-        <source>Le fichier contient une commande MODEL
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="747"/>
-        <source>Donnez le nom du fichier XML qui contient la description des variables</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="66"/>
-        <source>Ouvrir Fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1036"/>
-        <source>Erreur a la generation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1036"/>
-        <source>EFICAS ne sait pas convertir ce JDC</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1040"/>
-        <source>Format %s non reconnu</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1041"/>
-        <source>EFICAS ne sait pas convertir le JDC selon le format </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="895"/>
-        <source>Execution impossible </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="832"/>
-        <source>le JDC doit etre valide pour une execution MAP</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="835"/>
-        <source>le JDC doit contenir un et un seul composant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="871"/>
-        <source>le JDC doit etre valide pour une execution </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="895"/>
-        <source>Sauvegarder SVP avant l&apos;execution </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="935"/>
-        <source>sauvegarde</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
-        <source>Sauvegarde du Fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
-        <source>Le fichier &lt;b&gt;%s&lt;/b&gt; existe deja.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
-        <source>&amp;Ecraser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1020"/>
-        <source>Sauvegarde de l&apos;input impossible </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1020"/>
-        <source>Un JdC valide est necessaire pour creer un .input</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="964"/>
-        <source>Choix du composant obligatoire</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1176"/>
-        <source>Choix unite %d </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1177"/>
-        <source>Le fichier %s contient une commande INCLUDE 
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1178"/>
-        <source>Donnez le nom du fichier correspondant a l unite logique </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1179"/>
-        <source>Fichier pour unite </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1181"/>
-        <source>Choix d&apos;un fichier de poursuite</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1182"/>
-        <source>Le fichier %s contient une commande POURSUITE
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1183"/>
-        <source>Donnez le nom du fichier dont vous 
- voulez faire une poursuite</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1311"/>
-        <source>Fichiers Med (*.med);;Tous les Fichiers (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1314"/>
-        <source>Fichier Med</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/editor.py" line="1314"/>
-        <source>Veuillez selectionner un fichier Med</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="165"/>
-        <source>reel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="166"/>
-        <source>entier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="167"/>
-        <source>complexe</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="173"/>
-        <source>Entrez </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="174"/>
-        <source>Entrez entre </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="174"/>
-        <source> et </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpBase.py" line="86"/>
-        <source>Type de base inconnu</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="436"/>
-        <source>Aide Indisponible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="436"/>
-        <source>l&apos;aide n est pas installee </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="209"/>
-        <source>Visualisation Fichier </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="209"/>
-        <source>Impossibilite d&apos;afficher le Fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="222"/>
-        <source>Sauvegarder Fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="236"/>
-        <source>Fichier selectionne</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="245"/>
-        <source>Selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="291"/>
-        <source>Export Med vers Fichier </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereIcones.py" line="291"/>
-        <source>Impossibilite d exporter le Fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="37"/>
-        <source>Traduire Fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="37"/>
-        <source>Fichiers JDC  (*.comm);;Tous les Fichiers (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="62"/>
-        <source>Fichier Traduit : %s
-
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereTraduction.py" line="72"/>
-        <source>Pas de difference entre le fichier origine et le fichier traduit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monBoutonValide.py" line="43"/>
-        <source>objet valide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monChoixCata.py" line="42"/>
-        <source>%d versions du catalogue sont disponibles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monViewTexte.py" line="69"/>
-        <source>Sauvegarder le fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monViewTexte.py" line="69"/>
-        <source>Le fichier &lt;b&gt;%(v_1)s&lt;/b&gt; n&apos;a pu etre sauvegarde. &lt;br&gt;Raison : %(v_2)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetOptionnel.py" line="91"/>
-        <source>Options pour 
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/feuille.py" line="119"/>
-        <source> valeurs </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursInto.py" line="172"/>
-        <source>Nombre minimal de valeurs : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursInto.py" line="174"/>
-        <source>Nombre maximal de valeurs : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="116"/>
-        <source>expression valide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="122"/>
-        <source>expression invalide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="84"/>
-        <source>l expression n est pas de la forme a+bj</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="128"/>
-        <source>expression n est pas de la forme a+bj</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="140"/>
-        <source>entrer une seule valeur SVP</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpComplexe.py" line="158"/>
-        <source>saisir le type de complexe</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/politiquesValidation.py" line="157"/>
-        <source>Valeur du mot-cle enregistree</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/politiquesValidation.py" line="162"/>
-        <source>Valeur du mot-cle non autorisee </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="78"/>
-        <source>&amp;Recents</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="147"/>
-        <source>Aide specifique </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="194"/>
-        <source>Options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="189"/>
-        <source>Traduction</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="273"/>
-        <source>TraduitV7V8</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="274"/>
-        <source>TraduitV8V9</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="275"/>
-        <source>TraduitV9V10</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="284"/>
-        <source>Acquiert Groupe Maille</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="289"/>
-        <source>Specificites Maille</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="409"/>
-        <source>version </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="276"/>
-        <source> pour </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="450"/>
-        <source>Parametrage</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="443"/>
-        <source>Veuillez d abord choisir un code</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="450"/>
-        <source>Pas de possibilite de personnalisation de la configuration </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="471"/>
-        <source>&amp;Effacer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtSaisie.py" line="98"/>
-        <source>Veuillez entrer le complexe sous forme aster ou sous forme python</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="147"/>
-        <source>Import du catalogue</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="95"/>
-        <source>Pas de catalogue defini pour le code </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="119"/>
-        <source>Aucun catalogue trouve</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="147"/>
-        <source>Impossible d&apos;importer le catalogue </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="278"/>
-        <source> avec le catalogue </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="268"/>
-        <source>Choix d une version du code </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/readercata.py" line="270"/>
-        <source>Choix d une version </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="219"/>
-        <source>Parametre</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="37"/>
-        <source>Insere un parametre</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="115"/>
-        <source>item invalide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="115"/>
-        <source>l item doit etre valide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="115"/>
-        <source>&amp;Ok</source>
-        <translation type="unfinished">&amp;Ok</translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="141"/>
-        <source>apres</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="136"/>
-        <source>Insere un commentaire apres la commande </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="144"/>
-        <source>avant</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="139"/>
-        <source>Insere un commentaire avant la commande </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="143"/>
-        <source>Insere un parametre apres la commande </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="146"/>
-        <source>Insere un parametre avant la commande </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="148"/>
-        <source>Supprimer</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="150"/>
-        <source>supprime le mot clef </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="151"/>
-        <source>Documentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="153"/>
-        <source>documentation sur la commande </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="183"/>
-        <source>Documentation Vide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="163"/>
-        <source>Aucune documentation n&apos;est associee a ce noeud</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="170"/>
-        <source>impossible de trouver la commande  </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="171"/>
-        <source>Lecteur PDF</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="182"/>
-        <source>impossible d&apos;ouvrir </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="215"/>
-        <source>Commentaire</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="232"/>
-        <source>ce noeud</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/typeNode.py" line="234"/>
-        <source>commente le noeud </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="64"/>
-        <source>Fichiers JDC (*.comm);;Tous les Fichiers (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="84"/>
-        <source>&amp;Quitter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="116"/>
-        <source>Quitter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="337"/>
-        <source>Fichier Duplique</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="337"/>
-        <source>Le fichier ne sera pas sauvegarde.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
-        <source>Fichier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
-        <source>Le fichier &lt;b&gt;%s&lt;/b&gt; est deja ouvert.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
-        <source>&amp;Duplication</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="267"/>
-        <source>&amp;Abort</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
-        <source>Fichier Modifie</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
-        <source>Le fichier %s n a pas ete sauvegarde.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="349"/>
-        <source>&amp;Sauvegarder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="1"/>
-        <source>SOURCE</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="2"/>
-        <source>EnveloppeConnexeInducteur</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="3"/>
-        <source>EnveloppeConnexe2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="4"/>
-        <source>VecteurDirecteur</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="5"/>
-        <source>Centre</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="6"/>
-        <source>SectionBobine</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="7"/>
-        <source>Amplitude</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="8"/>
-        <source>NbdeTours</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="9"/>
-        <source>CONDUCTEUR</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="10"/>
-        <source>Conductivite</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="11"/>
-        <source>PermeabiliteRelative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="12"/>
-        <source>NOCOND</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="13"/>
-        <source>VCUT</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="14"/>
-        <source>Orientation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="15"/>
-        <source>ZS</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="5"/>
-        <source>RepCarmel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="18"/>
-        <source>TypedeFormule</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="19"/>
-        <source>Frequence</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="20"/>
-        <source>Nb_Max_Iterations</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../CarmelCND/PourTraductionCarmel.py" line="21"/>
-        <source>Erreur_Max</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSimpTuple3.py" line="47"/>
-        <source>Valeur non modifiable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_python.py" line="112"/>
-        <source>Format non implemente </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_python.py" line="163"/>
-        <source>Type d&apos;objet non prevu</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetCB.py" line="51"/>
-        <source>Select</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="389"/>
-        <source>Sauve Format Ligne</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Noyau/N_VALIDATOR.py" line="170"/>
-        <source>%s n&apos;est pas un fichier valide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereListe.py" line="193"/>
-        <source>Fichier de donnees</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereListe.py" line="193"/>
-        <source>Tous les  Fichiers (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursBase.py" line="226"/>
-        <source>nb min de valeurs : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursBase.py" line="231"/>
-        <source>nb max de valeurs atteint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="384"/>
-        <source>TraduitV10V11</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="387"/>
-        <source>TraduitV11V12</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtSaisie.py" line="138"/>
-        <source>Valeur du mot-clef enregistree</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtSaisie.py" line="142"/>
-        <source>Valeur du mot-clef non autorisee :</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/parametre_eval.py" line="170"/>
-        <source>Un concept de nom %s existe d&#xe9;j&#xe0; !</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monFonctionPanel.py" line="62"/>
-        <source>La cardinalite n&apos;est pas correcte, la derniere valeur est ignoree</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monFonctionPanel.py" line="110"/>
-        <source> n est pas un tuple de </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monFonctionPanel.py" line="112"/>
-        <source> valeurs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetCreeParam.py" line="96"/>
-        <source>Valeur incorrecte</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetCreeParam.py" line="105"/>
-        <source> n est pas un identifiant correct
- </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="78"/>
-        <source>Entrer un float SVP</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="83"/>
-        <source>Entrer un float inferieur a </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="88"/>
-        <source>Entrer un float superieur a </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="111"/>
-        <source>Mauvaise execution </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="111"/>
-        <source>impossible d executer la methode </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="135"/>
-        <source>Mauvaise Commande </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="135"/>
-        <source>Aucune variable connue</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="183"/>
-        <source>Mauvaise dimension de matrice</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="181"/>
-        <source>le nombre de ligne n est pas egal a </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="183"/>
-        <source>le nombre de colonne n est pas egal a </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="191"/>
-        <source>Mauvaise Valeur</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="191"/>
-        <source>l element </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetMatrice.py" line="191"/>
-        <source>n est pas correct</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="94"/>
-        <source>Modification Impossible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="94"/>
-        <source>le parametre n&apos;est pas valide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="108"/>
-        <source> n est pas un identifiant correct</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="127"/>
-        <source>Valeur incorrecte: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="130"/>
-        <source>Valeur incorrecte </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetParam.py" line="133"/>
-        <source>Valeur correcte </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetSDCOInto.py" line="77"/>
-        <source>impossible d&apos;evaluer : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/interpreteur_formule.py" line="97"/>
-        <source>La formule passee a l&apos;interpreteur doit etre sous forme de tuple</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/nuplet.py" line="104"/>
-        <source>Debut </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/parametre.py" line="188"/>
-        <source>Pas de nom donne au parametre </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/parametre.py" line="193"/>
-        <source>Le parametre %s ne peut valoir None</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_aplat.py" line="147"/>
-        <source>Format non implemente : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="138"/>
-        <source>Impossible de realiser la verification de la formule</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_FORM_ETAPE.py" line="159"/>
-        <source>Un concept de nom %s existe deja !</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetCreeParam.py" line="109"/>
-        <source> existe deja
- </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="299"/>
-        <source>Fichier non encore nomme </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_MCSIMP.py" line="624"/>
-        <source>La matrice n&apos;a pas le bon entete</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/browser.py" line="463"/>
-        <source>le mot clef </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/browser.py" line="455"/>
-        <source> doit etre insere avant </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/browser.py" line="464"/>
-        <source>insertion impossible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/browser.py" line="463"/>
-        <source> doit etre insere apres </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/monWidgetPlusieursTuple.py" line="244"/>
-        <source>Nb maximum de valeurs atteint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/gereRegles.py" line="58"/>
-        <source>pas de regle de construction pour ce jeu de commandes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="260"/>
-        <source>Gestion Maillage</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="401"/>
-        <source>Acquiert groupe mailles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="406"/>
-        <source>Acquisition Groupe Maille</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="1"/>
-        <source>VERSION</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="2"/>
-        <source>NUM</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="3"/>
-        <source>FILETYPE</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="6"/>
-        <source>Fichier_maillage</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="7"/>
-        <source>Echelle_du_maillage</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="8"/>
-        <source>Formulation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="9"/>
-        <source>Timeproblem</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="10"/>
-        <source>spectral </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="11"/>
-        <source>Basis</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="12"/>
-        <source>Fourier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="13"/>
-        <source>Ordre</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="14"/>
-        <source>FREQUENCY</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="15"/>
-        <source>minimisation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="16"/>
-        <source>no</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="17"/>
-        <source>yes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Carmel3D/PourTraduction.py" line="18"/>
-        <source>nb_procs_para</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="1"/>
-        <source>POLYMER</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="2"/>
-        <source>MODEL_DATABASE</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="3"/>
-        <source>Stabilise</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="4"/>
-        <source>Non Stabilise</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="5"/>
-        <source>Local</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="9"/>
-        <source>Peinture</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="10"/>
-        <source>Tuyauterie</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="11"/>
-        <source>Materiau_De_Cable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="12"/>
-        <source>PE</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="13"/>
-        <source>EPDM</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../monCode/EssaiTraduction.py" line="14"/>
-        <source>Modele</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../convert/convert_python.py" line="116"/>
-        <source>Impossible de convertir le fichier Python qui doit contenir des erreurs.
-
-                                  On retourne le fichier non converti. Prevenir la maintenance.
-
- %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../convert/parseur_python.py" line="499"/>
-        <source>Eficas ne peut pas traiter plusieurs instructions 
-                                                 sur la meme ligne : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="209"/>
-        <source>le texte a analyser n&apos;est pas celui d&apos;une commande ou 
-                                         d&apos;un operateur : %s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="229"/>
-        <source>le texte a analyser n&apos;est pas celui d&apos;une commande connue : 
-                                        %(v_1)s %(v_2)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/analyse_catalogue.py" line="231"/>
-        <source>le texte a analyser n&apos;est pas celui d&apos;une commande connue : 
-                                         %(v_1)s %(v_2)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="149"/>
-        <source> jdc %(v_1)s manque 
-                                      fichier comm dans section %(v_2)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="154"/>
-        <source>jdc %(v_1)s, le fichier
-                                      de commandes %(v_2)s n&apos;existe pas</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="170"/>
-        <source> jdc %(v_1)s 
-                                   fichier include %(v_2)s, %(v_3)s 
-                                   n&apos;existe pas</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="202"/>
-        <source> jdc %(v_1)s manque fichier comm 
-                                dans section %(v_2)s</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Editeur/session.py" line="206"/>
-        <source>jdc %(v_1)s, le fichier de commandes 
-                                %(v_2)s n&apos;existe pas</source>
-        <comment>v_1</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Extensions/commande_comm.py" line="62"/>
-        <source>Objet commande commentaris&#xe9; invalide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="482"/>
-        <source>ATTENTION! Une source constante 
-                                  n&apos;est possible qu&apos;a frequence nulle 
-                                  en regime frequentiel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="491"/>
-        <source>ERREUR! Une forme de la source du 
-                               type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="512"/>
-        <source>ATTENTION! Une source constante n&apos;est 
-                                  possible qu&apos;a frequence nulle en regime frequentiel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="548"/>
-        <source>ERREUR! Une forme de la source du type 
-                               WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="817"/>
-        <source>ERREUR! ce groupe de maille (%s) n&apos;a pas de prefixe 
-                                indiquant le type de materiau ou de source associee</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../generator/generator_CARMEL3D.py" line="827"/>
-        <source>ERREUR! ce groupe de maille (%(nom)s) n&apos;a pas 
-                                        le prefixe correct pour etre associe a un type %(type_bloc)s</source>
-        <comment>nom</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Ihm/I_ETAPE.py" line="485"/>
-        <source>
-   Include Invalide. 
-  ne sera pas pris en compte</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Noyau/N_VALIDATOR.py" line="1554"/>
-        <source>: verifie les types dans un tuple</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../Noyau/N_VALIDATOR.py" line="1557"/>
-        <source>Les types entres ne sont pas permis</source>
-        <translation type="unfinished"></translation>
+        <location filename="../../InterfaceQT4/typeNode.py" line="115"/>
+        <source>&amp;Ok</source>
+        <translation type="obsolete">&amp;Ok</translation>
     </message>
 </context>
 <context>
     <name>ChoixCode</name>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="20"/>
+        <location filename="desChoixCode.ui" line="20"/>
         <source>Choix du code</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="38"/>
+        <location filename="desChoixCode.ui" line="38"/>
         <source>Veuillez choisir un code :</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="91"/>
+        <location filename="desChoixCode.ui" line="106"/>
         <source>&amp;Cancel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="126"/>
+        <location filename="desChoixCode.ui" line="141"/>
         <source>Validate choice</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCode.ui" line="136"/>
+        <location filename="desChoixCode.ui" line="151"/>
         <source>&amp;OK</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2203,95 +49,123 @@ Le fichier associe n&apos;est pas defini</source>
 <context>
     <name>ChoixCommandes</name>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="26"/>
+        <location filename="desChoixCommandes.ui" line="26"/>
         <source>DMacro</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="79"/>
+        <location filename="desChoixCommandes.ui" line="109"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; text-decoration: underline;&quot;&gt;Affichage&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="86"/>
+        <location filename="desChoixCommandes.ui" line="116"/>
         <source>affiche les commandes par ordre alphabetique</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="89"/>
+        <location filename="desChoixCommandes.ui" line="119"/>
         <source>Alphabetique</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="106"/>
+        <location filename="desChoixCommandes.ui" line="136"/>
         <source>affiche les commandes selon les thèmes</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="99"/>
+        <location filename="desChoixCommandes.ui" line="129"/>
         <source>Ordre de la modélisation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="109"/>
+        <location filename="desChoixCommandes.ui" line="139"/>
         <source>Par Groupe</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="166"/>
+        <location filename="desChoixCommandes.ui" line="193"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;Filtre Commande&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="188"/>
+        <location filename="desChoixCommandes.ui" line="231"/>
         <source>filter commands</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="283"/>
+        <location filename="desChoixCommandes.ui" line="341"/>
         <source>affiche les régles de validité</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="289"/>
+        <location filename="desChoixCommandes.ui" line="347"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="306"/>
+        <location filename="desChoixCommandes.ui" line="364"/>
         <source>Règles de construction</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="203"/>
+        <location filename="desChoixCommandes.ui" line="250"/>
         <source>Sensible à la casse</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="240"/>
+        <location filename="desChoixCommandes.ui" line="300"/>
         <source>Effacer </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="154"/>
+        <location filename="desChoixCommandes.ui" line="181"/>
         <source>selectionne les mots qui CONTIENNENT l expression</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desChoixCommandes.ui" line="231"/>
+        <location filename="desChoixCommandes.ui" line="291"/>
         <source>ré-affiche toutes les commandes</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>ChoixLangue</name>
+    <message>
+        <location filename="desChoixLangue.ui" line="20"/>
+        <source>Langue</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desChoixLangue.ui" line="53"/>
+        <source>Français</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desChoixLangue.ui" line="60"/>
+        <source>English</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desChoixLangue.ui" line="96"/>
+        <source>Validate choice</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desChoixLangue.ui" line="106"/>
+        <source>&amp;OK</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>DChoixCata</name>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="14"/>
+        <location filename="desChoixCata.ui" line="14"/>
         <source>Choix d&apos;une version du code Aster</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="31"/>
+        <location filename="desChoixCata.ui" line="31"/>
         <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
@@ -2300,17 +174,17 @@ p, li { white-space: pre-wrap; }
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="135"/>
+        <location filename="desChoixCata.ui" line="135"/>
         <source>&amp;Cancel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="170"/>
+        <location filename="desChoixCata.ui" line="170"/>
         <source>Validate choice</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desChoixCata.ui" line="180"/>
+        <location filename="desChoixCata.ui" line="180"/>
         <source>&amp;OK</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2318,37 +192,37 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>DSelVal</name>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desSelectVal.ui" line="20"/>
+        <location filename="desSelectVal.ui" line="20"/>
         <source>Sélection de valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="72"/>
+        <location filename="desSelectVal.ui" line="78"/>
         <source>Separateur</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="114"/>
+        <location filename="desSelectVal.ui" line="120"/>
         <source>espace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="124"/>
+        <location filename="desSelectVal.ui" line="130"/>
         <source>virgule</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="131"/>
+        <location filename="desSelectVal.ui" line="137"/>
         <source>point-virgule</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="238"/>
+        <location filename="desSelectVal.ui" line="244"/>
         <source>Ajouter Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desSelectVal.ui" line="207"/>
+        <location filename="desSelectVal.ui" line="213"/>
         <source>Importer Tout</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2356,7 +230,7 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>DVisu</name>
     <message>
-        <location filename="../../UiQT4/desVisu.ui" line="14"/>
+        <location filename="desVisu.ui" line="14"/>
         <source>Visualisation Include Materiau</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2364,694 +238,922 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>Eficas</name>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="20"/>
+        <location filename="myMain.ui" line="20"/>
         <source>MainWindow</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="132"/>
+        <location filename="myMain.ui" line="138"/>
         <source>&amp;Fichier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="173"/>
+        <location filename="myMain.ui" line="182"/>
         <source>&amp;Aide</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="187"/>
+        <location filename="myMain.ui" line="196"/>
         <source>toolBar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="219"/>
+        <location filename="myMain.ui" line="227"/>
         <source>&amp;Nouveau</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="222"/>
+        <location filename="myMain.ui" line="230"/>
         <source>Ctrl+N</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="227"/>
+        <location filename="myMain.ui" line="235"/>
         <source>Nouvel Include</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="245"/>
+        <location filename="myMain.ui" line="252"/>
         <source>&amp;Ouvrir</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="248"/>
+        <location filename="myMain.ui" line="255"/>
         <source>Ctrl+O</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="258"/>
+        <location filename="myMain.ui" line="264"/>
         <source>Enregistrer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="276"/>
+        <location filename="myMain.ui" line="281"/>
         <source>Enregistrer sous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="284"/>
+        <location filename="myMain.ui" line="289"/>
         <source>Fermer </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="287"/>
+        <location filename="myMain.ui" line="292"/>
         <source>Ctrl+W</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="292"/>
+        <location filename="myMain.ui" line="297"/>
         <source>Fermer tout</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="302"/>
+        <location filename="myMain.ui" line="306"/>
         <source>Couper</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="305"/>
+        <location filename="myMain.ui" line="309"/>
         <source>Ctrl+X</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="318"/>
+        <location filename="myMain.ui" line="321"/>
         <source>Copier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="321"/>
+        <location filename="myMain.ui" line="324"/>
         <source>Ctrl+C</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="334"/>
+        <location filename="myMain.ui" line="336"/>
         <source>Coller</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="337"/>
+        <location filename="myMain.ui" line="339"/>
         <source>Ctrl+V</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="345"/>
+        <location filename="myMain.ui" line="347"/>
         <source>Quitter</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="348"/>
+        <location filename="myMain.ui" line="350"/>
         <source>Ctrl+Q</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="353"/>
+        <location filename="myMain.ui" line="355"/>
         <source>Rapport de Validation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="364"/>
+        <location filename="myMain.ui" line="366"/>
         <source>Fichier Source</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="369"/>
+        <location filename="myMain.ui" line="371"/>
         <source>Fichier Résultat</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="266"/>
+        <location filename="myMain.ui" line="272"/>
         <source>Parametres Eficas</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="374"/>
+        <location filename="myMain.ui" line="376"/>
         <source>Lecteur documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="379"/>
+        <location filename="myMain.ui" line="381"/>
         <source>Eficas</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="384"/>
+        <location filename="myMain.ui" line="386"/>
         <source>Version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="394"/>
+        <location filename="myMain.ui" line="395"/>
         <source>Supprimer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="418"/>
+        <location filename="myMain.ui" line="418"/>
         <source>Rechercher</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="421"/>
+        <location filename="myMain.ui" line="421"/>
         <source> Rechercher dans l&apos;arbre d&apos;etude</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="424"/>
+        <location filename="myMain.ui" line="424"/>
         <source>Ctrl+F</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="432"/>
+        <location filename="myMain.ui" line="432"/>
         <source>Replier/Deplier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="114"/>
+        <location filename="myMain.ui" line="120"/>
         <source>Tab 1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="148"/>
+        <location filename="myMain.ui" line="154"/>
         <source>&amp;Edition</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="161"/>
+        <location filename="myMain.ui" line="167"/>
         <source>&amp;JeuDeDonnées</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="230"/>
+        <location filename="myMain.ui" line="238"/>
         <source>Shift+I</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="261"/>
+        <location filename="myMain.ui" line="267"/>
         <source>Ctrl+S</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="279"/>
+        <location filename="myMain.ui" line="284"/>
         <source>Ctrl+Shift+S</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="356"/>
+        <location filename="myMain.ui" line="358"/>
         <source>Shift+V</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="399"/>
+        <location filename="myMain.ui" line="400"/>
         <source>Chercher Mot-Clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="402"/>
+        <location filename="myMain.ui" line="403"/>
         <source> Rechercher dans le catalogue</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="405"/>
+        <location filename="myMain.ui" line="406"/>
         <source>Shift+F</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="435"/>
+        <location filename="myMain.ui" line="435"/>
         <source>Shift+D</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="440"/>
+        <location filename="myMain.ui" line="440"/>
         <source>Commentaire</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="443"/>
+        <location filename="myMain.ui" line="443"/>
         <source>Shift+C</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="452"/>
+        <location filename="myMain.ui" line="452"/>
         <source>Paramètres</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="455"/>
+        <location filename="myMain.ui" line="455"/>
         <source>Gestion des paramètres</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="458"/>
+        <location filename="myMain.ui" line="458"/>
         <source>Shift+P</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="463"/>
+        <location filename="myMain.ui" line="463"/>
         <source>Parametre Eficas</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="158"/>
-        <source>Execution</source>
+        <location filename="myMain.ui" line="243"/>
+        <source>&amp;bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="myMain.ui" line="468"/>
+        <source>Régles du JdC</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="166"/>
-        <source>Execution </source>
+        <location filename="myMain.ui" line="473"/>
+        <source>Cacher l&apos;Arbre</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="176"/>
-        <source>Save Run</source>
+        <location filename="myMain.ui" line="478"/>
+        <source>Afficher l&apos;Arbre</source>
         <translation type="unfinished"></translation>
     </message>
+</context>
+<context>
+    <name>JDCEditor</name>
+    <message>
+        <location filename="../../InterfaceQT4/editor.py" line="944"/>
+        <source>&amp;Abandonner</source>
+        <translation type="obsolete">&amp;Abandonner</translation>
+    </message>
+</context>
+<context>
+    <name>Tuple2</name>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas_with_log.py" line="326"/>
-        <source>Patrons</source>
+        <location filename="Tuple2.ui" line="20"/>
+        <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/qtEficas.py" line="184"/>
-        <source>Run</source>
+        <location filename="Tuple2.ui" line="41"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/myMain.ui" line="235"/>
-        <source>&amp;bad</source>
+        <location filename="Tuple2.ui" line="82"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/myMain.ui" line="468"/>
-        <source>Régles du JdC</source>
+    <message>
+        <location filename="Tuple2.ui" line="118"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>JDCEditor</name>
+    <name>Tuple3</name>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="785"/>
-        <source>Save File</source>
+        <location filename="Tuple3.ui" line="14"/>
+        <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="785"/>
-        <source>The file &lt;b&gt;%1&lt;/b&gt; could not be saved.&lt;br&gt;Reason: %2</source>
+        <location filename="Tuple3.ui" line="26"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="930"/>
-        <source>JDC (*.comm);;All Files (*)</source>
+        <location filename="Tuple3.ui" line="100"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="944"/>
-        <source>&amp;Abandonner</source>
-        <translation type="unfinished">&amp;Abandonner</translation>
+        <location filename="Tuple3.ui" line="136"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>Tuple2</name>
+    <name>Widget4a6RadioButton</name>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="20"/>
+        <location filename="desWidget4a6RadioButton.ui" line="32"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="41"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidget4a6RadioButton.ui" line="97"/>
+        <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="82"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidget4a6RadioButton.ui" line="338"/>
+        <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple2.ui" line="118"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidget4a6RadioButton.ui" line="158"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidget4a6RadioButton.ui" line="272"/>
+        <source>RadioButton</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidget4a6RadioButton.ui" line="332"/>
+        <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>Tuple3</name>
+    <name>WidgetBloc</name>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="14"/>
+        <location filename="desWidgetBloc.ui" line="14"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
+</context>
+<context>
+    <name>WidgetCB</name>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="26"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetCB.ui" line="32"/>
+        <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="100"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetCB.ui" line="100"/>
+        <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/Tuple3.ui" line="136"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetCB.ui" line="267"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCB.ui" line="161"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCB.ui" line="261"/>
+        <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>Widget4a6RadioButton</name>
+    <name>WidgetCommande</name>
+    <message>
+        <location filename="desWidgetCommande.ui" line="26"/>
+        <source>DCommandeUnique</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommande.ui" line="127"/>
+        <source>Affiche le rapport de validité de la commande</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="447"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="184"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommande.ui" line="213"/>
+        <source>Nom de l&apos;objet. Seuls, les objets valides peuvent être nommés</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommande.ui" line="290"/>
+        <source>Lance un script associé à la commande</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="347"/>
+        <source>ouvre un navigateur sur l&apos;aide contextuelle</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommande.ui" line="385"/>
+        <source>affiche les régles de validité</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommande.ui" line="441"/>
+        <source>Détruit la commande</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="490"/>
+        <source>Affiche les commandes possibles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="499"/>
+        <source>&amp;Commandes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="606"/>
+        <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommande.ui" line="548"/>
+        <source>Affiche le formulaire de la commande précédente</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="557"/>
+        <source>&lt;&lt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="594"/>
+        <source>Affiche le formulaire de la commande suivante</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="603"/>
+        <source>&gt;&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommande.ui" line="515"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>WidgetCommentaire</name>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="26"/>
+        <source>DCommandeUnique</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="285"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="330"/>
+        <source>Affiche les commandes possibles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="339"/>
+        <source>&amp;Commandes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="436"/>
+        <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommentaire.ui" line="378"/>
+        <source>Affiche le formulaire de la commande précédente</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="387"/>
+        <source>&lt;&lt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="424"/>
+        <source>Affiche le formulaire de la commande suivante</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="433"/>
+        <source>&gt;&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommentaire.ui" line="152"/>
+        <source>Affiche le rapport de validité de la commande</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetCommentaire.ui" line="209"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Commentaire&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetCommentaire.ui" line="279"/>
+        <source>Détruit la commande</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>WidgetDate</name>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="32"/>
+        <location filename="desWidgetDate.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="97"/>
+        <location filename="desWidgetDate.ui" line="91"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="326"/>
+        <location filename="desWidgetDate.ui" line="236"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="158"/>
+        <location filename="desWidgetDate.ui" line="152"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetDate.ui" line="230"/>
+        <source>Détruit le mot-clef</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>WidgetFact</name>
     <message>
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="260"/>
-        <source>RadioButton</source>
+        <location filename="desWidgetFact.ui" line="17"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFact.ui" line="404"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetFact.ui" line="175"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;TextLabel&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidget4a6RadioButton.ui" line="320"/>
-        <source>Détruit le mot-clef</source>
+        <location filename="desWidgetFact.ui" line="262"/>
+        <source>Lance un script associé à la commande</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>WidgetBloc</name>
+    <name>WidgetFactHorizon</name>
     <message>
-        <location filename="../../UiQT4/desWidgetBloc.ui" line="14"/>
+        <location filename="desWidgetFactHorizon.ui" line="17"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>WidgetCB</name>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="32"/>
-        <source>Form</source>
+        <location filename="desWidgetFactHorizon.ui" line="382"/>
+        <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="100"/>
-        <source>Affiche le rapport de validation du mot-clef</source>
+        <location filename="desWidgetFactHorizon.ui" line="175"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;TextLabel&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFactHorizon.ui" line="262"/>
+        <source>Lance un script associé à la commande</source>
         <translation type="unfinished"></translation>
     </message>
+</context>
+<context>
+    <name>WidgetFactPlie</name>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="267"/>
-        <source>...</source>
+        <location filename="desWidgetFactPlie.ui" line="14"/>
+        <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCB.ui" line="161"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetFactPlie.ui" line="191"/>
+        <source>...</source>
         <translation type="unfinished"></translation>
     </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCB.ui" line="261"/>
-        <source>Détruit le mot-clef</source>
+    <message>
+        <location filename="desWidgetFactPlie.ui" line="128"/>
+        <source>TextLabel</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>WidgetCommande</name>
+    <name>WidgetFormule</name>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="26"/>
+        <location filename="desWidgetFormule.ui" line="26"/>
         <source>DCommandeUnique</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="90"/>
+        <location filename="desWidgetFormule.ui" line="90"/>
         <source>Affiche le rapport de validité de la commande</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="378"/>
+        <location filename="desWidgetFormule.ui" line="264"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="147"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetFormule.ui" line="147"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Formule&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="176"/>
+        <location filename="desWidgetFormule.ui" line="176"/>
         <source>Nom de l&apos;objet. Seuls, les objets valides peuvent être nommés</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="240"/>
-        <source>Lance un script associé à la commande</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="278"/>
-        <source>ouvre un navigateur sur l&apos;aide contextuelle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="316"/>
-        <source>affiche les régles de validité</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="372"/>
+        <location filename="desWidgetFormule.ui" line="258"/>
         <source>Détruit la commande</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="422"/>
+        <location filename="desWidgetFormule.ui" line="308"/>
         <source>Affiche les commandes possibles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="431"/>
+        <location filename="desWidgetFormule.ui" line="317"/>
         <source>&amp;Commandes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="528"/>
+        <location filename="desWidgetFormule.ui" line="414"/>
         <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="470"/>
+        <location filename="desWidgetFormule.ui" line="356"/>
         <source>Affiche le formulaire de la commande précédente</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="479"/>
+        <location filename="desWidgetFormule.ui" line="365"/>
         <source>&lt;&lt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="516"/>
+        <location filename="desWidgetFormule.ui" line="402"/>
         <source>Affiche le formulaire de la commande suivante</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="525"/>
+        <location filename="desWidgetFormule.ui" line="411"/>
         <source>&gt;&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommande.ui" line="547"/>
-        <source>TextLabel</source>
+        <location filename="desWidgetFormule.ui" line="477"/>
+        <source>&lt;h3&gt;&lt;p align=&quot;center&quot;&gt;&lt;u&gt;&lt;b&gt;Nom de la formule&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>WidgetCommentaire</name>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="26"/>
-        <source>DCommandeUnique</source>
+        <location filename="desWidgetFormule.ui" line="489"/>
+        <source>&lt;h3&gt;&lt;p align=&quot;center&quot;&gt;&lt;u&gt;&lt;b&gt;Arguments&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="188"/>
-        <source>...</source>
+    <message encoding="UTF-8">
+        <location filename="desWidgetFormule.ui" line="499"/>
+        <source>variables séparées par des &quot;,&quot;
+          par ex. : x,y,z</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="147"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;Commentaire&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetFormule.ui" line="524"/>
+        <source>&lt;h3&gt;&lt;p align=&quot;center&quot;&gt;&lt;u&gt;&lt;b&gt;Expression&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;&lt;/h3&gt;</source>
         <translation type="unfinished"></translation>
     </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="182"/>
-        <source>Détruit le commentaire</source>
+    <message>
+        <location filename="desWidgetFormule.ui" line="562"/>
+        <source>&lt;h1&gt;&lt;b&gt;(&lt;/b&gt;&lt;/h1&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="227"/>
-        <source>Affiche les commandes possibles</source>
+        <location filename="desWidgetFormule.ui" line="582"/>
+        <source>&lt;h1&gt;&lt;b&gt;)&lt;/b&gt;&lt;/h1&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="236"/>
-        <source>&amp;Commandes</source>
+        <location filename="desWidgetFormule.ui" line="627"/>
+        <source>&lt;font size=&quot;+4&quot; face=&quot;Helvetica&quot;&gt;&lt;b&gt;=&lt;/b&gt;&lt;/font&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+</context>
+<context>
+    <name>WidgetHeure</name>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="333"/>
-        <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
+        <location filename="desWidgetHeure.ui" line="26"/>
+        <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="275"/>
-        <source>Affiche le formulaire de la commande précédente</source>
+    <message>
+        <location filename="desWidgetHeure.ui" line="86"/>
+        <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="284"/>
-        <source>&lt;&lt;</source>
+        <location filename="desWidgetHeure.ui" line="209"/>
+        <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="321"/>
-        <source>Affiche le formulaire de la commande suivante</source>
+        <location filename="desWidgetHeure.ui" line="132"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCommentaire.ui" line="330"/>
-        <source>&gt;&gt;</source>
+        <location filename="desWidgetHeure.ui" line="145"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetHeure.ui" line="203"/>
+        <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>WidgetDate</name>
+    <name>WidgetInactif</name>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="26"/>
-        <source>Form</source>
+        <location filename="desWidgetInactif.ui" line="20"/>
+        <source>DInactif</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="77"/>
+        <source>Affiche le rapport de validité de la commande</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="91"/>
-        <source>Affiche le rapport de validation du mot-clef</source>
+        <location filename="desWidgetInactif.ui" line="137"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="217"/>
+        <source>Détruit la commande</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="236"/>
+        <location filename="desWidgetInactif.ui" line="223"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetDate.ui" line="152"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetInactif.ui" line="266"/>
+        <source>Affiche les commandes possibles</source>
         <translation type="unfinished"></translation>
     </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetDate.ui" line="230"/>
-        <source>Détruit le mot-clef</source>
+    <message>
+        <location filename="desWidgetInactif.ui" line="275"/>
+        <source>&amp;Commandes</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>WidgetFact</name>
     <message>
-        <location filename="../../UiQT4/desWidgetFact.ui" line="17"/>
-        <source>Form</source>
+        <location filename="desWidgetInactif.ui" line="372"/>
+        <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../UiQT4/desWidgetFact.ui" line="344"/>
-        <source>...</source>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="314"/>
+        <source>Affiche le formulaire de la commande précédente</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetFact.ui" line="175"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;TextLabel&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetInactif.ui" line="323"/>
+        <source>&lt;&lt;</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>WidgetFactPlie</name>
     <message>
-        <location filename="../../UiQT4/desWidgetFactPlie.ui" line="14"/>
-        <source>Form</source>
+        <location filename="desWidgetInactif.ui" line="360"/>
+        <source>Affiche le formulaire de la commande suivante</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetFactPlie.ui" line="189"/>
-        <source>...</source>
+        <location filename="desWidgetInactif.ui" line="369"/>
+        <source>&gt;&gt;</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location filename="../../UiQT4/desWidgetFactPlie.ui" line="142"/>
-        <source>TextLabel</source>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="410"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;Le noeud sélectionné&lt;/span&gt;&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;ne correspond pas à un objet actif&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetInactif.ui" line="433"/>
+        <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;&quot;&gt;&lt;span style=&quot; font-size:x-large;&quot;&gt;Seules les commandes placées&lt;/span&gt;&lt;/p&gt;
+&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;&quot;&gt;&lt;span style=&quot; font-size:x-large;&quot;&gt; entre : DEBUT / FIN sont actives &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>WidgetHeure</name>
+    <name>WidgetInformative</name>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="26"/>
+        <location filename="desWidgetInformation.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
+</context>
+<context>
+    <name>WidgetIntoSug</name>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="86"/>
-        <source>Affiche le rapport de validation du mot-clef</source>
+        <location filename="desWidgetIntoSug.ui" line="26"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetIntoSug.ui" line="57"/>
+        <source>permet de gérer la liste</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="209"/>
+        <location filename="desWidgetIntoSug.ui" line="410"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="132"/>
+        <location filename="desWidgetIntoSug.ui" line="95"/>
+        <source>Affiche le rapport de validation du mot-clef</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetIntoSug.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="145"/>
+        <location filename="desWidgetIntoSug.ui" line="246"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetHeure.ui" line="203"/>
-        <source>Détruit le mot-clef</source>
+        <location filename="desWidgetIntoSug.ui" line="295"/>
+        <source>Valeurs hors liste - la valeur saisie sera ajoutée à la liste</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>WidgetInformative</name>
-    <message>
-        <location filename="../../UiQT4/desWidgetInformation.ui" line="26"/>
-        <source>Form</source>
+    <message encoding="UTF-8">
+        <location filename="desWidgetIntoSug.ui" line="404"/>
+        <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>WidgetOptionnel</name>
     <message>
-        <location filename="../../UiQT4/desWidgetOptionnel.ui" line="26"/>
+        <location filename="desWidgetOptionnel.ui" line="26"/>
         <source>WidgetOptionnel</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetOptionnel.ui" line="69"/>
+        <location filename="desWidgetOptionnel.ui" line="84"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3059,155 +1161,160 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetParam</name>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="26"/>
+        <location filename="desWidgetParam.ui" line="26"/>
         <source>DCommandeUnique</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="182"/>
+        <location filename="desWidgetParam.ui" line="264"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetParam.ui" line="141"/>
+        <location filename="desWidgetParam.ui" line="188"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#000000;&quot;&gt;Paramètre&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
-    <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetParam.ui" line="176"/>
-        <source>Détruit le commentaire</source>
-        <translation type="unfinished"></translation>
-    </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="460"/>
+        <location filename="desWidgetParam.ui" line="568"/>
         <source>Affiche les commandes possibles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="230"/>
+        <location filename="desWidgetParam.ui" line="335"/>
         <source>&amp;Commandes</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="472"/>
+        <location filename="desWidgetParam.ui" line="580"/>
         <source>Shift+A, Alt+A, Alt+A, Alt+A</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetParam.ui" line="269"/>
+        <location filename="desWidgetParam.ui" line="374"/>
         <source>Affiche le formulaire de la commande précédente</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="278"/>
+        <location filename="desWidgetParam.ui" line="383"/>
         <source>&lt;&lt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="315"/>
+        <location filename="desWidgetParam.ui" line="420"/>
         <source>Affiche le formulaire de la commande suivante</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="324"/>
+        <location filename="desWidgetParam.ui" line="429"/>
         <source>&gt;&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="385"/>
+        <location filename="desWidgetParam.ui" line="493"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Valeur: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="425"/>
+        <location filename="desWidgetParam.ui" line="533"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="469"/>
+        <location filename="desWidgetParam.ui" line="577"/>
         <source>Verifie la valeur</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetParam.ui" line="487"/>
+        <location filename="desWidgetParam.ui" line="595"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetParam.ui" line="131"/>
+        <source>Affiche le rapport de validité de la commande</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetParam.ui" line="258"/>
+        <source>Détruit la commande</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>WidgetPlusieursBase</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="26"/>
+        <location filename="desWidgetPlusieursBase.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="116"/>
+        <location filename="desWidgetPlusieursBase.ui" line="116"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="778"/>
+        <location filename="desWidgetPlusieursBase.ui" line="786"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="182"/>
+        <location filename="desWidgetPlusieursBase.ui" line="182"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="386"/>
+        <location filename="desWidgetPlusieursBase.ui" line="398"/>
         <source>Remonte la ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="425"/>
+        <location filename="desWidgetPlusieursBase.ui" line="436"/>
         <source>Descend la ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="464"/>
+        <location filename="desWidgetPlusieursBase.ui" line="474"/>
         <source>supprime une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="503"/>
+        <location filename="desWidgetPlusieursBase.ui" line="512"/>
         <source>Ajoute une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="559"/>
+        <location filename="desWidgetPlusieursBase.ui" line="568"/>
         <source>Montre l&apos;ensemble des valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="621"/>
+        <location filename="desWidgetPlusieursBase.ui" line="630"/>
         <source>Sélectionne depuis Salome</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="659"/>
+        <location filename="desWidgetPlusieursBase.ui" line="668"/>
         <source>Visualise dans Salome</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="717"/>
+        <location filename="desWidgetPlusieursBase.ui" line="726"/>
         <source>Ouvre un fichier de sélection des valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="772"/>
+        <location filename="desWidgetPlusieursBase.ui" line="780"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="78"/>
+        <location filename="desWidgetPlusieursBase.ui" line="78"/>
         <source>permet de gérer la liste</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursBase.ui" line="234"/>
+        <location filename="desWidgetPlusieursBase.ui" line="234"/>
         <source>TextLabel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3215,128 +1322,163 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetPlusieursInto</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="26"/>
+        <location filename="desWidgetPlusieursInto.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="110"/>
+        <location filename="desWidgetPlusieursInto.ui" line="95"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="356"/>
+        <location filename="desWidgetPlusieursInto.ui" line="531"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="252"/>
+        <location filename="desWidgetPlusieursInto.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="350"/>
+        <location filename="desWidgetPlusieursInto.ui" line="525"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursInto.ui" line="72"/>
+        <location filename="desWidgetPlusieursInto.ui" line="57"/>
         <source>permet de gérer la liste</source>
         <translation type="unfinished"></translation>
     </message>
-</context>
-<context>
-    <name>WidgetPlusieursIntoOrdonne</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="26"/>
-        <source>Form</source>
+        <location filename="desWidgetPlusieursInto.ui" line="255"/>
+        <source>Cherche la valeur</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="110"/>
-        <source>Affiche le rapport de validation du mot-clef</source>
+        <location filename="desWidgetPlusieursInto.ui" line="295"/>
+        <source>Original</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="684"/>
-        <source>...</source>
+        <location filename="desWidgetPlusieursInto.ui" line="302"/>
+        <source>Alpha</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="176"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <location filename="desWidgetPlusieursInto.ui" line="402"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>WidgetPlusieursIntoOrdonne</name>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="26"/>
+        <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="228"/>
-        <source>TextLabel</source>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="110"/>
+        <source>Affiche le rapport de validation du mot-clef</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="850"/>
+        <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="450"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="618"/>
         <source>Remonte d&apos;une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="486"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="653"/>
         <source>Descend d&apos;une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="522"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="688"/>
         <source>Détruit une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="557"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="723"/>
         <source>ajoute une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="607"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="773"/>
         <source>visualise l&apos;ensemble des valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="678"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="844"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursIntoOrdonne.ui" line="72"/>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="72"/>
         <source>permet de gérer la liste</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="369"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="226"/>
+        <source>Cherche dans la liste</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="261"/>
+        <source>remet le filtre à blanc</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="290"/>
+        <source>Catalogue</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetPlusieursIntoOrdonne.ui" line="297"/>
+        <source>Alpha</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>WidgetPlusieursPlie</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="26"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="101"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="101"/>
         <source>Affiche le rapport de validité du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="273"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="234"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="162"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="162"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="66"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="66"/>
         <source>permet de gérer la liste</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursPlie.ui" line="267"/>
+        <location filename="desWidgetPlusieursPlie.ui" line="228"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3344,62 +1486,62 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetPlusieursTuple</name>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="26"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="93"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="93"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="621"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="632"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="161"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="161"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="337"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="355"/>
         <source>Remonte la ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="376"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="393"/>
         <source>Descend la ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="415"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="431"/>
         <source>supprime une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="454"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="466"/>
         <source>Ajoute une ligne</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="510"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="522"/>
         <source>Montre l&apos;ensemble des valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="560"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="572"/>
         <source>Ouvre un fichier de sélection des valeurs</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="615"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="626"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetPlusieursTuple.ui" line="213"/>
+        <location filename="desWidgetPlusieursTuple.ui" line="213"/>
         <source>TextLabel</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3407,32 +1549,32 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetRadioButton</name>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="32"/>
+        <location filename="desWidgetRadioButton.ui" line="32"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="97"/>
+        <location filename="desWidgetRadioButton.ui" line="97"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="289"/>
+        <location filename="desWidgetRadioButton.ui" line="266"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="158"/>
+        <location filename="desWidgetRadioButton.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="251"/>
+        <location filename="desWidgetRadioButton.ui" line="222"/>
         <source>RadioButton</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetRadioButton.ui" line="283"/>
+        <location filename="desWidgetRadioButton.ui" line="260"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3440,37 +1582,37 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSDCOInto</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="26"/>
+        <location filename="desWidgetSDCOInto.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="91"/>
+        <location filename="desWidgetSDCOInto.ui" line="91"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="315"/>
+        <location filename="desWidgetSDCOInto.ui" line="315"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="152"/>
+        <location filename="desWidgetSDCOInto.ui" line="152"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="186"/>
+        <location filename="desWidgetSDCOInto.ui" line="186"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Structures de données du type requis &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="243"/>
+        <location filename="desWidgetSDCOInto.ui" line="243"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ou Nom du concept&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSDCOInto.ui" line="309"/>
+        <location filename="desWidgetSDCOInto.ui" line="309"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3478,27 +1620,27 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpBase</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="32"/>
+        <location filename="desWidgetSimpBase.ui" line="32"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="97"/>
+        <location filename="desWidgetSimpBase.ui" line="97"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="257"/>
+        <location filename="desWidgetSimpBase.ui" line="257"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="158"/>
+        <location filename="desWidgetSimpBase.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpBase.ui" line="251"/>
+        <location filename="desWidgetSimpBase.ui" line="251"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3506,37 +1648,37 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpBool</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="32"/>
+        <location filename="desWidgetSimpBool.ui" line="32"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="88"/>
+        <location filename="desWidgetSimpBool.ui" line="88"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="252"/>
+        <location filename="desWidgetSimpBool.ui" line="255"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="149"/>
+        <location filename="desWidgetSimpBool.ui" line="149"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="166"/>
+        <location filename="desWidgetSimpBool.ui" line="166"/>
         <source>True</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="189"/>
+        <location filename="desWidgetSimpBool.ui" line="189"/>
         <source>False</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpBool.ui" line="246"/>
+        <location filename="desWidgetSimpBool.ui" line="249"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3544,42 +1686,42 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpComplexe</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="32"/>
+        <location filename="desWidgetSimpComplexe.ui" line="32"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="103"/>
+        <location filename="desWidgetSimpComplexe.ui" line="103"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="339"/>
+        <location filename="desWidgetSimpComplexe.ui" line="339"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="164"/>
+        <location filename="desWidgetSimpComplexe.ui" line="164"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="203"/>
+        <location filename="desWidgetSimpComplexe.ui" line="203"/>
         <source>Complexe : a+bj</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="244"/>
+        <location filename="desWidgetSimpComplexe.ui" line="244"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;OU &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="259"/>
+        <location filename="desWidgetSimpComplexe.ui" line="259"/>
         <source>Réel/Imaginaire</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpComplexe.ui" line="266"/>
+        <location filename="desWidgetSimpComplexe.ui" line="266"/>
         <source>Module/Phase</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3587,37 +1729,75 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpFichier</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="26"/>
+        <location filename="desWidgetSimpFichier.ui" line="26"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetSimpFichier.ui" line="82"/>
+        <source>Affiche le rapport de validité du mot-clef</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpFichier.ui" line="315"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpFichier.ui" line="143"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpFichier.ui" line="222"/>
+        <source>affiche l&apos;explorateur de fichier</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetSimpFichier.ui" line="252"/>
+        <source>ouvre le fichier choisi</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desWidgetSimpFichier.ui" line="309"/>
+        <source>Détruit le mot-clef</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>WidgetSimpSalome</name>
+    <message>
+        <location filename="desWidgetSimpSalome.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="82"/>
+        <location filename="desWidgetSimpSalome.ui" line="82"/>
         <source>Affiche le rapport de validité du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="315"/>
+        <location filename="desWidgetSimpSalome.ui" line="314"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="143"/>
+        <location filename="desWidgetSimpSalome.ui" line="143"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="222"/>
+        <location filename="desWidgetSimpSalome.ui" line="222"/>
         <source>affiche l&apos;explorateur de fichier</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="252"/>
+        <location filename="desWidgetSimpSalome.ui" line="251"/>
         <source>ouvre le fichier choisi</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpFichier.ui" line="309"/>
+        <location filename="desWidgetSimpSalome.ui" line="308"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3625,27 +1805,27 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetSimpTxt</name>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="32"/>
+        <location filename="desWidgetSimpTxt.ui" line="32"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="97"/>
+        <location filename="desWidgetSimpTxt.ui" line="97"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="257"/>
+        <location filename="desWidgetSimpTxt.ui" line="257"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="158"/>
+        <location filename="desWidgetSimpTxt.ui" line="158"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetSimpTxt.ui" line="251"/>
+        <location filename="desWidgetSimpTxt.ui" line="251"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3653,42 +1833,42 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetTuple2</name>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="26"/>
+        <location filename="desWidgetTuple2.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="94"/>
+        <location filename="desWidgetTuple2.ui" line="94"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="294"/>
+        <location filename="desWidgetTuple2.ui" line="294"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="155"/>
+        <location filename="desWidgetTuple2.ui" line="155"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="174"/>
+        <location filename="desWidgetTuple2.ui" line="174"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="212"/>
+        <location filename="desWidgetTuple2.ui" line="212"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="248"/>
+        <location filename="desWidgetTuple2.ui" line="248"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetTuple2.ui" line="288"/>
+        <location filename="desWidgetTuple2.ui" line="288"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3696,42 +1876,42 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetTuple3</name>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="26"/>
+        <location filename="desWidgetTuple3.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="91"/>
+        <location filename="desWidgetTuple3.ui" line="91"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="315"/>
+        <location filename="desWidgetTuple3.ui" line="315"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="152"/>
+        <location filename="desWidgetTuple3.ui" line="152"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="169"/>
+        <location filename="desWidgetTuple3.ui" line="169"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;(&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="238"/>
+        <location filename="desWidgetTuple3.ui" line="238"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;,&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="274"/>
+        <location filename="desWidgetTuple3.ui" line="274"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:14pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetTuple3.ui" line="309"/>
+        <location filename="desWidgetTuple3.ui" line="309"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3739,32 +1919,32 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetUniqueSDCO</name>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="26"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="82"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="82"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="229"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="229"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="143"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="143"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="181"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="181"/>
         <source>Attend un objet de type CO </source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetUniqueSDCO.ui" line="223"/>
+        <location filename="desWidgetUniqueSDCO.ui" line="223"/>
         <source>Détruit le mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3772,22 +1952,22 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>WidgetVide</name>
     <message>
-        <location filename="../../UiQT4/desWidgetVide.ui" line="26"/>
+        <location filename="desWidgetVide.ui" line="26"/>
         <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetVide.ui" line="296"/>
+        <location filename="desWidgetVide.ui" line="296"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetVide.ui" line="129"/>
+        <location filename="desWidgetVide.ui" line="129"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0055ff;&quot;&gt;Label&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetVide.ui" line="158"/>
+        <location filename="desWidgetVide.ui" line="158"/>
         <source>Attend un objet de type XXXX. Il faut le créer</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3795,25 +1975,38 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>baseWidget</name>
     <message>
-        <location filename="../../UiQT4/desBaseWidget.ui" line="26"/>
+        <location filename="desBaseWidget.ui" line="26"/>
         <source>DMacro</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>customPB</name>
+    <message>
+        <location filename="desPBOptionnelMT.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desPBOptionnelMT.ui" line="60"/>
+        <source>PushButton</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context>
     <name>dView</name>
     <message>
-        <location filename="../../UiQT4/desViewTexte.ui" line="13"/>
+        <location filename="desViewTexte.ui" line="13"/>
         <source>Dialog</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desViewTexte.ui" line="35"/>
+        <location filename="desViewTexte.ui" line="35"/>
         <source>Fermer</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desViewTexte.ui" line="42"/>
+        <location filename="desViewTexte.ui" line="42"/>
         <source>Sauver</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3821,40 +2014,63 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>desRecherche</name>
     <message>
-        <location filename="../../UiQT4/desRecherche.ui" line="14"/>
+        <location filename="desRecherche.ui" line="14"/>
         <source>Rechercher dans le JDC</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desRecherche.ui" line="17"/>
+        <location filename="desRecherche.ui" line="17"/>
         <source>Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desRecherche.ui" line="63"/>
+        <location filename="desRecherche.ui" line="63"/>
         <source>Suivant</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
+<context>
+    <name>desRechercheCatalogue</name>
+    <message>
+        <location filename="desRechercheCatalogue.ui" line="14"/>
+        <source>Rechercher dans le Catalogue</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desRechercheCatalogue.ui" line="34"/>
+        <source>Mot à chercher</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message encoding="UTF-8">
+        <location filename="desRechercheCatalogue.ui" line="46"/>
+        <source>Généalogie</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desRechercheCatalogue.ui" line="65"/>
+        <source>Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
 <context encoding="UTF-8">
     <name>desWidgetCreeParam</name>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="14"/>
+        <location filename="desWidgetCreeParam.ui" line="14"/>
         <source>Gestion des Paramètres</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="153"/>
+        <location filename="desWidgetCreeParam.ui" line="156"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="180"/>
+        <location filename="desWidgetCreeParam.ui" line="183"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Valeur: &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetCreeParam.ui" line="208"/>
+        <location filename="desWidgetCreeParam.ui" line="211"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; text-decoration: underline;&quot;&gt;Créer un paramètre&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3862,50 +2078,68 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>desWidgetMatrice</name>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="14"/>
+        <location filename="desWidgetMatrice.ui" line="14"/>
         <source>Dialog</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="70"/>
+        <location filename="desWidgetMatrice.ui" line="79"/>
         <source>Affiche le rapport de validation du mot-clef</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="76"/>
+        <location filename="desWidgetMatrice.ui" line="85"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
     <message encoding="UTF-8">
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="108"/>
+        <location filename="desWidgetMatrice.ui" line="120"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Met à jour l&apos;en-tête&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../UiQT4/desWidgetMatrice.ui" line="146"/>
+        <location filename="desWidgetMatrice.ui" line="170"/>
         <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
-    <name>self.appliEficas</name>
+    <name>desWidgetOptionnel</name>
     <message>
-        <location filename="../../InterfaceQT4/editor.py" line="750"/>
-        <source>Wrapper Files (*.xml);;All Files (*)</source>
+        <location filename="desWidgetOptionnelMC.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="desWidgetOptionnelMC.ui" line="50"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>groupeOptionnel</name>
+    <message>
+        <location filename="desGroupeOptionnel.ui" line="14"/>
+        <source>Form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../InterfaceQT4/viewManager.py" line="348"/>
-        <source>Noname</source>
+        <location filename="desGroupeOptionnel.ui" line="53"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;commande &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>viewRegles</name>
     <message>
-        <location filename="../../UiQT4/desViewRegles.ui" line="14"/>
+        <location filename="desViewRegles.ui" line="14"/>
         <source>Dialog</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="desViewRegles.ui" line="20"/>
+        <source>Fermer</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 </TS>
index 9837a78030efb29fec0560899a95fbdaa1d405cb..cfe129bf8daa6b58ec40c589bb2c2b7544dcbe25 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index eb801aab36b05887b8819b5bce682b63df16dae0..1286b06150d6068192bf985f508c9af08f508981 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 32955947fdb10d02e4da21f4d5ae242551087c7a..7a790d4b4987947d3d750bb910ffc283b0a83d35 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 5bdc61cb6a2d4b7bd55e0430f4196b2dc09ed4e6..0592218968aad2c6348083e0ca64856c999b7641 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 957104d94ec49108e1f2d1c6c0aa0113a836a55f..9287a7c48dc3983006e70c89c428258119157620 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 52d7182af1463d178de3974cf4b57c4e67dd3a50..3ad77d3059d163df687594fdba8394251ac49d70 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index fc13c39f346dad7deb36e109b17e1780fd4dd754..f3c89fbb0b45737741bbe56c9ff64bb60f33c402 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index dcbbad6fac80875b97b3bac0cee608116c4f5d9e..197b9d4e480c654d5208690fd77ead621e54d46e 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 5607daba3e35da427167125104cb26445c028140..f6796e5d4ef9065fbaa1ddbbfed35f0dcf18f176 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 2739b017cd62ba161bbea6380adaa314243e11b9..b82541c6afcd84ff261fa6d98f7d199e874bbdea 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 0e2d3cf67c1b6785f6e9d620021a8477c1ca9cf0..ee58756c5b8a2f724dd855104cc088e8aa0c075b 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index a58f75ca293b34dd4c2004d675587d7507503065..4324bcc3905432113622615d627ed78b997214ad 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 5ee9c28426ef0732e0da1766e884b301211c656d..2bdeeb2d262e10bbcb3c9e546eda3ef9c0a03e7e 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 7a590a4a7382157becf5e6866ef4b47ae84cde11..9b5cfdd07f7cd9ec759a7364943db99ce5125693 100644 (file)
@@ -1,6 +1,6 @@
 # coding=utf-8
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 516ab33a309e6014bc81fd703a2448749d5ed7ed..fd2a75dd9862317b501a59495d7979a0f173c219 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 1eb8b4320d80ee0037bb9196b500ecfe0b7bde10..b9eab109cb7c3ab5f106c4c78053e2813617deb3 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index db880ffda9a13b79f0e3e7fbf3672e330e9a2409..5489535b75e926e62bf43ff4bd2f7b065fd3f06b 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index dafb15a78f8db57b9234578a6cfe64ef0664bb1d..2410bf85320d3f974507d53df3cac60719702a4e 100644 (file)
@@ -1,7 +1,7 @@
 # coding=utf-8
 # person_in_charge: mathieu.courtois at edf.fr
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2015  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2017  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
index 7cb2654823c080317eb64227f7e18597096f0a04..ecd26bf10741d57dd1a56a9c338e95e128b612c3 100644 (file)
 #
 # ======================================================================
 
-install ( FILES __init__.py generator_python.py Formatage.py generator_aplat.py generator_TELEMAC.py
-                generator_file_from_template.py generator_map.py
+
+install ( FILES __init__.py generator_python.py Formatage.py generator_aplat.py 
+               generator_dicoImbrique.py generator_dico.py generator_modification.py generator_vers3DSalome.py
+               generator_TELEMAC.py generator_map.py generator_GroupMA.py 
           DESTINATION ${CMAKE_INSTALL_PREFIX}/generator
         )
 
 
 
-
-
 # Installation des fichiers : CARMEL
 if (WITH_CARMEL)
-  install ( FILES generator_CARMEL3D_frequentiel.py generator_CARMELCND.py
+  install ( FILES generator_CARMEL3D_frequentiel.py generator_CARMEL3D_temporel.py
             DESTINATION ${CMAKE_INSTALL_PREFIX}/generator
           )
 endif (WITH_CARMEL)
index 0dc4c0572fd26b46c4631411e943600cf135048c..e6393a28299dd06b6499c7a49e4bd173b2588639 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index ccd9bd77c9bc3e7321c9163e0a1c05d0b6d135a5..9d4cb7f0b7e5766362156b220314856579804516 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/generator/generator_CARMEL3D.py b/generator/generator_CARMEL3D.py
deleted file mode 100644 (file)
index 3138bd1..0000000
+++ /dev/null
@@ -1,844 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
-"""
-
-import traceback
-import types,string,re,os
-from Extensions.i18n import tr
-from generator_python import PythonGenerator
-
-# Groupes de mailles dont les types sont definis par des prefixes dans leur nom
-usePrefix = False # les noms ont des prefixes (True) ou non (False)
-# liste des prefixes des groupes de mailles, sans le caractere _ separant le prefixe du reste du nom
-# Ce prefixe (et caractere _) doivent etre supprimes dans le fichier .phys
-listePrefixesGroupeMaille = ("DIEL","NOCOND","COND","CURRENT","EPORT","HPORT","TOPO","PB_MOBILE","NILMAT",
-                         "VCUT","VCUTN","EWALL","HWALL","GAMMAJ","PERIODIC","APERIODIC",
-                         "HPROBE","EPROBE","BFLUX","BFLUXN","JFLUX","JFLUXN",
-                         "PORT_OMEGA","POST_PHI","PB_GRID",
-                         "SCUTE","SCUTN","ZS","ZJ","ZT")
-# liste des prefixes des groupes de mailles, sans le separateur, par type de bloc du fichier PHYS sous la forme d'un dictionnaire
-dictPrefixesGroupeMaille = {'DIELECTRIC':('DIEL','NOCOND'), 
-                                             'CONDUCTOR':('COND',), 
-                                             'STRANDED_INDUCTOR':('CURRENT', ), 
-                                             'EPORT':('EPORT', ), 
-                                             'HPORT':('HPORT', ), 
-                                             'ZSURFACIC':('ZS', ), 
-                                             'ZINSULATOR':('ZJ', ), 
-                                             'NILMAT':('NILMAT', )}
-# separateur entre le prefixe et le reste du nom du groupe de maille
-sepNomGroupeMaille = '_'
-
-# types de problemes
-HARMONIC = 'HARMONIC' # probleme frequentiel
-TIME_DOMAIN = 'TIME_DOMAIN' # probleme temporel
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'CARMEL3D',
-        # La factory pour creer une instance du plugin
-          'factory' : CARMEL3DGenerator,
-          }
-
-
-class CARMEL3DGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format attendu par le code Code_Carmel3D (fichier '.PHYS') 
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-#----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None):
-       
-      self.initDico()
-      
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-
-      if self.debug:
-         print "self.text = %s", self.text
-
-      # Cette instruction genere le contenu du fichier de parametres pour le code Carmel3D
-      # si le jdc est valide (sinon cela n a pas de sens)
-      if obj.isvalid() : 
-           # constitution du bloc VERSION du fichier PHYS (existe toujours)
-           try :
-             self.generBLOC_VERSION(obj)
-           except ValueError, err:
-             raise ValueError(str(err))
-
-           # constitution du bloc MATERIALS du fichier PHYS (existe toujours)
-           self.generBLOC_MATERIALS()
-
-           # constitution du bloc SOURCES du fichier PHYS (existe toujours)
-           self.generBLOC_SOURCES()
-
-#      print "texte carmel3d :\n",self.texteCarmel3D
-#      print "dictMaterDielectric : ",self.dictMaterDielectric
-      if self.debug:
-         print "dictMaterConductor : %s", repr(self.dictMaterConductor)
-      
-      return self.text
-
-
-#----------------------------------------------------------------------------------------
-# initialisations
-#----------------------------------------------------------------------------------------
-   
-   def initDico(self) :
-      self.texteCarmel3D=""
-      self.debug = True # affichage de messages pour deboguage (.true.) ou non
-      self.dicoEtapeCourant=None
-      self.dicoMCFACTCourant=None
-      self.dicoCourant=None
-      self.dictGroupesMaillage = {'ordreMateriauxJdC':[], 'ordreSourcesJdC':[]} # association des noms de groupes de maillage avec les noms de materiaux ou de sources, en sauvegardant l'ordre du JdC en separant les groupes associes a des materiaux de ceux associes a des sources
-      self.dictMaterConductor={}
-      self.dictMaterDielectric={}
-      self.dictMaterZsurfacic={}
-      self.dictMaterEmIso={}
-      self.dictMaterEmAnIso={}
-      self.dictMaterNilmat={}
-      self.dictMaterZinsulator={}
-      self.dictSourceStInd={}
-      self.dictSourceEport={}
-      self.dictSourceHport={}
-      # on force le probleme a etre frequentiel, seul possible en l'etat des choses
-      self.problem = HARMONIC
-
-
-#----------------------------------------------------------------------------------------
-# ecriture
-#----------------------------------------------------------------------------------------
-
-   def writeDefault(self,fn) :
-        """Ecrit le fichier de parametres (PHYS) pour le code Carmel3D"""
-        if self.debug: 
-            print "ecriture du fichier de parametres (PHYS)"
-        filePHYS = fn[:fn.rfind(".")] + '.phys'
-        f = open( str(filePHYS), 'wb')
-        f.write( self.texteCarmel3D)
-        f.close()
-
-#----------------------------------------------------------------------------------------
-#  analyse de chaque noeud de l'arbre 
-#----------------------------------------------------------------------------------------
-
-   def generMCSIMP(self,obj) :
-        """recuperation de l objet MCSIMP"""
-        if self.debug: 
-            print "MCSIMP %(v_1)s  %(v_2)s", {'v_1': obj.nom, "v_2": obj.valeur}
-        s=PythonGenerator.generMCSIMP(self,obj)
-        self.dicoCourant[obj.nom]=obj.valeurFormatee
-        return s
-
-  
-#----------------------------------------------------------------------------------------
-   def generMCFACT(self,obj) :
-        """recuperation de l objet MCFACT"""
-        dico={}
-        self.dicoMCFACTCourant=dico
-        self.dicoCourant=self.dicoMCFACTCourant
-        s=PythonGenerator.generMCFACT(self,obj)
-        self.dicoEtapeCourant[obj.nom]=self.dicoMCFACTCourant
-        self.dicoMCFACTCourant=None
-        self.dicoCourant=self.dicoEtapeCourant
-        return s
-  
-#----------------------------------------------------------------------------------------
-   def generPROC_ETAPE(self,obj):
-        """analyse des PROC du catalogue  ( VERSION )"""
-        dico={}
-        self.dicoEtapeCourant=dico
-        self.dicoCourant=self.dicoEtapeCourant
-        s=PythonGenerator.generPROC_ETAPE(self,obj)
-        obj.valeur=self.dicoEtapeCourant
-        if self.debug: 
-            print "PROC_ETAPE %(v_1)s  %(v_2)s", \
-                     {'v_1': unicode(obj.nom), "v_2": unicode(obj.valeur)}
-        s=PythonGenerator.generPROC_ETAPE(self,obj)
-        return s
-  
-#----------------------------------------------------------------------------------------
-   def generETAPE(self,obj):
-        """analyse des OPER du catalogue"""
-        dico={}
-        self.dicoEtapeCourant=dico
-        self.dicoCourant=self.dicoEtapeCourant
-        s=PythonGenerator.generETAPE(self,obj)
-        obj.valeur=self.dicoEtapeCourant
-        if self.debug: 
-            print "ETAPE : obj.nom = %(v_1)s , obj.valeur= %(v_2)s", \
-                     {'v_1': obj.nom, 'v_2': obj.valeur}
-        if obj.nom=="MESHGROUP" : self.generMESHGROUP(obj)
-        if obj.nom=="MATERIAL" : self.generMATERIAL(obj)
-        if obj.nom=="SOURCE" : self.generSOURCE(obj)
-        s=PythonGenerator.generETAPE(self,obj)
-        return s
-
-#----------------------------------------------------------------------------------------
-   def generMACRO_ETAPE(self,obj):
-        dico={}
-        self.dicoEtapeCourant=dico
-        self.dicoCourant=self.dicoEtapeCourant
-        import generator
-        monGenerateur=generator.plugins["CARMEL3D"]()
-        jdc_aux_texte=monGenerateur.gener(obj.jdc_aux)
-        if self.debug: 
-            print "jdc_aux_texte : %s", jdc_aux_texte
-
-        for cle in monGenerateur.dictMaterConductor:
-            self.dictMaterConductor[cle] = monGenerateur.dictMaterConductor[cle]
-        for cle in monGenerateur.dictMaterDielectric:
-            self.dictMaterDielectric[cle] = monGenerateur.dictMaterDielectric[cle]
-        for cle in monGenerateur.dictMaterZsurfacic:
-            self.dictMaterZsurfacic[cle] = monGenerateur.dictMaterZsurfacic[cle]
-        for cle in monGenerateur.dictMaterEmIso:
-            self.dictMaterEmIso[cle] = monGenerateur.dictMaterEmIso[cle]
-        for cle in monGenerateur.dictMaterEmAnIso:
-            self.dictMaterEmAnIso[cle] = monGenerateur.dictMaterEmAnIso[cle]
-        for cle in monGenerateur.dictMaterNilmat:
-            self.dictMaterNilMat[cle] = monGenerateur.dictMaterNilMat[cle]
-        for cle in monGenerateur.dictMaterZinsulator:
-            self.dictMaterZinsulator[cle] = monGenerateur.dictMaterZinsulator[cle]
-              
-        print "________FIN MACRO______________________________________"
-        s=PythonGenerator.generMACRO_ETAPE(self,obj)
-        return s
-
-#----------------------------------------------------------------------------------------
-#----------------------------------------------------------------------------------------
-   def generMESHGROUP(self,obj):
-        """preparation de la ligne NAME referencant le groupe de mailles 
-            associe le groupe de mailles au materiau ou a la source utilisateur
-            on sauvegarde aussi les noms des groupes de maillage
-        """
-
-        try:
-            if usePrefix:
-                nomGroupeMaillage = self.nomReelGroupeMaillage(obj.get_sdname()) # nom du groupe de maillage, i.e. nom du concept, avec prefixes enleves
-            else:
-                nomGroupeMaillage = obj.get_sdname() # nom du groupe de maillage, i.e. nom du concept
-            # test: un et un seul nom de materiau ou source doit etre associe a ce groupe de maillage, via les cles MATERIAL et SOURCE, respectivement.
-            # test sur un seul attribut, non pertinent car il peut y en avoir plusieurs.
-            #assert len(obj.valeur.keys())==1,"Un et un seul nom de materiau ou source doit etre associe a ce groupe du maillage :"+nomGroupeMaillage
-            #
-            # on utilise le fait que obj.valeur est un dictionnaire
-            if self.debug: 
-                print "obj.valeur.keys()= %s", obj.valeur.keys()
-            if 'MATERIAL' in obj.valeur.keys() and 'SOURCE' in obj.valeur.keys(): # test d'erreur lors de presence de materiau et source a la fois
-                raise ValueError,tr(" ce groupe de maillage %s est associe a au moins un materiau  et au moins une source.", nomGroupeMaillage)
-            # association a un materiau
-            if 'MATERIAL' in obj.valeur.keys():
-                self.dictGroupesMaillage[nomGroupeMaillage] = obj.valeur['MATERIAL'].nom # sauvegarde de l'association entre ce groupe de maillage et un materiau ou source, par son nom, i.e. nom du concept du materiau ou de la source
-                self.dictGroupesMaillage['ordreMateriauxJdC'].append(nomGroupeMaillage) # sauvegarde du nom du groupe de maillage associe a un materiau, dans l'ordre du JdC
-            # association a une source
-            elif 'SOURCE' in obj.valeur.keys():
-                self.dictGroupesMaillage[nomGroupeMaillage] = obj.valeur['SOURCE'].nom # sauvegarde de l'association entre ce groupe de maillage et un materiau ou source, par son nom, i.e. nom du concept du materiau ou de la source
-                self.dictGroupesMaillage['ordreSourcesJdC'].append(nomGroupeMaillage) # sauvegarde du nom du groupe de maillage associe a une source, dans l'ordre du JdC
-            # erreur ni materiau ni source associee
-            else:
-                raise ValueError, tr("ce groupe de maillage %s  n'est associe a aucun materiau ou source.",  nomGroupeMaillage)
-            if self.debug:
-                print "self.dictGroupesMaillage= %s", repr(self.dictGroupesMaillage)
-        except:
-            pass
-
-
-   def generMATERIAL(self,obj):
-        """preparation du bloc correspondant a un materiau du fichier PHYS"""
-        texte=""
-        if self.debug: 
-            print "generation material obj valeur = %s", obj.valeur
-        try :
-            nature = obj.valeur['TYPE'] # la nature est le parametre TYPE du MATERIAL
-            if nature=="CONDUCTOR" : self.generMATERIAL_CONDUCTOR(obj)
-            if nature=="DIELECTRIC" : self.generMATERIAL_DIELECTRIC(obj)
-            if nature=="ZSURFACIC" : self.generMATERIAL_ZSURFACIC(obj)
-            if nature=="EM_ISOTROPIC" : self.generMATERIAL_EMISO(obj)
-            if nature=="EM_ANISOTROPIC" : self.generMATERIAL_EMANISO(obj)
-            if nature=="NILMAT" : self.generMATERIAL_NILMAT(obj)
-            if nature=="ZINSULATOR" : self.generMATERIAL_ZINSULATOR(obj)
-        except:
-            pass
-
-   def generMATERIAL_CONDUCTOR(self,obj):
-       """preparation du sous bloc CONDUCTOR"""
-       texte=""
-       if self.debug: 
-           print "_____________cond_____________"
-       # verification des proprietes du sous bloc CONDUCTOR (PERMEABILITY, CONDUCTIVITY)
-       if 'PERMEABILITY' not in obj.valeur or 'CONDUCTIVITY' not in obj.valeur:
-         print "ERREUR! Le bloc CONDUCTOR doit contenir PERMEABILITY et CONDUCTIVITY."
-       else:
-          # parcours des proprietes du sous bloc CONDUCTOR (PERMEABILITY, CONDUCTIVITY)
-          for keyN1 in ('PERMEABILITY','CONDUCTIVITY') :
-             # debut du sous bloc de propriete du DIELECTRIC
-             texte+="         ["+keyN1+"\n"
-             texte+="            HOMOGENEOUS "+str(obj.valeur[keyN1]["HOMOGENEOUS"])+"\n"
-             texte+="            ISOTROPIC "+str(obj.valeur[keyN1]["ISOTROPIC"])+"\n"
-             # Ecriture des valeurs seulement pour un materiau homogene et isotrope,
-             # car sinon ces valeurs sont definies dans des fichiers annexes
-             homogeneous = str(obj.valeur[keyN1]["HOMOGENEOUS"]) == 'TRUE'
-             isotropic = str(obj.valeur[keyN1]["ISOTROPIC"]) == 'TRUE'
-             if homogeneous and isotropic:
-                # loi (lineaire ou non)
-                texte+="            LAW "+str(obj.valeur[keyN1]["LAW"])+"\n"
-                # valeur de la loi lineaire
-                texte+="            VALUE "+self.formateCOMPLEX(obj.valeur[keyN1]["VALUE"])+"\n"
-                # loi non lineaire de nature spline, Marrocco ou Marrocco et Saturation
-                #  seuls les reels sont pris en compte
-                if obj.valeur[keyN1]['LAW']=='NONLINEAR' :
-                   texte+="            [NONLINEAR \n"
-                   texte+="                ISOTROPY TRUE\n"
-                   texte+="                NATURE "+str(obj.valeur[keyN1]['NATURE'])+"\n"
-                   # ajout des autres parametres autres que ISOTROPY, NATURE, VALUE, LAW, HOMOGENEOUS, ISOTROPIC
-                   for keyN2 in obj.valeur[keyN1] :
-                      if keyN2 not in ('ISOTROPY','NATURE','VALUE','LAW','HOMOGENEOUS','ISOTROPIC') :
-                          texte+="                "+keyN2+" "+str(obj.valeur[keyN1][keyN2])+"\n"
-                   # fin du sous-bloc NONLINEAR
-                   texte+="            ]"+"\n"
-             # fin du sous bloc de propriete
-             texte+="         ]"+"\n"
-       if self.debug: 
-           print "texte = %s", texte
-       self.dictMaterConductor[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
-
-   def generMATERIAL_DIELECTRIC(self,obj):
-       """preparation du sous bloc DIELECTRIC"""
-       texte=""
-       if self.debug: 
-           print "______________nocond_____________"
-       # verification des proprietes du sous bloc DIELECTRIC (PERMEABILITY, PERMITTIVITY)
-       if 'PERMEABILITY' not in obj.valeur or 'PERMITTIVITY' not in obj.valeur:
-         print "ERREUR! Le bloc DIELECTRIC doit contenir PERMEABILITY et PERMITTIVITY."
-       else:
-          # parcours des proprietes du sous bloc DIELECTRIC (PERMEABILITY, PERMITTIVITY)
-          for keyN1 in ('PERMEABILITY','PERMITTIVITY') :
-             # debut du sous bloc de propriete du DIELECTRIC
-             texte+="         ["+keyN1+"\n"
-             texte+="            HOMOGENEOUS "+str(obj.valeur[keyN1]["HOMOGENEOUS"])+"\n"
-             texte+="            ISOTROPIC "+str(obj.valeur[keyN1]["ISOTROPIC"])+"\n"
-             # Ecriture des valeurs seulement pour un materiau homogene et isotrope,
-             # car sinon ces valeurs sont definies dans des fichiers annexes
-             homogeneous = str(obj.valeur[keyN1]["HOMOGENEOUS"]) == 'TRUE'
-             isotropic = str(obj.valeur[keyN1]["ISOTROPIC"]) == 'TRUE'
-             if homogeneous and isotropic:
-                # loi (lineaire ou non)
-                texte+="            LAW "+str(obj.valeur[keyN1]["LAW"])+"\n"
-                # valeur de la loi lineaire
-                texte+="            VALUE "+self.formateCOMPLEX(obj.valeur[keyN1]["VALUE"])+"\n"
-                # loi non lineaire de nature spline, Marrocco ou Marrocco et Saturation
-                #  seuls les reels sont pris en compte
-                if obj.valeur[keyN1]['LAW']=='NONLINEAR' :
-                   texte+="            [NONLINEAR \n"
-                   texte+="                ISOTROPY TRUE\n"
-                   texte+="                NATURE "+str(obj.valeur[keyN1]['NATURE'])+"\n"
-                   # ajout des autres parametres autres que ISOTROPY, NATURE, VALUE, LAW, HOMOGENEOUS, ISOTROPIC
-                   for keyN2 in obj.valeur[keyN1] :
-                      if keyN2 not in ('ISOTROPY','NATURE','VALUE','LAW','HOMOGENEOUS','ISOTROPIC') :
-                          texte+="                "+keyN2+" "+str(obj.valeur[keyN1][keyN2])+"\n"
-                   # fin du sous-bloc NONLINEAR
-                   texte+="            ]"+"\n"
-             # fin du sous bloc de propriete
-             texte+="         ]"+"\n"
-       if self.debug: 
-           print "texte = %s", texte
-       self.dictMaterDielectric[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
-
-   def generMATERIAL_ZSURFACIC(self,obj):
-       """preparation du sous bloc ZSURFACIC"""
-       texte=""
-       if self.debug: 
-           print "______________zsurf_____________"
-       # verification des proprietes du sous bloc ZSURFACIC (PERMEABILITY, CONDUCTIVITY)
-       if 'PERMEABILITY' not in obj.valeur or 'CONDUCTIVITY' not in obj.valeur:
-         print "ERREUR! Le bloc ZSURFACIC doit contenir PERMEABILITY et CONDUCTIVITY."
-       else:
-          # parcours des proprietes du sous bloc ZSURFACIC (PERMEABILITY, CONDUCTIVITY)
-          for keyN1 in obj.valeur :
-             if keyN1=='TYPE': continue
-             # print "type loi = ", obj.valeur[keyN1]['LAW']
-             # debut du sous bloc de propriete du DIELECTRIC
-             texte+="         ["+keyN1+"\n"
-             texte+="            HOMOGENEOUS "+str(obj.valeur[keyN1]["HOMOGENEOUS"])+"\n"
-             texte+="            ISOTROPIC "+str(obj.valeur[keyN1]["ISOTROPIC"])+"\n"
-             # Ecriture des valeurs seulement pour un materiau homogene et isotrope,
-             # car sinon ces valeurs sont definies dans des fichiers annexes
-             homogeneous = str(obj.valeur[keyN1]["HOMOGENEOUS"]) == 'TRUE'
-             isotropic = str(obj.valeur[keyN1]["ISOTROPIC"]) == 'TRUE'
-             if homogeneous and isotropic:
-                # loi (lineaire ou non)
-                texte+="            LAW "+str(obj.valeur[keyN1]["LAW"])+"\n"
-                # valeur de la loi lineaire
-                texte+="            VALUE "+self.formateCOMPLEX(obj.valeur[keyN1]["VALUE"])+"\n"
-             # fin du sous bloc de propriete
-             texte+="         ]"+"\n"
-       if self.debug: 
-           print "texte = %s", texte
-       self.dictMaterZsurfacic[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
-
-   def generMATERIAL_EMISO(self,obj):
-       """preparation du sous bloc EM_ISOTROPIC_FILES.
-       Les fichiers sont indiques par le chemin absolu, i.e. le nom complet du JdC,
-        ce qui permet de deplacer les dossiers contenant le modele complet puisque le JdC permet les chemins relatifs.
-       """
-       texte ="        CONDUCTIVITY MED "+str(obj.valeur["CONDUCTIVITY_File"])+"\n"
-       texte+="        PERMEABILITY MED "+str(obj.valeur["PERMEABILITY_File"])+"\n"
-       # Possibilite de forcer le chemin relatif (nom de fichier seulement) plutot que le chemin absolu par defaut
-       #from os.path import basename
-       #texte ="        CONDUCTIVITY MED "+basename(str(obj.valeur["CONDUCTIVITY_File"]))+"\n"
-       #texte+="        PERMEABILITY MED "+basename(str(obj.valeur["PERMEABILITY_File"]))+"\n"
-       #      print "obj get sdname= ", obj.get_sdname()
-       #   if obj.get_sdname() in self.dictMaterEmIso.keys() :
-       #    self.dictMaterEmIso[obj.get_sdname()].append(texte) 
-       # else :
-       self.dictMaterEmIso[obj.get_sdname()]=texte
-  
-   def generMATERIAL_EMANISO(self,obj):
-       """preparation du sous bloc EM_ANISOTROPIC_FILES.
-       Les fichiers sont indiques par le chemin absolu, i.e. le nom complet du JdC,
-        ce qui permet de deplacer les dossiers contenant le modele complet puisque le JdC permet les chemins relatifs.
-       """
-       texte ="        CONDUCTIVITY MATER "+str(obj.valeur["CONDUCTIVITY_File"])+"\n"
-       texte+="        PERMEABILITY MATER "+str(obj.valeur["PERMEABILITY_File"])+"\n"
-       #  print "obj get sdname= ", obj.get_sdname()
-       #  if obj.get_sdname() in self.dictMaterEmAnIso.keys() :
-       #    self.dictMaterEmAnIso[obj.get_sdname()].append(texte) 
-       #  else :
-       self.dictMaterEmAnIso[obj.get_sdname()]=texte
-   
-   def generMATERIAL_NILMAT(self,obj):
-       """preparation du sous bloc NILMAT"""
-       texte=""
-       self.dictMaterNilmat[obj.get_sdname()]=texte
-   
-   def generMATERIAL_ZINSULATOR(self,obj):
-       """"preparation du sous bloc ZINSULATOR"""
-       texte=""
-       self.dictMaterZinsulator[obj.get_sdname()]=texte
-
-#-------------------------------------------------------------------
-
-   def generSOURCE(self,obj):
-        """preparation du bloc correspondant a une source du fichier PHYS"""
-        if self.debug: 
-            print "generation source obj valeur = %s", obj.valeur
-        texte=""
-        try :
-            # test de la presence des types de sources reconnus
-            # commes ces sources sont des mot-cles facteurs, i.e. une cle de dictionnaire,
-            # la source ne peut contenir au plus qu'un type de source.
-            if "STRANDED_INDUCTOR" in obj.valeur:
-               self.generSOURCE_STRANDED_INDUCTOR(obj)
-            elif "HPORT" in obj.valeur:
-               self.generSOURCE_HPORT(obj)
-            elif "EPORT" in obj.valeur:
-               self.generSOURCE_EPORT(obj)
-            else:
-               print "ERREUR! Une source du type STRANDED_INDUCTOR, HPORT ou EPORT est attendue."
-        except:
-            pass
-
-   def generSOURCE_STRANDED_INDUCTOR(self,obj):
-        """preparation du sous bloc STRANDED_INDUCTOR"""
-        texte=""
-        sdict = obj.valeur['STRANDED_INDUCTOR'] # dictionnaire contenant les parametres de la source, outre la forme de la source
-        try :
-            texte+="        NTURNS %s\n" % str(sdict['NTURNS'])
-            # test de la presence d'une forme de source reconnue
-            # commes ces formes sont des mot-cles facteurs, i.e. une cle de dictionnaire,
-            # la source ne peut contenir au plus qu'un type de source.
-            if "WAVEFORM_CONSTANT" in obj.valeur:
-               wdict = obj.valeur['WAVEFORM_CONSTANT'] # dictionnaire contenant les parametres de la forme de la source
-               if self.problem == HARMONIC:
-                  texte+="        CURJ POLAR %s 0\n" % str(wdict['AMPLITUDE'])
-                  print tr("ATTENTION! Une source constante \
-                                  n'est possible qu'a frequence nulle \
-                                  en regime frequentiel")
-            elif "WAVEFORM_SINUS" in obj.valeur:
-               wdict = obj.valeur['WAVEFORM_SINUS'] # dictionnaire contenant les parametres de la forme de la source
-               if self.problem == HARMONIC:
-                  texte+="        CURJ POLAR %(ampli)s %(phase)s\n" \
-                         % {'ampli': str(wdict['AMPLITUDE']), 'phase': str(wdict['PHASE'])}
-            else:
-               print tr("ERREUR! Une forme de la source du \
-                               type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
-            self.dictSourceStInd[obj.get_sdname()]=texte
-            if self.debug: 
-                print texte
-        except Exception:
-            pass
-
-   def generSOURCE_HPORT(self,obj):
-        """preparation du sous bloc HPORT"""
-        texte=""
-        sdict = obj.valeur['HPORT'] # dictionnaire contenant les parametres de la source, outre la forme de la source
-        try :
-            texte+="        TYPE %s\n" % str(sdict['TYPE'])
-            # test de la presence d'une forme de source reconnue
-            # commes ces formes sont des mot-cles facteurs, i.e. une cle de dictionnaire,
-            # la source ne peut contenir au plus qu'un type de source.
-            if "WAVEFORM_CONSTANT" in obj.valeur:
-               wdict = obj.valeur['WAVEFORM_CONSTANT'] # dictionnaire contenant les parametres de la forme de la source
-               if self.problem == HARMONIC:
-                  texte+="        AMP POLAR %s 0\n" % str(wdict['AMPLITUDE'])
-                  print tr("ATTENTION! Une source constante n'est \
-                                  possible qu'a frequence nulle en regime frequentiel")
-            elif "WAVEFORM_SINUS" in obj.valeur:
-               wdict = obj.valeur['WAVEFORM_SINUS'] # dictionnaire contenant les parametres de la forme de la source
-               if self.problem == HARMONIC:
-                  texte+="        AMP POLAR %(ampli)s %(phase)s\n" \
-                         % {'ampli': str(wdict['AMPLITUDE']), 'phase': str(wdict['PHASE'])}
-            else:
-               print tr("ERREUR! Une forme de la source du type \
-                               WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
-            self.dictSourceHport[obj.get_sdname()]=texte
-            if self.debug: 
-                print texte
-        except:
-            pass
-
-   def generSOURCE_EPORT(self,obj):
-        """preparation du sous bloc EPORT"""
-        texte=""
-        sdict = obj.valeur['EPORT'] # dictionnaire contenant les parametres de la source, outre la forme de la source
-        try :
-            texte+="        TYPE %s\n" % str(sdict['TYPE'])
-            # test de la presence d'une forme de source reconnue
-            # commes ces formes sont des mot-cles facteurs, i.e. une cle de dictionnaire,
-            # la source ne peut contenir au plus qu'un type de source.
-            if "WAVEFORM_CONSTANT" in obj.valeur:
-               wdict = obj.valeur['WAVEFORM_CONSTANT'] # dictionnaire contenant les parametres de la forme de la source
-               if self.problem == HARMONIC:
-                  texte+="        AMP POLAR %s 0\n" % str(wdict['AMPLITUDE'])
-                  print tr("ATTENTION! Une source constante n'est possible qu'a frequence nulle en regime frequentiel")
-            elif "WAVEFORM_SINUS" in obj.valeur:
-               wdict = obj.valeur['WAVEFORM_SINUS'] # dictionnaire contenant les parametres de la forme de la source
-               if self.problem == HARMONIC:
-                  texte+="        AMP POLAR %(ampli)s %(phase)s\n" \
-                         % {'ampli': str(wdict['AMPLITUDE']), 'phase': str(wdict['PHASE'])}
-            else:
-               print tr("ERREUR! Une forme de la source du type \
-                               WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
-            self.dictSourceEport[obj.get_sdname()]=texte
-            if self.debug: 
-                print texte
-        except:
-            pass
-
-#---------------------------------------------------------------------------------------
-# traitement fichier PHYS
-#---------------------------------------------------------------------------------------
-
-   def generBLOC_VERSION(self,obj) :
-      # constitution du bloc VERSION du fichier PHYS
-      # creation d une entite  VERSION ; elle sera du type PROC car decrit ainsi
-      # dans le du catalogue
-      version=obj.addentite('VERSION',pos=None)
-      self.generPROC_ETAPE(obj.etapes[0])
-      self.texteCarmel3D+="["+obj.etapes[0].nom+"\n"
-      for cle in obj.etapes[0].valeur :
-          self.texteCarmel3D+="   "+cle+" "+str(obj.etapes[0].valeur[cle])+"\n"
-      self.texteCarmel3D+="]\n"
-      # destruction de l entite creee 
-      obj.suppentite(version)
-
-#----------------------------------------------------------------------------------------
-   def generBLOC_MATERIALS(self) :
-        """Prepare une partie du contenu du fichier de parametres (PHYS) pour le code Carmel3D (bloc MATERIALS).
-        Le bloc MATERIALS existe toujours ! 
-        """
-        if self.debug:
-            print "cle dictionnaire materconductor : %s", self.dictMaterConductor.keys()
-            print "cle dictionnaire materdielectric : %s", self.dictMaterDielectric.keys()
-        # constitution du bloc MATERIALS du fichier PHYS
-        self.texteCarmel3D+="[MATERIALS\n"
-        # tri alphabetique de tous les groupes de maillage associes a des sources (plus necessaire Code_Carmel3D V_2_3_1 et +, mais avant oui)
-        nomsGroupesMaillage = self.dictGroupesMaillage['ordreMateriauxJdC'][:] # copie de l'original, qui est une liste
-        nomsGroupesMaillage.sort() # tri alphabetique, avec les prefixes eventuels
-        if self.debug:
-            print "noms groupes de mailles associes a des materiaux \
-                            (ordre JdC puis tri)= %(v_1)s %(v_2)s", \
-                            {'v_1': self.dictGroupesMaillage['ordreMateriauxJdC'], \
-                             'v_2': nomsGroupesMaillage}
-        # constitution du bloc CONDUCTOR du fichier PHYS si existe
-        if self.dictMaterConductor != {} : self.creaBLOC_CONDUCTOR(nomsGroupesMaillage)
-        # constitution du bloc DIELECTRIC du fichier PHYS si exixte
-        if self.dictMaterDielectric != {} : self.creaBLOC_DIELECTRIC(nomsGroupesMaillage)
-        # constitution du bloc ZSURFACIC du fichier PHYS si exixte
-        if self.dictMaterZsurfacic != {} : self.creaBLOC_ZSURFACIC(nomsGroupesMaillage)
-        # constitution du bloc NILMAT du fichier PHYS si exixte
-        if self.dictMaterNilmat != {} : self.creaBLOC_NILMAT(nomsGroupesMaillage)
-        # constitution du bloc ZINSULATOR du fichier PHYS si exixte
-        if self.dictMaterZinsulator != {} : self.creaBLOC_ZINSULATOR(nomsGroupesMaillage)
-        # Les blocs EM_ISOTROPIC_FILES et EM_ANISOTROPIC_FILES sont places en dernier dans le fichier PHYS
-        # constitution du bloc EM_ISOTROPIC_FILES du fichier PHYS si exixte
-        if self.dictMaterEmIso != {} : self.creaBLOC_EMISO()
-        # constitution du bloc EM_ANISOTROPIC_FILES du fichier PHYS si exixte
-        if self.dictMaterEmAnIso != {} : self.creaBLOC_EMANISO()
-        # fin du bloc MATERIALS du fichier PHYS
-        self.texteCarmel3D+="]\n"  
-    
-   def creaBLOC_CONDUCTOR(self, nomsGroupesMaillage) :
-        """Constitution du bloc CONDUCTOR du fichier PHYS"""
-        typeBloc = 'CONDUCTOR' # initialisation du type de bloc
-        dictProprietes = self.dictMaterConductor # initialisation du dictionnaire des proprietes du bloc
-        if self.debug: 
-            print 'cles materiaux de type %(type_bloc)s = %(cle_bloc)s', \
-                            {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
-                # ecriture du bloc complet
-                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
-                if usePrefix:
-                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
-                else:
-                    nomReel = nom
-                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-
-   def creaBLOC_DIELECTRIC(self, nomsGroupesMaillage) :
-        """Constitution du bloc DIELECTRIC du fichier PHYS"""
-        typeBloc = 'DIELECTRIC' # initialisation du type de bloc
-        dictProprietes = self.dictMaterDielectric # initialisation du dictionnaire des proprietes du bloc
-        if self.debug: 
-            print 'cles materiaux de type %(type_bloc)s=%(cle_bloc)s', \
-                     {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
-                # ecriture du bloc complet
-                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
-                self.texteCarmel3D+="        NAME "+nom+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-
-   def creaBLOC_ZSURFACIC(self, nomsGroupesMaillage) :
-        """Constitution du bloc ZSURFACIC du fichier PHYS"""
-        typeBloc = 'ZSURFACIC' # initialisation du type de bloc
-        dictProprietes = self.dictMaterZsurfacic # initialisation du dictionnaire des proprietes du bloc
-        if self.debug: 
-            print 'cles materiaux de type %(type_bloc)s=%(cle_bloc)s', \
-                            {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
-                # ecriture du bloc complet
-                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
-                if usePrefix:
-                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
-                else:
-                    nomReel = nom
-                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-
-   def creaBLOC_EMISO(self) :
-        """constitution du bloc EM_ISOTROPIC_FILES du fichier PHYS"""
-        for cle in self.dictMaterEmIso.keys():
-            self.texteCarmel3D+="     [EM_ISOTROPIC_FILES\n"
-            self.texteCarmel3D+= self.dictMaterEmIso[cle] 
-            self.texteCarmel3D+="     ]\n"
-
-   def creaBLOC_EMANISO(self) :
-        """constitution du bloc EM_ANISOTROPIC_FILES du fichier PHYS"""
-        for cle in self.dictMaterEmAnIso.keys():
-            self.texteCarmel3D+="     [EM_ANISOTROPIC_FILES\n"
-            self.texteCarmel3D+=  self.dictMaterEmAnIso[cle] 
-            self.texteCarmel3D+="     ]\n"
-
-   def creaBLOC_ZINSULATOR(self, nomsGroupesMaillage) :
-        """Constitution du bloc ZINSULATOR du fichier PHYS"""
-        typeBloc = 'ZINSULATOR' # initialisation du type de bloc
-        dictProprietes = self.dictMaterZinsulator # initialisation du dictionnaire des proprietes du bloc
-        if self.debug: print 'cles materiaux de type '+typeBloc+'=', dictProprietes.keys()
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
-                # ecriture du bloc complet
-                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
-                if usePrefix:
-                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
-                else:
-                    nomReel = nom
-                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-
-   def creaBLOC_NILMAT(self, nomsGroupesMaillage) :
-        """Constitution du bloc NILMAT du fichier PHYS"""
-        typeBloc = 'NILMAT' # initialisation du type de bloc
-        dictProprietes = self.dictMaterNilmat # initialisation du dictionnaire des proprietes du bloc
-        if self.debug: 
-            print 'cles materiaux de type %(type_bloc)s=%(cle_bloc)s', \
-                     {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
-                # ecriture du bloc complet
-                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
-                if usePrefix:
-                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
-                else:
-                    nomReel = nom
-                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-
-#----------------------------------------------------------------------------------------
-   def generBLOC_SOURCES(self):
-        """constitution du bloc SOURCES du fichier PHYS"""
-        self.texteCarmel3D+="[SOURCES\n"
-        # tri alphabetique de tous les groupes de maillage associes a des sources
-        nomsGroupesMaillage = self.dictGroupesMaillage['ordreSourcesJdC'][:] # copie de l'original, qui est une liste
-        nomsGroupesMaillage.sort() # tri alphabetique, avec les prefixes eventuels
-        if self.debug:
-            print 'noms groupes de mailles associes a des sources \
-                            (ordre JdC puis tri)=%(g_maillage_orig)s %(g_maillage_trie)s', \
-                            {'g_maillage_orig': self.dictGroupesMaillage['ordreSourcesJdC'], \
-                             'g_maillage_trie': nomsGroupesMaillage}
-        if self.dictSourceStInd != {}: self.creaBLOC_STRANDED_INDUCTOR(nomsGroupesMaillage)
-        if self.dictSourceEport != {}: self.creaBLOC_EPORT(nomsGroupesMaillage)
-        if self.dictSourceHport != {}: self.creaBLOC_HPORT(nomsGroupesMaillage)
-        # fin du bloc SOURCES du fichier PHYS
-        self.texteCarmel3D+="]\n"
-
-
-   def creaBLOC_STRANDED_INDUCTOR(self, nomsGroupesMaillage) :
-        """constitution du bloc STRANDED_INDUCTOR du fichier PHYS"""
-        if self.debug: 
-            print 'cles sources STRANDED_INDUCTOR= %s', self.dictSourceStInd.keys()
-        typeBloc = 'STRANDED_INDUCTOR'
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in self.dictSourceStInd.keys(): # test si le nom de la source associee est un inducteur bobine
-                # ecriture du bloc de l'inducteur bobine
-                self.texteCarmel3D+="     [STRANDED_INDUCTOR\n" # debut de bloc
-                self.texteCarmel3D+="        NAME "+nom+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  self.dictSourceStInd[self.dictGroupesMaillage[nom]] # ecriture des proprietes de l'inducteur bobine
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-                
-   def creaBLOC_EPORT(self, nomsGroupesMaillage) :
-        """constitution du bloc EPORT du fichier PHYS"""
-        if self.debug: 
-            print 'cles sources EPORT= %s', self.dictSourceEport.keys()
-        typeBloc = 'EPORT'
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in self.dictSourceEport.keys(): # test si le nom de la source associee est un port electrique
-                # ecriture du bloc du port electrique
-                self.texteCarmel3D+="     [EPORT\n" # debut de bloc
-                if usePrefix:
-                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
-                else:
-                    nomReel = nom
-                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  self.dictSourceEport[self.dictGroupesMaillage[nom]] # ecriture des proprietes du port electrique
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-
-   def creaBLOC_HPORT(self, nomsGroupesMaillage) :
-        """constitution du bloc HPORT du fichier PHYS"""
-        if self.debug: 
-            print 'cles sources HPORT= %s', self.dictSourceHport.keys()
-        typeBloc = 'HPORT'
-        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
-            if self.dictGroupesMaillage[nom] in self.dictSourceHport.keys(): # test si le nom de la source associee est un port magnetique
-                # ecriture du bloc du port magnetique
-                self.texteCarmel3D+="     [HPORT\n" # debut de bloc
-                if usePrefix:
-                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
-                else:
-                    nomReel = nom
-                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
-                self.texteCarmel3D+=  self.dictSourceHport[self.dictGroupesMaillage[nom]] # ecriture des proprietes du port magnetique
-                self.texteCarmel3D+="     ]\n" # fin de bloc
-
-#-------------------------------------
-# Methodes utilitaires
-# ------------------------------------
-   def formateCOMPLEX(self,nbC):
-        """prise en compte des differentes formes de description d un nombre complexe
-        3 formats possibles : 2 listes (anciennement tuples?)  et 1 nombre complexe
-        """
-        if self.debug:
-            print "formatage "
-            print "type : %(type_nb_c)s pour %(nb_c)s", \
-                            {'type_nb_c': type(nbC), 'nb_c': nbC}
-        nbformate =""
-        if isinstance(nbC,(tuple,list)):
-            if nbC[0] == "'RI'" :
-                nbformate = "COMPLEX " + str(nbC[1])+" "+str(nbC[2])            
-            if nbC[0] == "'MP'" :
-                nbformate = "POLAR " + str(nbC[1])+" "+str(nbC[2])            
-        else:
-            nbformate = "COMPLEX " + str(nbC.real)+" "+str(nbC.imag)
-        if self.debug: 
-            print "nbformate : %s", nbformate
-        return nbformate
-   
-   def nomReelGroupeMaillage(self, nom, typeBloc=None):
-        """Calcule et retourne le nom reel du groupe de maillage donne en entree,
-        en tenant compte de l'utilisation de prefixes ou pas, et cela pour le type
-        de bloc du fichier PHYS specifie.
-        Cette routine verifie aussi, en cas d'utilisation de prefixes, si le prefixe est en adequation avec le type du bloc.
-        """
-        from string import join
-        if self.debug: 
-            print "nom groupe original : %(nom)s avec usePrefix=%(use_prefix)s devient...", \
-                            {'nom': nom, 'use_prefix': str(usePrefix)}
-        nomReel= None # nom affiche dans le fichier PHYS, sans prefixe a priori
-        if usePrefix:
-            # suppression du prefixe si present
-            partiesNom = nom.split(sepNomGroupeMaille) # separation du nom du groupe en parties
-            # les tests suivants ne generent une erreur que si le prefixe est obligatoire
-            if len(partiesNom) < 2: # test d'erreur, pas de separateur donc nom incorrect, i.e. sans prefixe c'est sur
-                print tr("ERREUR! ce groupe de maille (%s) n'a pas de prefixe \
-                                indiquant le type de materiau ou de source associee", nom)
-            elif partiesNom[0] not in listePrefixesGroupeMaille: # prefixe non defini
-                print tr("ERREUR! ce groupe de maille (%s) n'a pas de prefixe valable",  nom)
-            else:   
-                # verification de l'adequation du prefixe avec le type de bloc demande, si fourni    
-                if typeBloc is not None:
-                    if typeBloc not in dictPrefixesGroupeMaille: # test validite de typeBloc, devant etre une cle du dictionnaire
-                        print tr("ERREUR! ce type de bloc (%s) n'est pas valable", str(typeBloc))
-                    elif partiesNom[0] not in dictPrefixesGroupeMaille[typeBloc]: # pas de prefixe correct pour ce type de bloc
-                        print tr("ERREUR! ce groupe de maille (%(nom)s) n'a pas \
-                                        le prefixe correct pour etre associe a un type %(type_bloc)s", \
-                                        {'nom': nom, 'type_bloc': str(typeBloc)})
-                    else: # c'est bon
-                        nomReel = join(partiesNom[1:], sepNomGroupeMaille) # reconstruction du nom du groupe sans prefixe complet
-                        if self.debug: 
-                            print "ce groupe de maille (%(nom)s) a un prefixe qui \
-                                            est supprime automatiquement pour devenir : %(nom_reel)s", \
-                                            {'nom': nom, 'nom_reel': nomReel}
-                else: # c'est bon
-                    nomReel = join(partiesNom[1:], sepNomGroupeMaille) # reconstruction du nom du groupe sans prefixe complet
-                    if self.debug: 
-                        print "ce groupe de maille (%(nom)s) a un prefixe qui \
-                                        est supprime automatiquement pour devenir : %(nom_reel)s", \
-                                        {'nom': nom, 'nom_reel': nomReel}
-        if self.debug: 
-            print "... %s", nomReel
-        return nomReel
index 5fa1e0619fefc5e34bc308beb0252b08ef286b93..3d2dc77baa5eb6b19eedee94525859133974a4ee 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 6720c87dd03d0fb0ca0eb9450338c991d5912ffe..6fa901cf1c527259539d5603f479667e1e1830db 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/generator/generator_CARMELCND.py b/generator/generator_CARMELCND.py
deleted file mode 100755 (executable)
index ab6e28b..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
-"""
-
-import traceback
-import types,string,re,os
-from Extensions.i18n import tr
-from generator_python import PythonGenerator
-import Accas
-
-debutTextePhys ="[VERSION\n  NUM      1\n  FILETYPE PHYS\n]\n"
-debutTextePhys+="[MATERIALS\n"
-texteConductor ="      [CONDUCTIVITY\n         LAW LINEAR\n"
-texteConductor+="         HOMOGENEOUS TRUE\n"
-texteConductor+="         ISOTROPIC  TRUE\n"
-texteConducto2 ="  0.0000000000000000E+00\n      ]\n"
-texteConducto2+="      [PERMEABILITY\n         LAW LINEAR\n"
-texteConducto2+="         HOMOGENEOUS TRUE\n"
-texteConducto2+="         ISOTROPIC  TRUE\n"
-texteNoCond ="      [PERMITTIVITY\n         LAW LINEAR\n"
-texteNoCond+="         HOMOGENEOUS TRUE\n         ISOTROPIC TRUE\n"
-texteNoCond+="         VALUE COMPLEX  0.1000000000000000E+01  0.0000000000000000E+00\n"
-texteNoCond+="      ]\n      [PERMEABILITY\n         LAW LINEAR\n"
-texteNoCond+="         HOMOGENEOUS TRUE\n         ISOTROPIC TRUE\n"
-
-debutTexteParam ="[VERSION\n   NUM     1\n   FILETYPE PARAM\n]\n"
-debutTexteParam+="[PROBLEM\n   NAME HARMONIC\n]\n"
-debutTexteParam+="[CAR_FILES\n   NAME "
-
-debutTexteZs0 ="   [ZSURFACIC\n      NAME "
-debutTexteZs ="\n      [CONDUCTIVITY\n"
-debutTexteZs+="         LAW LINEAR\n"
-debutTexteZs+="         HOMOGENEOUS TRUE\n"
-debutTexteZs+="         ISOTROPIC TRUE\n"
-debutTexteZs+="         VALUE COMPLEX  "
-texteZs2     ="  0.0000000000000000E+00\n      ]\n"
-texteZs2    +="      [PERMEABILITY\n         LAW LINEAR\n"
-texteZs2    +="         HOMOGENEOUS TRUE\n"
-texteZs2    +="         ISOTROPIC TRUE\n         VALUE COMPLEX  "
-finTexteZs   ="  0.0000000000000000E+00\n      ]\n   ]\n"
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'CARMELCND',
-        # La factory pour creer une instance du plugin
-          'factory' : CARMELCNDGenerator,
-          }
-
-
-class CARMELCNDGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format dictionnaire
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-#----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None):
-       
-      self.initDico()
-      
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      self.racine=obj
-      return self.text
-
-
-#----------------------------------------------------------------------------------------
-# initialisations
-#----------------------------------------------------------------------------------------
-   
-   def initDico(self) :
-      self.dictMCVal={}
-
-#----------------------------------------------------------------------------------------
-# ecriture
-#----------------------------------------------------------------------------------------
-
-   def writeDefault(self,file) :
-#file ne sert pas
-
-       self.texteIngendof=""
-       self.texteParam=debutTexteParam
-       self.chercheFichier()
-       self.traiteSourceVCut()
-
-       fn=self.fnBase
-       fileIngendofDeb = fn[:fn.rfind(".")] + '.ingendof'
-       fileIngendof = os.path.join(self.sauveDirectory,fileIngendofDeb)
-       f = open( str(fileIngendof), 'wb')
-       f.write( self.texteIngendof )
-       f.close()
-
-       self.textePhys=debutTextePhys
-       self.traiteMateriaux()
-       filePhysDeb = fn[:fn.rfind(".")] + '.phys'
-       filePhys = os.path.join(self.sauveDirectory,filePhysDeb)
-       f = open( str(filePhys), 'wb')
-       f.write( self.textePhys )
-       f.close()
-
-       fileParamDeb = fn[:fn.rfind(".")] + '.param'
-       fileParam = os.path.join(self.sauveDirectory,fileParamDeb)
-       self.traiteParam()
-       f = open( str(fileParam), 'wb')
-       f.write( self.texteParam )
-       f.close()
-       
-       self.texteCMD="[ \n    GLOBAL \n] \n[ \nVISU \n"+self.fnBase.split(".med")[0]+"\nMED \nELEMENT \n] "
-       fileCMDDeb = fn[:fn.rfind(".")] + '.cmd'
-       fileCMD =os.path.join(self.sauveDirectory,fileCMDDeb)
-       f = open( str(fileCMD), 'wb')
-       f.write( self.texteCMD )
-       f.close()
-       
-       nomBaseFichier=os.path.basename(fileParam).split(".med")[0]
-       
-       self.texteInfcarmel=nomBaseFichier
-       fileInfcarmelDeb = fn[:fn.rfind(".")] + '.infcarmel'
-       fileInfcarmel=os.path.join(self.sauveDirectory,fileInfcarmelDeb)
-       f = open( str(fileInfcarmel), 'wb')
-       f.write( self.texteInfcarmel )
-       f.close()
-       
-       self.texteInpostpro=nomBaseFichier+"\n"+nomBaseFichier.split(".param")[0]+'.xmat\n'+nomBaseFichier.split(".param")[0]+'.cmd'
-       fileInpostproDeb = fn[:fn.rfind(".")] + '.inpostprocess'
-       fileInpostpro = os.path.join(self.sauveDirectory,fileInpostproDeb)
-       f = open( str(fileInpostpro), 'wb')
-       f.write( self.texteInpostpro )
-       f.close()
-
-#----------------------------------------------------------------------------------------
-#  analyse des commentaires pour trouver le nom du fichier
-#----------------------------------------------------------------------------------------
-
-   def chercheFichier(self) :
-       nomFichier="inconnu"
-       for e in self.racine.etapes:
-           if  isinstance(e,Accas.COMMENTAIRE):
-               print 'ùmasdkfh=',e.valeur[0:17]
-               if e.valeur[0:17]=="Cree - fichier : ":
-                  debut=e.valeur[17:]
-                  liste=debut.split(" - ")
-                  nomFichier=liste[0]
-                  #print 'nom=',nomFichier
-                  #print 'e.va=',e.valeur.split(" ")[-1]
-                  #print 'liste=',liste
-                  nomDomaine=e.valeur.split(" ")[-1]
-                  break
-       self.sauveDirectory=os.path.dirname(nomFichier)
-       self.fnBase=os.path.basename(nomFichier)
-       self.texteIngendof =os.path.basename(nomFichier)+"\n"
-       self.texteParam += os.path.basename(nomFichier).split(".med")[0]+".car\n]\n"
-       self.texteParam +="[PHYS_FILES\n   NAME "+os.path.basename(nomFichier).split(".med")[0]+".phys\n]\n"
-
-#----------------------------------------------------------------------------------------
-#  analyse du dictionnaire  pour trouver les sources et les VCut et les ZS
-#----------------------------------------------------------------------------------------
-
-   def traiteSourceVCut(self) :
-       listeSource=[]
-       listeVCut=[]
-       self.listeZS=[]
-       self.texteSourcePhys="[SOURCES\n"
-       for k in self.dictMCVal.keys():
-           if k.find ("______SOURCE__") > -1 :
-              noms=k.split("_____")
-              if noms[0] not in listeSource : listeSource.append(noms[0])
-           if k.find ("______VCUT__") > -1 :
-              noms=k.split("_____")
-              if noms[0] not in listeVCut : listeVCut.append(noms[0])
-           if k.find ("______ZS") > -1 :
-              noms=k.split("_____")
-              if noms[0] not in self.listeZS : self.listeZS.append(noms[0])
-       listeSource.sort()
-       for source in listeSource:
-           debutKey=source+"______SOURCE__"
-           texteSource=self.dictMCVal[debutKey+"EnveloppeConnexeInducteur"]+"\n"
-           texteSource+="2\n"
-           for val in self.dictMCVal[debutKey+"VecteurDirecteur"] :
-               texteSource+=str(val)+" "
-           texteSource+="\n"
-           for val in self.dictMCVal[debutKey+"Centre"] :
-               texteSource+=str(val)+" "
-           texteSource+="\n"
-           texteSource+=str(self.dictMCVal[debutKey+"SectionBobine"])+"\n"
-           self.texteIngendof+=texteSource
-           self.texteSourcePhys+="   [STRANDED_INDUCTOR\n"
-           self.texteSourcePhys+="      NAME "+source+"\n"
-           self.texteSourcePhys+="      NTURNS "+str(self.dictMCVal[debutKey+"NbdeTours"])+"\n"
-           self.texteSourcePhys+="      CURJ POLAR "+str(self.dictMCVal[debutKey+"Amplitude"])
-           self.texteSourcePhys+=" 0.0000000000000000E+00\n   ]\n"
-         
-       self.texteSourcePhys+="]\n"
-       for vcut in listeVCut:
-           self.texteIngendof+="1\n"
-           debutKey=vcut+"______VCUT__"
-           if self.dictMCVal[debutKey+"Orientation"] == "Oppose" :self.texteIngendof+="0\n"
-           else : self.texteIngendof+="1\n"
-       if self.dictMCVal["__PARAMETRES__TypedeFormule"]=="APHI" :self.texteIngendof+="1\n"
-       else : self.texteIngendof+="2\n"
-       
-
-        
-#----------------------------------------------------------------------------------------
-   def traiteMateriaux(self) :
-#----------------------------------------------------------------------------------------
-       listeCond=[]
-       listeNoCond=[]
-       for k in self.dictMCVal.keys():
-           if k.find ("______CONDUCTEUR") > -1 :
-              noms=k.split("_____")
-              if noms[0] not in listeCond : listeCond.append(noms[0])
-           if k.find ("______NOCOND") > -1 :
-              noms=k.split("_____")
-              if noms[0] not in listeNoCond : listeNoCond.append(noms[0])
-   
-       for c in listeCond:
-           self.textePhys +="   [CONDUCTOR\n"
-           self.textePhys +="      NAME "+c+"\n"
-           self.textePhys +=texteConductor
-           self.textePhys+="         VALUE COMPLEX "
-           self.textePhys+=str(self.dictMCVal[c+"______CONDUCTEUR__Conductivite"])
-           self.textePhys+=texteConducto2 
-           self.textePhys+="         VALUE COMPLEX "
-           self.textePhys+=str(self.dictMCVal[c+"______CONDUCTEUR__PermeabiliteRelative"])
-           self.textePhys+="  0.0000000000000000E+00\n      ]\n   ]\n"
-
-       for c in listeNoCond:
-           self.textePhys+="   [DIELECTRIC\n"
-           self.textePhys +="      NAME "+c+"\n"
-           self.textePhys += texteNoCond
-           self.textePhys+="         VALUE COMPLEX "
-           self.textePhys+=str(self.dictMCVal[c+"______NOCOND__PermeabiliteRelative"])
-           self.textePhys+="  0.0000000000000000E+00\n      ]\n   ]\n"
-
-       for zs in self.listeZS:
-          self.textePhys+=debutTexteZs0+zs
-          self.textePhys+=debutTexteZs
-          self.textePhys+=str(self.dictMCVal[zs+"______ZS__Conductivite"])
-          self.textePhys+=texteZs2
-          self.textePhys+=str(self.dictMCVal[zs+"______ZS__PermeabiliteRelative"])
-          self.textePhys+=finTexteZs
-
-       self.textePhys+="]\n"
-       self.textePhys+=self.texteSourcePhys
-
-#----------------------------------------------------------------------------------------
-#  Creation du fichier Param
-#----------------------------------------------------------------------------------------
-   def traiteParam(self):
-       self.texteParam +="[FREQUENCY\n   SINGLE  "+str(self.dictMCVal["__PARAMETRES__Frequence"])+"\n]\n"
-       self.texteParam +="[SOLVER\n   NAME BICGCR\n"
-       self.texteParam +="   [ITERATIVE_PARAM\n"
-       self.texteParam +="      NITERMAX  "+str(self.dictMCVal["__PARAMETRES__Nb_Max_Iterations"])+"\n"
-       self.texteParam +="       EPSILON  "+ str(self.dictMCVal["__PARAMETRES__Erreur_Max"])+"\n   ]\n]"
-
-
-#----------------------------------------------------------------------------------------
-#  analyse de chaque noeud de l'arbre 
-#----------------------------------------------------------------------------------------
-
-   def generMCSIMP(self,obj) :
-        """recuperation de l objet MCSIMP"""
-        s=PythonGenerator.generMCSIMP(self,obj)
-        if hasattr(obj.etape,'sdnom'): clef=obj.etape.sdnom+"____"
-        else: clef=""
-        for i in obj.get_genealogie() :
-            clef=clef+"__"+i
-        self.dictMCVal[clef]=obj.valeur
-
-        return s
-
-   def get_repExeCarmel(self) :
-       return self.dictMCVal["__PARAMETRES__RepCarmel"]
-  
diff --git a/generator/generator_CARMELCS.py b/generator/generator_CARMELCS.py
deleted file mode 100644 (file)
index a46c4a2..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
-"""
-
-import traceback
-import types,string,re,os
-from Extensions.i18n import tr
-from generator_python import PythonGenerator
-import Accas
-
-
-
-
-#keys = ['Carmel3D_StudyDirectory','Syrthes_StudyDirectory']
-
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'CARMELCS',
-        # La factory pour creer une instance du plugin
-          'factory' : CARMELCSGenerator,
-          }
-
-
-class CARMELCSGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format dictionnaire
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-#----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None):
-       
-      self.initDico()
-      
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      self.racine=obj
-      return self.text
-
-   def generxml(self,obj,format='brut',config=None):
-
-      texte = self.gener(obj,format,config)
-#      print 'self.dictMCVal = ',self.dictMCVal
-      textePourRun = self.update_XMLYacsSchemaForRunning()
-      return textePourRun
-      
-#----------------------------------------------------------------------------------------
-# initialisations
-#----------------------------------------------------------------------------------------
-   
-   def initDico(self) :
-      self.texteDico = ""
-      self.dictMCVal={}
-      self.dicoCS={}
-      self.debutKey = '__PARAM_CS__'
-
-#----------------------------------------------------------------------------------------
-# ecriture
-#----------------------------------------------------------------------------------------
-
-   def getdico(self) :
-      #print 'getdico : self.dictMCVal.keys() = ',self.dictMCVal.keys()
-      for k in self.dictMCVal.keys():
-          if k.find (self.debutKey) > -1 :
-            a,kproperty=k.split(self.debutKey)   
-            self.dicoCS[kproperty] = self.dictMCVal[k]
-      #print "self.dicoCS = ",self.dicoCS
-      return self.dicoCS
-
-   def getXMLYacsSchemaFileTemplate(self) :
-
-      for k in self.dictMCVal.keys():
-          if k.find (self.debutKey) > -1 :
-            a,kproperty=k.split(self.debutKey)   
-            if kproperty  ==   'XMLYacsFile' :
-               return  self.dictMCVal[k]
-
-   def getXMLYacsSchemaFileRun(self) :
-       xmlYacsSchemaFilePath = self.getXMLYacsSchemaFileTemplate()
-       filename = os.path.basename(xmlYacsSchemaFilePath)
-       dirname  = os.path.dirname(xmlYacsSchemaFilePath)
-       prefix = '_run_'
-       runxmlfile = os.path.join(dirname,prefix+filename)
-       return xmlYacsSchemaFilePath,runxmlfile
-
-   def update_XMLYacsSchemaForRunning(self) :
-       """
-       Creation du fichier _run_XXX.xml, a partir des elements donnes par l'utilisateur dans l'interface :
-       Carmel3D_StudyDirectory : YYY (path du repertoire de l'etude CARMEL3D de couplage)
-       Syrthes_StudyDirectory : YYY/THERMIQUE (path du repertoire de l'etude SYRTHES de couplage)
-       XMLYacsFile : PATH du fichier template du schema yacs d'execution du couplage
-       """
-       xmlYacsSchemaFilePath,runxmlfile = self.getXMLYacsSchemaFileRun()
-       f_xml = open( str(xmlYacsSchemaFilePath), 'r')
-       texte_template_xml = f_xml.read()
-       f_xml.close()
-       dicoCS = self.getdico()
-       print "dicoCS = ",dicoCS
-       # ajout dans dicoCS des elements pour SYRTHES qui sont deja sous cette forme la dans le fichier xml sinon ca pose pb
-       dicoCS['DEB']='%(DEB)s'
-       dicoCS['FIN']='%(FIN)s'
-       newTexteXml = texte_template_xml%dicoCS
-       f = open(runxmlfile,'w')
-       f.write(newTexteXml)
-       f.close()
-       return runxmlfile
-
-   def writeDefault(self,fn) :
-       fileDico = fn[:fn.rfind(".")] + '.py'
-       f = open( str(fileDico), 'wb')
-       f.write( self.texteDico )
-       f.close()
-       runxmlfile = self.update_XMLYacsSchemaForRunning()
-
-#----------------------------------------------------------------------------------------
-#  analyse de chaque noeud de l'arbre 
-#----------------------------------------------------------------------------------------
-
-   def generMCSIMP(self,obj) :
-        """recuperation de l objet MCSIMP"""
-        s=PythonGenerator.generMCSIMP(self,obj)
-        self.texteDico+=obj.nom+ "=" + s[0:-1]+ "\n"
-#        print 'generMCSIMP self.texteDico = ',self.texteDico
-        if hasattr(obj.etape,'sdnom'): clef=obj.etape.sdnom+"____"
-        else: clef=""
-        for i in obj.get_genealogie() :
-            clef=clef+"__"+i
-        self.dictMCVal[clef]=obj.valeur
-
-        return s
-
-  
index 50e30f344986017257f7c083c4e0318f47950685..f10704fefe2d9963fff8e29e6d9ecac68e7d5f13 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 2761c6b355db0d39bec700b3038c99c559866725..e60d43e4bf26bc806430cbbaacd35cc8df0059d6 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index b549998335fb9811342116a7453313d1a79f414b..2c7b0fae8175c1143289a7b2fb14141b1942be97 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 666d97b346bc89f1e1bc3f11be8e43440b811480..8545b42c9bee7a6564ecd53f051f27a9e515e041 100644 (file)
@@ -175,7 +175,8 @@ class TELEMACGenerator(PythonGenerator):
         #nomMajuscule=obj.nom.upper()
         #nom=nomMajuscule.replace('_',' ')
         #if nom in listeSupprime or s == "" : return s
-        if s == "" : return s
+        if s == "None," : s=None 
+        if s == "" or s==None : return s
 
         sTelemac=s[0:-1]
         if not( type(obj.valeur) in (tuple,list) ):
diff --git a/generator/generator_ZCracks.py b/generator/generator_ZCracks.py
deleted file mode 100644 (file)
index 157894b..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
-"""
-from __future__ import absolute_import
-from __future__ import print_function
-try :
-   from builtins import str
-except : pass
-
-import pickle
-texte_debut="#include <Zcracks_base.z7p> \n int main() \n{ \n   init_var();\n"
-texte_debut+='   format="med";\n'
-import traceback
-import types,re,os
-from Extensions.i18n import tr
-from .generator_python import PythonGenerator
-#ListeConcatene=('ridge_names','topo_names','geom_names','elset_names','faset_names','liset_names','nset_names','center','normal','dir')
-ListeConcatene=('ridge_names','topo_names','geom_names','elset_names','faset_names','liset_names','nset_names')
-ListeConcatene2=('center','normal','dir')
-ListeConcatene3=('ra','rb')
-if_ellipse=False
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'ZCRACKS',
-        # La factory pour creer une instance du plugin
-          'factory' : ZCrackGenerator,
-          }
-
-
-class ZCrackGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et 
-      un texte au format dictionnaire
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-#----------------------------------------------------------------------------------------
-   def gener(self,obj,format='brut',config=None):
-
-      self.initDico()
-
-      # Cette instruction genere le contenu du fichier de commandes (persistance)
-      self.text=PythonGenerator.gener(self,obj,format)
-      return self.text
-
-
-#----------------------------------------------------------------------------------------
-# initialisations
-#----------------------------------------------------------------------------------------
-   
-   def initDico(self) :
-      self.textePourRun = texte_debut
-
-
-#----------------------------------------------------------------------------------------
-# ecriture
-#----------------------------------------------------------------------------------------
-
-   def writeDefault(self,fn) :
-        fileZcrack = fn[:fn.rfind(".")] + '.z7p'
-        f = open( str(fileZcrack), 'wb')
-        print((self.textePourRun))
-      
-        self.ajoutRun()
-        self.textePourRunAvecDouble=self.textePourRun.replace("'",'"')
-        f.write( self.textePourRunAvecDouble)
-        f.close()
-
-   def ajoutRun(self) :
-        self.textePourRun+="   write_mesh_crack();\n"
-        self.textePourRun+="   do_mesh_crack(0);\n"
-        self.textePourRun+="   write_refine_mesh();\n"
-        self.textePourRun+="   do_refine_mesh(0);\n"
-        self.textePourRun+="   write_cut_mesh();\n"
-        self.textePourRun+="   do_cut_mesh(0);\n"
-#        self.textePourRun+="   nice_cut("+str(self.maximum_aspect_ratio)+");\n"
-        self.textePourRun+='   export_mesh("'+self.cracked_name+'","med");\n'
-        self.textePourRun+="}"
-
-#----------------------------------------------------------------------------------------
-#  analyse de chaque noeud de l'arbre 
-#----------------------------------------------------------------------------------------
-
-   def generMCSIMP(self,obj) :
-        """recuperation de l objet MCSIMP"""
-        #print dir(obj)
-        s=PythonGenerator.generMCSIMP(self,obj)
-        if obj.nom=="sane_name" :
-           self.textePourRun+='   import_mesh("'+obj.val+'", "med");\n'
-        if obj.nom in ListeConcatene :
-#           obj.val=obj.val+" "
-           stringListe=""
-           for val in obj.val:
-               stringListe+=val+""
-#           pickle.dump( stringListe, open( "/home/H60874/test.pickle", "wb" ) )
-#           self.textePourRun+="   "+obj.nom+ "='"+ stringListe[0:-1]+ "';\n"
-#           self.textePourRun+="   "+obj.nom+ "='"+ stringListe+ "';\n"
-           return s
-        if obj.nom in ListeConcatene3 :
-           if (obj.nom=="ra") :
-              self.textePourRun+="   "+"if_ellipse=1;\n" 
-           self.textePourRun+="   "+obj.nom+ "="+str(obj.val)+";\n"
-           if_ellipse_ellipse=True
-           return s
-
-        if obj.nom in ListeConcatene2 : 
-           stringListe=""
-#           self.textePourRun+="GGGGGGG%"+obj.nom+"\n"
-#           if (len(val)>1) :
-           for val in obj.val:
-               stringListe+=str(val)+","
-           self.textePourRun+="   "+obj.nom+ "=set_vector3("+ stringListe[0:-1]+ ");\n"
-#           else :
-#             self.textePourRun+="   "+obj.nom+ str(obj.val+ ";\n"
-#               stringListe+=str(val)+" "
-#           self.textePourRun+="   "+obj.nom+ "=set_vector3("+stringListe[0]+","+stringListe[1]+","+stringListe[2]+");\n"
-#           self.textePourRun+="   "+obj.nom+ "=set_vector3("+obj.val+","+");\n"
-           return s
-#        if obj.nom=="center" :
-#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
-#        if obj.nom=="center" :
-#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
-#        if obj.nom=="normal" :
-#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
-#        if obj.nom=="dir" :
-#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
-        if obj.nom=="elset_radius" :
-           self.textePourRun+="   if_must_define_elset=1;\n"
-
-
-        if obj.nom=="cracked_name" : self.cracked_name=obj.val
-        if obj.nom=="maximum_aspect_ratio" : self.maximum_aspect_ratio=obj.val
-        if obj.nom=="repertoire" : 
-           print ("PNPNPN a traiter")
-           return s
-        self.textePourRun+="   "+obj.nom+ "=" + s[0:-1]+ ";\n"
-        return s
-
-  
-# si repertoire on change tous les noms de fichier
-# exple repertoire='/home' __> fichier='/home/crack.med
index 452b0d333f48534bd197e6c8f957391c745e21e2..333dd23afbee6bd66cffb9215e1d280f9cc7e04f 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 1b08fdf9fd73b41a242f1ae3aa486f841563f10f..a21b8db4328466afe42f63ef451654fb5d5f9fcd 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index f8ee6bb135f128dd21787b183c9e07fc84ae107f..0d2117944aa0905d92e0e6273fe47b768ccf34c9 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/generator/generator_file_from_template.py b/generator/generator_file_from_template.py
deleted file mode 100644 (file)
index d60ad8d..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-from __future__ import absolute_import
-try :
-   from builtins import str
-except : pass
-import os
-
-from Extensions.i18n import tr
-from Extensions.eficas_exception import EficasException
-from .generator_python import PythonGenerator
-import six
-
-def entryPoint():
-    """
-    Return a dictionary containing the description needed to load the plugin
-    """
-    return {'name' : 'file_from_template',
-            'factory' : FileFromTemplateGenerator}
-
-
-class FileFromTemplateGenerator(PythonGenerator):
-    """
-    This generator creates an output file from a template (file with holes) in
-    addition to Eficas .comm file. The parts to replace in the template must be
-    in the form %KEYWORD%, where KEYWORD may be either the name of the Eficas
-    element (short form, for instance MY_MCSIMP) or the "path" to the Eficas
-    element (long form, for instance MYPROC.MYBLOC.MY_MCSIMP).
-    
-    To use this generator, the configuration of the code must implement two
-    methods: get_extension() that must return the extension of the output file
-    and get_template_file() that must return the path of the template file. Be
-    sure also that your catalog is coherent with your template file.
-    """
-    
-    def gener(self, obj, format = 'brut', config = None):
-        self.config = config
-        self.kw_dict = {}
-        self.text = PythonGenerator.gener(self, obj, format)
-        return self.text
-    
-    def generate_output_from_template(self) :
-        """
-        Generate the output text from the template file and the keywords
-        """
-        templateFileName = self.config.get_template_file()
-        if not os.path.isfile(templateFileName):
-            raise EficasException(tr("Fichier patron %s n'existe pas.",
-                                    str( templateFileName)))
-        f = open(templateFileName, "r")
-        template = f.read()  
-        f.close()
-        self.output_text = self.replace_keywords(template)
-
-    def generMCSIMP(self, obj) :
-        """
-        Save object value in the keyword dict for further use, then generate
-        the text corresponding to the MCSIMP element.
-        """
-        short_keyword = obj.nom.strip()
-        long_keyword = ""
-        for i in obj.get_genealogie()[:-1]:
-            long_keyword += i + "."
-        long_keyword += short_keyword
-        self.kw_dict[short_keyword] = obj.valeur
-        self.kw_dict[long_keyword] = obj.valeur
-        return PythonGenerator.generMCSIMP(self, obj)
-
-    def replace_keywords(self, template_string):
-        result = template_string
-        for item in six.iteritems(self.kw_dict):
-            replace_str = "%" + item[0] + "%"
-            result = result.replace(replace_str, str(item[1]))
-        return result
-    
-    def writeDefault(self, basefilename):
-        self.generate_output_from_template()
-        output_filename = os.path.splitext(basefilename)[0] + \
-                          self.config.get_extension()
-        f = open(output_filename, 'w')
-        f.write(self.output_text)
-        f.close()
diff --git a/generator/generator_ini.py b/generator/generator_ini.py
deleted file mode 100644 (file)
index 06c5f9f..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-    Ce module contient le plugin generateur de fichier
-    au format ini pour EFICAS.
-"""
-from __future__ import absolute_import
-try :
-   from builtins import str
-   from builtins import object
-except : pass
-
-import traceback
-import types
-from Extensions.i18n import tr
-from Extensions.eficas_exception import EficasException
-
-
-from Noyau import N_CR
-from Accas import MCSIMP,MCFACT,MCList
-
-def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'ini',
-        # La factory pour creer une instance du plugin
-          'factory' : IniGenerator,
-          }
-
-
-class IniGenerator(object):
-   """
-       Ce generateur parcourt un objet de type MCFACT et produit
-       un fichier au format ini 
-       L'acquisition et le parcours sont realises par le methode
-       generator.gener(objet_mcfact)
-       L'ecriture du fichier au format ini par appel de la methode
-       generator.writefile(nom_fichier)
-
-       Ses caracteristiques principales sont exposees dans des attributs 
-       de classe :
-         - extensions : qui donne une liste d'extensions de fichier preconisees
-
-   """
-   # Les extensions de fichier preconisees
-   extensions=('.ini','.conf')
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR generateur format ini',
-                         fin='fin CR format ini')
-      # Le texte au format ini est stocke dans l'attribut text
-      self.text=''
-
-   def writefile(self,filename):
-      fp=open(filename,'w')
-      fp.write(self.text)
-      fp.close()
-
-   def gener(self,obj,config=None):
-      """
-         Tous les mots-cles simples du niveau haut sont mis dans la section DEFAUT
-         Tous les mots-cles facteurs sont convertis en sections
-         Un mot-cle facteur ne peut contenir que des mots-cles simples. Sinon => erreur
-      """
-      liste_mcfact=[]
-      sect_defaut=''
-      if isinstance(obj,MCList):
-        if len(obj.data) > 1:
-          raise EficasException(tr("Pas supporte"))
-        else:
-          obj=obj.data[0]
-
-      for mocle in obj.mc_liste:
-        if isinstance(mocle,MCList):
-          if len(mocle.data) > 1:
-            raise EficasException(tr("Pas supporte"))
-          else:
-            liste_mcfact.append(self.generMCFACT(mocle.data[0]))
-        elif isinstance(mocle,MCFACT):
-          liste_mcfact.append(self.generMCFACT(mocle))
-        elif isinstance(mocle,MCSIMP):
-          sect_defaut=sect_defaut+self.generMCSIMP(mocle)
-        else:
-          self.cr.fatal(tr("Entite inconnue ou interdite :%s",repr(mocle)))
-
-      self.text=''
-      if sect_defaut != '':
-         self.text="[DEFAULT]\n"+sect_defaut
-      self.text=self.text + ''.join(liste_mcfact,'\n')
-      return self.text
-
-   def generMCFACT(self,obj):
-      """
-         Cette methode convertit un mot-cle facteur ne contenant que des mots-cles
-         simples en une chaine de caracteres
-      """
-      sect_text='[%s]\n' % obj.nom
-      for mocle in obj.mc_liste:
-         if isinstance(mocle,MCSIMP):
-            sect_text=sect_text+self.generMCSIMP(mocle)
-         else:
-            self.cr.fatal(tr("Entite inconnue ou interdite :%s. Elle est ignoree",repr(mocle)))
-      return sect_text
-
-   def generMCSIMP(self,obj):
-      """
-         Cette methode convertit un mot-cle simple en une chaine de caracteres
-         au format ini
-      """
-      s=''
-      if type(obj.valeur) == tuple :
-         self.cr.fatal(tr("Les tuples ne sont pas supportes pour le format ini :%s ", obj.nom))
-         s="%s = %s\n" % (obj.nom,"ERREUR")
-      else :
-         try:
-            s="%s = %s\n" % (obj.nom,obj.valeur)
-         except Exception as e :
-            self.cr.fatal(tr("Type de valeur non supportee par le format ini :%(nom)s\n%(exception)s", \
-                                         {'nom': obj.nom, 'exception': str(e)}))
-      return s
-
index 9ba7fbd7f26a10430813b672aedfe485d8a1daa1..074a2abecd9a66f4ffde64d08fd61b6f76061282 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 0c4516051ef71ebe0006f9ddcb832da6d7a6262c..d309d52a04d2ff936b16f13035ff6d32605f043e 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/generator/generator_pyth.py b/generator/generator_pyth.py
deleted file mode 100644 (file)
index b122fa9..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-    Ce module contient le plugin generateur de fichier au format pyth pour EFICAS.
-
-
-"""
-try :
-   from builtins import str
-   from builtins import object
-except : pass
-
-import traceback
-import types
-
-from Noyau import N_CR
-from Accas import MCSIMP,MCFACT,MCList
-from Extensions.i18n import tr
-from Extensions.eficas_exception import EficasException
-
-
-def entryPoint():
-   """
-       Retourne les informations necessaires pour le chargeur de plugins
-
-       Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'pyth',
-        # La factory pour creer une instance du plugin
-          'factory' : PythGenerator,
-          }
-
-
-class PythGenerator(object):
-   """
-       Ce generateur parcourt un objet de type MCFACT et produit
-       un fichier au format pyth
-
-       L'acquisition et le parcours sont realises par la methode
-       generator.gener(objet_mcfact)
-
-       L'ecriture du fichier au format ini par appel de la methode
-       generator.writefile(nom_fichier)
-
-       Ses caracteristiques principales sont exposees dans des attributs 
-       de classe :
-          - extensions : qui donne une liste d'extensions de fichier preconisees
-
-   """
-   # Les extensions de fichier preconisees
-   extensions=('.py','.comm')
-
-   def __init__(self,cr=None):
-      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
-      if cr :
-         self.cr=cr
-      else:
-         self.cr=N_CR.CR(debut='CR generateur format ini',
-                         fin='fin CR format ini')
-      # Le texte au format pyth est stocke dans l'attribut text
-      self.text=''
-
-   def writefile(self,filename):
-      fp=open(filename,'w')
-      fp.write(self.text)
-      fp.close()
-
-   def gener(self,obj,format='standard',config=None):
-      """
-         Tous les mots-cles simples du niveau haut sont transformes en variables 
-
-         Tous les mots-cles facteurs sont convertis en dictionnaires
-
-         Les mots-cles multiples ne sont pas traites
-      """
-      s=''
-      if isinstance(obj,MCList):
-        if len(obj.data) > 1:
-          raise EficasException(tr("Pas supporte"))
-        else:
-          obj=obj.data[0]
-
-      for mocle in obj.mc_liste:
-        if isinstance(mocle,MCList):
-          if len(mocle.data) > 1:
-            raise EficasException(tr("Pas supporte"))
-          else:
-            valeur=self.generMCFACT(mocle.data[0])
-            s=s+"%s = %s\n" % (mocle.nom,valeur)
-        elif isinstance(mocle,MCFACT):
-          valeur=self.generMCFACT(mocle)
-          s=s+"%s = %s\n" % (mocle.nom,valeur)
-        elif isinstance(v,MCSIMP):
-          valeur = self.generMCSIMP(mocle)
-          s=s+"%s = %s\n" % (mocle.nom,valeur)
-        else:
-          self.cr.fatal("Entite inconnue ou interdite : "+repr(mocle))
-
-      self.text=s
-      return self.text
-
-   def generMCFACT(self,obj):
-      """
-         Cette methode convertit un mot-cle facteur 
-         en une chaine de caracteres representative d'un dictionnaire
-      """
-      s = '{'
-      for mocle in obj.mc_liste:
-         if isinstance(mocle,MCSIMP):
-            valeur = self.generMCSIMP(mocle)
-            s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
-         elif isinstance(mocle,MCFACT):
-            valeur=self.generMCFACT(mocle)
-            s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
-         else:
-            self.cr.fatal(tr("Entite inconnue ou interdite : %s. Elle est ignoree", repr(mocle)))
-
-      s=s+'}'
-      return s
-
-   def generMCSIMP(self,obj):
-      """
-         Cette methode convertit un mot-cle simple en une chaine de caracteres
-         au format pyth
-      """
-      try:
-         s="%s" % obj.valeur
-      except Exception as e :
-         self.cr.fatal(tr("Type de valeur non supporte par le format pyth : n %(exception)s", \
-                           {'nom': obj.nom, 'exception': str(e)}))
-
-
-         s="ERREUR"
-      return s
-
index bafc218a15e12115dda41675636d85a27768f001..7d61b50d75b289d610ac6870be3aa44be0e401bb 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/generator/generator_python6.py b/generator/generator_python6.py
deleted file mode 100644 (file)
index 473409a..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-    Ce module contient le plugin generateur de fichier au format 
-    python pour EFICAS.
-
-"""
-import traceback
-import types,string,re
-
-from Noyau import N_CR
-from Noyau.N_utils import repr_float
-from Accas import ETAPE,PROC_ETAPE,MACRO_ETAPE,ETAPE_NIVEAU,JDC,FORM_ETAPE
-from Accas import MCSIMP,MCFACT,MCBLOC,MCList,EVAL
-from Accas import GEOM,ASSD,MCNUPLET
-from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
-from Formatage import Formatage
-
-import generator_python
-
-def entryPoint():
-   """
-       Retourne les informations nécessaires pour le chargeur de plugins
-
-       Ces informations sont retournées dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'python6',
-        # La factory pour créer une instance du plugin
-          'factory' : PythonGenerator,
-          }
-
-
-class PythonGenerator(generator_python.PythonGenerator):
-   """
-       Ce generateur parcourt un objet de type JDC et produit
-       un fichier au format python6
-
-       L'acquisition et le parcours sont réalisés par la méthode
-       generator.gener(objet_jdc,format)
-
-       L'écriture du fichier au format python6 par appel de la méthode
-       generator.writefile(nom_fichier)
-
-       Ses caractéristiques principales sont exposées dans des attributs 
-       de classe :
-         - extensions : qui donne une liste d'extensions de fichier préconisées
-
-   """
-   # Les extensions de fichier préconisées
-   extensions=('.comm',)
-
-   def generFORM_ETAPE(self,obj):
-        """
-            Méthode particulière pour les objets de type FORMULE
-        """
-        l=[]
-        nom = obj.get_nom()
-        if nom == '' : nom = 'sansnom'
-        l.append(nom + ' = FORMULE(')
-        for v in obj.mc_liste:
-            text=self.generator(v)
-            l.append(v.nom+'='+text)
-        l.append(');')
-        return l
-
-   def gen_formule(self,obj):
-      """
-           Méthode particuliere aux objets de type FORMULE
-      """
-      try:
-        if obj.sd == None:
-          sdname=''
-        else:
-          sdname= self.generator(obj.sd)
-      except:
-        sdname='sansnom'
-      l=[]
-      label=sdname + ' = FORMULE('
-      l.append(label)
-      for v in obj.mc_liste:
-        s=''
-        s= v.nom+':'+sdname+'('+v.valeur+')'
-        l.append(s)
-      if len(l) == 1:
-        l[0]=label+');'
-      else :
-        l.append(');')
-      return l
index 569e4fafdec8ef45caae2a53daf639bce8d73453..729c6799e7ad4855db4f933c1611cd3c2ac36f88 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2017   EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
diff --git a/generator/oldCodes/generator_CARMEL3D.py b/generator/oldCodes/generator_CARMEL3D.py
new file mode 100644 (file)
index 0000000..66dd503
--- /dev/null
@@ -0,0 +1,844 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
+"""
+
+import traceback
+import types,string,re,os
+from Extensions.i18n import tr
+from generator_python import PythonGenerator
+
+# Groupes de mailles dont les types sont definis par des prefixes dans leur nom
+usePrefix = False # les noms ont des prefixes (True) ou non (False)
+# liste des prefixes des groupes de mailles, sans le caractere _ separant le prefixe du reste du nom
+# Ce prefixe (et caractere _) doivent etre supprimes dans le fichier .phys
+listePrefixesGroupeMaille = ("DIEL","NOCOND","COND","CURRENT","EPORT","HPORT","TOPO","PB_MOBILE","NILMAT",
+                         "VCUT","VCUTN","EWALL","HWALL","GAMMAJ","PERIODIC","APERIODIC",
+                         "HPROBE","EPROBE","BFLUX","BFLUXN","JFLUX","JFLUXN",
+                         "PORT_OMEGA","POST_PHI","PB_GRID",
+                         "SCUTE","SCUTN","ZS","ZJ","ZT")
+# liste des prefixes des groupes de mailles, sans le separateur, par type de bloc du fichier PHYS sous la forme d'un dictionnaire
+dictPrefixesGroupeMaille = {'DIELECTRIC':('DIEL','NOCOND'), 
+                                             'CONDUCTOR':('COND',), 
+                                             'STRANDED_INDUCTOR':('CURRENT', ), 
+                                             'EPORT':('EPORT', ), 
+                                             'HPORT':('HPORT', ), 
+                                             'ZSURFACIC':('ZS', ), 
+                                             'ZINSULATOR':('ZJ', ), 
+                                             'NILMAT':('NILMAT', )}
+# separateur entre le prefixe et le reste du nom du groupe de maille
+sepNomGroupeMaille = '_'
+
+# types de problemes
+HARMONIC = 'HARMONIC' # probleme frequentiel
+TIME_DOMAIN = 'TIME_DOMAIN' # probleme temporel
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'CARMEL3D',
+        # La factory pour creer une instance du plugin
+          'factory' : CARMEL3DGenerator,
+          }
+
+
+class CARMEL3DGenerator(PythonGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et 
+      un texte au format attendu par le code Code_Carmel3D (fichier '.PHYS') 
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+#----------------------------------------------------------------------------------------
+   def gener(self,obj,format='brut',config=None):
+       
+      self.initDico()
+      
+      # Cette instruction genere le contenu du fichier de commandes (persistance)
+      self.text=PythonGenerator.gener(self,obj,format)
+
+      if self.debug:
+         print "self.text = %s", self.text
+
+      # Cette instruction genere le contenu du fichier de parametres pour le code Carmel3D
+      # si le jdc est valide (sinon cela n a pas de sens)
+      if obj.isvalid() : 
+           # constitution du bloc VERSION du fichier PHYS (existe toujours)
+           try :
+             self.generBLOC_VERSION(obj)
+           except ValueError, err:
+             raise ValueError(str(err))
+
+           # constitution du bloc MATERIALS du fichier PHYS (existe toujours)
+           self.generBLOC_MATERIALS()
+
+           # constitution du bloc SOURCES du fichier PHYS (existe toujours)
+           self.generBLOC_SOURCES()
+
+#      print "texte carmel3d :\n",self.texteCarmel3D
+#      print "dictMaterDielectric : ",self.dictMaterDielectric
+      if self.debug:
+         print "dictMaterConductor : %s", repr(self.dictMaterConductor)
+      
+      return self.text
+
+
+#----------------------------------------------------------------------------------------
+# initialisations
+#----------------------------------------------------------------------------------------
+   
+   def initDico(self) :
+      self.texteCarmel3D=""
+      self.debug = True # affichage de messages pour deboguage (.true.) ou non
+      self.dicoEtapeCourant=None
+      self.dicoMCFACTCourant=None
+      self.dicoCourant=None
+      self.dictGroupesMaillage = {'ordreMateriauxJdC':[], 'ordreSourcesJdC':[]} # association des noms de groupes de maillage avec les noms de materiaux ou de sources, en sauvegardant l'ordre du JdC en separant les groupes associes a des materiaux de ceux associes a des sources
+      self.dictMaterConductor={}
+      self.dictMaterDielectric={}
+      self.dictMaterZsurfacic={}
+      self.dictMaterEmIso={}
+      self.dictMaterEmAnIso={}
+      self.dictMaterNilmat={}
+      self.dictMaterZinsulator={}
+      self.dictSourceStInd={}
+      self.dictSourceEport={}
+      self.dictSourceHport={}
+      # on force le probleme a etre frequentiel, seul possible en l'etat des choses
+      self.problem = HARMONIC
+
+
+#----------------------------------------------------------------------------------------
+# ecriture
+#----------------------------------------------------------------------------------------
+
+   def writeDefault(self,fn) :
+        """Ecrit le fichier de parametres (PHYS) pour le code Carmel3D"""
+        if self.debug: 
+            print "ecriture du fichier de parametres (PHYS)"
+        filePHYS = fn[:fn.rfind(".")] + '.phys'
+        f = open( str(filePHYS), 'wb')
+        f.write( self.texteCarmel3D)
+        f.close()
+
+#----------------------------------------------------------------------------------------
+#  analyse de chaque noeud de l'arbre 
+#----------------------------------------------------------------------------------------
+
+   def generMCSIMP(self,obj) :
+        """recuperation de l objet MCSIMP"""
+        if self.debug: 
+            print "MCSIMP %(v_1)s  %(v_2)s", {'v_1': obj.nom, "v_2": obj.valeur}
+        s=PythonGenerator.generMCSIMP(self,obj)
+        self.dicoCourant[obj.nom]=obj.valeurFormatee
+        return s
+
+  
+#----------------------------------------------------------------------------------------
+   def generMCFACT(self,obj) :
+        """recuperation de l objet MCFACT"""
+        dico={}
+        self.dicoMCFACTCourant=dico
+        self.dicoCourant=self.dicoMCFACTCourant
+        s=PythonGenerator.generMCFACT(self,obj)
+        self.dicoEtapeCourant[obj.nom]=self.dicoMCFACTCourant
+        self.dicoMCFACTCourant=None
+        self.dicoCourant=self.dicoEtapeCourant
+        return s
+  
+#----------------------------------------------------------------------------------------
+   def generPROC_ETAPE(self,obj):
+        """analyse des PROC du catalogue  ( VERSION )"""
+        dico={}
+        self.dicoEtapeCourant=dico
+        self.dicoCourant=self.dicoEtapeCourant
+        s=PythonGenerator.generPROC_ETAPE(self,obj)
+        obj.valeur=self.dicoEtapeCourant
+        if self.debug: 
+            print "PROC_ETAPE %(v_1)s  %(v_2)s", \
+                     {'v_1': unicode(obj.nom), "v_2": unicode(obj.valeur)}
+        s=PythonGenerator.generPROC_ETAPE(self,obj)
+        return s
+  
+#----------------------------------------------------------------------------------------
+   def generETAPE(self,obj):
+        """analyse des OPER du catalogue"""
+        dico={}
+        self.dicoEtapeCourant=dico
+        self.dicoCourant=self.dicoEtapeCourant
+        s=PythonGenerator.generETAPE(self,obj)
+        obj.valeur=self.dicoEtapeCourant
+        if self.debug: 
+            print "ETAPE : obj.nom = %(v_1)s , obj.valeur= %(v_2)s", \
+                     {'v_1': obj.nom, 'v_2': obj.valeur}
+        if obj.nom=="MESHGROUP" : self.generMESHGROUP(obj)
+        if obj.nom=="MATERIAL" : self.generMATERIAL(obj)
+        if obj.nom=="SOURCE" : self.generSOURCE(obj)
+        s=PythonGenerator.generETAPE(self,obj)
+        return s
+
+#----------------------------------------------------------------------------------------
+   def generMACRO_ETAPE(self,obj):
+        dico={}
+        self.dicoEtapeCourant=dico
+        self.dicoCourant=self.dicoEtapeCourant
+        import generator
+        monGenerateur=generator.plugins["CARMEL3D"]()
+        jdc_aux_texte=monGenerateur.gener(obj.jdc_aux)
+        if self.debug: 
+            print "jdc_aux_texte : %s", jdc_aux_texte
+
+        for cle in monGenerateur.dictMaterConductor:
+            self.dictMaterConductor[cle] = monGenerateur.dictMaterConductor[cle]
+        for cle in monGenerateur.dictMaterDielectric:
+            self.dictMaterDielectric[cle] = monGenerateur.dictMaterDielectric[cle]
+        for cle in monGenerateur.dictMaterZsurfacic:
+            self.dictMaterZsurfacic[cle] = monGenerateur.dictMaterZsurfacic[cle]
+        for cle in monGenerateur.dictMaterEmIso:
+            self.dictMaterEmIso[cle] = monGenerateur.dictMaterEmIso[cle]
+        for cle in monGenerateur.dictMaterEmAnIso:
+            self.dictMaterEmAnIso[cle] = monGenerateur.dictMaterEmAnIso[cle]
+        for cle in monGenerateur.dictMaterNilmat:
+            self.dictMaterNilMat[cle] = monGenerateur.dictMaterNilMat[cle]
+        for cle in monGenerateur.dictMaterZinsulator:
+            self.dictMaterZinsulator[cle] = monGenerateur.dictMaterZinsulator[cle]
+              
+        print "________FIN MACRO______________________________________"
+        s=PythonGenerator.generMACRO_ETAPE(self,obj)
+        return s
+
+#----------------------------------------------------------------------------------------
+#----------------------------------------------------------------------------------------
+   def generMESHGROUP(self,obj):
+        """preparation de la ligne NAME referencant le groupe de mailles 
+            associe le groupe de mailles au materiau ou a la source utilisateur
+            on sauvegarde aussi les noms des groupes de maillage
+        """
+
+        try:
+            if usePrefix:
+                nomGroupeMaillage = self.nomReelGroupeMaillage(obj.get_sdname()) # nom du groupe de maillage, i.e. nom du concept, avec prefixes enleves
+            else:
+                nomGroupeMaillage = obj.get_sdname() # nom du groupe de maillage, i.e. nom du concept
+            # test: un et un seul nom de materiau ou source doit etre associe a ce groupe de maillage, via les cles MATERIAL et SOURCE, respectivement.
+            # test sur un seul attribut, non pertinent car il peut y en avoir plusieurs.
+            #assert len(obj.valeur.keys())==1,"Un et un seul nom de materiau ou source doit etre associe a ce groupe du maillage :"+nomGroupeMaillage
+            #
+            # on utilise le fait que obj.valeur est un dictionnaire
+            if self.debug: 
+                print "obj.valeur.keys()= %s", obj.valeur.keys()
+            if 'MATERIAL' in obj.valeur.keys() and 'SOURCE' in obj.valeur.keys(): # test d'erreur lors de presence de materiau et source a la fois
+                raise ValueError,tr(" ce groupe de maillage %s est associe a au moins un materiau  et au moins une source.", nomGroupeMaillage)
+            # association a un materiau
+            if 'MATERIAL' in obj.valeur.keys():
+                self.dictGroupesMaillage[nomGroupeMaillage] = obj.valeur['MATERIAL'].nom # sauvegarde de l'association entre ce groupe de maillage et un materiau ou source, par son nom, i.e. nom du concept du materiau ou de la source
+                self.dictGroupesMaillage['ordreMateriauxJdC'].append(nomGroupeMaillage) # sauvegarde du nom du groupe de maillage associe a un materiau, dans l'ordre du JdC
+            # association a une source
+            elif 'SOURCE' in obj.valeur.keys():
+                self.dictGroupesMaillage[nomGroupeMaillage] = obj.valeur['SOURCE'].nom # sauvegarde de l'association entre ce groupe de maillage et un materiau ou source, par son nom, i.e. nom du concept du materiau ou de la source
+                self.dictGroupesMaillage['ordreSourcesJdC'].append(nomGroupeMaillage) # sauvegarde du nom du groupe de maillage associe a une source, dans l'ordre du JdC
+            # erreur ni materiau ni source associee
+            else:
+                raise ValueError, tr("ce groupe de maillage %s  n'est associe a aucun materiau ou source.",  nomGroupeMaillage)
+            if self.debug:
+                print "self.dictGroupesMaillage= %s", repr(self.dictGroupesMaillage)
+        except:
+            pass
+
+
+   def generMATERIAL(self,obj):
+        """preparation du bloc correspondant a un materiau du fichier PHYS"""
+        texte=""
+        if self.debug: 
+            print "generation material obj valeur = %s", obj.valeur
+        try :
+            nature = obj.valeur['TYPE'] # la nature est le parametre TYPE du MATERIAL
+            if nature=="CONDUCTOR" : self.generMATERIAL_CONDUCTOR(obj)
+            if nature=="DIELECTRIC" : self.generMATERIAL_DIELECTRIC(obj)
+            if nature=="ZSURFACIC" : self.generMATERIAL_ZSURFACIC(obj)
+            if nature=="EM_ISOTROPIC" : self.generMATERIAL_EMISO(obj)
+            if nature=="EM_ANISOTROPIC" : self.generMATERIAL_EMANISO(obj)
+            if nature=="NILMAT" : self.generMATERIAL_NILMAT(obj)
+            if nature=="ZINSULATOR" : self.generMATERIAL_ZINSULATOR(obj)
+        except:
+            pass
+
+   def generMATERIAL_CONDUCTOR(self,obj):
+       """preparation du sous bloc CONDUCTOR"""
+       texte=""
+       if self.debug: 
+           print "_____________cond_____________"
+       # verification des proprietes du sous bloc CONDUCTOR (PERMEABILITY, CONDUCTIVITY)
+       if 'PERMEABILITY' not in obj.valeur or 'CONDUCTIVITY' not in obj.valeur:
+         print "ERREUR! Le bloc CONDUCTOR doit contenir PERMEABILITY et CONDUCTIVITY."
+       else:
+          # parcours des proprietes du sous bloc CONDUCTOR (PERMEABILITY, CONDUCTIVITY)
+          for keyN1 in ('PERMEABILITY','CONDUCTIVITY') :
+             # debut du sous bloc de propriete du DIELECTRIC
+             texte+="         ["+keyN1+"\n"
+             texte+="            HOMOGENEOUS "+str(obj.valeur[keyN1]["HOMOGENEOUS"])+"\n"
+             texte+="            ISOTROPIC "+str(obj.valeur[keyN1]["ISOTROPIC"])+"\n"
+             # Ecriture des valeurs seulement pour un materiau homogene et isotrope,
+             # car sinon ces valeurs sont definies dans des fichiers annexes
+             homogeneous = str(obj.valeur[keyN1]["HOMOGENEOUS"]) == 'TRUE'
+             isotropic = str(obj.valeur[keyN1]["ISOTROPIC"]) == 'TRUE'
+             if homogeneous and isotropic:
+                # loi (lineaire ou non)
+                texte+="            LAW "+str(obj.valeur[keyN1]["LAW"])+"\n"
+                # valeur de la loi lineaire
+                texte+="            VALUE "+self.formateCOMPLEX(obj.valeur[keyN1]["VALUE"])+"\n"
+                # loi non lineaire de nature spline, Marrocco ou Marrocco et Saturation
+                #  seuls les reels sont pris en compte
+                if obj.valeur[keyN1]['LAW']=='NONLINEAR' :
+                   texte+="            [NONLINEAR \n"
+                   texte+="                ISOTROPY TRUE\n"
+                   texte+="                NATURE "+str(obj.valeur[keyN1]['NATURE'])+"\n"
+                   # ajout des autres parametres autres que ISOTROPY, NATURE, VALUE, LAW, HOMOGENEOUS, ISOTROPIC
+                   for keyN2 in obj.valeur[keyN1] :
+                      if keyN2 not in ('ISOTROPY','NATURE','VALUE','LAW','HOMOGENEOUS','ISOTROPIC') :
+                          texte+="                "+keyN2+" "+str(obj.valeur[keyN1][keyN2])+"\n"
+                   # fin du sous-bloc NONLINEAR
+                   texte+="            ]"+"\n"
+             # fin du sous bloc de propriete
+             texte+="         ]"+"\n"
+       if self.debug: 
+           print "texte = %s", texte
+       self.dictMaterConductor[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
+
+   def generMATERIAL_DIELECTRIC(self,obj):
+       """preparation du sous bloc DIELECTRIC"""
+       texte=""
+       if self.debug: 
+           print "______________nocond_____________"
+       # verification des proprietes du sous bloc DIELECTRIC (PERMEABILITY, PERMITTIVITY)
+       if 'PERMEABILITY' not in obj.valeur or 'PERMITTIVITY' not in obj.valeur:
+         print "ERREUR! Le bloc DIELECTRIC doit contenir PERMEABILITY et PERMITTIVITY."
+       else:
+          # parcours des proprietes du sous bloc DIELECTRIC (PERMEABILITY, PERMITTIVITY)
+          for keyN1 in ('PERMEABILITY','PERMITTIVITY') :
+             # debut du sous bloc de propriete du DIELECTRIC
+             texte+="         ["+keyN1+"\n"
+             texte+="            HOMOGENEOUS "+str(obj.valeur[keyN1]["HOMOGENEOUS"])+"\n"
+             texte+="            ISOTROPIC "+str(obj.valeur[keyN1]["ISOTROPIC"])+"\n"
+             # Ecriture des valeurs seulement pour un materiau homogene et isotrope,
+             # car sinon ces valeurs sont definies dans des fichiers annexes
+             homogeneous = str(obj.valeur[keyN1]["HOMOGENEOUS"]) == 'TRUE'
+             isotropic = str(obj.valeur[keyN1]["ISOTROPIC"]) == 'TRUE'
+             if homogeneous and isotropic:
+                # loi (lineaire ou non)
+                texte+="            LAW "+str(obj.valeur[keyN1]["LAW"])+"\n"
+                # valeur de la loi lineaire
+                texte+="            VALUE "+self.formateCOMPLEX(obj.valeur[keyN1]["VALUE"])+"\n"
+                # loi non lineaire de nature spline, Marrocco ou Marrocco et Saturation
+                #  seuls les reels sont pris en compte
+                if obj.valeur[keyN1]['LAW']=='NONLINEAR' :
+                   texte+="            [NONLINEAR \n"
+                   texte+="                ISOTROPY TRUE\n"
+                   texte+="                NATURE "+str(obj.valeur[keyN1]['NATURE'])+"\n"
+                   # ajout des autres parametres autres que ISOTROPY, NATURE, VALUE, LAW, HOMOGENEOUS, ISOTROPIC
+                   for keyN2 in obj.valeur[keyN1] :
+                      if keyN2 not in ('ISOTROPY','NATURE','VALUE','LAW','HOMOGENEOUS','ISOTROPIC') :
+                          texte+="                "+keyN2+" "+str(obj.valeur[keyN1][keyN2])+"\n"
+                   # fin du sous-bloc NONLINEAR
+                   texte+="            ]"+"\n"
+             # fin du sous bloc de propriete
+             texte+="         ]"+"\n"
+       if self.debug: 
+           print "texte = %s", texte
+       self.dictMaterDielectric[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
+
+   def generMATERIAL_ZSURFACIC(self,obj):
+       """preparation du sous bloc ZSURFACIC"""
+       texte=""
+       if self.debug: 
+           print "______________zsurf_____________"
+       # verification des proprietes du sous bloc ZSURFACIC (PERMEABILITY, CONDUCTIVITY)
+       if 'PERMEABILITY' not in obj.valeur or 'CONDUCTIVITY' not in obj.valeur:
+         print "ERREUR! Le bloc ZSURFACIC doit contenir PERMEABILITY et CONDUCTIVITY."
+       else:
+          # parcours des proprietes du sous bloc ZSURFACIC (PERMEABILITY, CONDUCTIVITY)
+          for keyN1 in obj.valeur :
+             if keyN1=='TYPE': continue
+             # print "type loi = ", obj.valeur[keyN1]['LAW']
+             # debut du sous bloc de propriete du DIELECTRIC
+             texte+="         ["+keyN1+"\n"
+             texte+="            HOMOGENEOUS "+str(obj.valeur[keyN1]["HOMOGENEOUS"])+"\n"
+             texte+="            ISOTROPIC "+str(obj.valeur[keyN1]["ISOTROPIC"])+"\n"
+             # Ecriture des valeurs seulement pour un materiau homogene et isotrope,
+             # car sinon ces valeurs sont definies dans des fichiers annexes
+             homogeneous = str(obj.valeur[keyN1]["HOMOGENEOUS"]) == 'TRUE'
+             isotropic = str(obj.valeur[keyN1]["ISOTROPIC"]) == 'TRUE'
+             if homogeneous and isotropic:
+                # loi (lineaire ou non)
+                texte+="            LAW "+str(obj.valeur[keyN1]["LAW"])+"\n"
+                # valeur de la loi lineaire
+                texte+="            VALUE "+self.formateCOMPLEX(obj.valeur[keyN1]["VALUE"])+"\n"
+             # fin du sous bloc de propriete
+             texte+="         ]"+"\n"
+       if self.debug: 
+           print "texte = %s", texte
+       self.dictMaterZsurfacic[obj.get_sdname()]=texte # sauvegarde du texte pour ce bloc
+
+   def generMATERIAL_EMISO(self,obj):
+       """preparation du sous bloc EM_ISOTROPIC_FILES.
+       Les fichiers sont indiques par le chemin absolu, i.e. le nom complet du JdC,
+        ce qui permet de deplacer les dossiers contenant le modele complet puisque le JdC permet les chemins relatifs.
+       """
+       texte ="        CONDUCTIVITY MED "+str(obj.valeur["CONDUCTIVITY_File"])+"\n"
+       texte+="        PERMEABILITY MED "+str(obj.valeur["PERMEABILITY_File"])+"\n"
+       # Possibilite de forcer le chemin relatif (nom de fichier seulement) plutot que le chemin absolu par defaut
+       #from os.path import basename
+       #texte ="        CONDUCTIVITY MED "+basename(str(obj.valeur["CONDUCTIVITY_File"]))+"\n"
+       #texte+="        PERMEABILITY MED "+basename(str(obj.valeur["PERMEABILITY_File"]))+"\n"
+       #      print "obj get sdname= ", obj.get_sdname()
+       #   if obj.get_sdname() in self.dictMaterEmIso.keys() :
+       #    self.dictMaterEmIso[obj.get_sdname()].append(texte) 
+       # else :
+       self.dictMaterEmIso[obj.get_sdname()]=texte
+  
+   def generMATERIAL_EMANISO(self,obj):
+       """preparation du sous bloc EM_ANISOTROPIC_FILES.
+       Les fichiers sont indiques par le chemin absolu, i.e. le nom complet du JdC,
+        ce qui permet de deplacer les dossiers contenant le modele complet puisque le JdC permet les chemins relatifs.
+       """
+       texte ="        CONDUCTIVITY MATER "+str(obj.valeur["CONDUCTIVITY_File"])+"\n"
+       texte+="        PERMEABILITY MATER "+str(obj.valeur["PERMEABILITY_File"])+"\n"
+       #  print "obj get sdname= ", obj.get_sdname()
+       #  if obj.get_sdname() in self.dictMaterEmAnIso.keys() :
+       #    self.dictMaterEmAnIso[obj.get_sdname()].append(texte) 
+       #  else :
+       self.dictMaterEmAnIso[obj.get_sdname()]=texte
+   
+   def generMATERIAL_NILMAT(self,obj):
+       """preparation du sous bloc NILMAT"""
+       texte=""
+       self.dictMaterNilmat[obj.get_sdname()]=texte
+   
+   def generMATERIAL_ZINSULATOR(self,obj):
+       """"preparation du sous bloc ZINSULATOR"""
+       texte=""
+       self.dictMaterZinsulator[obj.get_sdname()]=texte
+
+#-------------------------------------------------------------------
+
+   def generSOURCE(self,obj):
+        """preparation du bloc correspondant a une source du fichier PHYS"""
+        if self.debug: 
+            print "generation source obj valeur = %s", obj.valeur
+        texte=""
+        try :
+            # test de la presence des types de sources reconnus
+            # commes ces sources sont des mot-cles facteurs, i.e. une cle de dictionnaire,
+            # la source ne peut contenir au plus qu'un type de source.
+            if "STRANDED_INDUCTOR" in obj.valeur:
+               self.generSOURCE_STRANDED_INDUCTOR(obj)
+            elif "HPORT" in obj.valeur:
+               self.generSOURCE_HPORT(obj)
+            elif "EPORT" in obj.valeur:
+               self.generSOURCE_EPORT(obj)
+            else:
+               print "ERREUR! Une source du type STRANDED_INDUCTOR, HPORT ou EPORT est attendue."
+        except:
+            pass
+
+   def generSOURCE_STRANDED_INDUCTOR(self,obj):
+        """preparation du sous bloc STRANDED_INDUCTOR"""
+        texte=""
+        sdict = obj.valeur['STRANDED_INDUCTOR'] # dictionnaire contenant les parametres de la source, outre la forme de la source
+        try :
+            texte+="        NTURNS %s\n" % str(sdict['NTURNS'])
+            # test de la presence d'une forme de source reconnue
+            # commes ces formes sont des mot-cles facteurs, i.e. une cle de dictionnaire,
+            # la source ne peut contenir au plus qu'un type de source.
+            if "WAVEFORM_CONSTANT" in obj.valeur:
+               wdict = obj.valeur['WAVEFORM_CONSTANT'] # dictionnaire contenant les parametres de la forme de la source
+               if self.problem == HARMONIC:
+                  texte+="        CURJ POLAR %s 0\n" % str(wdict['AMPLITUDE'])
+                  print tr("ATTENTION! Une source constante \
+                                  n'est possible qu'a frequence nulle \
+                                  en regime frequentiel")
+            elif "WAVEFORM_SINUS" in obj.valeur:
+               wdict = obj.valeur['WAVEFORM_SINUS'] # dictionnaire contenant les parametres de la forme de la source
+               if self.problem == HARMONIC:
+                  texte+="        CURJ POLAR %(ampli)s %(phase)s\n" \
+                         % {'ampli': str(wdict['AMPLITUDE']), 'phase': str(wdict['PHASE'])}
+            else:
+               print tr("ERREUR! Une forme de la source du \
+                               type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
+            self.dictSourceStInd[obj.get_sdname()]=texte
+            if self.debug: 
+                print texte
+        except Exception:
+            pass
+
+   def generSOURCE_HPORT(self,obj):
+        """preparation du sous bloc HPORT"""
+        texte=""
+        sdict = obj.valeur['HPORT'] # dictionnaire contenant les parametres de la source, outre la forme de la source
+        try :
+            texte+="        TYPE %s\n" % str(sdict['TYPE'])
+            # test de la presence d'une forme de source reconnue
+            # commes ces formes sont des mot-cles facteurs, i.e. une cle de dictionnaire,
+            # la source ne peut contenir au plus qu'un type de source.
+            if "WAVEFORM_CONSTANT" in obj.valeur:
+               wdict = obj.valeur['WAVEFORM_CONSTANT'] # dictionnaire contenant les parametres de la forme de la source
+               if self.problem == HARMONIC:
+                  texte+="        AMP POLAR %s 0\n" % str(wdict['AMPLITUDE'])
+                  print tr("ATTENTION! Une source constante n'est \
+                                  possible qu'a frequence nulle en regime frequentiel")
+            elif "WAVEFORM_SINUS" in obj.valeur:
+               wdict = obj.valeur['WAVEFORM_SINUS'] # dictionnaire contenant les parametres de la forme de la source
+               if self.problem == HARMONIC:
+                  texte+="        AMP POLAR %(ampli)s %(phase)s\n" \
+                         % {'ampli': str(wdict['AMPLITUDE']), 'phase': str(wdict['PHASE'])}
+            else:
+               print tr("ERREUR! Une forme de la source du type \
+                               WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
+            self.dictSourceHport[obj.get_sdname()]=texte
+            if self.debug: 
+                print texte
+        except:
+            pass
+
+   def generSOURCE_EPORT(self,obj):
+        """preparation du sous bloc EPORT"""
+        texte=""
+        sdict = obj.valeur['EPORT'] # dictionnaire contenant les parametres de la source, outre la forme de la source
+        try :
+            texte+="        TYPE %s\n" % str(sdict['TYPE'])
+            # test de la presence d'une forme de source reconnue
+            # commes ces formes sont des mot-cles facteurs, i.e. une cle de dictionnaire,
+            # la source ne peut contenir au plus qu'un type de source.
+            if "WAVEFORM_CONSTANT" in obj.valeur:
+               wdict = obj.valeur['WAVEFORM_CONSTANT'] # dictionnaire contenant les parametres de la forme de la source
+               if self.problem == HARMONIC:
+                  texte+="        AMP POLAR %s 0\n" % str(wdict['AMPLITUDE'])
+                  print tr("ATTENTION! Une source constante n'est possible qu'a frequence nulle en regime frequentiel")
+            elif "WAVEFORM_SINUS" in obj.valeur:
+               wdict = obj.valeur['WAVEFORM_SINUS'] # dictionnaire contenant les parametres de la forme de la source
+               if self.problem == HARMONIC:
+                  texte+="        AMP POLAR %(ampli)s %(phase)s\n" \
+                         % {'ampli': str(wdict['AMPLITUDE']), 'phase': str(wdict['PHASE'])}
+            else:
+               print tr("ERREUR! Une forme de la source du type \
+                               WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue.")
+            self.dictSourceEport[obj.get_sdname()]=texte
+            if self.debug: 
+                print texte
+        except:
+            pass
+
+#---------------------------------------------------------------------------------------
+# traitement fichier PHYS
+#---------------------------------------------------------------------------------------
+
+   def generBLOC_VERSION(self,obj) :
+      # constitution du bloc VERSION du fichier PHYS
+      # creation d une entite  VERSION ; elle sera du type PROC car decrit ainsi
+      # dans le du catalogue
+      version=obj.addentite('VERSION',pos=None)
+      self.generPROC_ETAPE(obj.etapes[0])
+      self.texteCarmel3D+="["+obj.etapes[0].nom+"\n"
+      for cle in obj.etapes[0].valeur :
+          self.texteCarmel3D+="   "+cle+" "+str(obj.etapes[0].valeur[cle])+"\n"
+      self.texteCarmel3D+="]\n"
+      # destruction de l entite creee 
+      obj.suppentite(version)
+
+#----------------------------------------------------------------------------------------
+   def generBLOC_MATERIALS(self) :
+        """Prepare une partie du contenu du fichier de parametres (PHYS) pour le code Carmel3D (bloc MATERIALS).
+        Le bloc MATERIALS existe toujours ! 
+        """
+        if self.debug:
+            print "cle dictionnaire materconductor : %s", self.dictMaterConductor.keys()
+            print "cle dictionnaire materdielectric : %s", self.dictMaterDielectric.keys()
+        # constitution du bloc MATERIALS du fichier PHYS
+        self.texteCarmel3D+="[MATERIALS\n"
+        # tri alphabetique de tous les groupes de maillage associes a des sources (plus necessaire Code_Carmel3D V_2_3_1 et +, mais avant oui)
+        nomsGroupesMaillage = self.dictGroupesMaillage['ordreMateriauxJdC'][:] # copie de l'original, qui est une liste
+        nomsGroupesMaillage.sort() # tri alphabetique, avec les prefixes eventuels
+        if self.debug:
+            print "noms groupes de mailles associes a des materiaux \
+                            (ordre JdC puis tri)= %(v_1)s %(v_2)s", \
+                            {'v_1': self.dictGroupesMaillage['ordreMateriauxJdC'], \
+                             'v_2': nomsGroupesMaillage}
+        # constitution du bloc CONDUCTOR du fichier PHYS si existe
+        if self.dictMaterConductor != {} : self.creaBLOC_CONDUCTOR(nomsGroupesMaillage)
+        # constitution du bloc DIELECTRIC du fichier PHYS si exixte
+        if self.dictMaterDielectric != {} : self.creaBLOC_DIELECTRIC(nomsGroupesMaillage)
+        # constitution du bloc ZSURFACIC du fichier PHYS si exixte
+        if self.dictMaterZsurfacic != {} : self.creaBLOC_ZSURFACIC(nomsGroupesMaillage)
+        # constitution du bloc NILMAT du fichier PHYS si exixte
+        if self.dictMaterNilmat != {} : self.creaBLOC_NILMAT(nomsGroupesMaillage)
+        # constitution du bloc ZINSULATOR du fichier PHYS si exixte
+        if self.dictMaterZinsulator != {} : self.creaBLOC_ZINSULATOR(nomsGroupesMaillage)
+        # Les blocs EM_ISOTROPIC_FILES et EM_ANISOTROPIC_FILES sont places en dernier dans le fichier PHYS
+        # constitution du bloc EM_ISOTROPIC_FILES du fichier PHYS si exixte
+        if self.dictMaterEmIso != {} : self.creaBLOC_EMISO()
+        # constitution du bloc EM_ANISOTROPIC_FILES du fichier PHYS si exixte
+        if self.dictMaterEmAnIso != {} : self.creaBLOC_EMANISO()
+        # fin du bloc MATERIALS du fichier PHYS
+        self.texteCarmel3D+="]\n"  
+    
+   def creaBLOC_CONDUCTOR(self, nomsGroupesMaillage) :
+        """Constitution du bloc CONDUCTOR du fichier PHYS"""
+        typeBloc = 'CONDUCTOR' # initialisation du type de bloc
+        dictProprietes = self.dictMaterConductor # initialisation du dictionnaire des proprietes du bloc
+        if self.debug: 
+            print 'cles materiaux de type %(type_bloc)s = %(cle_bloc)s', \
+                            {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
+                # ecriture du bloc complet
+                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
+                if usePrefix:
+                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
+                else:
+                    nomReel = nom
+                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+
+   def creaBLOC_DIELECTRIC(self, nomsGroupesMaillage) :
+        """Constitution du bloc DIELECTRIC du fichier PHYS"""
+        typeBloc = 'DIELECTRIC' # initialisation du type de bloc
+        dictProprietes = self.dictMaterDielectric # initialisation du dictionnaire des proprietes du bloc
+        if self.debug: 
+            print 'cles materiaux de type %(type_bloc)s=%(cle_bloc)s', \
+                     {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
+                # ecriture du bloc complet
+                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
+                self.texteCarmel3D+="        NAME "+nom+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+
+   def creaBLOC_ZSURFACIC(self, nomsGroupesMaillage) :
+        """Constitution du bloc ZSURFACIC du fichier PHYS"""
+        typeBloc = 'ZSURFACIC' # initialisation du type de bloc
+        dictProprietes = self.dictMaterZsurfacic # initialisation du dictionnaire des proprietes du bloc
+        if self.debug: 
+            print 'cles materiaux de type %(type_bloc)s=%(cle_bloc)s', \
+                            {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
+                # ecriture du bloc complet
+                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
+                if usePrefix:
+                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
+                else:
+                    nomReel = nom
+                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+
+   def creaBLOC_EMISO(self) :
+        """constitution du bloc EM_ISOTROPIC_FILES du fichier PHYS"""
+        for cle in self.dictMaterEmIso.keys():
+            self.texteCarmel3D+="     [EM_ISOTROPIC_FILES\n"
+            self.texteCarmel3D+= self.dictMaterEmIso[cle] 
+            self.texteCarmel3D+="     ]\n"
+
+   def creaBLOC_EMANISO(self) :
+        """constitution du bloc EM_ANISOTROPIC_FILES du fichier PHYS"""
+        for cle in self.dictMaterEmAnIso.keys():
+            self.texteCarmel3D+="     [EM_ANISOTROPIC_FILES\n"
+            self.texteCarmel3D+=  self.dictMaterEmAnIso[cle] 
+            self.texteCarmel3D+="     ]\n"
+
+   def creaBLOC_ZINSULATOR(self, nomsGroupesMaillage) :
+        """Constitution du bloc ZINSULATOR du fichier PHYS"""
+        typeBloc = 'ZINSULATOR' # initialisation du type de bloc
+        dictProprietes = self.dictMaterZinsulator # initialisation du dictionnaire des proprietes du bloc
+        if self.debug: print 'cles materiaux de type '+typeBloc+'=', dictProprietes.keys()
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
+                # ecriture du bloc complet
+                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
+                if usePrefix:
+                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
+                else:
+                    nomReel = nom
+                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+
+   def creaBLOC_NILMAT(self, nomsGroupesMaillage) :
+        """Constitution du bloc NILMAT du fichier PHYS"""
+        typeBloc = 'NILMAT' # initialisation du type de bloc
+        dictProprietes = self.dictMaterNilmat # initialisation du dictionnaire des proprietes du bloc
+        if self.debug: 
+            print 'cles materiaux de type %(type_bloc)s=%(cle_bloc)s', \
+                     {'type_bloc': typeBloc, 'cle_bloc': dictProprietes.keys()}
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in dictProprietes.keys(): # test si le nom du materiau associe est du bon type
+                # ecriture du bloc complet
+                self.texteCarmel3D+="     ["+typeBloc+"\n" # debut de bloc
+                if usePrefix:
+                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
+                else:
+                    nomReel = nom
+                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  dictProprietes[self.dictGroupesMaillage[nom]] # ecriture des proprietes du type associe
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+
+#----------------------------------------------------------------------------------------
+   def generBLOC_SOURCES(self):
+        """constitution du bloc SOURCES du fichier PHYS"""
+        self.texteCarmel3D+="[SOURCES\n"
+        # tri alphabetique de tous les groupes de maillage associes a des sources
+        nomsGroupesMaillage = self.dictGroupesMaillage['ordreSourcesJdC'][:] # copie de l'original, qui est une liste
+        nomsGroupesMaillage.sort() # tri alphabetique, avec les prefixes eventuels
+        if self.debug:
+            print 'noms groupes de mailles associes a des sources \
+                            (ordre JdC puis tri)=%(g_maillage_orig)s %(g_maillage_trie)s', \
+                            {'g_maillage_orig': self.dictGroupesMaillage['ordreSourcesJdC'], \
+                             'g_maillage_trie': nomsGroupesMaillage}
+        if self.dictSourceStInd != {}: self.creaBLOC_STRANDED_INDUCTOR(nomsGroupesMaillage)
+        if self.dictSourceEport != {}: self.creaBLOC_EPORT(nomsGroupesMaillage)
+        if self.dictSourceHport != {}: self.creaBLOC_HPORT(nomsGroupesMaillage)
+        # fin du bloc SOURCES du fichier PHYS
+        self.texteCarmel3D+="]\n"
+
+
+   def creaBLOC_STRANDED_INDUCTOR(self, nomsGroupesMaillage) :
+        """constitution du bloc STRANDED_INDUCTOR du fichier PHYS"""
+        if self.debug: 
+            print 'cles sources STRANDED_INDUCTOR= %s', self.dictSourceStInd.keys()
+        typeBloc = 'STRANDED_INDUCTOR'
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in self.dictSourceStInd.keys(): # test si le nom de la source associee est un inducteur bobine
+                # ecriture du bloc de l'inducteur bobine
+                self.texteCarmel3D+="     [STRANDED_INDUCTOR\n" # debut de bloc
+                self.texteCarmel3D+="        NAME "+nom+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  self.dictSourceStInd[self.dictGroupesMaillage[nom]] # ecriture des proprietes de l'inducteur bobine
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+                
+   def creaBLOC_EPORT(self, nomsGroupesMaillage) :
+        """constitution du bloc EPORT du fichier PHYS"""
+        if self.debug: 
+            print 'cles sources EPORT= %s', self.dictSourceEport.keys()
+        typeBloc = 'EPORT'
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in self.dictSourceEport.keys(): # test si le nom de la source associee est un port electrique
+                # ecriture du bloc du port electrique
+                self.texteCarmel3D+="     [EPORT\n" # debut de bloc
+                if usePrefix:
+                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
+                else:
+                    nomReel = nom
+                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  self.dictSourceEport[self.dictGroupesMaillage[nom]] # ecriture des proprietes du port electrique
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+
+   def creaBLOC_HPORT(self, nomsGroupesMaillage) :
+        """constitution du bloc HPORT du fichier PHYS"""
+        if self.debug: 
+            print 'cles sources HPORT= %s', self.dictSourceHport.keys()
+        typeBloc = 'HPORT'
+        for nom in nomsGroupesMaillage: # parcours des noms des groupes de maillage
+            if self.dictGroupesMaillage[nom] in self.dictSourceHport.keys(): # test si le nom de la source associee est un port magnetique
+                # ecriture du bloc du port magnetique
+                self.texteCarmel3D+="     [HPORT\n" # debut de bloc
+                if usePrefix:
+                    nomReel = self.nomReelGroupeMaillage(nom, typeBloc)
+                else:
+                    nomReel = nom
+                self.texteCarmel3D+="        NAME "+nomReel+"\n" # ecriture du nom (reel) du groupe du maillage
+                self.texteCarmel3D+=  self.dictSourceHport[self.dictGroupesMaillage[nom]] # ecriture des proprietes du port magnetique
+                self.texteCarmel3D+="     ]\n" # fin de bloc
+
+#-------------------------------------
+# Methodes utilitaires
+# ------------------------------------
+   def formateCOMPLEX(self,nbC):
+        """prise en compte des differentes formes de description d un nombre complexe
+        3 formats possibles : 2 listes (anciennement tuples?)  et 1 nombre complexe
+        """
+        if self.debug:
+            print "formatage "
+            print "type : %(type_nb_c)s pour %(nb_c)s", \
+                            {'type_nb_c': type(nbC), 'nb_c': nbC}
+        nbformate =""
+        if isinstance(nbC,(tuple,list)):
+            if nbC[0] == "'RI'" :
+                nbformate = "COMPLEX " + str(nbC[1])+" "+str(nbC[2])            
+            if nbC[0] == "'MP'" :
+                nbformate = "POLAR " + str(nbC[1])+" "+str(nbC[2])            
+        else:
+            nbformate = "COMPLEX " + str(nbC.real)+" "+str(nbC.imag)
+        if self.debug: 
+            print "nbformate : %s", nbformate
+        return nbformate
+   
+   def nomReelGroupeMaillage(self, nom, typeBloc=None):
+        """Calcule et retourne le nom reel du groupe de maillage donne en entree,
+        en tenant compte de l'utilisation de prefixes ou pas, et cela pour le type
+        de bloc du fichier PHYS specifie.
+        Cette routine verifie aussi, en cas d'utilisation de prefixes, si le prefixe est en adequation avec le type du bloc.
+        """
+        from string import join
+        if self.debug: 
+            print "nom groupe original : %(nom)s avec usePrefix=%(use_prefix)s devient...", \
+                            {'nom': nom, 'use_prefix': str(usePrefix)}
+        nomReel= None # nom affiche dans le fichier PHYS, sans prefixe a priori
+        if usePrefix:
+            # suppression du prefixe si present
+            partiesNom = nom.split(sepNomGroupeMaille) # separation du nom du groupe en parties
+            # les tests suivants ne generent une erreur que si le prefixe est obligatoire
+            if len(partiesNom) < 2: # test d'erreur, pas de separateur donc nom incorrect, i.e. sans prefixe c'est sur
+                print tr("ERREUR! ce groupe de maille (%s) n'a pas de prefixe \
+                                indiquant le type de materiau ou de source associee", nom)
+            elif partiesNom[0] not in listePrefixesGroupeMaille: # prefixe non defini
+                print tr("ERREUR! ce groupe de maille (%s) n'a pas de prefixe valable",  nom)
+            else:   
+                # verification de l'adequation du prefixe avec le type de bloc demande, si fourni    
+                if typeBloc is not None:
+                    if typeBloc not in dictPrefixesGroupeMaille: # test validite de typeBloc, devant etre une cle du dictionnaire
+                        print tr("ERREUR! ce type de bloc (%s) n'est pas valable", str(typeBloc))
+                    elif partiesNom[0] not in dictPrefixesGroupeMaille[typeBloc]: # pas de prefixe correct pour ce type de bloc
+                        print tr("ERREUR! ce groupe de maille (%(nom)s) n'a pas \
+                                        le prefixe correct pour etre associe a un type %(type_bloc)s", \
+                                        {'nom': nom, 'type_bloc': str(typeBloc)})
+                    else: # c'est bon
+                        nomReel = join(partiesNom[1:], sepNomGroupeMaille) # reconstruction du nom du groupe sans prefixe complet
+                        if self.debug: 
+                            print "ce groupe de maille (%(nom)s) a un prefixe qui \
+                                            est supprime automatiquement pour devenir : %(nom_reel)s", \
+                                            {'nom': nom, 'nom_reel': nomReel}
+                else: # c'est bon
+                    nomReel = join(partiesNom[1:], sepNomGroupeMaille) # reconstruction du nom du groupe sans prefixe complet
+                    if self.debug: 
+                        print "ce groupe de maille (%(nom)s) a un prefixe qui \
+                                        est supprime automatiquement pour devenir : %(nom_reel)s", \
+                                        {'nom': nom, 'nom_reel': nomReel}
+        if self.debug: 
+            print "... %s", nomReel
+        return nomReel
diff --git a/generator/oldCodes/generator_CARMELCND.py b/generator/oldCodes/generator_CARMELCND.py
new file mode 100755 (executable)
index 0000000..4e719c9
--- /dev/null
@@ -0,0 +1,303 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
+"""
+
+import traceback
+import types,string,re,os
+from Extensions.i18n import tr
+from generator_python import PythonGenerator
+import Accas
+
+debutTextePhys ="[VERSION\n  NUM      1\n  FILETYPE PHYS\n]\n"
+debutTextePhys+="[MATERIALS\n"
+texteConductor ="      [CONDUCTIVITY\n         LAW LINEAR\n"
+texteConductor+="         HOMOGENEOUS TRUE\n"
+texteConductor+="         ISOTROPIC  TRUE\n"
+texteConducto2 ="  0.0000000000000000E+00\n      ]\n"
+texteConducto2+="      [PERMEABILITY\n         LAW LINEAR\n"
+texteConducto2+="         HOMOGENEOUS TRUE\n"
+texteConducto2+="         ISOTROPIC  TRUE\n"
+texteNoCond ="      [PERMITTIVITY\n         LAW LINEAR\n"
+texteNoCond+="         HOMOGENEOUS TRUE\n         ISOTROPIC TRUE\n"
+texteNoCond+="         VALUE COMPLEX  0.1000000000000000E+01  0.0000000000000000E+00\n"
+texteNoCond+="      ]\n      [PERMEABILITY\n         LAW LINEAR\n"
+texteNoCond+="         HOMOGENEOUS TRUE\n         ISOTROPIC TRUE\n"
+
+debutTexteParam ="[VERSION\n   NUM     1\n   FILETYPE PARAM\n]\n"
+debutTexteParam+="[PROBLEM\n   NAME HARMONIC\n]\n"
+debutTexteParam+="[CAR_FILES\n   NAME "
+
+debutTexteZs0 ="   [ZSURFACIC\n      NAME "
+debutTexteZs ="\n      [CONDUCTIVITY\n"
+debutTexteZs+="         LAW LINEAR\n"
+debutTexteZs+="         HOMOGENEOUS TRUE\n"
+debutTexteZs+="         ISOTROPIC TRUE\n"
+debutTexteZs+="         VALUE COMPLEX  "
+texteZs2     ="  0.0000000000000000E+00\n      ]\n"
+texteZs2    +="      [PERMEABILITY\n         LAW LINEAR\n"
+texteZs2    +="         HOMOGENEOUS TRUE\n"
+texteZs2    +="         ISOTROPIC TRUE\n         VALUE COMPLEX  "
+finTexteZs   ="  0.0000000000000000E+00\n      ]\n   ]\n"
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'CARMELCND',
+        # La factory pour creer une instance du plugin
+          'factory' : CARMELCNDGenerator,
+          }
+
+
+class CARMELCNDGenerator(PythonGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et 
+      un texte au format dictionnaire
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+#----------------------------------------------------------------------------------------
+   def gener(self,obj,format='brut',config=None):
+       
+      self.initDico()
+      
+      # Cette instruction genere le contenu du fichier de commandes (persistance)
+      self.text=PythonGenerator.gener(self,obj,format)
+      self.racine=obj
+      return self.text
+
+
+#----------------------------------------------------------------------------------------
+# initialisations
+#----------------------------------------------------------------------------------------
+   
+   def initDico(self) :
+      self.dictMCVal={}
+
+#----------------------------------------------------------------------------------------
+# ecriture
+#----------------------------------------------------------------------------------------
+
+   def writeDefault(self,file) :
+#file ne sert pas
+
+       self.texteIngendof=""
+       self.texteParam=debutTexteParam
+       self.chercheFichier()
+       self.traiteSourceVCut()
+
+       fn=self.fnBase
+       fileIngendofDeb = fn[:fn.rfind(".")] + '.ingendof'
+       fileIngendof = os.path.join(self.sauveDirectory,fileIngendofDeb)
+       f = open( str(fileIngendof), 'wb')
+       f.write( self.texteIngendof )
+       f.close()
+
+       self.textePhys=debutTextePhys
+       self.traiteMateriaux()
+       filePhysDeb = fn[:fn.rfind(".")] + '.phys'
+       filePhys = os.path.join(self.sauveDirectory,filePhysDeb)
+       f = open( str(filePhys), 'wb')
+       f.write( self.textePhys )
+       f.close()
+
+       fileParamDeb = fn[:fn.rfind(".")] + '.param'
+       fileParam = os.path.join(self.sauveDirectory,fileParamDeb)
+       self.traiteParam()
+       f = open( str(fileParam), 'wb')
+       f.write( self.texteParam )
+       f.close()
+       
+       self.texteCMD="[ \n    GLOBAL \n] \n[ \nVISU \n"+self.fnBase.split(".med")[0]+"\nMED \nELEMENT \n] "
+       fileCMDDeb = fn[:fn.rfind(".")] + '.cmd'
+       fileCMD =os.path.join(self.sauveDirectory,fileCMDDeb)
+       f = open( str(fileCMD), 'wb')
+       f.write( self.texteCMD )
+       f.close()
+       
+       nomBaseFichier=os.path.basename(fileParam).split(".med")[0]
+       
+       self.texteInfcarmel=nomBaseFichier
+       fileInfcarmelDeb = fn[:fn.rfind(".")] + '.infcarmel'
+       fileInfcarmel=os.path.join(self.sauveDirectory,fileInfcarmelDeb)
+       f = open( str(fileInfcarmel), 'wb')
+       f.write( self.texteInfcarmel )
+       f.close()
+       
+       self.texteInpostpro=nomBaseFichier+"\n"+nomBaseFichier.split(".param")[0]+'.xmat\n'+nomBaseFichier.split(".param")[0]+'.cmd'
+       fileInpostproDeb = fn[:fn.rfind(".")] + '.inpostprocess'
+       fileInpostpro = os.path.join(self.sauveDirectory,fileInpostproDeb)
+       f = open( str(fileInpostpro), 'wb')
+       f.write( self.texteInpostpro )
+       f.close()
+
+#----------------------------------------------------------------------------------------
+#  analyse des commentaires pour trouver le nom du fichier
+#----------------------------------------------------------------------------------------
+
+   def chercheFichier(self) :
+       nomFichier="inconnu"
+       for e in self.racine.etapes:
+           if  isinstance(e,Accas.COMMENTAIRE):
+               print 'ùmasdkfh=',e.valeur[0:17]
+               if e.valeur[0:17]=="Cree - fichier : ":
+                  debut=e.valeur[17:]
+                  liste=debut.split(" - ")
+                  nomFichier=liste[0]
+                  #print 'nom=',nomFichier
+                  #print 'e.va=',e.valeur.split(" ")[-1]
+                  #print 'liste=',liste
+                  nomDomaine=e.valeur.split(" ")[-1]
+                  break
+       self.sauveDirectory=os.path.dirname(nomFichier)
+       self.fnBase=os.path.basename(nomFichier)
+       self.texteIngendof =os.path.basename(nomFichier)+"\n"
+       self.texteParam += os.path.basename(nomFichier).split(".med")[0]+".car\n]\n"
+       self.texteParam +="[PHYS_FILES\n   NAME "+os.path.basename(nomFichier).split(".med")[0]+".phys\n]\n"
+
+#----------------------------------------------------------------------------------------
+#  analyse du dictionnaire  pour trouver les sources et les VCut et les ZS
+#----------------------------------------------------------------------------------------
+
+   def traiteSourceVCut(self) :
+       listeSource=[]
+       listeVCut=[]
+       self.listeZS=[]
+       self.texteSourcePhys="[SOURCES\n"
+       for k in self.dictMCVal.keys():
+           if k.find ("______SOURCE__") > -1 :
+              noms=k.split("_____")
+              if noms[0] not in listeSource : listeSource.append(noms[0])
+           if k.find ("______VCUT__") > -1 :
+              noms=k.split("_____")
+              if noms[0] not in listeVCut : listeVCut.append(noms[0])
+           if k.find ("______ZS") > -1 :
+              noms=k.split("_____")
+              if noms[0] not in self.listeZS : self.listeZS.append(noms[0])
+       listeSource.sort()
+       for source in listeSource:
+           debutKey=source+"______SOURCE__"
+           texteSource=self.dictMCVal[debutKey+"EnveloppeConnexeInducteur"]+"\n"
+           texteSource+="2\n"
+           for val in self.dictMCVal[debutKey+"VecteurDirecteur"] :
+               texteSource+=str(val)+" "
+           texteSource+="\n"
+           for val in self.dictMCVal[debutKey+"Centre"] :
+               texteSource+=str(val)+" "
+           texteSource+="\n"
+           texteSource+=str(self.dictMCVal[debutKey+"SectionBobine"])+"\n"
+           self.texteIngendof+=texteSource
+           self.texteSourcePhys+="   [STRANDED_INDUCTOR\n"
+           self.texteSourcePhys+="      NAME "+source+"\n"
+           self.texteSourcePhys+="      NTURNS "+str(self.dictMCVal[debutKey+"NbdeTours"])+"\n"
+           self.texteSourcePhys+="      CURJ POLAR "+str(self.dictMCVal[debutKey+"Amplitude"])
+           self.texteSourcePhys+=" 0.0000000000000000E+00\n   ]\n"
+         
+       self.texteSourcePhys+="]\n"
+       for vcut in listeVCut:
+           self.texteIngendof+="1\n"
+           debutKey=vcut+"______VCUT__"
+           if self.dictMCVal[debutKey+"Orientation"] == "Oppose" :self.texteIngendof+="0\n"
+           else : self.texteIngendof+="1\n"
+       if self.dictMCVal["__PARAMETRES__TypedeFormule"]=="APHI" :self.texteIngendof+="1\n"
+       else : self.texteIngendof+="2\n"
+       
+
+        
+#----------------------------------------------------------------------------------------
+   def traiteMateriaux(self) :
+#----------------------------------------------------------------------------------------
+       listeCond=[]
+       listeNoCond=[]
+       for k in self.dictMCVal.keys():
+           if k.find ("______CONDUCTEUR") > -1 :
+              noms=k.split("_____")
+              if noms[0] not in listeCond : listeCond.append(noms[0])
+           if k.find ("______NOCOND") > -1 :
+              noms=k.split("_____")
+              if noms[0] not in listeNoCond : listeNoCond.append(noms[0])
+   
+       for c in listeCond:
+           self.textePhys +="   [CONDUCTOR\n"
+           self.textePhys +="      NAME "+c+"\n"
+           self.textePhys +=texteConductor
+           self.textePhys+="         VALUE COMPLEX "
+           self.textePhys+=str(self.dictMCVal[c+"______CONDUCTEUR__Conductivite"])
+           self.textePhys+=texteConducto2 
+           self.textePhys+="         VALUE COMPLEX "
+           self.textePhys+=str(self.dictMCVal[c+"______CONDUCTEUR__PermeabiliteRelative"])
+           self.textePhys+="  0.0000000000000000E+00\n      ]\n   ]\n"
+
+       for c in listeNoCond:
+           self.textePhys+="   [DIELECTRIC\n"
+           self.textePhys +="      NAME "+c+"\n"
+           self.textePhys += texteNoCond
+           self.textePhys+="         VALUE COMPLEX "
+           self.textePhys+=str(self.dictMCVal[c+"______NOCOND__PermeabiliteRelative"])
+           self.textePhys+="  0.0000000000000000E+00\n      ]\n   ]\n"
+
+       for zs in self.listeZS:
+          self.textePhys+=debutTexteZs0+zs
+          self.textePhys+=debutTexteZs
+          self.textePhys+=str(self.dictMCVal[zs+"______ZS__Conductivite"])
+          self.textePhys+=texteZs2
+          self.textePhys+=str(self.dictMCVal[zs+"______ZS__PermeabiliteRelative"])
+          self.textePhys+=finTexteZs
+
+       self.textePhys+="]\n"
+       self.textePhys+=self.texteSourcePhys
+
+#----------------------------------------------------------------------------------------
+#  Creation du fichier Param
+#----------------------------------------------------------------------------------------
+   def traiteParam(self):
+       self.texteParam +="[FREQUENCY\n   SINGLE  "+str(self.dictMCVal["__PARAMETRES__Frequence"])+"\n]\n"
+       self.texteParam +="[SOLVER\n   NAME BICGCR\n"
+       self.texteParam +="   [ITERATIVE_PARAM\n"
+       self.texteParam +="      NITERMAX  "+str(self.dictMCVal["__PARAMETRES__Nb_Max_Iterations"])+"\n"
+       self.texteParam +="       EPSILON  "+ str(self.dictMCVal["__PARAMETRES__Erreur_Max"])+"\n   ]\n]"
+
+
+#----------------------------------------------------------------------------------------
+#  analyse de chaque noeud de l'arbre 
+#----------------------------------------------------------------------------------------
+
+   def generMCSIMP(self,obj) :
+        """recuperation de l objet MCSIMP"""
+        s=PythonGenerator.generMCSIMP(self,obj)
+        if hasattr(obj.etape,'sdnom'): clef=obj.etape.sdnom+"____"
+        else: clef=""
+        for i in obj.get_genealogie() :
+            clef=clef+"__"+i
+        self.dictMCVal[clef]=obj.valeur
+
+        return s
+
+   def get_repExeCarmel(self) :
+       return self.dictMCVal["__PARAMETRES__RepCarmel"]
+  
diff --git a/generator/oldCodes/generator_CARMELCS.py b/generator/oldCodes/generator_CARMELCS.py
new file mode 100644 (file)
index 0000000..41a2d45
--- /dev/null
@@ -0,0 +1,161 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
+"""
+
+import traceback
+import types,string,re,os
+from Extensions.i18n import tr
+from generator_python import PythonGenerator
+import Accas
+
+
+
+
+#keys = ['Carmel3D_StudyDirectory','Syrthes_StudyDirectory']
+
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'CARMELCS',
+        # La factory pour creer une instance du plugin
+          'factory' : CARMELCSGenerator,
+          }
+
+
+class CARMELCSGenerator(PythonGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et 
+      un texte au format dictionnaire
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+#----------------------------------------------------------------------------------------
+   def gener(self,obj,format='brut',config=None):
+       
+      self.initDico()
+      
+      # Cette instruction genere le contenu du fichier de commandes (persistance)
+      self.text=PythonGenerator.gener(self,obj,format)
+      self.racine=obj
+      return self.text
+
+   def generxml(self,obj,format='brut',config=None):
+
+      texte = self.gener(obj,format,config)
+#      print 'self.dictMCVal = ',self.dictMCVal
+      textePourRun = self.update_XMLYacsSchemaForRunning()
+      return textePourRun
+      
+#----------------------------------------------------------------------------------------
+# initialisations
+#----------------------------------------------------------------------------------------
+   
+   def initDico(self) :
+      self.texteDico = ""
+      self.dictMCVal={}
+      self.dicoCS={}
+      self.debutKey = '__PARAM_CS__'
+
+#----------------------------------------------------------------------------------------
+# ecriture
+#----------------------------------------------------------------------------------------
+
+   def getdico(self) :
+      #print 'getdico : self.dictMCVal.keys() = ',self.dictMCVal.keys()
+      for k in self.dictMCVal.keys():
+          if k.find (self.debutKey) > -1 :
+            a,kproperty=k.split(self.debutKey)   
+            self.dicoCS[kproperty] = self.dictMCVal[k]
+      #print "self.dicoCS = ",self.dicoCS
+      return self.dicoCS
+
+   def getXMLYacsSchemaFileTemplate(self) :
+
+      for k in self.dictMCVal.keys():
+          if k.find (self.debutKey) > -1 :
+            a,kproperty=k.split(self.debutKey)   
+            if kproperty  ==   'XMLYacsFile' :
+               return  self.dictMCVal[k]
+
+   def getXMLYacsSchemaFileRun(self) :
+       xmlYacsSchemaFilePath = self.getXMLYacsSchemaFileTemplate()
+       filename = os.path.basename(xmlYacsSchemaFilePath)
+       dirname  = os.path.dirname(xmlYacsSchemaFilePath)
+       prefix = '_run_'
+       runxmlfile = os.path.join(dirname,prefix+filename)
+       return xmlYacsSchemaFilePath,runxmlfile
+
+   def update_XMLYacsSchemaForRunning(self) :
+       """
+       Creation du fichier _run_XXX.xml, a partir des elements donnes par l'utilisateur dans l'interface :
+       Carmel3D_StudyDirectory : YYY (path du repertoire de l'etude CARMEL3D de couplage)
+       Syrthes_StudyDirectory : YYY/THERMIQUE (path du repertoire de l'etude SYRTHES de couplage)
+       XMLYacsFile : PATH du fichier template du schema yacs d'execution du couplage
+       """
+       xmlYacsSchemaFilePath,runxmlfile = self.getXMLYacsSchemaFileRun()
+       f_xml = open( str(xmlYacsSchemaFilePath), 'r')
+       texte_template_xml = f_xml.read()
+       f_xml.close()
+       dicoCS = self.getdico()
+       print "dicoCS = ",dicoCS
+       # ajout dans dicoCS des elements pour SYRTHES qui sont deja sous cette forme la dans le fichier xml sinon ca pose pb
+       dicoCS['DEB']='%(DEB)s'
+       dicoCS['FIN']='%(FIN)s'
+       newTexteXml = texte_template_xml%dicoCS
+       f = open(runxmlfile,'w')
+       f.write(newTexteXml)
+       f.close()
+       return runxmlfile
+
+   def writeDefault(self,fn) :
+       fileDico = fn[:fn.rfind(".")] + '.py'
+       f = open( str(fileDico), 'wb')
+       f.write( self.texteDico )
+       f.close()
+       runxmlfile = self.update_XMLYacsSchemaForRunning()
+
+#----------------------------------------------------------------------------------------
+#  analyse de chaque noeud de l'arbre 
+#----------------------------------------------------------------------------------------
+
+   def generMCSIMP(self,obj) :
+        """recuperation de l objet MCSIMP"""
+        s=PythonGenerator.generMCSIMP(self,obj)
+        self.texteDico+=obj.nom+ "=" + s[0:-1]+ "\n"
+#        print 'generMCSIMP self.texteDico = ',self.texteDico
+        if hasattr(obj.etape,'sdnom'): clef=obj.etape.sdnom+"____"
+        else: clef=""
+        for i in obj.get_genealogie() :
+            clef=clef+"__"+i
+        self.dictMCVal[clef]=obj.valeur
+
+        return s
+
+  
diff --git a/generator/oldCodes/generator_ZCracks.py b/generator/oldCodes/generator_ZCracks.py
new file mode 100644 (file)
index 0000000..057d738
--- /dev/null
@@ -0,0 +1,168 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""Ce module contient le plugin generateur de fichier au format  Code_Carmel3D pour EFICAS.
+"""
+from __future__ import absolute_import
+from __future__ import print_function
+try :
+   from builtins import str
+except : pass
+
+import pickle
+texte_debut="#include <Zcracks_base.z7p> \n int main() \n{ \n   init_var();\n"
+texte_debut+='   format="med";\n'
+import traceback
+import types,re,os
+from Extensions.i18n import tr
+from .generator_python import PythonGenerator
+#ListeConcatene=('ridge_names','topo_names','geom_names','elset_names','faset_names','liset_names','nset_names','center','normal','dir')
+ListeConcatene=('ridge_names','topo_names','geom_names','elset_names','faset_names','liset_names','nset_names')
+ListeConcatene2=('center','normal','dir')
+ListeConcatene3=('ra','rb')
+if_ellipse=False
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'ZCRACKS',
+        # La factory pour creer une instance du plugin
+          'factory' : ZCrackGenerator,
+          }
+
+
+class ZCrackGenerator(PythonGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et 
+      un texte au format dictionnaire
+
+   """
+   # Les extensions de fichier permis?
+   extensions=('.comm',)
+
+#----------------------------------------------------------------------------------------
+   def gener(self,obj,format='brut',config=None):
+
+      self.initDico()
+
+      # Cette instruction genere le contenu du fichier de commandes (persistance)
+      self.text=PythonGenerator.gener(self,obj,format)
+      return self.text
+
+
+#----------------------------------------------------------------------------------------
+# initialisations
+#----------------------------------------------------------------------------------------
+   
+   def initDico(self) :
+      self.textePourRun = texte_debut
+
+
+#----------------------------------------------------------------------------------------
+# ecriture
+#----------------------------------------------------------------------------------------
+
+   def writeDefault(self,fn) :
+        fileZcrack = fn[:fn.rfind(".")] + '.z7p'
+        f = open( str(fileZcrack), 'wb')
+        print((self.textePourRun))
+      
+        self.ajoutRun()
+        self.textePourRunAvecDouble=self.textePourRun.replace("'",'"')
+        f.write( self.textePourRunAvecDouble)
+        f.close()
+
+   def ajoutRun(self) :
+        self.textePourRun+="   write_mesh_crack();\n"
+        self.textePourRun+="   do_mesh_crack(0);\n"
+        self.textePourRun+="   write_refine_mesh();\n"
+        self.textePourRun+="   do_refine_mesh(0);\n"
+        self.textePourRun+="   write_cut_mesh();\n"
+        self.textePourRun+="   do_cut_mesh(0);\n"
+#        self.textePourRun+="   nice_cut("+str(self.maximum_aspect_ratio)+");\n"
+        self.textePourRun+='   export_mesh("'+self.cracked_name+'","med");\n'
+        self.textePourRun+="}"
+
+#----------------------------------------------------------------------------------------
+#  analyse de chaque noeud de l'arbre 
+#----------------------------------------------------------------------------------------
+
+   def generMCSIMP(self,obj) :
+        """recuperation de l objet MCSIMP"""
+        #print dir(obj)
+        s=PythonGenerator.generMCSIMP(self,obj)
+        if obj.nom=="sane_name" :
+           self.textePourRun+='   import_mesh("'+obj.val+'", "med");\n'
+        if obj.nom in ListeConcatene :
+#           obj.val=obj.val+" "
+           stringListe=""
+           for val in obj.val:
+               stringListe+=val+""
+#           pickle.dump( stringListe, open( "/home/H60874/test.pickle", "wb" ) )
+#           self.textePourRun+="   "+obj.nom+ "='"+ stringListe[0:-1]+ "';\n"
+#           self.textePourRun+="   "+obj.nom+ "='"+ stringListe+ "';\n"
+           return s
+        if obj.nom in ListeConcatene3 :
+           if (obj.nom=="ra") :
+              self.textePourRun+="   "+"if_ellipse=1;\n" 
+           self.textePourRun+="   "+obj.nom+ "="+str(obj.val)+";\n"
+           if_ellipse_ellipse=True
+           return s
+
+        if obj.nom in ListeConcatene2 : 
+           stringListe=""
+#           self.textePourRun+="GGGGGGG%"+obj.nom+"\n"
+#           if (len(val)>1) :
+           for val in obj.val:
+               stringListe+=str(val)+","
+           self.textePourRun+="   "+obj.nom+ "=set_vector3("+ stringListe[0:-1]+ ");\n"
+#           else :
+#             self.textePourRun+="   "+obj.nom+ str(obj.val+ ";\n"
+#               stringListe+=str(val)+" "
+#           self.textePourRun+="   "+obj.nom+ "=set_vector3("+stringListe[0]+","+stringListe[1]+","+stringListe[2]+");\n"
+#           self.textePourRun+="   "+obj.nom+ "=set_vector3("+obj.val+","+");\n"
+           return s
+#        if obj.nom=="center" :
+#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
+#        if obj.nom=="center" :
+#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
+#        if obj.nom=="normal" :
+#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
+#        if obj.nom=="dir" :
+#           self.textePourRun+="   set_vector3("+obj.val+'");\n"
+        if obj.nom=="elset_radius" :
+           self.textePourRun+="   if_must_define_elset=1;\n"
+
+
+        if obj.nom=="cracked_name" : self.cracked_name=obj.val
+        if obj.nom=="maximum_aspect_ratio" : self.maximum_aspect_ratio=obj.val
+        if obj.nom=="repertoire" : 
+           print ("PNPNPN a traiter")
+           return s
+        self.textePourRun+="   "+obj.nom+ "=" + s[0:-1]+ ";\n"
+        return s
+
+  
+# si repertoire on change tous les noms de fichier
+# exple repertoire='/home' __> fichier='/home/crack.med
diff --git a/generator/oldCodes/generator_file_from_template.py b/generator/oldCodes/generator_file_from_template.py
new file mode 100644 (file)
index 0000000..dcbdc9e
--- /dev/null
@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+from __future__ import absolute_import
+try :
+   from builtins import str
+except : pass
+import os
+
+from Extensions.i18n import tr
+from Extensions.eficas_exception import EficasException
+from .generator_python import PythonGenerator
+import six
+
+def entryPoint():
+    """
+    Return a dictionary containing the description needed to load the plugin
+    """
+    return {'name' : 'file_from_template',
+            'factory' : FileFromTemplateGenerator}
+
+
+class FileFromTemplateGenerator(PythonGenerator):
+    """
+    This generator creates an output file from a template (file with holes) in
+    addition to Eficas .comm file. The parts to replace in the template must be
+    in the form %KEYWORD%, where KEYWORD may be either the name of the Eficas
+    element (short form, for instance MY_MCSIMP) or the "path" to the Eficas
+    element (long form, for instance MYPROC.MYBLOC.MY_MCSIMP).
+    
+    To use this generator, the configuration of the code must implement two
+    methods: get_extension() that must return the extension of the output file
+    and get_template_file() that must return the path of the template file. Be
+    sure also that your catalog is coherent with your template file.
+    """
+    
+    def gener(self, obj, format = 'brut', config = None):
+        self.config = config
+        self.kw_dict = {}
+        self.text = PythonGenerator.gener(self, obj, format)
+        return self.text
+    
+    def generate_output_from_template(self) :
+        """
+        Generate the output text from the template file and the keywords
+        """
+        templateFileName = self.config.get_template_file()
+        if not os.path.isfile(templateFileName):
+            raise EficasException(tr("Fichier patron %s n'existe pas.",
+                                    str( templateFileName)))
+        f = open(templateFileName, "r")
+        template = f.read()  
+        f.close()
+        self.output_text = self.replace_keywords(template)
+
+    def generMCSIMP(self, obj) :
+        """
+        Save object value in the keyword dict for further use, then generate
+        the text corresponding to the MCSIMP element.
+        """
+        short_keyword = obj.nom.strip()
+        long_keyword = ""
+        for i in obj.get_genealogie()[:-1]:
+            long_keyword += i + "."
+        long_keyword += short_keyword
+        self.kw_dict[short_keyword] = obj.valeur
+        self.kw_dict[long_keyword] = obj.valeur
+        return PythonGenerator.generMCSIMP(self, obj)
+
+    def replace_keywords(self, template_string):
+        result = template_string
+        for item in six.iteritems(self.kw_dict):
+            replace_str = "%" + item[0] + "%"
+            result = result.replace(replace_str, str(item[1]))
+        return result
+    
+    def writeDefault(self, basefilename):
+        self.generate_output_from_template()
+        output_filename = os.path.splitext(basefilename)[0] + \
+                          self.config.get_extension()
+        f = open(output_filename, 'w')
+        f.write(self.output_text)
+        f.close()
diff --git a/generator/oldCodes/generator_ini.py b/generator/oldCodes/generator_ini.py
new file mode 100644 (file)
index 0000000..3fa2dd9
--- /dev/null
@@ -0,0 +1,146 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+    Ce module contient le plugin generateur de fichier
+    au format ini pour EFICAS.
+"""
+from __future__ import absolute_import
+try :
+   from builtins import str
+   from builtins import object
+except : pass
+
+import traceback
+import types
+from Extensions.i18n import tr
+from Extensions.eficas_exception import EficasException
+
+
+from Noyau import N_CR
+from Accas import MCSIMP,MCFACT,MCList
+
+def entryPoint():
+   """
+       Retourne les informations necessaires pour le chargeur de plugins
+       Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'ini',
+        # La factory pour creer une instance du plugin
+          'factory' : IniGenerator,
+          }
+
+
+class IniGenerator(object):
+   """
+       Ce generateur parcourt un objet de type MCFACT et produit
+       un fichier au format ini 
+       L'acquisition et le parcours sont realises par le methode
+       generator.gener(objet_mcfact)
+       L'ecriture du fichier au format ini par appel de la methode
+       generator.writefile(nom_fichier)
+
+       Ses caracteristiques principales sont exposees dans des attributs 
+       de classe :
+         - extensions : qui donne une liste d'extensions de fichier preconisees
+
+   """
+   # Les extensions de fichier preconisees
+   extensions=('.ini','.conf')
+
+   def __init__(self,cr=None):
+      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
+      if cr :
+         self.cr=cr
+      else:
+         self.cr=N_CR.CR(debut='CR generateur format ini',
+                         fin='fin CR format ini')
+      # Le texte au format ini est stocke dans l'attribut text
+      self.text=''
+
+   def writefile(self,filename):
+      fp=open(filename,'w')
+      fp.write(self.text)
+      fp.close()
+
+   def gener(self,obj,config=None):
+      """
+         Tous les mots-cles simples du niveau haut sont mis dans la section DEFAUT
+         Tous les mots-cles facteurs sont convertis en sections
+         Un mot-cle facteur ne peut contenir que des mots-cles simples. Sinon => erreur
+      """
+      liste_mcfact=[]
+      sect_defaut=''
+      if isinstance(obj,MCList):
+        if len(obj.data) > 1:
+          raise EficasException(tr("Pas supporte"))
+        else:
+          obj=obj.data[0]
+
+      for mocle in obj.mc_liste:
+        if isinstance(mocle,MCList):
+          if len(mocle.data) > 1:
+            raise EficasException(tr("Pas supporte"))
+          else:
+            liste_mcfact.append(self.generMCFACT(mocle.data[0]))
+        elif isinstance(mocle,MCFACT):
+          liste_mcfact.append(self.generMCFACT(mocle))
+        elif isinstance(mocle,MCSIMP):
+          sect_defaut=sect_defaut+self.generMCSIMP(mocle)
+        else:
+          self.cr.fatal(tr("Entite inconnue ou interdite :%s",repr(mocle)))
+
+      self.text=''
+      if sect_defaut != '':
+         self.text="[DEFAULT]\n"+sect_defaut
+      self.text=self.text + ''.join(liste_mcfact,'\n')
+      return self.text
+
+   def generMCFACT(self,obj):
+      """
+         Cette methode convertit un mot-cle facteur ne contenant que des mots-cles
+         simples en une chaine de caracteres
+      """
+      sect_text='[%s]\n' % obj.nom
+      for mocle in obj.mc_liste:
+         if isinstance(mocle,MCSIMP):
+            sect_text=sect_text+self.generMCSIMP(mocle)
+         else:
+            self.cr.fatal(tr("Entite inconnue ou interdite :%s. Elle est ignoree",repr(mocle)))
+      return sect_text
+
+   def generMCSIMP(self,obj):
+      """
+         Cette methode convertit un mot-cle simple en une chaine de caracteres
+         au format ini
+      """
+      s=''
+      if type(obj.valeur) == tuple :
+         self.cr.fatal(tr("Les tuples ne sont pas supportes pour le format ini :%s ", obj.nom))
+         s="%s = %s\n" % (obj.nom,"ERREUR")
+      else :
+         try:
+            s="%s = %s\n" % (obj.nom,obj.valeur)
+         except Exception as e :
+            self.cr.fatal(tr("Type de valeur non supportee par le format ini :%(nom)s\n%(exception)s", \
+                                         {'nom': obj.nom, 'exception': str(e)}))
+      return s
+
diff --git a/generator/oldCodes/generator_pyth.py b/generator/oldCodes/generator_pyth.py
new file mode 100644 (file)
index 0000000..6a23111
--- /dev/null
@@ -0,0 +1,154 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+    Ce module contient le plugin generateur de fichier au format pyth pour EFICAS.
+
+
+"""
+try :
+   from builtins import str
+   from builtins import object
+except : pass
+
+import traceback
+import types
+
+from Noyau import N_CR
+from Accas import MCSIMP,MCFACT,MCList
+from Extensions.i18n import tr
+from Extensions.eficas_exception import EficasException
+
+
+def entryPoint():
+   """
+       Retourne les informations necessaires pour le chargeur de plugins
+
+       Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'pyth',
+        # La factory pour creer une instance du plugin
+          'factory' : PythGenerator,
+          }
+
+
+class PythGenerator(object):
+   """
+       Ce generateur parcourt un objet de type MCFACT et produit
+       un fichier au format pyth
+
+       L'acquisition et le parcours sont realises par la methode
+       generator.gener(objet_mcfact)
+
+       L'ecriture du fichier au format ini par appel de la methode
+       generator.writefile(nom_fichier)
+
+       Ses caracteristiques principales sont exposees dans des attributs 
+       de classe :
+          - extensions : qui donne une liste d'extensions de fichier preconisees
+
+   """
+   # Les extensions de fichier preconisees
+   extensions=('.py','.comm')
+
+   def __init__(self,cr=None):
+      # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
+      if cr :
+         self.cr=cr
+      else:
+         self.cr=N_CR.CR(debut='CR generateur format ini',
+                         fin='fin CR format ini')
+      # Le texte au format pyth est stocke dans l'attribut text
+      self.text=''
+
+   def writefile(self,filename):
+      fp=open(filename,'w')
+      fp.write(self.text)
+      fp.close()
+
+   def gener(self,obj,format='standard',config=None):
+      """
+         Tous les mots-cles simples du niveau haut sont transformes en variables 
+
+         Tous les mots-cles facteurs sont convertis en dictionnaires
+
+         Les mots-cles multiples ne sont pas traites
+      """
+      s=''
+      if isinstance(obj,MCList):
+        if len(obj.data) > 1:
+          raise EficasException(tr("Pas supporte"))
+        else:
+          obj=obj.data[0]
+
+      for mocle in obj.mc_liste:
+        if isinstance(mocle,MCList):
+          if len(mocle.data) > 1:
+            raise EficasException(tr("Pas supporte"))
+          else:
+            valeur=self.generMCFACT(mocle.data[0])
+            s=s+"%s = %s\n" % (mocle.nom,valeur)
+        elif isinstance(mocle,MCFACT):
+          valeur=self.generMCFACT(mocle)
+          s=s+"%s = %s\n" % (mocle.nom,valeur)
+        elif isinstance(v,MCSIMP):
+          valeur = self.generMCSIMP(mocle)
+          s=s+"%s = %s\n" % (mocle.nom,valeur)
+        else:
+          self.cr.fatal("Entite inconnue ou interdite : "+repr(mocle))
+
+      self.text=s
+      return self.text
+
+   def generMCFACT(self,obj):
+      """
+         Cette methode convertit un mot-cle facteur 
+         en une chaine de caracteres representative d'un dictionnaire
+      """
+      s = '{'
+      for mocle in obj.mc_liste:
+         if isinstance(mocle,MCSIMP):
+            valeur = self.generMCSIMP(mocle)
+            s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
+         elif isinstance(mocle,MCFACT):
+            valeur=self.generMCFACT(mocle)
+            s=s+"'%s' : %s,\n" % (mocle.nom,valeur)
+         else:
+            self.cr.fatal(tr("Entite inconnue ou interdite : %s. Elle est ignoree", repr(mocle)))
+
+      s=s+'}'
+      return s
+
+   def generMCSIMP(self,obj):
+      """
+         Cette methode convertit un mot-cle simple en une chaine de caracteres
+         au format pyth
+      """
+      try:
+         s="%s" % obj.valeur
+      except Exception as e :
+         self.cr.fatal(tr("Type de valeur non supporte par le format pyth : n %(exception)s", \
+                           {'nom': obj.nom, 'exception': str(e)}))
+
+
+         s="ERREUR"
+      return s
+
diff --git a/generator/oldCodes/generator_python6.py b/generator/oldCodes/generator_python6.py
new file mode 100644 (file)
index 0000000..ac9fcf9
--- /dev/null
@@ -0,0 +1,107 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2017   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+    Ce module contient le plugin generateur de fichier au format 
+    python pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+
+from Noyau import N_CR
+from Noyau.N_utils import repr_float
+from Accas import ETAPE,PROC_ETAPE,MACRO_ETAPE,ETAPE_NIVEAU,JDC,FORM_ETAPE
+from Accas import MCSIMP,MCFACT,MCBLOC,MCList,EVAL
+from Accas import GEOM,ASSD,MCNUPLET
+from Accas import COMMENTAIRE,PARAMETRE, PARAMETRE_EVAL,COMMANDE_COMM
+from Formatage import Formatage
+
+import generator_python
+
+def entryPoint():
+   """
+       Retourne les informations nécessaires pour le chargeur de plugins
+
+       Ces informations sont retournées dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 'python6',
+        # La factory pour créer une instance du plugin
+          'factory' : PythonGenerator,
+          }
+
+
+class PythonGenerator(generator_python.PythonGenerator):
+   """
+       Ce generateur parcourt un objet de type JDC et produit
+       un fichier au format python6
+
+       L'acquisition et le parcours sont réalisés par la méthode
+       generator.gener(objet_jdc,format)
+
+       L'écriture du fichier au format python6 par appel de la méthode
+       generator.writefile(nom_fichier)
+
+       Ses caractéristiques principales sont exposées dans des attributs 
+       de classe :
+         - extensions : qui donne une liste d'extensions de fichier préconisées
+
+   """
+   # Les extensions de fichier préconisées
+   extensions=('.comm',)
+
+   def generFORM_ETAPE(self,obj):
+        """
+            Méthode particulière pour les objets de type FORMULE
+        """
+        l=[]
+        nom = obj.get_nom()
+        if nom == '' : nom = 'sansnom'
+        l.append(nom + ' = FORMULE(')
+        for v in obj.mc_liste:
+            text=self.generator(v)
+            l.append(v.nom+'='+text)
+        l.append(');')
+        return l
+
+   def gen_formule(self,obj):
+      """
+           Méthode particuliere aux objets de type FORMULE
+      """
+      try:
+        if obj.sd == None:
+          sdname=''
+        else:
+          sdname= self.generator(obj.sd)
+      except:
+        sdname='sansnom'
+      l=[]
+      label=sdname + ' = FORMULE('
+      l.append(label)
+      for v in obj.mc_liste:
+        s=''
+        s= v.nom+':'+sdname+'('+v.valeur+')'
+        l.append(s)
+      if len(l) == 1:
+        l[0]=label+');'
+      else :
+        l.append(');')
+      return l