From 45496e147f519f4e64795eff3f414cc65b72c1fd Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Mon, 16 Feb 2015 09:32:59 +0100 Subject: [PATCH] Pour Traduction Carmel et Parametres --- CarmelCND/CarmelCND_Cata.py | 4 +- CarmelCND/prefs_CARMELCND.py | 2 +- Extensions/CreeTraductions/eficas.pro | 24 +- Extensions/localisation.py | 2 +- Extensions/translation.py | 1 - Ihm/I_MCSIMP.py | 4 + InterfaceQT4/browser.py | 11 +- InterfaceQT4/compoformule.py | 11 +- InterfaceQT4/compojdc.py | 2 +- InterfaceQT4/compooper.py | 9 +- InterfaceQT4/compoparam.py | 12 +- InterfaceQT4/editor.py | 18 +- InterfaceQT4/gereIcones.py | 9 + InterfaceQT4/groupe.py | 3 +- InterfaceQT4/monViewTexte.py | 4 +- InterfaceQT4/monWidgetCB.py | 2 + InterfaceQT4/monWidgetCommande.py | 10 +- InterfaceQT4/monWidgetCommentaire.py | 68 + InterfaceQT4/monWidgetParam.py | 120 + InterfaceQT4/monWidgetSimpTuple.py | 86 + InterfaceQT4/monWidgetSimpTuple2.py | 48 + InterfaceQT4/monWidgetSimpTuple3.py | 52 + InterfaceQT4/qtEficas.py | 10 +- InterfaceQT4/viewManager.py | 9 + MAP/configuration_MAP.py | 1 + Noyau/N_JDC.py | 20 +- Noyau/N_VALIDATOR.py | 68 +- Openturns_Study/OpenTURNS_Cata_Study_V8.py | 41 +- UiQT4/desWidgetCommentaire.ui | 2 +- UiQT4/desWidgetParam.ui | 310 ++ UiQT4/desWidgetTuple2.ui | 12 +- UiQT4/eficas_en.qm | Bin 98679 -> 56331 bytes UiQT4/eficas_en.ts | 3764 ++++++-------------- UiQT4/eficas_fr.qm | Bin 1574 -> 854 bytes UiQT4/eficas_fr.ts | 3314 +++++------------ UiQT4/makefile | 2 +- UiQT4/myMain.ui | 3 + Validation/V_ETAPE.py | 20 +- Validation/V_JDC.py | 12 +- Validation/V_MCSIMP.py | 21 +- 40 files changed, 3016 insertions(+), 5095 deletions(-) create mode 100644 InterfaceQT4/monWidgetCommentaire.py create mode 100644 InterfaceQT4/monWidgetParam.py create mode 100644 InterfaceQT4/monWidgetSimpTuple.py create mode 100644 InterfaceQT4/monWidgetSimpTuple2.py create mode 100644 InterfaceQT4/monWidgetSimpTuple3.py create mode 100644 UiQT4/desWidgetParam.ui diff --git a/CarmelCND/CarmelCND_Cata.py b/CarmelCND/CarmelCND_Cata.py index 38620451..0d5e2d69 100644 --- a/CarmelCND/CarmelCND_Cata.py +++ b/CarmelCND/CarmelCND_Cata.py @@ -43,8 +43,8 @@ JdC = JDC_CATA (code = 'monCode', SOURCE=OPER(nom='SOURCE',op=None,sd_prod=source,UIinfo = { "groupes" : ( "CACHE", ) }, EnveloppeConnexeInducteur=SIMP(statut='o',typ='TXM',defaut="default"), - VecteurDirecteur=SIMP(statut='o',typ=Tuple(3),defaut=(0,0,1),validators=VerifTypeTuple(('R','R','R'))), - Centre=SIMP(statut='o',typ=Tuple(2),validators=VerifTypeTuple(('R','R')),defaut=(1,2)), + VecteurDirecteur=SIMP(statut='i',typ=Tuple(3),defaut=(0,0,1),validators=VerifTypeTuple(('R','R','R'))), + Centre=SIMP(statut='o',typ=Tuple(3),validators=VerifTypeTuple(('R','R','R'))), SectionBobine=SIMP(statut='o',typ='R',fr='en m2',ang='en m2'), Amplitude=SIMP(statut='o',typ='R',fr='en A',ang='en A'), NbdeTours=SIMP(statut='o',typ='I',val_min=1), diff --git a/CarmelCND/prefs_CARMELCND.py b/CarmelCND/prefs_CARMELCND.py index 555d37b3..e2b95d2d 100644 --- a/CarmelCND/prefs_CARMELCND.py +++ b/CarmelCND/prefs_CARMELCND.py @@ -29,7 +29,7 @@ sys.path[:0]=[repIni] # lang indique la langue utilisee pour les chaines d'aide : fr ou ang -lang='fr' +lang='ang' # Codage des strings qui accepte les accents (en remplacement de 'ascii') encoding='iso-8859-1' diff --git a/Extensions/CreeTraductions/eficas.pro b/Extensions/CreeTraductions/eficas.pro index bd077461..cc89b79b 100644 --- a/Extensions/CreeTraductions/eficas.pro +++ b/Extensions/CreeTraductions/eficas.pro @@ -1,4 +1,5 @@ SOURCES = ../../convert/autre_parseur.py \ + pourValidation.py \ ../../convert/convert_asterv5.py \ ../../convert/convert_cuve2dg.py \ ../../convert/convert_file_from_template.py \ @@ -168,7 +169,26 @@ SOURCES = ../../convert/autre_parseur.py \ ../../Traducteur/visiteur.py \ ../../Validation/V_A_CLASSER.py \ ../../Noyau/N_VALIDATOR.py \ - ../../CarmelCND/PourTraductionCarmel.py + ../../Noyau/N_JDC.py \ + ../../CarmelCND/PourTraductionCarmel.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/aideQT.ui \ ../../UiQT4/desBaseWidget.ui \ @@ -196,6 +216,6 @@ FORMS= ../../UiQT4/aideQT.ui \ ../../UiQT4/desWidgetSimpTxt.ui \ ../../UiQT4/desWidgetTuple2.ui \ ../../UiQT4/desWidgetTuple3.ui \ - ../../UiQT4/myMain.ui \ + ../../UiQT4/myMain.ui TRANSLATIONS = ../../UiQT4/eficas_fr.ts ../../UiQT4/eficas_en.ts diff --git a/Extensions/localisation.py b/Extensions/localisation.py index e62f513b..8134d4d0 100644 --- a/Extensions/localisation.py +++ b/Extensions/localisation.py @@ -42,7 +42,7 @@ def localise(application, locale=None ): """ from PyQt4.QtCore import QLibraryInfo, QTextCodec - QTextCodec.setCodecForTr(QTextCodec.codecForName("utf-8")) + #QTextCodec.setCodecForTr(QTextCodec.codecForName("utf-8")) from PyQt4.QtCore import QLocale from PyQt4.QtGui import QApplication diff --git a/Extensions/translation.py b/Extensions/translation.py index 26189371..ba4940f4 100644 --- a/Extensions/translation.py +++ b/Extensions/translation.py @@ -286,7 +286,6 @@ def tr_qt(string, *args): else: raise EficasException("ValueError: i18n.translation.tr_qt: \ Improper formatted string parameter set") -# print r return unicode(r) diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index be6447f0..01fe42a3 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -229,6 +229,10 @@ class MCSIMP(I_OBJECT.OBJECT): def isoblig(self): return self.definition.statut=='o' + def isImmuable(self): + return self.definition.statut=='i' + + def valid_val(self,valeur): """ Verifie que la valeur passee en argument (valeur) est valide diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index fe5e0681..01d0fd3b 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -132,8 +132,13 @@ class JDCNode(QTreeWidgetItem): self.treeParent.childrenIssusDesBlocs=[] self.childrenComplete=[] - name = self.appliEficas.trUtf8( str( item.GetLabelText()[0] ) ) - value = self.appliEficas.trUtf8( str( item.GetText() ) ) + from InterfaceQT4 import compocomm + from InterfaceQT4 import compoparam + if (isinstance(self.item,compocomm.COMMTreeItem)) : name=tr("Commentaire") + elif (isinstance(self.item,compoparam.PARAMTreeItem)) : name=self.appliEficas.trUtf8(str(item.GetLabelText()[0])) + else: name = self.appliEficas.trUtf8(str(tr( item.nom))+" :") + value = self.appliEficas.trUtf8(str( item.GetText() ) ) + mesColonnes=QStringList() mesColonnes << name << value @@ -210,7 +215,7 @@ class JDCNode(QTreeWidgetItem): def affichePanneau(self) : - print "dans affichePanneau", self.item.GetLabelText() + #print "dans affichePanneau", self.item.GetLabelText() #if self.item.GetLabelText()[0]=='VCUT : ' : print y if self.item.isactif(): panel=self.getPanel2() diff --git a/InterfaceQT4/compoformule.py b/InterfaceQT4/compoformule.py index 253bfc77..511a1e94 100644 --- a/InterfaceQT4/compoformule.py +++ b/InterfaceQT4/compoformule.py @@ -84,12 +84,13 @@ class FORMULETreeItem(compooper.EtapeTreeItem): - la fonte dans laquelle afficher ce texte - la couleur du texte """ - if self.object.isactif(): + return self.labeltext,None,None + #if self.object.isactif(): # None --> fonte et couleur par défaut - return self.labeltext,None,None - else: - return self.labeltext,None,None - #return self.labeltext,fontes.standard_italique,None + # return tr(self.labeltext),None,None + #else: + # return tr(self.labeltext),None,None + #return self.labeltext,fontes.standard_italique,None # --------------------------------------------------------------------------- # Méthodes permettant la modification et la lecture des attributs diff --git a/InterfaceQT4/compojdc.py b/InterfaceQT4/compojdc.py index ed6e6bdc..b4ec2ec9 100644 --- a/InterfaceQT4/compojdc.py +++ b/InterfaceQT4/compojdc.py @@ -57,7 +57,7 @@ class JDCTreeItem(Objecttreeitem.ObjectTreeItem): def GetLabelText(self): # None --> fonte et couleur par defaut - return self.object.nom,None,None + return tr(self.object.nom),None,None def get_jdc(self): """ diff --git a/InterfaceQT4/compooper.py b/InterfaceQT4/compooper.py index 80f98593..a895160c 100644 --- a/InterfaceQT4/compooper.py +++ b/InterfaceQT4/compooper.py @@ -172,11 +172,12 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): - la fonte dans laquelle afficher ce texte - la couleur du texte """ - if self.object.isactif(): + return self.labeltext,None,None + #if self.object.isactif(): # None --> fonte et couleur par défaut - return self.labeltext,None,None - else: - return self.labeltext, None, None #CS_pbruno todo + # return self.labeltext,None,None + #else: + # return self.labeltext, None, None #CS_pbruno todo def get_objet(self,name) : for v in self.object.mc_liste: diff --git a/InterfaceQT4/compoparam.py b/InterfaceQT4/compoparam.py index 5d223599..346463b2 100644 --- a/InterfaceQT4/compoparam.py +++ b/InterfaceQT4/compoparam.py @@ -83,11 +83,11 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): - la fonte dans laquelle afficher ce texte - la couleur du texte """ - return 'PARAMETRE',None,None + return tr('PARAMETRE'),None,None def GetText(self): """ - Retourne le texte à afficher aprês le nom de la commande (ici apres 'paramêtre') + Retourne le texte à afficher aprês le nom de la commande (ici apres 'parametre') Ce texte est tronqué à 25 caractêres """ texte=self.object.nom+"="+str(self.object.valeur) @@ -110,7 +110,7 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): # --------------------------------------------------------------------------- # Méthodes permettant la modification et la lecture des attributs -# du paramêtre = API graphique du PARAMETRE pour Panel et EFICAS +# du parametre = API graphique du PARAMETRE pour Panel et EFICAS # --------------------------------------------------------------------------- def get_valeur(self): @@ -122,7 +122,7 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): def get_nom(self): """ - Retourne le nom du paramêtre + Retourne le nom du parametre """ return self.object.nom @@ -134,14 +134,14 @@ class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): def set_nom(self,new_nom): """ - Renomme le paramêtre + Renomme le parametre """ self.object.set_nom(new_nom) #self.object.set_attribut('nom',new_nom) def get_fr(self): """ - Retourne le fr associé au paramêtre, cad la bulle d'aide pour EFICAS + Retourne le fr associé au parametre, cad la bulle d'aide pour EFICAS """ return tr("Definition d'un parametre") diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index dc96afa1..0835f14b 100644 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -36,6 +36,7 @@ from Editeur import comploader from Editeur import Objecttreeitem from desBaseWidget import Ui_baseWidget from monViewTexte import ViewText +from monWidgetParam import MonWidgetParam import browser import readercata @@ -162,7 +163,6 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): if self.jdc: self.jdc.appli = self self.jdc.lang = self.appli.langue - print self.jdc.lang txt_exception = None if not jdc: self.jdc.analyse() @@ -323,12 +323,10 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): QMessageBox.critical( self, tr("Type de fichier non reconnu"),tr("EFICAS ne sait pas ouvrir ce type de fichier")) return None - #----------------------------------------------# - def _viewText(self, txt, caption = "FILE_VIEWER"): - #----------------------------------------------# - w = ViewText( self.QWParent ) - w.setWindowTitle( caption ) - w.setText(txt) + #-----------------------------------------------------------------------# + def _viewText(self, txt, caption = "FILE_VIEWER",largeur=1200,hauteur=600): + #--------------------------------------------------------------------# + w = ViewText( self.QWParent,self ,caption,txt,largeur,hauteur) w.show() # @@ -376,6 +374,12 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): + #-----------------------# + def gestionParam(self): + #-----------------------# + w = MonWidgetParam( self) + w.show() + #-----------------------# def viewJdcSource(self): #-----------------------# diff --git a/InterfaceQT4/gereIcones.py b/InterfaceQT4/gereIcones.py index cc8e84df..05378eb3 100644 --- a/InterfaceQT4/gereIcones.py +++ b/InterfaceQT4/gereIcones.py @@ -79,6 +79,15 @@ class FacultatifOuOptionnel: self.RBPoubelle.show() self.connect(self.RBPoubelle,SIGNAL("clicked()"),self.aDetruire) + def setRun(self): + if hasattr(self.editor.appliEficas, 'mesScripts'): + if self.tree.currentItem().item.get_nom() in self.appliEficas.mesScripts.dict_commandes.keys() : + print 'il faut programmer le self.ajoutScript()' + print '#PNPNPNPN' + return + if hasattr(self,"RBRun"): self.RBRun.close() + + def aDetruire(self): self.node.delete() diff --git a/InterfaceQT4/groupe.py b/InterfaceQT4/groupe.py index ede82a5e..13de52b5 100644 --- a/InterfaceQT4/groupe.py +++ b/InterfaceQT4/groupe.py @@ -50,6 +50,7 @@ class Groupe(QtGui.QWidget,FacultatifOuOptionnel): self.repIcon=self.appliEficas.repIcon self.jdc=self.node.item.get_jdc() self.setPoubelle() + self.setRun() self.setValide() self.setReglesEtAide() self.afficheMots() @@ -127,7 +128,7 @@ class Groupe(QtGui.QWidget,FacultatifOuOptionnel): def reaffiche(self,nodeAVoir=None): - print "dans reaffiche ________________________", nodeAVoir + #print "dans reaffiche ________________________", nodeAVoir self.parentQt.reaffiche(nodeAVoir) def recalculeListeMC(self,listeMC): diff --git a/InterfaceQT4/monViewTexte.py b/InterfaceQT4/monViewTexte.py index 564a9660..e4c8e770 100644 --- a/InterfaceQT4/monViewTexte.py +++ b/InterfaceQT4/monViewTexte.py @@ -32,12 +32,12 @@ class ViewText(Ui_dView,QDialog): """ Classe permettant la visualisation de texte """ - def __init__(self,parent,editor=None,entete=None,texte=None): + def __init__(self,parent,editor=None,entete=None,texte=None,largeur=600,hauteur=600): QDialog.__init__(self,parent) self.editor=editor self.setupUi(self) - self.resize( QSize(600,600).expandedTo(self.minimumSizeHint()) ) + self.resize( QSize(largeur,hauteur).expandedTo(self.minimumSizeHint()) ) self.connect( self.bclose,SIGNAL("clicked()"), self, SLOT("close()") ) self.connect( self.bsave,SIGNAL("clicked()"), self.saveFile ) if entete != None : self.setWindowTitle (entete) diff --git a/InterfaceQT4/monWidgetCB.py b/InterfaceQT4/monWidgetCB.py index 6fc70aef..02d87dd4 100644 --- a/InterfaceQT4/monWidgetCB.py +++ b/InterfaceQT4/monWidgetCB.py @@ -41,6 +41,8 @@ class MonWidgetCB (Ui_WidgetCB,Feuille): self.connect(self.CBChoix,SIGNAL("currentIndexChanged(int)"),self.ChoixSaisi) self.parentQt.commandesLayout.insertWidget(-1,self) self.maCommande.listeAffichageWidget.append(self.CBChoix) + print self.objSimp.isoblig() + def setValeursApresBouton(self): if self.objSimp.get_valeur()==None : diff --git a/InterfaceQT4/monWidgetCommande.py b/InterfaceQT4/monWidgetCommande.py index 79c3b809..6b8bd691 100644 --- a/InterfaceQT4/monWidgetCommande.py +++ b/InterfaceQT4/monWidgetCommande.py @@ -60,7 +60,9 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.setAcceptDrops(True) self.etablitOrdre() - if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel + if self.editor.code == "CARMELCND" : + self.RBPoubelle.close() # JDC Fige + return # Pas de MC Optionnels pour Carmel from monWidgetOptionnel import MonWidgetOptionnel if hasattr(self.editor,'widgetOptionnel') : self.monOptionnel=self.editor.widgetOptionnel @@ -72,8 +74,8 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): def focusNextPrevChild(self, next): - print "je passe dans focusNextPrevChild" - print self.focusWidget().objectName() + # on s assure que ce n est pas un chgt de fenetre + if self.editor.fenetreAffichee != self : return True try : i= self.listeAffichageWidget.index(self.focusWidget()) except : @@ -98,8 +100,6 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): def etablitOrdre(self): i=0 - for l in self.listeAffichageWidget: - print l.objectName() while(i +1 < len(self.listeAffichageWidget)): self.setTabOrder(self.listeAffichageWidget[i],self.listeAffichageWidget[i+1]) i=i+1 diff --git a/InterfaceQT4/monWidgetCommentaire.py b/InterfaceQT4/monWidgetCommentaire.py new file mode 100644 index 00000000..8c21478c --- /dev/null +++ b/InterfaceQT4/monWidgetCommentaire.py @@ -0,0 +1,68 @@ +# 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 +# +# Modules Python +# Modules Eficas + +from desWidgetCommentaire import Ui_WidgetCommentaire +from gereIcones import FacultatifOuOptionnel +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr +import Accas +import os +import string + + +# Import des panels + +class MonWidgetCommentaire(QWidget,Ui_WidgetCommentaire,FacultatifOuOptionnel): + """ + """ + def __init__(self,node,editor,commentaire): + QWidget.__init__(self,None) + self.node=node + self.node.fenetre=self + self.setupUi(self) + self.editor=editor + self.setPoubelle() + self.remplitTexte() + if self.editor.code in ['MAP','Adao','CARMELCND'] : self.bCatalogue.close() + else : self.connect(self.bCatalogue,SIGNAL("clicked()"), self.afficheCatalogue) + self.connect(self.commentaireLE,SIGNAL("returnPressed()"),self.TexteCommentaireEntre) + + def afficheCatalogue(self): + if self.editor.code != "CARMELCND" : self.monOptionnel.hide() + self.node.tree.racine.affichePanneau() + if self.node : self.node.select() + else : self.node.tree.racine.select() + + def remplitTexte(self): + texte=self.node.item.get_valeur() + self.commentaireLE.setText(texte) + if self.editor.code == "CARMELCND" and texte[0:16]=="Cree - fichier :" : + self.commentaireLE.setDisabled(True) + self.commentaireLE.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n")) + self.commentaireLE.setToolTip(tr("Valeur non modifiable")) + + + def TexteCommentaireEntre(self): + texte=str(self.commentaireLE.text()) + self.editor.init_modif() + self.node.item.set_valeur(texte) + diff --git a/InterfaceQT4/monWidgetParam.py b/InterfaceQT4/monWidgetParam.py new file mode 100644 index 00000000..da899ba1 --- /dev/null +++ b/InterfaceQT4/monWidgetParam.py @@ -0,0 +1,120 @@ +# -*- 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 +# +# Modules Python +import string,types,os,re + +# Modules Eficas + +from PyQt4 import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr +from desWidgetParam import Ui_desWidgetParam + + +class MonWidgetParam(Ui_desWidgetParam,QDialog): + """ + """ + def __init__(self,editor, name = None,fl = 0): + self.editor=editor + QDialog.__init__(self,editor) + self.setupUi(self) + self.connecterSignaux() + self.dejaExistant=0 + self.listeTousParam=self.editor.jdc.params + self.dictListe={} + self.initToutesVal() + + def connecterSignaux(self) : + self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.lineEditValReturnPressed) + self.connect(self.lineEditNom,SIGNAL("returnPressed()"),self.lineEditNomReturnPressed) + + + def CreeParametre(self): + nom=str(self.lineEditNom.text()) + val=str(self.lineEditVal.text()) + if val == "" or None : return + if nom == "" or None : return + print self.editor.tree + if len(self.editor.tree.selectedItems()) == 0 : itemAvant=self.editor.tree.racine + else : itemAvant=self.editor.tree.selectedItems()[0] + param=itemAvant.addParameters(True) + param.item.set_nom(nom) + param.item.set_valeur(val) + param.update_node_texte() + + + def lineEditValReturnPressed(self): + qtVal=self.lineEditVal.text() + valString=str(self.lineEditVal.text()) + contexte={} + exec "from math import *" in contexte + jdc=self.editor.jdc + if jdc == None : + self.editor.affiche_infos(tr("La Creation de parametre n est possible que dans un jeu de données"),Qt.red) + return + + for p in jdc.params : + try: + tp=p.nom+'='+str(p.val) + exec tp in contexte + except : + pass + monTexte="monParam="+valString + try : + exec monTexte in contexte + except : + self.editor.affiche_infos(tr("Valeur incorrecte"),Qt.red) + if self.lineEditNom.text()!="" and self.dejaExistant==False : self.CreeParametre() + + + def lineEditNomReturnPressed(self): + qtNom=self.lineEditNom.text() + nom=str(qtNom) + numDebutPattern=re.compile('[a-zA-Z"_"]') + if not (numDebutPattern.match(nom)) : + commentaire=tr("Les noms de parametre doivent commencer par une lettre ou un souligne") + self.lineEditNom.setText("") + self.editor.affiche_infos(commentaire,Qt.red) + if self.lineEditVal.text()!="" : self.CreeParametre() + self.lineEditVal.setFocus(Qt.OtherFocusReason) + + + def initToutesVal(self): + self.LBParam.clear() + for param in self.listeTousParam : + self.LBParam.addItem(QString(repr(param))) + self.dictListe[QString(repr(param))] = param + + def valideParam(self): + if self.LBParam.selectedItems()== None : return + lParam=[] + for indice in range(len(self.LBParam.selectedItems())): + i=self.LBParam.selectedItems()[indice].text() + param=self.dictListe[i] + lParam.append(param) + + try : + self.panel.AjoutNValeur(lParam) + except : + for p in lParam : + self.panel.Ajout1Valeur(p) + self.close() + diff --git a/InterfaceQT4/monWidgetSimpTuple.py b/InterfaceQT4/monWidgetSimpTuple.py new file mode 100644 index 00000000..e77c084f --- /dev/null +++ b/InterfaceQT4/monWidgetSimpTuple.py @@ -0,0 +1,86 @@ +# -*- 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 +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from politiquesValidation import PolitiqueUnique +from qtSaisie import SaisieValeur + + +class MonWidgetSimpTuple(Feuille): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + self.politique=PolitiqueUnique(self.node,self.editor) + self.parentQt.commandesLayout.insertWidget(-1,self) + self.setFocusPolicy(Qt.StrongFocus) + + def setValeurs(self): + valeur=self.node.item.get_valeur() + for i in range(self.nbValeurs) : + nomLineEdit="lineEditVal"+str(i+1) + courant=getattr(self,nomLineEdit) + if valeur !=None: courant.setText(str(valeur[i])) + setattr(self,nomLineEdit,courant) + self.connect(courant,SIGNAL("returnPressed()"),self.valeursPressed) + + def valeursPressed(self): + aLeFocus=self.focusWidget() + self.editor.affiche_infos("") + texteValeur="" + for i in range(self.nbValeurs) : + nomLineEdit="lineEditVal"+str(i+1) + courant=getattr(self,nomLineEdit) + if courant.text()=="" or courant.text()==None : + courant.setFocus(True) + return + s=str(courant.text()) + if self.objSimp.definition.validators.typeDesTuples[i] == "R" : + if (s.find('.')== -1 and s.find('e')== -1 and s.find('E')==-1) : + s=s+'.0' + courant.setText(s) + if self.objSimp.definition.validators.typeDesTuples[i] == "TXM" : + if s[0]!='"' and s[0] != "'": + if s[-1]=="'": s="'"+s + else : s='"'+s + if s[-1]!='"' and s[-1] != "'": + if s[0]=="'": s=s+"'" + else : s=s+'"' + courant.setText(s) + texteValeur+=str(courant.text()) + if i+1 != self.nbValeurs : texteValeur+=',' + validite,commentaire=self.politique.RecordValeur(texteValeur) + if not validite:self.editor.affiche_infos(commentaire+" "+str(self.objSimp.definition.validators.typeDesTuples),Qt.red) + + # Passage au champ suivant + nom=aLeFocus.objectName()[11:] + i=nom.toInt()[0]+1 + if i == self.nbValeurs +1 : i=1 + nomLineEdit="lineEditVal"+str(i) + courant=getattr(self,nomLineEdit) + courant.setFocus(True) + + diff --git a/InterfaceQT4/monWidgetSimpTuple2.py b/InterfaceQT4/monWidgetSimpTuple2.py new file mode 100644 index 00000000..ec5c421d --- /dev/null +++ b/InterfaceQT4/monWidgetSimpTuple2.py @@ -0,0 +1,48 @@ +# -*- 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 +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from monWidgetSimpTuple import MonWidgetSimpTuple +from desWidgetTuple2 import Ui_WidgetTuple2 + + +class MonWidgetSimpTuple2 (Ui_WidgetTuple2,MonWidgetSimpTuple): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + self.nbValeurs=2 + MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + #self.maCommande.listeAffichageWidget.append(self.lineEditVal2) + if self.objSimp.isImmuable() : + self.lineEditVal1.setDisabled(True) + self.lineEditVal2.setDisabled(True) + self.lineEditVal1.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n")) + self.lineEditVal2.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n")) + self.lineEditVal1.setToolTip(tr("Valeur non modifiable")) + self.lineEditVal2.setToolTip(tr("Valeur non modifiable")) + else : + self.maCommande.listeAffichageWidget.append(self.lineEditVal1) + diff --git a/InterfaceQT4/monWidgetSimpTuple3.py b/InterfaceQT4/monWidgetSimpTuple3.py new file mode 100644 index 00000000..65156411 --- /dev/null +++ b/InterfaceQT4/monWidgetSimpTuple3.py @@ -0,0 +1,52 @@ +# -*- 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 +# +# Modules Python +import string,types,os + +# Modules Eficas +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Extensions.i18n import tr + +from feuille import Feuille +from monWidgetSimpTuple import MonWidgetSimpTuple +from desWidgetTuple3 import Ui_WidgetTuple3 + + +class MonWidgetSimpTuple3 (Ui_WidgetTuple3,MonWidgetSimpTuple): + + def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + self.nbValeurs=3 + MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + if self.objSimp.isImmuable() : + self.lineEditVal1.setDisabled(True) + self.lineEditVal2.setDisabled(True) + self.lineEditVal3.setDisabled(True) + self.lineEditVal1.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n")) + self.lineEditVal2.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n")) + self.lineEditVal3.setStyleSheet(QString.fromUtf8("background:rgb(244,244,244);\n" "border:0px;\n")) + self.lineEditVal1.setToolTip(tr("Valeur non modifiable")) + self.lineEditVal2.setToolTip(tr("Valeur non modifiable")) + self.lineEditVal3.setToolTip(tr("Valeur non modifiable")) + else : + self.maCommande.listeAffichageWidget.append(self.lineEditVal1) + #self.maCommande.listeAffichageWidget.append(self.lineEditVal2) + #self.maCommande.listeAffichageWidget.append(self.lineEditVal3) + diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index 5f86da3f..be6faaa0 100644 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -91,12 +91,6 @@ class Appli(Ui_Eficas,QMainWindow): self.ouvreFichiers() - #def eventFilter(QObject watched, QEvent e) : - #def eventFilter(watched, e) : - # print "hhhhhhhhhhhhhhhhhhhhhh" - # return QMainWindow.eventFilter(watched, e) - - def definitCode(self,code,ssCode) : self.code=code @@ -306,6 +300,7 @@ class Appli(Ui_Eficas,QMainWindow): self.connect(self.actionEficas,SIGNAL("activated()"),self.aidePPal) self.connect(self.actionVersion,SIGNAL("activated()"),self.version) + self.connect(self.actionParametres,SIGNAL("activated()"),self.gestionParam) self.connect(self.actionCouper,SIGNAL("activated()"),self.editCut) self.connect(self.actionCopier,SIGNAL("activated()"),self.editCopy) @@ -611,6 +606,9 @@ class Appli(Ui_Eficas,QMainWindow): def jdcRapport(self): self.viewmanager.handleViewJdcRapport() + def gestionParam(self): + self.viewmanager.handlegestionParam() + def visuJdcPy(self): self.viewmanager.handleViewJdcPy() diff --git a/InterfaceQT4/viewManager.py b/InterfaceQT4/viewManager.py index 7edd5b1c..74b474bb 100644 --- a/InterfaceQT4/viewManager.py +++ b/InterfaceQT4/viewManager.py @@ -37,6 +37,7 @@ class MyTabview: self.doubles = {} self.myQtab = self.appliEficas.myQtab + self.myQtab.connect(self.myQtab, SIGNAL('tabCloseRequested(int)'), self.closeTab) if self.appliEficas.multi== True: self.myQtab.connect(self.myQtab,SIGNAL("currentChanged(int)"),self.indexChanged) @@ -77,6 +78,9 @@ class MyTabview: if maPage : self.myQtab.setTabText(self.myQtab.indexOf(maPage),os.path.basename(fichier)) return result + def closeTab(self): + self.handleClose() + def handleClose(self,doitSauverRecent = 1,texte=tr('&Quitter')): if doitSauverRecent : self.appliEficas.sauveRecents() index=self.myQtab.currentIndex() @@ -172,6 +176,11 @@ class MyTabview: if index < 0 : return self.dict_editors[index].viewJdcSource() + def handlegestionParam(self): + index=self.myQtab.currentIndex() + if index < 0 : return + self.dict_editors[index].gestionParam() + def handleViewJdcRapport(self): index=self.myQtab.currentIndex() if index < 0 : return diff --git a/MAP/configuration_MAP.py b/MAP/configuration_MAP.py index 47d1068b..78613652 100644 --- a/MAP/configuration_MAP.py +++ b/MAP/configuration_MAP.py @@ -35,6 +35,7 @@ class CONFIG(configuration.CONFIG_BASE): #----------------------------------- self.ssCode=appli.ssCode self.INSTALLDIR =os.path.dirname(__file__) + self.adresse="ftp://ftp.pleiade.edf.fr/projets/MAP/OnlineDoc/MAP2014.1/components" self.labels_user=['exec_acrobat','savedir','path_doc'] self.labels_eficas=['exec_acrobat','savedir','path_doc','catalogues'] diff --git a/Noyau/N_JDC.py b/Noyau/N_JDC.py index 5088de7d..53452ca2 100644 --- a/Noyau/N_JDC.py +++ b/Noyau/N_JDC.py @@ -37,7 +37,11 @@ from N_Exception import AsException, InterruptParsingError from N_ASSD import ASSD from N_info import message, SUPERV from strfunc import get_encoding - +try : + from Extensions.i18n import tr +except : + def tr(txt): + return txt MemoryErrorMsg = """MemoryError : @@ -374,10 +378,10 @@ Causes possibles : """ o = self.sds_dict.get(sdnom, None) if isinstance(o, ASSD): - raise AsException("Nom de concept deja defini : %s" % sdnom) + raise AsException(tr("Nom de concept deja defini : %s" % sdnom)) if sdnom in self._reserved_kw: raise AsException( - "Nom de concept invalide. '%s' est un mot-clé réservé." % sdnom) + tr( "Nom de concept invalide. '%s' est un mot-clé réservé." % sdnom)) # Ajoute a la creation (appel de reg_sd). self.sds_dict[sdnom] = sd @@ -441,10 +445,10 @@ Causes possibles : if os.path.exists("fort." + str(unite)): fname = "fort." + str(unite) if fname == None: - raise AsException("Impossible de trouver le fichier correspondant" - " a l unite %s" % unite) + raise AsException(tr("Impossible de trouver le fichier correspondant" + " a l unite %s" % unite)) if not os.path.exists(fname): - raise AsException("%s n'est pas un fichier existant" % fname) + raise AsException (tr("%s n'est pas un fichier existant" % fname)) fproc = open(fname, 'r') text = fproc.read() fproc.close() @@ -538,8 +542,8 @@ Causes possibles : except KeyError: from warnings import warn warn( - "concept '%s' absent du contexte de %s" % ( - nom, self.nom), + tr("concept '%s' absent du contexte de %s" % ( + nom, self.nom)), RuntimeWarning, stacklevel=2) return d if etape: diff --git a/Noyau/N_VALIDATOR.py b/Noyau/N_VALIDATOR.py index 326d90cf..caa8e99f 100644 --- a/Noyau/N_VALIDATOR.py +++ b/Noyau/N_VALIDATOR.py @@ -28,6 +28,12 @@ from N_ASSD import ASSD from N_types import is_int, is_float_or_int, is_complex, is_number, is_str, is_sequence from strfunc import convert, ufmt +try : + from Extensions.i18n import tr +except : + def tr(txt): + return txt + class ValError(Exception): pass @@ -156,21 +162,21 @@ class TypeProtocol(PProtocol): return obj else: raise ValError( - ufmt(_(u"%s n'est pas un fichier valide"), repr(obj))) + ufmt(_tr((u"%s n'est pas un fichier valide")), repr(obj))) elif type_permis == 'FichierNoAbs': import os if (len(typ) > 2 and typ[2] == "Sauvegarde") or isinstance(obj, type("")): return obj else: raise ValError( - ufmt(_(u"%s n'est pas un fichier valide"), repr(obj))) + ufmt(_(tr(u"%s n'est pas un fichier valide")), repr(obj))) elif type_permis == 'Repertoire': import os if os.path.isdir(obj): return obj else: raise ValError( - ufmt(_(u"%s n'est pas un répertoire valide"), repr(obj))) + ufmt(_(tr(u"%s n'est pas un répertoire valide")), repr(obj))) elif type(type_permis) == types.ClassType or isinstance(type_permis, type): try: if self.is_object_from(obj, type_permis): @@ -246,7 +252,7 @@ class CardProtocol(PProtocol): if length < min or length > max: raise ValError( ufmt( - _(u"Nombre d'arguments de %s incorrect (min = %s, max = %s)"), + _(tr(u"Nombre d'arguments de %s incorrect (min = %s, max = %s)")), repr(obj), min, max)) return obj @@ -268,7 +274,7 @@ class IntoProtocol(PProtocol): if obj not in into: raise ValError( ufmt( - _(u"La valeur : %s ne fait pas partie des choix possibles %s"), + _tr((u"La valeur : %s ne fait pas partie des choix possibles %s")), repr(obj), into)) else: # on est dans le cas d'un ensemble continu de valeurs possibles @@ -281,7 +287,7 @@ class IntoProtocol(PProtocol): if obj < val_min or obj > val_max: raise ValError( ufmt( - _(u"La valeur : %s est en dehors du domaine de validité [ %s , %s ]"), + _(tr(u"La valeur : %s est en dehors du domaine de validité [ %s , %s ]")), repr(obj), self.val_min, self.val_max)) return obj @@ -300,7 +306,7 @@ class MinStr: return valeur raise ValError( ufmt( - _(u"%s n'est pas une chaine de longueur comprise entre %s et %s"), + _tr((u"%s n'est pas une chaine de longueur comprise entre %s et %s")), valeur, self.min, self.max)) def __repr__(self): @@ -539,7 +545,7 @@ class Compulsory(ListVal): elem.remove(v) if elem: raise ValError( - ufmt(_(u"%s ne contient pas les elements obligatoires : %s "), + ufmt(_tr((u"%s ne contient pas les elements obligatoires : %s ")), valeur, elem)) return valeur @@ -572,14 +578,14 @@ class NoRepeat(ListVal): self.cata_info = "" def info(self): - return _(u": pas de présence de doublon dans la liste") + return _(tr(u": pas de présence de doublon dans la liste")) def info_erreur_liste(self): - return _(u"Les doublons ne sont pas permis") + return _(tr(u"Les doublons ne sont pas permis")) def default(self, valeur): if valeur in self.liste: - raise ValError(ufmt(_(u"%s est un doublon"), valeur)) + raise ValError(ufmt(_tr((u"%s est un doublon")), valeur)) return valeur def convert(self, valeur): @@ -654,13 +660,13 @@ class LongStr(ListVal): def default(self, valeur, low, high): if not is_str(valeur): - raise ValError(ufmt(_(u"%s n'est pas une chaine"), repr(valeur))) + raise ValError(ufmt(_tr((u"%s n'est pas une chaine")), repr(valeur))) if valeur[0] == "'" and valeur[-1] == "'": low = low + 2 high = high + 2 if len(valeur) < low or len(valeur) > high: raise ValError( - ufmt(_(u"%s n'est pas de la bonne longueur"), repr(valeur))) + ufmt(_(tr(u"%s n'est pas de la bonne longueur")), repr(valeur))) return valeur @@ -695,7 +701,7 @@ class OnlyStr(ListVal): def default(self, valeur): if not is_str(valeur): - raise ValError(ufmt(_(u"%s n'est pas une chaine"), repr(valeur))) + raise ValError(ufmt(_tr((u"%s n'est pas une chaine")), repr(valeur))) return valeur @@ -728,11 +734,11 @@ class OrdList(ListVal): if self.ord == 'croissant': if self.val is not None and valeur < self.val: raise ValError( - ufmt(_(u"%s n'est pas par valeurs croissantes"), repr(self.liste))) + ufmt(_tr((u"%s n'est pas par valeurs croissantes")), repr(self.liste))) elif self.ord == 'decroissant': if self.val is not None and valeur > self.val: raise ValError( - ufmt(_(u"%s n'est pas par valeurs decroissantes"), repr(self.liste))) + ufmt(_tr((u"%s n'est pas par valeurs decroissantes")), repr(self.liste))) self.val = valeur return valeur @@ -790,7 +796,7 @@ class OrVal(Valid): return validator.convert(valeur) except: pass - raise ValError(ufmt(_(u"%s n'est pas du bon type"), repr(valeur))) + raise ValError(ufmt(_tr((u"%s n'est pas du bon type")), repr(valeur))) def info_erreur_item(self): l = [] @@ -1079,22 +1085,22 @@ class RangeVal(ListVal): def __init__(self, low, high): self.low = low self.high = high - self.cata_info = ufmt(_(u"%s doit être inférieur a %s"), low, high) + self.cata_info = ufmt(_(tr(u"%s doit être inférieur a %s")), low, high) def info(self): - return ufmt(_(u"valeur dans l'intervalle %s , %s"), self.low, self.high) + return ufmt(_(tr(u"valeur dans l'intervalle %s , %s")), self.low, self.high) def convert_item(self, valeur): if valeur > self.low and valeur < self.high: return valeur - raise ValError(ufmt(_(u"%s devrait être comprise entre %s et %s"), + raise ValError(ufmt(_(tr(u"%s devrait être comprise entre %s et %s")), valeur, self.low, self.high)) def verif_item(self, valeur): return valeur > self.low and valeur < self.high def info_erreur_item(self): - return ufmt(_(u"La valeur doit etre comprise entre %s et %s"), self.low, self.high) + return ufmt(_(tr(u"La valeur doit etre comprise entre %s et %s")), self.low, self.high) def verif_cata(self): if self.low > self.high: @@ -1115,14 +1121,14 @@ class CardVal(Valid): def __init__(self, min='**', max='**'): self.min = min self.max = max - self.cata_info = ufmt(_(u"%s doit etre inferieur a %s"), min, max) + self.cata_info = ufmt(_(tr(u"%s doit etre inferieur a %s")), min, max) def info(self): - return ufmt(_(u"longueur de liste comprise entre %s et %s"), self.min, self.max) + return ufmt(_(tr(u"longueur de liste comprise entre %s et %s")), self.min, self.max) def info_erreur_liste(self): return ufmt( - _(u"Le cardinal de la liste doit etre compris entre %s et %s"), + _(tr(u"Le cardinal de la liste doit etre compris entre %s et %s")), self.min, self.max) def is_list(self): @@ -1149,10 +1155,10 @@ class CardVal(Valid): l = 1 if self.max != '**' and l > self.max: raise ValError( - ufmt(_(u"%s devrait etre de longueur inferieure a %s"), valeur, self.max)) + ufmt(_(tr(u"%s devrait etre de longueur inferieure a %s")), valeur, self.max)) if self.min != '**' and l < self.min: raise ValError( - ufmt(_(u"%s devrait etre de longueur superieure a %s"), valeur, self.min)) + ufmt(_(tr(u"%s devrait etre de longueur superieure a %s")), valeur, self.min)) return valeur def verif_item(self, valeur): @@ -1202,14 +1208,14 @@ class PairVal(ListVal): return _(u"valeur paire") def info_erreur_item(self): - return _(u"La valeur saisie doit etre paire") + return _(tr(u"La valeur saisie doit etre paire")) def convert(self, valeur): for val in valeur: v = self.adapt(val) if v % 2 != 0: raise ValError( - ufmt(_(u"%s contient des valeurs non paires"), repr(valeur))) + ufmt(_(tr(u"%s contient des valeurs non paires")), repr(valeur))) return valeur def default(self, valeur): @@ -1253,7 +1259,7 @@ class EnumVal(ListVal): if valeur in self.into: return valeur raise ValError( - ufmt(_(u"%s contient des valeurs hors des choix possibles: %s "), + ufmt(_(tr(u"%s contient des valeurs hors des choix possibles: %s ")), valeur, self.into)) def verif_item(self, valeur): @@ -1275,7 +1281,7 @@ class EnumVal(ListVal): return liste_choix def info_erreur_item(self): - return _(u"La valeur n'est pas dans la liste des choix possibles") + return _(tr(u"La valeur n'est pas dans la liste des choix possibles")) def ImpairVal(valeur): @@ -1294,7 +1300,7 @@ def ImpairVal(valeur): return 0 return 1 -ImpairVal.info = "valeur impaire" +ImpairVal.info = tr("valeur impaire") class F1Val(Valid): diff --git a/Openturns_Study/OpenTURNS_Cata_Study_V8.py b/Openturns_Study/OpenTURNS_Cata_Study_V8.py index 5681d6d0..49544781 100644 --- a/Openturns_Study/OpenTURNS_Cata_Study_V8.py +++ b/Openturns_Study/OpenTURNS_Cata_Study_V8.py @@ -151,19 +151,22 @@ SIMULATION = PROC ( nom = "SIMULATION", # Nota : les variables de type OPER doivent etre en majuscules ! # Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type) -DISTRIBUTION = OPER ( nom = "DISTRIBUTION", - sd_prod = loi, +VARIABLE2=OPER( nom= "VARIABLE2", + +#DISTRIBUTION = OPER ( nom = "DISTRIBUTION", + sd_prod = variable, op = 68, fr = "Definitions des lois marginales utilisees par les variables d'entree", +NOM=SIMP(statut = "o", typ = "TXM",), +DISTRIBUTION= FACT(statut = "o", #==== # Type de distribution #==== Kind = SIMP ( statut = "o", typ = "TXM", into = ( "Beta", - "Pascale", "Exponential", "Gamma", "Geometric", @@ -429,7 +432,7 @@ DISTRIBUTION = OPER ( nom = "DISTRIBUTION", # Il faut definir une collection de couples ( x,p ) Values = SIMP ( statut = 'o', typ = Tuple(2), - max = '**', + #max = '**', fr = "Liste de couples : largeur de classe, hauteur de classe", ang = "Class bandwidth, class height couple list", validators=VerifTypeTuple(('R','R')), @@ -458,35 +461,6 @@ DISTRIBUTION = OPER ( nom = "DISTRIBUTION", ), # Fin BLOC LAPLACE - BLOC1 = BLOC ( condition = " Kind in ( 'Pascale', ) ", - Settings = SIMP ( statut = "o", - typ = "TXM", - max = 1, - into = ( "Cas1", "Cas2", "Cas3" ), - defaut = "Cas1", - fr = "Parametrage de la loi lognormale", - ang = "Lognormal distribution parameter set", - ), - BLOC2_1 = BLOC ( condition = " Settings in ( 'Cas1', ) ", - - Mu = SIMP ( statut = "o", - typ = "R", - max = 1, - fr = "Moyenne de la loi", - ang = "Mean value", - ), - - ), - BLOC2_2 = BLOC ( condition = " Settings in ( 'Cas2', ) ", - - Sigma = SIMP ( statut = "o", - typ = "R", - max = 1, - val_min = 0., - fr = "Ecart type de la loi", - ), - ), - ), LOGNORMAL = BLOC ( condition = " Kind in ( 'LogNormal', ) ", Settings = SIMP ( statut = "o", @@ -869,6 +843,7 @@ DISTRIBUTION = OPER ( nom = "DISTRIBUTION", ), # Fin BLOC WEIBULL +), # Fin OPER DISTRIBUTION ) # Fin OPER DISTRIBUTION # Ordre Catalogue DISTRIBUTION diff --git a/UiQT4/desWidgetCommentaire.ui b/UiQT4/desWidgetCommentaire.ui index 1a514061..16f7fa4c 100644 --- a/UiQT4/desWidgetCommentaire.ui +++ b/UiQT4/desWidgetCommentaire.ui @@ -173,7 +173,7 @@ font : 'times' 9px - Détruit la commande + Détruit le commentaire border : 0px diff --git a/UiQT4/desWidgetParam.ui b/UiQT4/desWidgetParam.ui new file mode 100644 index 00000000..84c7f93f --- /dev/null +++ b/UiQT4/desWidgetParam.ui @@ -0,0 +1,310 @@ + + + desWidgetParam + + + + 0 + 0 + 728 + 530 + + + + Gestion des Paramètres + + + + + + + 701 + 291 + + + + QFrame::NoFrame + + + true + + + + + 0 + 0 + 710 + 291 + + + + + 0 + 0 + + + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 701 + 291 + + + + alternate-background-color:rgb(235,235,235); +background-color: rgb(247,247,247); + + + + QFrame::NoFrame + + + QFrame::Raised + + + true + + + QAbstractItemView::SingleSelection + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Tous les paramètres + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0 + + + + + Paramètre du type de + + + false + + + + + + + mon mot + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 36 + + + + + + + + + 701 + 131 + + + + background:rgb(247,247,247) + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 30 + 40 + 531 + 70 + + + + + + + + 231 + 31 + + + + background:rgb(235,235,235); +border:0px; + + + false + + + + + + + <html><head/><body><p>Nom: </p></body></html> + + + false + + + + + + + + 231 + 31 + + + + background:rgb(235,235,235); +border:0px; + + + false + + + + + + + <html><head/><body><p>Valeur: </p></body></html> + + + false + + + + + + + + + 30 + 10 + 531 + 22 + + + + + + + + 0 + 0 + + + + <html><head/><body><p><span style=" text-decoration: underline;">Créer un paramètre</span></p></body></html> + + + false + + + + + + + Qt::Horizontal + + + + 288 + 20 + + + + + + + + + + + + + diff --git a/UiQT4/desWidgetTuple2.ui b/UiQT4/desWidgetTuple2.ui index c66b0645..e3f10e97 100644 --- a/UiQT4/desWidgetTuple2.ui +++ b/UiQT4/desWidgetTuple2.ui @@ -25,6 +25,11 @@ Form + + + + + 0 @@ -158,7 +163,12 @@ background:rgb(235,235,235); -border:0px; +border:0px; + + + + + false diff --git a/UiQT4/eficas_en.qm b/UiQT4/eficas_en.qm index 480641ff2257f7b8f775a3e2a75a4604c86c76a2..504e5311ea4d6570db722dd32a8e67d657974707 100644 GIT binary patch delta 11733 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 literal 98679 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 L=pTT8_~6066naYQ diff --git a/UiQT4/eficas_en.ts b/UiQT4/eficas_en.ts index 6c1eb065..f09aef68 100644 --- a/UiQT4/eficas_en.ts +++ b/UiQT4/eficas_en.ts @@ -1,6 +1,5 @@ - - + @default @@ -59,12 +58,6 @@ ask eficas team le texte a analyser n'est pas celui d'une commande ou d'un operateur : text is no eficas text: - - - le texte a analyser n'est pas celui d'une commande ou - d'un operateur : %s - text is not in eficas format : %s - Erreur dans la recherche du nom de la commande : @@ -75,21 +68,6 @@ ask eficas team Erreur dans la recherche des args de la commande : error when searching argument's command : - - - le texte a analyser n'est pas celui d'une commande connue : - %(v_1)s %(v_2)s - v_1 - text in not a known command : %(v_1)s%(v-2)s - - - - le texte a analyser n'est pas celui d'une commande connue : - %(v_1)s %(v_2)s - v_1 - text in not a known command : - %(v_1)s%(v-2)s - Erreur dans la recherche du nom de la commande : @@ -135,13 +113,6 @@ ask eficas team le fichier include %s n'existe pas include file does not exist - - - jdc %(v_1)s manque - fichier comm dans section %(v_2)s - v_1 - jdc %(v_1)s : .comm is not given for %(v_2)s - jdc %(v_1)s, le fichier @@ -149,14 +120,6 @@ ask eficas team v_1 jdc %(v_1)s : .comm %(v_2)s does not exist - - - jdc %(v_1)s - fichier include %(v_2)s, %(v_3)s - n'existe pas - v_1 - jdc %(v_1)s include file %(v_2)s, %(v_3)s does not exist - le fichier jdc %s n'existe pas @@ -167,20 +130,6 @@ ask eficas team jdc %s manque option jdc dans section jdc jdc %s does not have jdc option in command line - - - jdc %(v_1)s manque fichier comm - dans section %(v_2)s - v_1 - jdc %(v1)s does not have .comm file in command line %(v_2)s - - - - jdc %(v_1)s, le fichier de commandes - %(v_2)s n'existe pas - v_1 - jdc %(v1)s , .comm file %(v_2)s does not exit - %(v_1)s include %(v_2)s : %(v_3)s @@ -244,12 +193,12 @@ ask eficas team schema - + Nombre incorrect d'arguments incorrect number of arguments - + Localisation specifiee pour l'application. specified localization for the application. @@ -260,11 +209,11 @@ ask eficas team - Objet commande commentarisé invalide + Objet commande commentarisé invalide invalid commented command - + Erreur error @@ -284,11 +233,6 @@ ask eficas team Objet commentaire non valorise comment object has no value - - - La formule passee a l'interpreteur doit etre sous forme de tuple - formula is expecting tuple - Debut Fonction %s @@ -300,7 +244,7 @@ ask eficas team end function %s - + Nom de concept deja defini : %s Concept's name %s is already existing @@ -339,11 +283,6 @@ ask eficas team L'attribut 'docu' doit etre une chaine de caracteres docu must be a string - - - Debut - beginning - Fin @@ -366,19 +305,9 @@ ask eficas team - Un concept de nom %s existe déjà ! + Un concept de nom %s existe déjà ! Concept's name %s is already existing! - - - Pas de nom donne au parametre - parameter has no name - - - - Le parametre %s ne peut valoir None - None is not a valid value for parameter %s - ERREUR @@ -395,62 +324,17 @@ ask eficas team object type not expected : %s - + ce groupe de maillage %s est associe a au moins un materiau et au moins une source. mesh group %s is associated with at least one material and at least a source. - + ce groupe de maillage %s n'est associe a aucun materiau ou source. mesh group %s is associated with no material or no source. - - ERREUR! Le bloc CONDUCTOR doit contenir PERMEABILITY et CONDUCTIVITY. - ERROR! CONDUCTOR bloc must contains PERMEABILITY and CONDUCTIVITY. - - - - ERREUR! Le bloc DIELECTRIC doit contenir PERMEABILITY et PERMITTIVITY. - ERROR! DIELECTRIC bloc must contains PERMEABILITY and PERMITTIVITY. - - - - ERREUR! Le bloc ZSURFACIC doit contenir PERMEABILITY et CONDUCTIVITY. - ERROR!ZSURFACIC bloc must contains PERMEABILITY and CONDUCTIVITY. - - - - ERREUR! Une source du type STRANDED_INDUCTOR, HPORT ou EPORT est attendue. - ERROR! source's type must be STRANDED_INDUCTOR, HPORT or EPORT. - - - - ATTENTION! Une source constante - n'est possible qu'a frequence nulle - en regime frequentiel - - - - - ERREUR! Une forme de la source du - type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. - ERROR! source's type must be WAVEFORM_CONSTANT or WAVEFORM_SINUS. - - - - ATTENTION! Une source constante n'est - possible qu'a frequence nulle en regime frequentiel - - - - - ERREUR! Une forme de la source du type - WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. - ERROR! source's type must be WAVEFORM_CONSTANT or WAVEFORM_SINUS. - - - + ATTENTION! Une source constante n'est possible qu'a frequence nulle en regime frequentiel @@ -507,12 +391,6 @@ ask eficas team Entite inconnue ou interdite : %s. Elle est ignoree unkown ou unsupported entity : %s. ignored - - - Type de valeur non supporte; par le format pyth : n %(exception)s - nom - Unsupported type in .pyth format : %(exception)s - Tag %s non-defini. Ceci est un bogue interne. en informer les developpeurs. @@ -534,11 +412,6 @@ ask eficas team Un nom de concept doit etre un identificateur Python concept's name must be a python identifier - - - Nom de concept trop long (maxi 8 caracteres) - concept name too long - Concept existant @@ -565,7 +438,7 @@ ask eficas team Name is refused : already existing concept - + Nommage du concept effectue Concept named @@ -584,11 +457,6 @@ ask eficas team La liste des arguments d'une formule doit etre entre parentheses : parenthese fermante manquante formula expects a list of arguments : no right parenthes - - - Impossible de realiser la verification de la formule - unable to verify the formula - Pas de nom donne a la FORMULE @@ -615,118 +483,104 @@ ask eficas team impossible to return a value of type : %s - + Impossible d'ajouter la commande unable to add the keyword (commande) - + Impossible d ajouter la commande unable to add the keyword (commande) - + Pas implemente not implemented - + Nom de concept deja defini already defined concept - + Nom de concept deja defini : already defined concept : - + Impossible de trouver le fichier correspondant a l'unite unable to find file corresponding to unit - + n'est pas un fichier existant is not an existing file - - Impossible de relire le fichier %s - - unable to read file : %s - - - - - Le fichier include contient des erreurs %s - - include file contains errors %s - - - - + Fichier invalide %s invalid file %s - + Impossible de construire le jeu de commandes correspondant au fichier unable to create the jdc corresponding to the file - + Erreur lors de l'evaluation du fichier inclus Error when reading the 'include' file - + Ce fichier ne sera pas pris en compte %s the file is ignored %s - + Ce fichier ne sera pas pris en compte Le fichier associe n'est pas defini the file is ignored : associated file is not defined - + Le fichier n est pas defini file is not defined - + le fichier doit contenir une unique variable de sortie file must declare a single output variable - + Fichier invalide invalid file - + Le contenu de ce fichier ne sera pas pris en compte %s the file will be ignored : %s - + Le fichier INCLUDE n est pas defini include file is not defined - + Le contenu de ce fichier ne sera pas pris en compte file will be ignored - + Erreur lors de l'evaluation du fichier poursuite Error when creating secondary (poursuite) file @@ -762,51 +616,26 @@ Le fichier associe n'est pas defini Object %s cannot be add - + None n'est pas une valeur autorisee None is not a valid value - + un concept de meme nom existe deja concept already exists - + Concept cree concept created - + La matrice n'est pas une matrice %(n_lign)d sur %(n_col)d n_lign matrix is not a %(n_lign)d x %(n_col)d matrix - - - Commande - Command - - - - Concept/Valeur - Concept/Value - - - - probleme d environnement - check your environment - - - - L environnement doit etre en QT4 - check your QT environment (QT4 is required) - - - - %s n'est pas un index valide pour append_brother - %s is not a valid index for append_brother - Decommenter @@ -818,84 +647,84 @@ Le fichier associe n'est pas defini uncomment the command - + Impossible de supprimer un mot-cle obligatoire mandatory keyword cannot be deleted - + Mot-cle %s supprime Keyword deleted - + Pb interne : impossible de supprimer ce mot-cle internal problem : unable to delete keyword - + Commentaire supprime comment is deleted - + Commande %s supprimee command %s is deleted - + Pb interne : impossible de supprimer cet objet internal problem : unable to delete object - + Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas unable to convert .comm file in order to open it with Eficas - + Include vide include file is empty - + L'include doit etre correctement initialise pour etre visualise include file must be correct - + Impossible de supprimer ce mot-clef unable to delete this keyword - + View3D View3D - + affiche dans Geom les elements de structure diplay SE in Geom - + Graphique graphic - + affiche la distribution display distribution - + Impossible de supprimer un mot-clef obligatoire unable to delete a mandatory keyword - + Mot-clef %s supprime Keyword %s is deleted @@ -915,765 +744,406 @@ Le fichier associe n'est pas defini Error when reading configuration file - - %(v_1)s pour %(v_2)s - v_1 - %(v_1)s for %(v-2)s - - - + Erreur fatale au chargement de %s fatal error when loading %s - + Erreur fatale au chargement d'un fichier Fatal error when loading file - + fichier modifie file updated - + Attention! fichier change hors EFICAS Warning ! this file was modified outside Eficas - + Type de fichier non reconnu unsupported file type - + EFICAS ne sait pas ouvrir le type de fichier %s Eficas is not able to open this file's type : %s - + EFICAS ne sait pas ouvrir ce type de fichier Eficas is not able to open this file's type - + Copie impossible unable to copy - + Veuillez selectionner un objet a copier you have to select an object to copy - + Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne You have to select a single object : copy will be done after the selected node - + Aucun Objet n a ete copie ou coupe No object was cut or copied - + Copie refusee rejected copy - + Eficas n a pas reussi a copier l objet Eficas cannot copy this object - + Copie refusee pour ce type d objet Copy rejected : bad object type - + Deplacement refuse move rejected - + Deplacement refuse entre 2 fichiers. Seule la copie est autorisee move rejected. no move between two files : only copy is available - + Copie impossible a cet endroit unable to copy here - + Veuillez selectionner une commande, un parametre, un commentaire ou une macro select a command; a parameter, a comment or a macro - + Choix d'un fichier XML Choice of XML file - + Ouvrir Fichier Open file - + Erreur a la generation Error when generating - + EFICAS ne sait pas convertir ce JDC Eficas is unable to convert JDC - + Format %s non reconnu not supported format %s - - EFICAS ne sait pas convertir le JDC selon le format %s - Eficas is not able to convert JDC with format %s - - - + Execution impossible Unable to execute - + le JDC doit etre valide pour une execution MAP JDC has to be valid before run - + le JDC doit contenir un et un seul composant JDC must contains a single componant - - le JDC doit etre sauvegarde avant execution - JDC has to be saved before run - - - + sauvegarde save - + Sauvegarde du Fichier save file - + Le fichier <b>%s</b> existe deja. file <b>%s</b> already exists. - + &Ecraser &Replace - - Le fichier %s contient une commande INCLUDE - - file %s contains an INCLUDE command - - - + Donnez le nom du fichier correspondant a l unite logique Choose file corresponding to unit - + Choix d'un fichier de poursuite Choose poursuite file - + Le fichier %s contient une commande POURSUITE file %s contains a POURSUITE command - - Donnez le nom du fichier dont vous - voulez faire une poursuite - choose primary file for the POURSUITE file - - - + Traduire Fichier file translation - + Fichiers JDC (*.comm);;Tous les Fichiers (*) JDC files(*.comm);; All FIles(*) - + Fichier Traduit : %s Translated file : %s - + Pas de difference entre le fichier origine et le fichier traduit No difference between the primary file and the translated file - + %d versions du catalogue sont disponibles %d catalogs versions are available - - La cardinalite n'est pas correcte, la derniere valeur est ignoree - incorrect cardinality : the last value is ignored - - - - n est pas un tuple de - is not a tuple - - - - valeurs - values - - - - est un nom valide pour une FORMULE - is a valid name for FORMULE - - - - n'est pas un nom valide pour une FORMULE - is not a valide name for FORMULE - - - - Argument(s) valide(s) pour une FORMULE - arguments are valid for FORMULE - - - - Argument(s) invalide(s) pour une FORMULE - arguments are not valid for FORMULE - - - - Corps de FORMULE valide - valid expression for FORMULE - - - - Corps de FORMULE invalide - Invalid expression for FORMULE - - - - La commande Include n a pas encore de fichier associe - INCLUDE commande has no associated file - - - - Fichier introuvable - unknown file - - - - Fichier modifie : - file was modified : - - - - Erreur fatale au chargement du fichier Include - Fatal error when loading INCLUDE file - - - - Impossible de lire le fichier : Format inconnu - Unable to read file : unsupported format - - - - Fichier Include - INCLUDE File - - - - Tous les Fichiers (*);;Fichiers JDC (*.comm);; - All Files(*);;JDC Files(*.comm) - - - - Entrer un float SVP - Please, enter a float - - - - Entrer un float inferieur a - Please, enter a float, lower than - - - - Entrer un float superieur a - Please, enter a float, higher than - - - - Mauvaise execution - uncorrect run - - - - impossible d executer la methode - unable to excute the fonction - - - - Mauvaise Commande - bad command - - - - Aucune variable connue - no known variable - - - - Mauvaise dimension de matrice - matrix has not a correct size - - - - le nombre de ligne n est pas egal a - lines'number is not equal to - - - - le nombre de colonne n est pas egal a - columns'number is not equal to - - - - Mauvaise Valeur - uncorrect value - - - - l element - element - - - - n est pas correct - is not correct - - - - Champ non rempli - enter a value - - - - Le champ Catalogue doit etre rempli - You must enter 'catalog' value - - - - Restauration des parametres par defaut - recover default parameters - - - - Votre fichier editeur sera ecrase. - your own file editeur will be overlayed. - - - + &Ok &Ok - - &Abandonner - &Cancel - - - - Entrer un nom de parametre - Enter a parameter's name - - - - Valeur incorrecte - incorrect value - - - - Valeur correcte - correct value - - - - Les noms de parametre doivent commencer par une lettre ou un souligne - parameters'name must begin with a letter or '_' - - - - Tri Alpha - alpha sort - - - - Tri Cata - cata sort - - - - La liste comporte trop d elements : la cardinalite maximale est - list is too long : maximal length is - - - - La liste ne comporte pas suffisament d elements : la cardinalite minimale est - list is too short : minimal length is - - - - Valeur Acceptee - Value is accepted - - - - Valeurs Ajoutees - values are added - - - - Fichier de donnees - data file - - - - Tous les Fichiers (*) - All files (*) - - - + Entrez enter - + valeurs values - + Entrez entre enter between - + et and - - Autre Fichier - Other file - - - - Edit - Edit - - - - Fichier Poursuite - Poursuite File - - - - Fichiers .comm (*.comm);;Tous les Fichiers (*) - JDC .comm(*.comm);;All Files(*) - - - - Fichier modifie : %s - File is modifies : %s - - - + Selection selection - + Une chaine de caracteres est attendue. string expected - + Un reel est attendu. float expected - + Un entier est attendu. integer expected. - + Une Matrice est attendue. Matrix expected. - + Un fichier est attendu. file expected. - + Un repertoire est attendu. directory expected - + Type de base inconnu unkown type - + Visualisation Fichier view file - + Impossibilite d'afficher le Fichier Unable to display file - + Sauvegarder Fichier save File - + Fichier selectionne file selected - + expression valide valid expression - + expression invalide unvalid expression - + expression n est pas de la forme a+bj expression is not as a+bj - + entrer une seule valeur SVP Please, enter a single value - + saisir le type de complexe choose complex's type - - Un complexe est attendu - a complex is expected - - - - Aucun Objet de ce type n'est defini - No Object of this type is defined - - - - Nouvelle Commande - New Command - - - - Nommer Concept - Concept Name - - - - Ajouter Mot-Clef - Add Keyword - - - - Definition Formule - Formula - - - - Valeur Parametre - Parameter's value - - - - <font size="+1"><p align="center">Structures de donnees a enrichir - par l'operateur courant :</p></font> - - - - + Sauvegarder le fichier save file - + Le fichier <b>%(v_1)s</b> n'a pu etre sauvegarde. <br>Raison : %(v_2)s v_1 file <b>%(v_1)s</b> was not saved - + &Recents &Recently open - + Aide specifique code's help - + Traduction translation - + Options Options - + TraduitV7V8 - + TraduitV8V9 - + TraduitV9V10 - + Acquiert Groupe Maille - + Specificites Maille - + version version - + pour for - + Aide Indisponible no help avalaible - - QT Assistant n est pas installe - QT assistant is not installed - - - + Parametrage Options - + Veuillez d abord choisir un code Choose a code - + Pas de possibilite de personnalisation de la configuration no options avalaible for configuration - + &Effacer &Delete - - Attention, valeurs modifiees - Warning, Values were modified - - - - Valeur selectionnee : - Selected value : - - - - Pas de valeur selectionnee - no selected value - - - - Pas de valeur entree - no given value - - - + Veuillez entrer le complexe sous forme aster ou sous forme python enter a complex - - Valeur du mot-clef enregistree - Value is registred - - - - Valeur du mot-clef non autorisee : - not a valid value : - - - + Import du catalogue Loading catalog @@ -1688,202 +1158,197 @@ Le fichier associe n'est pas defini No catalog - + avec le catalogue with catalog - + Impossible d'importer le catalogue unable to load catalog - + Choix d une version du code Choose a version for - + Choix d une version choose a version - + Parametre parameter - + Insere un parametre insert a parameter - + item invalide invalid item - + l item doit etre valide item must be valid - + apres after - + Insere un commentaire apres la commande insert a comment after the command - + avant before - + Insere un commentaire avant la commande insert a comment before the command - + Insere un parametre apres la commande inserrt a parameter after the command - + Insere un parametre avant la commande insert a parameter before the commande - + Supprimer delete - + supprime le mot clef delete keyword - + Documentation documentation - + documentation sur la commande command's documentation - + Documentation Vide empty documentation - + Aucune documentation n'est associee a ce noeud no documentation is available for this node - + impossible de trouver la commande unable to find command - + Lecteur PDF PDF reader - + impossible d'ouvrir unable to open - + Commentaire Comment - + ce noeud this node - + commente le noeud comment this node - + Fichiers JDC (*.comm);;Tous les Fichiers (*) JDC Files (*.comm);;All Files(*) - + &Quitter &Exit - + Quitter Exit - + Fichier Duplique file is duplicated - + Le fichier ne sera pas sauvegarde. File will not be saved. - + &Annuler &Cancel - + Fichier File - + Le fichier <b>%s</b> est deja ouvert. File <b>%s</b> is already open. - + &Duplication &Duplication - + &Abort &Abort - - Sans nom %s - No name %s - - - + Fichier Modifie File is modified - + Le fichier %s n a pas ete sauvegarde. file %s was not saved. - + &Sauvegarder &Save @@ -1894,17 +1359,6 @@ Le fichier associe n'est pas defini Erro when loadind : %s - - - Eficas ne peut pas traiter plusieurs instructions - sur la meme ligne : %s - Eficas is not able to convert more than one command per line: %s - - - - PDF de la loi : - PDF for the law : - Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom @@ -1922,531 +1376,648 @@ Le fichier associe n'est pas defini use for application translation - - ERREUR! ce groupe de maille (%s) n'a pas de prefixe - indiquant le type de materiau ou de source associee - - - - + ERREUR! ce groupe de maille (%s) n'a pas de prefixe valable - + ERREUR! ce type de bloc (%s) n'est pas valable - - ERREUR! ce groupe de maille (%(nom)s) n'a pas - le prefixe correct pour etre associe a un type %(type_bloc)s - nom - - - - + n'est pas un index valide pour append_brother is not correct - no possible "append_brother" - + Erreur interne Internal error - + La PDF de la loi ne peut pas etre affichee. unable to display law's PDF. - - n'est pas un fichier valide - is not a valid file. + + Le fichier contient une commande MODEL + + file contains MODEL command + + + + Donnez le nom du fichier XML qui contient la description des variables + + + + + Choix unite %d + Choice for unit %d + + + + Fichier pour unite + File for unit + + + + La formule passee à l'interpreteur doit etre sous forme de tuple + formula must be written as tuple + + + + Début + Beginning + + + + Le parametre EVAL ne peut valoir None + None is not a valid value for EVAL + + + + Pas de nom donné au paramètre + No name given + + + + Le paramètre %s ne peut valoir None + None is an incorrect value for parameter %s - - n'est pas un repertoire valide - is not a valid directory + + Format pas implémenté : %s + Not implemented fromat - - Type non encore gere - type unexpected + + Type de valeur non supporte par le format pyth : n %(exception)s + nom + unsupported type of value - - de type - of type + + Impossible de réaliser la vérification de la formule + unable to verify formula - - n'est pas d'un type autorise: - is not of expected type : + + Pb interne : impossible de supprimer ce mot-clef + internal problem : unable to delete keyword - - Nombre incorrect d'arguments de - incorrect number of arguments for + + Eficas ne peut pas traiter plusieurs instructions + sur la meme ligne : %s + Eficas is not able to manage many instructions on a same line - - La valeur : - value : + + le texte a analyser n'est pas celui d'une commande ou + d'un operateur : %s + text is not valid for a command or a operaor - - ne fait pas partie des choix possibles - is not an authorized choice + + le texte a analyser n'est pas celui d'une commande connue : + %(v_1)s %(v_2)s + v_1 + text is not valid for command %(v_1)s %(v_2)s - - est en dehors du domaine de validite [ - is not in [ + + le texte a analyser n'est pas celui d'une commande connue : + %(v_1)s %(v_2)s + v_1 + text is not valid for command %(v_1)s %(v_2)s - - n'est pas une chaine de longueur comprise entre - is not a string of length between + + jdc %(v_1)s manque + fichier comm dans section %(v_2)s + v_1 + file %(v_1)s need a .comm file in section %(v_2)s - - TXM de longueur entre - TXM's length should be between + + jdc %(v_1)s + fichier include %(v_2)s, %(v_3)s + n'existe pas + v_1 + file %(v_1)s need an include file %(v_2)s,%(v_3)s does not exist - - valeur valide - value is valid + + jdc %(v_1)s manque fichier comm + dans section %(v_2)s + v_1 + file %(v_1)s need a .comm file in section %(v_2)s - - valeur obligatoire - value is mandatory + + jdc %(v_1)s, le fichier de commandes + %(v_2)s n'existe pas + v_1 + jdc%(v_1)s, .comm %(v_2)s does not exist - - ne contient pas les elements obligatoires : - does not contain mandatory values : + + ATTENTION! Une source constante + n'est possible qu'a frequence nulle + en regime frequentiel + - - La valeur n'est pas dans la liste des choix possibles - value is not allowed + + ERREUR! Une forme de la source du + type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. + - - : pas de presence de doublon dans la liste - : no duplication is allowed + + ATTENTION! Une source constante n'est + possible qu'a frequence nulle en regime frequentiel + - - Les doublons ne sont pas permis - no duplication is allowed + + ERREUR! Une forme de la source du type + WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. + - - est un doublon - is duplicated + + ERREUR! ce groupe de maille (%s) n'a pas de prefixe + indiquant le type de materiau ou de source associee + - - longueur de la chaine entre - string's length betwwen + + ERREUR! ce groupe de maille (%(nom)s) n'a pas + le prefixe correct pour etre associe a un type %(type_bloc)s + nom + - - Longueur de la chaine incorrecte - string's length is not correct + + + Include Invalide. + ne sera pas pris en compte + Invalid include file. text will not be included - - n'est pas une chaine - is not a string + + Impossible de relire le fichier %s + + unable to read file - - n'est pas de la bonne longueur - has not a valid length + + Le fichier include contient des erreurs + include file contains errors - - verifier que c'est une chaine - must be a string + + PARAMETRE + PARAMETER - - Ce n'est pas une chaine - is not a string + + EFICAS ne sait pas convertir le JDC selon le format + Eficas does not know how to convert data according to the defined format - - liste - list + + le JDC doit etre valide pour une execution + Before a run action, JDC must be valid - - La liste doit etre en ordre - list has to be ordored + + Sauvegarder SVP avant l'execution + Save before run action - - n'est pas par valeurs croissantes - is not a increasing list + + Sauvegarde de l'input impossible + unable to save input file - - n'est pas par valeurs decroissantes - is not a decreasing list + + Un JdC valide est necessaire pour creer un .input + file must be valid to create a .input file - - n'est pas du bon type - has not a valid type + + Choix du composant obligatoire + You have to choose a component - - doit etre inferieur a - must be below + + Le fichier %s contient une commande INCLUDE + + file %s contains an "INCLUDE" command - - valeur dans l 'intervalle - value in interval + + Donnez le nom du fichier dont vous + voulez faire une poursuite + Name the principal file - - devrait etre comprise entre - should be in interval of + + Fichiers Med (*.med);;Tous les Fichiers (*) + Med Files (*.med);;All Files(*) - - La valeur doit etre comprise entre - value should be in interval of + + Fichier Med + Med File - - La longueur doit etre comprise entre - length sould be in interval of + + Veuillez selectionner un fichier Med + Choose a Med file - - Le cardinal de la liste doit etre compris entre - list's cardinalisty should be between + + chaine de caracteres + string - - devrait etre de longueur inferieure a - should have a length less than + + reel + float - - devrait etre de longueur superieure a - should have a length higher than + + entier + integer - - valeur paire - even value + + complexe + complex - - La valeur saisie doit etre paire - value should be an even value + + Matrice + matrix - - contient des valeurs non paires - contains non even values + + fichier + file - - valeur dans - value in + + fichier existant + existing file - - valeur - value + + repertoire + directory - - pour la somme des cles A et B - when you add A and B + + l'aide n est pas installee + Help is not available - - valeur de - value of + + Export Med vers Fichier + export Med Mesh in a file - - valeur d'instance de - instance value is + + Impossibilite d exporter le Fichier + Unable to export file - - devrait etre de type - should be of type + + objet valide + valid object - - Un nom de fichier se terminant par - file name ending with + + Commande non choisie + Choose a command - - est attendu. - is expected. + + Vous devez choisir une commande + Choose a command - - contient des valeurs hors des choix possibles: - contains unallowed values : + + Valeur non modifiable + value can not be changed - - Le fichier contient une commande MODEL + + Options pour - file contains MODEL command + Settings - - Donnez le nom du fichier XML qui contient la description des variables - + + Nombre minimal de valeurs : + minimal number of values : - - Choix unite %d - Choice for unit %d + + Nombre maximal de valeurs : + Maximal number of values : - - Fichier pour unite - File for unit + + l expression n est pas de la forme a+bj + expression must be as a+bj - - La formule passee à l'interpreteur doit etre sous forme de tuple - formula must be written as tuple + + Valeur du mot-cle enregistree + Value is recorded - - Début - Beginning + + Valeur du mot-cle non autorisee + Value is not authorized - - Le parametre EVAL ne peut valoir None - None is not a valid value for EVAL + + Accquisition Groupe Maille + - - Pas de nom donné au paramètre - No name given + + Fichier non encore nommé + unnamed file - - Le paramètre %s ne peut valoir None - None is an incorrect value for parameter %s + + Nom de concept invalide. '%s' est un mot-clé réservé. + invalid concept :'%s' is a reserved keyword - - Format pas implémenté : %s - Not implemented fromat + + Impossible de trouver le fichier correspondant a l unite %s + unable to find file for unit %s - - Type de valeur non supporte par le format pyth : n %(exception)s - nom - unsupported type of value + + %s n'est pas un fichier existant + %s is not an existing file - - Impossible de réaliser la vérification de la formule - unable to verify formula + + concept '%s' absent du contexte de %s + concept '%s' not in context %s - - Pb interne : impossible de supprimer ce mot-clef - internal problem : unable to delete keyword + + SOURCE + SOURCE - - Un objet de type %s est attendu - expect a %s object + + EnveloppeConnexeInducteur + Bounding_Box - - chaines de caracteres - strings + + EnveloppeConnexe2 + - - reels - floats + + VecteurDirecteur + Direction_Vector - - entiers - integer + + Centre + Center - - complexes - complex + + SectionBobine + Section - - chaînes de caractéres - strings + + Amplitude + Amplitude - - doit être inférieur a - must be lowest than + + NbdeTours + Amplitude - - un booleen est attendu - expect a boolean + + CONDUCTEUR + CONDUCTOR - - - Aide - - Aide - Help + + Conductivite + Conductivity - - Index - Index + + PermeabiliteRelative + Relative_Permeability - - Back - Back + + NOCOND + DIELECTRIC - - Forward - Foward + + VCUT + CUT - - - ChoixCode - - Choix du code - Code's Choice + + Orientation + Orientation - - OK - OK + + ZS + ZS - - Cancel - Cancel + + PARAMETRES + SETTINGS - - Veuillez choisir un code : - Please, choose a code : + + RepCarmel + Carmel_Directory - - - ChoixMap - - Dialog - Dialog + + TypedeFormule + Formula + + + + Frequence + Frequency + + + + Nb_Max_Iterations + Max_Nb_Iterations + + + + Erreur_Max + Max_Error + + + + None n'est pas une valeur autorisée + None is not a valid value + + + + Mot-clé %s invalide : %s +Critère de validité: %s + Invalid keyword %s : %s +validity criteria: %s + + + + Mot-clé simple : + keyword : - - Family - Family + + Fin Mot-clé simple : + End Keyword : - - scc - scc + + Mot-clé simple : %s %s + Keyword: %s %s - - concrete - concrete + + Etape : + Command : - - image - image + + ligne : + line : - - pre - pre + + fichier : + File : - - post - post + + Fin Etape : + End Command : - - solver - solver + + DEBUT CR validation : + BEGIN Validation Report : - - transverse - transverse + + FIN CR validation : + END Validation report : - - Entity - Entity + + Mot-clé : %s obligatoire non valorisé + Mandatory Keyword %s has no value - - scheme description : - scheme description : + + Mot-clef simple : + Keyword : - - Doc - doc + + None n'est pas ujjjjjjjjjne valeur autorisée + + + + + Mot-cle simple : + Keyword : - DBool + Aide - - DUnIn - DUnIn + + Aide + Help - - Saisir Valeur - Enter Value + + Index + Index - - Vrai - True + + Back + Back - - TextLabel - TextLabel + + Forward + Foward + + + + ChoixCommandes + + + DMacro + DMacro + + + + <html><head/><body><p> Recherche Commande</p></body></html> + <html><head/><body><p> Find Command</p></body></html> + + + + Alphabetique + alphabetic sort + + + + Par Groupe + Sort by group + + + + Mise en données de la commande sélectionnée dans l'arbre. Un double-clic permet également de choisir une commande + Data entry form for the selected item. Selections are done by double-clicked + + + + &Formulaire + &Form - - Faux - False + + Shift+A, Alt+A, Alt+A, Alt+A + Shift+A, Alt+A, Alt+A, Alt+A @@ -2490,1879 +2061,842 @@ p, li { white-space: pre-wrap; } - DComm - - - DComm - DComm + DSelVal + + + Sélection de valeurs + Values Selections - - Ajouter Mot-Clef - Add Keyword + + Separateur + marker - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - <h3><p align="center"><u><b>Available Keywords</b></u></p></h3> - - - - <h3><p align="center"><u><b>Règles</b></u></p></h3> - <h3><p align="center"><u><b>Rules</b></u></p></h3> + + espace + space - - Nommer Concept - Concept's Name + + virgule + comma - - Concept - Concept + + point-virgule + semi-colon - - <u>Nom du concept :</u> - Concept's Name + + validation de la saisie + Entry Validation - - <u>Type du concept :</u> - Concept's Type - - - - L'opérateur retourne un concept de type : - Operator returns a concept of type : + + &Ajouter Selection + &Add Selection - - TypeDuConcept - Concept's type + + Shift+A, Alt+A, Alt+A, Alt+A + Shift+A, Alt+A, Alt+A, Alt+A - - Nouvelle Commande - New Command + + &Importer Tout + &Import all + + + Eficas - - <b><u>Commandes :</u></b> - <b><u>Commands :</u></b> + + MainWindow + Main Window - - Affichage - Display - - - - alphabétique - alphabetic + + &Fichier + &File - - par groupe - by group + + &Aide + &Help - - Filtre - Filter + + toolBar + toolBar - - Suivant - Next - - - - La commande choisie sera ajoutée APRES la commande courante - new command will be added AFTER current command + + &Nouveau + &New - - Tri Alpha - Alpha Sort + + Ctrl+N + Ctrl+N - - validation de la saisie - Validate input + + Nouvel Include + New Include - - &Valider - &Validate + + &Ouvrir + &Open - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A + + Ctrl+O + Ctrl+O - - - DComment - - DComm - DComm + + Enregistrer + Save - - Commentaire - Comment - - - - Nouvelle Commande - New Command - - - - <b><u>Commandes :</u></b> - <b><u>Commands :</u></b> - - - - Affichage - Display - - - - alphabétique - alphabetic - - - - par groupe - by group - - - - Filtre - Filter - - - - Suivant - Next - - - - La commande choisie sera ajoutée APRES la commande courante - new command will be added AFTER current command - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DError - - - DInactif - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> -<tr> -<td style="border: none;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Le noeud selectionné</span></p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">ne correspond pas</span></p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">à un noeud actif</span></p></td></tr></table></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"><table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"><tr><td style="border: none;"><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">selected node</span></p><p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">is not </span></p><p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">an activ node</span></p></td></tr></table></body></html> - - - - suppression du mot clef - delete Keyword - - - - &Supprimer - &Delete - - - - Alt+S - Alt+D - - - - DFormule - - - DMacro - DMacro - - - - Définition Formule - Formula - - - - <h3><p align="center"><u><b>Nom de la formule</b></u></p></h3> - <h3><p align="center"><u><b>Formula's name</b></u></p></h3> - - - - Retour-Chariot permet de vérifier que l'expression est valide. - carriage return allows you to verify expression validity. - - - - <h1><b>(</b></h1> - <h1><b>(</b></h1> - - - - <h1><b>)</b></h1> - <h1><b>)</b></h1> - - - - variables séparées par des "," - par ex. : x,y,z - variables separated with "," -as : x,y,z - - - - Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles -valeurs seront effectivement prises en compte - Pressing "Validate" allows you to enregistre the new values - - - - - <font size="+4" face="Helvetica"><b>=</b></font> - <font size="+4" face="Helvetica"><b>=</b></font> - - - - <h3><p align="center"><u><b>Expression</b></u></p></h3> - <h3><p align="center"><u><b>Expression</b></u></p></h3> - - - - <h3><p align="center"><u><b>Arguments</b></u></p></h3> - <h3><p align="center"><u><b>Arguments</b></u></p></h3> - - - - Nouvelle Commande - New Command - - - - <b><u>Commandes :</u></b> - <b><u>Commands :</u></b> - - - - Affichage - Display - - - - alphabétique - alphabetic - - - - par groupe - by group - - - - Filtre - Filter - - - - Suivant - Next - - - - La commande choisie sera ajoutée APRES la commande courante - new command will be added AFTER current command - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DInactif - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;">Seules les commandes placées</span></p> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;"> entre : DEBUT / FIN sont actives </span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"><p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;">activ nodes are</span></p><p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;">between commands : DEBUT / FIN </span></p></body></html> - - - - suppression du mot clef - delete keyword - - - - &Supprimer - &Delete - - - - Alt+S - Alt+D - - - - <html><head/><body><p align="center"><span style=" font-size:16pt;">Le noeud sélectionné</span></p><p align="center"><span style=" font-size:16pt;">ne correspond pas à un objet actif</span></p></body></html> - <html><head/><body><p align="center"><span style=" font-size:16pt;">selected node</span></p><p align="center"><span style=" font-size:16pt;">is not an activ node</span></p></body></html> - - - - DInactif - - - - - DInc1 - - - DMacro - DMacro - - - - Ajouter Mot-Clef - Add keyword - - - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - <h3><p align="center"><u><b>Available Keywords</b></u></p></h3> - - - - <h3><p align="center"><u><b>Régles</b></u></p></h3> - <h3><p align="center"><u><b>Rules</b></u></p></h3> - - - - Nouvelle Commande - New Command - - - - <b><u>Commandes :</u></b> - <b><u>Commands :</u></b> - - - - Affichage - Display - - - - alphabétique - alphabetic - - - - par groupe - by group - - - - Filtre - Filter - - - - Suivant - Next - - - - La commande choisie sera ajoutée APRES la commande courante - new command will be added AFTER current command - - - - Fichier Include - INCLUDE File - - - - <font size="+1">La commande INCLUDE requiert un nom de Fichier :</font> - <font size="+1"> INCLUDE command expects an associated file name :</font> - - - - Edit - Edit - - - - Autre Fichier - Other file - - - - Fichier Inc - Include File - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:large;"><span style=" font-size:11pt; font-weight:600;">La commande INCLUDE n'a pas de fichier associé. </span></p> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt; font-weight:600;"><span style=" font-size:large;">Il faut d'abord choisir un numéro d'unité</span></p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"><p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:large;"><span style=" font-size:11pt; font-weight:600;">No file is associated whith this Include command </span></p><p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt; font-weight:600;"><span style=" font-size:large;">First, choose a unite number</span></p></body></html> - - - - Tri Alpha - Alpha Sort - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DLisParam - - - Sélection de paramétres - parametre Selection - - - - Valider - Validate - - - - DMCFact - - - DMacro - DMacro - - - - Ajouter Mot-Clef - Add keyword - - - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - <h3><p align="center"><u><b>Available Keywords</b></u></p></h3> - - - - <h3><p align="center"><u><b>Régles</b></u></p></h3> - <h3><p align="center"><u><b>Rules</b></u></p></h3> - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - Tri Alpha - Alpha Sort - - - - DMCListAjout - - - Form1 - - - - - <p align="center"><font size="+1">Pour ajouter une autre occurrence</font></p> - <p align="center"><font size="+1">In order to add a new occurence</font></p> - - - - <p align="center"><font size="+1">du mot clef-facteur</font> </p> - <p align="center"><font size="+1">of the keyword</font> </p> - - - - validation de la saisie - validate input - - - - &Ajouter - &Add - - - - Alt+A - Alt+A - - - - <p align="center"><font size="+1">cliquez ci-dessous</font> </p> - <p align="center"><font size="+1">push this button</font> </p> - - - - <p align="center">AFFE</p> - <p align="center">AFFE</p> - - - - DParam - - - DComm - DComm - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - Valeur Parametre - Parameter's value - - - - <u><b><p align="center">Parametre</p></b></u> - <u><b><p align="center">Parameter</p></b></u> - - - - <b> Nom: </b> - <b> Name: </b> - - - - <b> Valeur: </b> - <b> Value: </b> - - - - Retour Chariot dans une sone de saisie permet de vérifier la validité de la valeur saisie. - in order to verify the validity of a widget value, press carriage return. - - - - Nouvelle Commande - New Command - - - - <b><u>Commandes :</u></b> - <b><u>Commands :</u></b> - - - - Affichage - Display - - - - alphabétique - alphabetic - - - - par groupe - by group - - - - Filtre - Filter - - - - Suivant - Next - - - - La commande choisie sera ajoutée APRES la commande courante - new command will be added AFTER current command - - - - Les modifications seront prises en compte en appuyant sur le bouton Valider. - Pressing "Validate" allows to enregistre the new values - - - - DPlusBase - - - DUnIn - DUnIn - - - - Saisir Valeur - Enter value - - - - <u><font size="+1">Valeur(s) actuelle(s)</font></u> - Actual value(s) - - - - <font size="+1">Valeur</font> - Value - - - - ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection) - add the new value after the selected value (or at the end of the list if no selection) - - - - enleve l occurence selectionnee - cut out the selected value - - - - Visualiser - View - - - - suppression du mot clef - delete the keyword - - - - &Parametres - &Parameters - - - - Alt+P - Alt+P - - - - &Importer - &Import - - - - Alt+I - Alt+I - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DPlusInto - - - DUnIn - DUnIn - - - - Saisir Valeur - Enter a Value - - - - <u><font size="+1">Valeur(s) actuelle(s)</font></u> - <u><font size="+1">Actual Value(s) </font></u> - - - - <u><font size="+1">Valeur(s) possibles(s)</font></u> - <u><font size="+1">Valid Values</font></u> - - - - enleve l occurence selectionnee - suppress the selected valut - - - - ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection) - add the new value after the selected value (or at the end of the list if no selection) - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - Tri Alpha - Alpha Sort - - - - DPour - - - DMacro - DMacro - - - - Ajouter Mot-Clef - Add keyword - - - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - <h3><p align="center"><u><b>Available Keywords</b></u></p></h3> - - - - <h3><p align="center"><u><b>Régles</b></u></p></h3> - <h3><p align="center"><u><b>Rules</b></u></p></h3> - - - - Nouvelle Commande - New Command - - - - <b><u>Commandes :</u></b> - - - - - Affichage - Display - - - - alphabétique - alphabetic - - - - par groupe - by group - - - - Filtre - Filter - - - - Suivant - Next - - - - La commande choisie sera ajoutée APRES la commande courante - new command will be added AFTER current command - - - - Fichier Poursuite - Poursuite File - - - - <font size="+1">La commande POURSUITE requiert un nom de Fichier :</font> - POURSUITE command expects a file name : - - - - Autre Fichier - Other file - - - - Edit - Edit - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - BAlpha - BAlpha - - - - DRac - - - DMacro - DMacro - - - - <b><u>Commandes :</u></b> - <b><u>Commands :</u></b> - - - - <p align="center"><b><u>Régles :</u></b></p> - <p align="center"><b><u>Rules :</u></b></p> - - - - alphabétique - alphabetic - - - - par groupe - by group - - - - Filtre - Filter - - - - Suivant - Next - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DSelImage - - - Image Selection - Image Selection - - - - DSelVal - - - Sélection de valeurs - Values Selections - - - - Separateur - marker - - - - espace - space - - - - virgule - comma - - - - point-virgule - semi-colon - - - - Ajouter Selection - Add Selection - - - - Importer Tout - import all values - - - - DUnASSD - - - DUnIn - DUnIn - - - - Saisir Valeur - Enter Value - - - - <font size="+1"><p align="center">Structures de données du type -requis par l'objet courant :</p></font> - <font size="+1"><p align="center">Current object required a data which type is :</p></font> - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DUnBase - - - DUnIn - DUnIn - - - - Saisir Valeur - Enter Value - - - - <b><u><p align="center">Valeur: </p></u></b> - <b><u><p align="center">Value: </p></u></b> - - - - Sélectionner - Select - - - - Visualiser - View - - - - Paramètres - Parameters - - - - Fichier - File - - - - Visualiser Fichier - View File - - - - Répertoire - Directory - - - - TextLabel - TextLabel - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DUnComp - - - DUnComp - DUnComp - - - - Saisir Valeur - Enter Value - - - - <font size="+2">Complexe de la forme : a+bj</font> - <font size="+2">Complex : a+bj</font> - - - - Ou - Or - - - - RI : Réel Imaginaire - RI : Real Part Imaginary Part - - - - MP : Module Phase - MP : Module Phase - - - - <font size="+2">Un complexe est attendu</font> - a complex is expected - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DUnIn - - - DUnIn - DUnIn - - - - Saisir Valeur - Enter Value - - - - <b><u><p align="center">Valeurs possibles</p></u></b> - <b><u><p align="center">Possible values</p></u></b> - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - Tri alpha - Alpha Sort - - - - DUnSDCO - - - DUnIn - DUnIn - - - - Saisir Valeur - Enter Value - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - <h1><font size="+2">Nom du nouveau concept : </font></h1> - <h1><font size="+2">New concept name : </font></h1> - - - - <font size="+1">Un objet de type CO est attendu</font> - <font size="+1">CO object is expected</font> - - - - DUnSDCOInto - - - DUnIn - DUnIn - - - - Saisir Valeur - Enter Value - - - - <font size="+1"><u>Structures de données du type requis par l'objet courant </u></font> - <font size="+1"><u>Current object required a data which type is :</u></font> - - - - <font size="+1">Un objet de type CO est attendu</font> - <font size="+1">CO object is expected</font> - - - - <font size="+1"> Nom concept : </font> - <font size="+1"> concept name : </font> - - - - validation de la saisie - validate input - - - - &Valider - &Validate - - - - Shift+A, Alt+A, Alt+A, Alt+A - Shift+A, Alt+A, Alt+A, Alt+A - - - - DVisu - - - Visualisation Include Materiau - View Include Materiau - - - - Eficas - - - MainWindow - Main Window - - - - &Fichier - &File - - - - Edition - Edit - - - - JdC - JdC - - - - &Aide - &Help - - - - toolBar - toolBar - - - - &Nouveau - &New - - - - Ctrl+N - Ctrl+N - - - - Nouvel Include - New Include - - - - &Ouvrir - &Open - - - - Ctrl+O - Ctrl+O - - - - Enregistrer - Save - - - - Ctrl+E - Ctrl+S - - - + Enregistrer sous Save as - - Ctrl+Shift+E - - - - + Fermer Close - + Ctrl+W - + Fermer tout Close all - + Couper Cut - + Ctrl+X Ctrl+X - + Copier Copy - + Ctrl+C Ctrl+C - + Coller Paste - + Ctrl+V Ctrl+V - + Quitter Exit - + Ctrl+Q Ctrl+Q - + Rapport de Validation Validation Report - + Fichier Source Source File - - + + Fichier Résultat Result File - + Parametres Eficas Eficas Parameters - + Lecteur documentation documentation reader - + Eficas Eficas - + Version Version - + Supprimer Delete - + Rechercher Find - + Rechercher dans l'arbre d'etude Find in JdC Tree - + Ctrl+F Ctrl+F - + Replier/Deplier Expand/Collapse - - Ctrl++ - Ctrl++ - - - + Execution Run - + Execution Run - + Patrons Patterns + + + Tab 1 + + + + + &Edition + &Edit + + + + &JeuDeDonnées + &Data + + + + Shift+I + + + + + Ctrl+S + + + + + Ctrl+Shift+S + + + + + Shift+V + + + + + Chercher Mot-Clef + find Keyword + + + + Rechercher dans le catalogue + find Keyword in Catalog + + + + Shift+F + + + + + Shift+D + + + + + Commentaire + Comment + + + + Shift+C + + + + + Paramètres + Parameters + + + + Gestion des paramètres + Managing parameters + + + + Shift+P + + + + + Parametre Eficas + Eficas Settings + + + + Save Run + + JDCEditor - + Save File - + The file <b>%1</b> could not be saved.<br>Reason: %2 - + JDC (*.comm);;All Files (*) - + &Abandonner &Cancel - LabelPixmap + Widget4a6RadioButton + + + Form + + + + + ... + + - - PDF de la loi - law's PDF + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + + RadioButton + - Options + WidgetBloc - - Fichier Catalogue - Catalog File + + Form + + + + WidgetCB - - Le Fichier n existe pas. Voulez-vous supprimer cette version ? - File does not exist. Do yoy want to suppress this version ? + + Form + - - &Oui - &Yes + + ... + - - &Non - &No + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + WidgetCommande - - Restauration des parametres par defaut - recover default parameters + + DCommandeUnique + + + + + Affiche le rapport de validité de la commande + Display validation report - - Votre fichier editeur sera ecrase. - your own file editeur will be overlayed. + + ... + - - &Ok - &Ok + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> + <html><head/><body><p><span style=" color:#0000ff;">command </span></p></body></html + + + + Nom de l'objet. Seuls, les objets valides peuvent être nommés + Object Name. Only valid objects can be named + + + + Lance un script associé à la commande + Run associated script - - &Abandonner - &Cancel + + ouvre un navigateur sur l'aide contextuelle + open a browser to navigate to contextual help + + + + affiche les régles de validité + display validity rules + + + + Détruit la commande + delete the command - - Repertoire de Documentation - Documentation Directory + + Affiche les commandes possibles + display allowed commands - - Le Repertoire n existe pas. - directory does not exist. + + &Commandes + &Commands - - Repertoire De Sauvegarde - Default save directory + + Shift+A, Alt+A, Alt+A, Alt+A + Shift+A, Alt+A, Alt+A, Alt+A + + + WidgetCommentaire - - Le Repertoire - Directory + + DCommandeUnique + + + + + Affiche le rapport de validité de la commande + Display validation report - - Dossier de sauvegarde par defaut - Default folder + + ... + - - Le dossier n'existe pas. - Folder does not exist. + + <html><head/><body><p><span style=" color:#0000ff;">Commentaire</span></p></body></html> + - - &Ok - &Ok + + Affiche les commandes possibles + display allowed commands - - &Abandonner - &Cancel + + &Catalogue + - - Repertoire Open TURNS - Open TURNS Directory + + Shift+A, Alt+A, Alt+A, Alt+A + Shift+A, Alt+A, Alt+A, Alt+A + + + + Détruit le commentaire + - appliEficas + WidgetFact - - Erreur interne - Internal error + + Form + - - La PDF de la loi ne peut pas etre affichee. - unable to display law's PDF + + ... + - - &Annuler - &Cancel + + <html><head/><body><p><span style=" font-style:italic;">TextLabel</span></p></body></html> + - dView + WidgetFactPlie - - Dialog - Dialog + + Form + - - Fermer - Close + + ... + - - Sauver - Save + + TextLabel + TextLabel - desMatrice + WidgetOptionnel - - Dialog - Dialog + + WidgetOptionnel + + + + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> + <html><head/><body><p><span style=" color:#0000ff;">command </span></p></body></html + + + + validation de la saisie + Entry Validation - - Valider - Validate + + &Ajouter + &Add + + + + Shift+A, Alt+A, Alt+A, Alt+A + Shift+A, Alt+A, Alt+A, Alt+A - desOptions + WidgetPlusieursBase + + + Form + + - - Option TURNS - Option TURNS + + ... + + + + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + WidgetPlusieursInto - - Configurer une Version - Version Configuration + + Form + - - Valider - Validate + + ... + - - Fichier catalogue (chemin complet) : - Catalog File (complete path): + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + WidgetRadioButton - - Ajouter -Version : - Add -Version : + + Form + - - Supprimer -Version : - Delete -Version: + + ... + - - Doc - Doc + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + - - - Répertoire d'accès à la documentation : - Documentation Directory : + + + RadioButton + + + + WidgetSimpBase - - Espace de travail - work space + + Form + - - - Répertoire de sauvegarde par défaut : - default save directory : + + + ... + - - - Réinitialiser avec les valeurs par defaut - recover default parameters + + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + WidgetSimpBool - - Quitter - Exit + + Form + - - Options Aster - Aster Options + + ... + - - - Répertoire d'accès au catalogue : - Catalog Directory : + + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + - - - Répertoire d'accès aux matériaux : - Materiaux Directory : + + + True + - - - Repertoire d'acces à la documentation : - Documentation Directory : + + + False + - - - Gérer les versions - manage versions + + + WidgetSimpComplexe + + + Form + - - Sauvegarde - Save + + ... + + + + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + - - Repertoire de sauvegarde : - Save directory : + + Complexe : a+bj + Complex : a+bj + + + + <html><head/><body><p align="center"><span style=" font-weight:600;">OU </span></p></body></html> + + + + + Réel/Imaginaire + Real/Imaginary - - Reinitialiser avec les valeurs par defaut - recover default parameters + + Module/Phase + Module/Phase - - - Configurer les répertoires - Directories configuration + + + WidgetSimpFichier + + + Form + - - - Répertoire d'installation d'Open TURNS : - Open TURNS Directory : + + + ... + - - - Répertoire d'installation des codes MAP : - MAP Directory : + + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + - - - Répertoire d'installation de code_Aster : - Aster Directory : + + + WidgetSimpTxt + + + Form + - - Schema - Schema + + ... + - - Options Map - Map options + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + WidgetTuple2 - - Dossier de sauvegarde : - Save in directory: + + Form + - - Choisir le dossier - Select directory: + + ... + - - Valider et fermer - Ok and Close + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + - - Valider - Ok + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + - - Annuler - Cancel + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + - - - Configurer la bibliothèque Open TURNS - + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + - desPdf + WidgetTuple3 - - Lire les Pdf - Read Pdf + + Form + + + + + ... + + + + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> + + + + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + + baseWidget - - Lecteur Pdf : - Pdf Reader + + DMacro + DMacro + + + dView - - acroread - acroread + + Dialog + Dialog - - Ok - Ok + + Fermer + Close - - Cancel - Cancel + + Sauver + Save @@ -4373,7 +2907,7 @@ Version: Find in JDC - + Suivant Next @@ -4381,12 +2915,12 @@ Version: self.appliEficas - + Wrapper Files (*.xml);;All Files (*) - + Noname diff --git a/UiQT4/eficas_fr.qm b/UiQT4/eficas_fr.qm index 2e999c405b9a707d0e2a2b0bcd7bd886d4643684..9bfe425358df1e113dd649250f67f5f8dcb6bbcb 100644 GIT binary patch delta 77 zcmZ3+bB%3+h@J)mgLX6n5HRo7cLq{DEDL;`7#NtYvYNQR0@8)7{#u)X;%b>dB_fma bm}Mp(W^&lLV=WUmrrGu literal 1574 zcmb_cL1+^}6#Z?Qrlh4(g<3^)DmE2`=s^&QhsG9EY)L7$7cXwJlV;3jHqOk3RuH6j zFM>Bg1CCGXrBFAdaoxFH*>;ssiyM&=eyAL8a#CZDFRhTq$jI1yHY@)4D{5h+3nQat zXYDk=e-r1$ijj>NJ@7=$Q%vRQl4OEDMg9jV9SLN~MFu*G68WgMy5@R>M3a=G0;K98 zoqjA7PQ6KzIGQVLc-jxOmWEGfigl+#ZCQm-Z;pyoO*W@;#cI!{d0GUn#ZZjgDy6{O zL#er>o3Kn=V1d%I&E@`tM&TVUfftM1Cg=!X3hPA;x#=00b&prj8?J}@G%W$2(Yhnh zG>i4ESavL+CaraEv2=8iU)YGjo}O)=|*RS{8EZOx!VA zh+B_kuj21*UKL$&Cb8^YsD#Qkh1-gWqu33a|EomLCGh+Er!^MKZjMRRyN)0RQJoj^3W|?&_P=5bp9qm2?PQE4hK4UrYP0+@fXyFLy KL|K|zFXAs9FHP(K diff --git a/UiQT4/eficas_fr.ts b/UiQT4/eficas_fr.ts index 9b462368..47350410 100644 --- a/UiQT4/eficas_fr.ts +++ b/UiQT4/eficas_fr.ts @@ -41,12 +41,6 @@ %s - - - Eficas ne peut pas traiter plusieurs instructions - sur la meme ligne : %s - - Erreur ! Erreur ! @@ -72,12 +66,6 @@ le texte a analyser n'est pas celui d'une commande ou d'un operateur : - - - le texte a analyser n'est pas celui d'une commande ou - d'un operateur : %s - - Erreur dans la recherche du nom de la commande : @@ -88,20 +76,6 @@ Erreur dans la recherche des args de la commande : - - - le texte a analyser n'est pas celui d'une commande connue : - %(v_1)s %(v_2)s - v_1 - - - - - le texte a analyser n'est pas celui d'une commande connue : - %(v_1)s %(v_2)s - v_1 - - Erreur dans la recherche du nom de la commande : @@ -147,13 +121,6 @@ le fichier include %s n'existe pas - - - jdc %(v_1)s manque - fichier comm dans section %(v_2)s - v_1 - - jdc %(v_1)s, le fichier @@ -161,14 +128,6 @@ v_1 - - - jdc %(v_1)s - fichier include %(v_2)s, %(v_3)s - n'existe pas - v_1 - - le fichier jdc %s n'existe pas @@ -179,20 +138,6 @@ jdc %s manque option jdc dans section jdc - - - jdc %(v_1)s manque fichier comm - dans section %(v_2)s - v_1 - - - - - jdc %(v_1)s, le fichier de commandes - %(v_2)s n'existe pas - v_1 - - %(v_1)s include %(v_2)s : %(v_3)s @@ -261,12 +206,12 @@ - + Nombre incorrect d'arguments - + Localisation specifiee pour l'application. @@ -292,7 +237,7 @@ - + Erreur @@ -328,7 +273,7 @@ - + Nom de concept deja defini : %s @@ -433,68 +378,30 @@ - + ce groupe de maillage %s est associe a au moins un materiau et au moins une source. - + ce groupe de maillage %s n'est associe a aucun materiau ou source. - - ATTENTION! Une source constante - n'est possible qu'a frequence nulle - en regime frequentiel - - - - - ERREUR! Une forme de la source du - type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. - - - - - ATTENTION! Une source constante n'est - possible qu'a frequence nulle en regime frequentiel - - - - - ERREUR! Une forme de la source du type - WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. - - - - + ATTENTION! Une source constante n'est possible qu'a frequence nulle en regime frequentiel - - ERREUR! ce groupe de maille (%s) n'a pas de prefixe - indiquant le type de materiau ou de source associee - - - - + ERREUR! ce groupe de maille (%s) n'a pas de prefixe valable - + ERREUR! ce type de bloc (%s) n'est pas valable - - - ERREUR! ce groupe de maille (%(nom)s) n'a pas - le prefixe correct pour etre associe a un type %(type_bloc)s - nom - - toutes les donnees ne sont pas connues @@ -574,11 +481,6 @@ Un nom de concept doit etre un identificateur Python - - - Nom de concept trop long (maxi 8 caracteres) - - Concept existant @@ -605,7 +507,7 @@ - + Nommage du concept effectue @@ -655,113 +557,101 @@ - + Impossible d'ajouter la commande - + Impossible d ajouter la commande - + Pas implemente - + Nom de concept deja defini - + Nom de concept deja defini : - + Impossible de trouver le fichier correspondant a l'unite - + n'est pas un fichier existant - - Impossible de relire le fichier %s - - - - - - Le fichier include contient des erreurs %s - - - - - + Fichier invalide %s - + Impossible de construire le jeu de commandes correspondant au fichier - + Erreur lors de l'evaluation du fichier inclus - + Ce fichier ne sera pas pris en compte %s - + Ce fichier ne sera pas pris en compte Le fichier associe n'est pas defini - + Le fichier n est pas defini - + le fichier doit contenir une unique variable de sortie - + Fichier invalide - + Le contenu de ce fichier ne sera pas pris en compte %s - + Le fichier INCLUDE n est pas defini - + Le contenu de ce fichier ne sera pas pris en compte - + Erreur lors de l'evaluation du fichier poursuite @@ -797,48 +687,139 @@ Le fichier associe n'est pas defini - + None n'est pas une valeur autorisee - + un concept de meme nom existe deja - + Concept cree - + La matrice n'est pas une matrice %(n_lign)d sur %(n_col)d n_lign - - Commande + + Eficas ne peut pas traiter plusieurs instructions + sur la meme ligne : %s + + + + + le texte a analyser n'est pas celui d'une commande ou + d'un operateur : %s + + + + + le texte a analyser n'est pas celui d'une commande connue : + %(v_1)s %(v_2)s + v_1 + + + + + le texte a analyser n'est pas celui d'une commande connue : + %(v_1)s %(v_2)s + v_1 + + + + + jdc %(v_1)s manque + fichier comm dans section %(v_2)s + v_1 + + + + + jdc %(v_1)s + fichier include %(v_2)s, %(v_3)s + n'existe pas + v_1 + + + + + jdc %(v_1)s manque fichier comm + dans section %(v_2)s + v_1 + + + + + jdc %(v_1)s, le fichier de commandes + %(v_2)s n'existe pas + v_1 + + + + + ATTENTION! Une source constante + n'est possible qu'a frequence nulle + en regime frequentiel + + + + + ERREUR! Une forme de la source du + type WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. + + + + + ATTENTION! Une source constante n'est + possible qu'a frequence nulle en regime frequentiel + + + + + ERREUR! Une forme de la source du type + WAVEFORM_CONSTANT ou WAVEFORM_SINUS est attendue. + + + + + ERREUR! ce groupe de maille (%s) n'a pas de prefixe + indiquant le type de materiau ou de source associee + + + + + ERREUR! ce groupe de maille (%(nom)s) n'a pas + le prefixe correct pour etre associe a un type %(type_bloc)s + nom - - Concept/Valeur + + + Include Invalide. + ne sera pas pris en compte - - probleme d environnement + + Impossible de relire le fichier %s + - - L environnement doit etre en QT4 + + Le fichier include contient des erreurs - + n'est pas un index valide pour append_brother @@ -853,104 +834,104 @@ Le fichier associe n'est pas defini - + Impossible de supprimer un mot-cle obligatoire - + Mot-cle %s supprime - + Pb interne : impossible de supprimer ce mot-cle - + Commentaire supprime - + Commande %s supprimee - + Pb interne : impossible de supprimer cet objet - + Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas - + Include vide - + L'include doit etre correctement initialise pour etre visualise - + Impossible de supprimer ce mot-clef - + View3D - + affiche dans Geom les elements de structure - + Graphique - + affiche la distribution - + Erreur interne - + La PDF de la loi ne peut pas etre affichee. - + &Annuler - + Impossible de supprimer un mot-clef obligatoire - + Mot-clef %s supprime - + Pb interne : impossible de supprimer ce mot-clef @@ -970,3078 +951,1929 @@ Le fichier associe n'est pas defini - - pour - - - - + Erreur fatale au chargement de %s - + Erreur fatale au chargement d'un fichier - + fichier modifie - + Attention! fichier change hors EFICAS - + Type de fichier non reconnu - + EFICAS ne sait pas ouvrir le type de fichier %s - + EFICAS ne sait pas ouvrir ce type de fichier - + Copie impossible - + Veuillez selectionner un objet a copier - + Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne - + Aucun Objet n a ete copie ou coupe - + Copie refusee - + Eficas n a pas reussi a copier l objet - + Copie refusee pour ce type d objet - + Deplacement refuse - + Deplacement refuse entre 2 fichiers. Seule la copie est autorisee - + Copie impossible a cet endroit - + Veuillez selectionner une commande, un parametre, un commentaire ou une macro - + Choix d'un fichier XML - + Le fichier contient une commande MODEL - + Donnez le nom du fichier XML qui contient la description des variables - + Ouvrir Fichier - + Erreur a la generation - + EFICAS ne sait pas convertir ce JDC - + Format %s non reconnu - - EFICAS ne sait pas convertir le JDC selon le format %s + + EFICAS ne sait pas convertir le JDC selon le format - + Execution impossible - + le JDC doit etre valide pour une execution MAP - + le JDC doit contenir un et un seul composant - - le JDC doit etre sauvegarde avant execution + + le JDC doit etre valide pour une execution + + + + + Sauvegarder SVP avant l'execution - + sauvegarde - + Sauvegarde du Fichier - + Le fichier <b>%s</b> existe deja. - + &Ecraser - + + Sauvegarde de l'input impossible + + + + + Un JdC valide est necessaire pour creer un .input + + + + + Choix du composant obligatoire + + + + Choix unite %d - - Le fichier %s contient une commande INCLUDE + + Le fichier %s contient une commande INCLUDE - + Donnez le nom du fichier correspondant a l unite logique - + Fichier pour unite - + Choix d'un fichier de poursuite - + Le fichier %s contient une commande POURSUITE - - Donnez le nom du fichier dont vous + + Donnez le nom du fichier dont vous voulez faire une poursuite - - Traduire Fichier + + Fichiers Med (*.med);;Tous les Fichiers (*) - - Fichiers JDC (*.comm);;Tous les Fichiers (*) + + Fichier Med - - Fichier Traduit : %s - - + + Veuillez selectionner un fichier Med - - Pas de difference entre le fichier origine et le fichier traduit + + chaine de caracteres - - %d versions du catalogue sont disponibles + + reel - - La cardinalite n'est pas correcte, la derniere valeur est ignoree + + entier - - n est pas un tuple de + + complexe - - valeurs + + Matrice - - est un nom valide pour une FORMULE + + fichier - - n'est pas un nom valide pour une FORMULE + + fichier existant - - Argument(s) valide(s) pour une FORMULE + + repertoire - - Argument(s) invalide(s) pour une FORMULE + + Entrez - - Corps de FORMULE valide + + Entrez entre - - Corps de FORMULE invalide + + et - - La commande Include n a pas encore de fichier associe + + Type de base inconnu - - Fichier introuvable + + Aide Indisponible - - Fichier modifie : + + l'aide n est pas installee - - Erreur fatale au chargement du fichier Include + + Visualisation Fichier - - Impossible de lire le fichier : Format inconnu + + Impossibilite d'afficher le Fichier - - Fichier Include + + Sauvegarder Fichier - - Tous les Fichiers (*);;Fichiers JDC (*.comm);; + + Fichier selectionne - - Entrer un float SVP + + Selection - - Entrer un float inferieur a + + Export Med vers Fichier - - Entrer un float superieur a + + Impossibilite d exporter le Fichier - - Mauvaise execution + + Traduire Fichier - - impossible d executer la methode + + Fichiers JDC (*.comm);;Tous les Fichiers (*) - - Mauvaise Commande + + Fichier Traduit : %s + + - - Aucune variable connue + + Pas de difference entre le fichier origine et le fichier traduit - - Mauvaise dimension de matrice + + objet valide - - le nombre de ligne n est pas egal a + + %d versions du catalogue sont disponibles - - le nombre de colonne n est pas egal a + + Commande non choisie - - Mauvaise Valeur + + Vous devez choisir une commande - - l element + + Sauvegarder le fichier - - n est pas correct + + Le fichier <b>%(v_1)s</b> n'a pu etre sauvegarde. <br>Raison : %(v_2)s + v_1 - - Champ non rempli + + Options pour + - - Le champ Catalogue doit etre rempli + + valeurs - - Restauration des parametres par defaut + + Nombre minimal de valeurs : - - Votre fichier editeur sera ecrase. + + Nombre maximal de valeurs : - - &Ok + + Une chaine de caracteres est attendue. - - &Abandonner + + Un reel est attendu. - - Entrer un nom de parametre + + Un entier est attendu. - - Valeur incorrecte + + Une Matrice est attendue. - - Valeur correcte + + Un fichier est attendu. - - Les noms de parametre doivent commencer par une lettre ou un souligne + + Un repertoire est attendu. - - PDF de la loi : + + expression valide - - Tri Alpha + + expression invalide - - Tri Cata + + l expression n est pas de la forme a+bj - - La liste comporte trop d elements : la cardinalite maximale est + + expression n est pas de la forme a+bj - - La liste ne comporte pas suffisament d elements : la cardinalite minimale est + + entrer une seule valeur SVP - - Valeur Acceptee + + saisir le type de complexe - - Valeurs Ajoutees + + Valeur du mot-cle enregistree - - Fichier de donnees + + Valeur du mot-cle non autorisee - - Tous les Fichiers (*) + + &Recents - - Entrez + + Aide specifique - - valeurs + + Options - - Entrez entre + + Traduction - - et + + TraduitV7V8 - - Autre Fichier + + TraduitV8V9 - - Edit + + TraduitV9V10 - - Fichier Poursuite + + Acquiert Groupe Maille - - Fichiers .comm (*.comm);;Tous les Fichiers (*) + + Accquisition Groupe Maille - - Fichier modifie : %s + + Specificites Maille - - Un objet de type %s est attendu + + version - - Selection + + pour - - Une chaine de caracteres est attendue. + + Parametrage - - Un reel est attendu. + + Veuillez d abord choisir un code - - Un entier est attendu. + + Pas de possibilite de personnalisation de la configuration - - Une Matrice est attendue. + + &Effacer - - Un fichier est attendu. + + Veuillez entrer le complexe sous forme aster ou sous forme python - - Un repertoire est attendu. + + Import du catalogue - - Type de base inconnu + + Pas de catalogue defini pour le code - - Visualisation Fichier + + Aucun catalogue trouve - - Impossibilite d'afficher le Fichier + + Impossible d'importer le catalogue - - Sauvegarder Fichier + + avec le catalogue - - Fichier selectionne + + Choix d une version du code - - expression valide + + Choix d une version - - expression invalide + + Parametre - - expression n est pas de la forme a+bj + + Insere un parametre - - entrer une seule valeur SVP + + item invalide - - saisir le type de complexe + + l item doit etre valide - - Un complexe est attendu + + &Ok + &Ok + + + + apres - - Aucun Objet de ce type n'est defini + + Insere un commentaire apres la commande - - Nouvelle Commande + + avant - - Nommer Concept + + Insere un commentaire avant la commande - - Ajouter Mot-Clef + + Insere un parametre apres la commande - - Definition Formule + + Insere un parametre avant la commande - - Valeur Parametre + + Supprimer - - <font size="+1"><p align="center">Structures de donnees a enrichir - par l'operateur courant :</p></font> + + supprime le mot clef - - Sauvegarder le fichier + + Documentation - - Le fichier <b>%(v_1)s</b> n'a pu etre sauvegarde. <br>Raison : %(v_2)s - v_1 + + documentation sur la commande - - &Recents + + Documentation Vide - - Aide specifique + + Aucune documentation n'est associee a ce noeud - - Traduction + + impossible de trouver la commande - - Options + + Lecteur PDF - - TraduitV7V8 + + impossible d'ouvrir - - TraduitV8V9 + + Commentaire - - TraduitV9V10 + + ce noeud - - Acquiert Groupe Maille + + commente le noeud - - Specificites Maille + + Fichiers JDC (*.comm);;Tous les Fichiers (*) - - version + + &Quitter - - Aide Indisponible + + Quitter - - QT Assistant n est pas installe + + Fichier Duplique - - Parametrage + + Le fichier ne sera pas sauvegarde. - - Veuillez d abord choisir un code + + Fichier - - Pas de possibilite de personnalisation de la configuration + + Le fichier <b>%s</b> est deja ouvert. - - &Effacer + + &Duplication - - Attention, valeurs modifiees + + &Abort - - Valeur selectionnee : + + Fichier non encore nommé - - Pas de valeur selectionnee + + Fichier Modifie - - Pas de valeur entree + + Le fichier %s n a pas ete sauvegarde. - - Veuillez entrer le complexe sous forme aster ou sous forme python + + &Sauvegarder - - Valeur du mot-clef enregistree + + SOURCE - - Valeur du mot-clef non autorisee : + + EnveloppeConnexeInducteur - - Import du catalogue + + EnveloppeConnexe2 - - Pas de catalogue defini pour le code + + VecteurDirecteur - - Aucun catalogue trouve + + Centre - - avec le catalogue + + SectionBobine - - Impossible d'importer le catalogue + + Amplitude - - Choix d une version du code + + NbdeTours - - Choix d une version + + CONDUCTEUR - - Parametre + + Conductivite - - Insere un parametre + + PermeabiliteRelative - - item invalide + + NOCOND - - l item doit etre valide + + VCUT - - apres + + Orientation - - Insere un commentaire apres la commande + + ZS - - avant + + PARAMETRES - - Insere un commentaire avant la commande + + RepCarmel - - Insere un parametre apres la commande + + TypedeFormule - - Insere un parametre avant la commande + + Frequence - - Supprimer + + Nb_Max_Iterations - - supprime le mot clef + + Erreur_Max - - Documentation + + PARAMETRE - - documentation sur la commande + + Valeur non modifiable - - Documentation Vide + + Nom de concept invalide. '%s' est un mot-clé réservé. - - Aucune documentation n'est associee a ce noeud + + Impossible de trouver le fichier correspondant a l unite %s - - impossible de trouver la commande + + %s n'est pas un fichier existant - - Lecteur PDF + + concept '%s' absent du contexte de %s - - impossible d'ouvrir + + Etape : - - Commentaire + + ligne : - - ce noeud + + fichier : - - commente le noeud + + Fin Etape : - - Fichiers JDC (*.comm);;Tous les Fichiers (*) + + DEBUT CR validation : - - &Quitter + + FIN CR validation : - - Quitter + + Mot-clé : %s obligatoire non valorisé - - Fichier Duplique + + None n'est pas une valeur autorisée - - Le fichier ne sera pas sauvegarde. + + Mot-clé %s invalide : %s +Critère de validité: %s - - Fichier + + Mot-clé simple : - - Le fichier <b>%s</b> est deja ouvert. + + Fin Mot-clé simple : - - &Duplication + + Mot-clé simple : %s %s - - &Abort + + Mot-clef simple : - - Sans nom %s + + Mot-cle simple : - - Fichier Modifie + + None n'est pas ujjjjjjjjjne valeur autorisée + + + Aide - - Le fichier %s n a pas ete sauvegarde. + + Aide - - &Sauvegarder + + Index - - entiers + + Back - - complexes + + Forward + + + ChoixCommandes - - n'est pas un fichier valide + + DMacro - - n'est pas un repertoire valide + + <html><head/><body><p> Recherche Commande</p></body></html> - - Type non encore gere + + Alphabetique - - de type + + Par Groupe + + + + + Mise en données de la commande sélectionnée dans l'arbre. Un double-clic permet également de choisir une commande - - n'est pas d'un type autorise: + + &Formulaire - - Nombre incorrect d'arguments de + + Shift+A, Alt+A, Alt+A, Alt+A + + + DChoixCata - - La valeur : + + Choix d'une version du code Aster - - ne fait pas partie des choix possibles + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">2 versions sont disponibles</span></p></body></html> - - est en dehors du domaine de validite [ + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> +<tr> +<td style="border: none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large;">Veuillez choisir celle avec laquelle</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large;"> vous souhaitez travailler</span></p></td></tr></table></body></html> - - n'est pas une chaine de longueur comprise entre + + &OK - - TXM de longueur entre + + &Cancel + + + + + DSelVal + + + Sélection de valeurs - - valeur valide + + Separateur - - valeur obligatoire + + espace - - ne contient pas les elements obligatoires : + + virgule - - La valeur n'est pas dans la liste des choix possibles + + point-virgule - - : pas de presence de doublon dans la liste + + validation de la saisie - - Les doublons ne sont pas permis + + &Ajouter Selection - - est un doublon + + Shift+A, Alt+A, Alt+A, Alt+A - - longueur de la chaine entre + + &Importer Tout + + + Eficas - - Longueur de la chaine incorrecte + + MainWindow - - n'est pas une chaine + + &Fichier - - n'est pas de la bonne longueur + + &Aide - - verifier que c'est une chaine + + toolBar - - Ce n'est pas une chaine + + &Nouveau - - liste + + Ctrl+N - - La liste doit etre en ordre + + Nouvel Include - - n'est pas par valeurs croissantes + + &Ouvrir - - n'est pas par valeurs decroissantes + + Ctrl+O - - n'est pas du bon type + + Enregistrer - - doit être inférieur a + + Enregistrer sous - - valeur dans l 'intervalle + + Fermer - - devrait etre comprise entre + + Ctrl+W - - La valeur doit etre comprise entre + + Fermer tout - - doit etre inferieur a + + Couper - - La longueur doit etre comprise entre + + Ctrl+X - - Le cardinal de la liste doit etre compris entre + + Copier - - devrait etre de longueur inferieure a + + Ctrl+C - - devrait etre de longueur superieure a + + Coller - - valeur paire + + Ctrl+V - - La valeur saisie doit etre paire + + Quitter - - contient des valeurs non paires + + Ctrl+Q - - valeur dans + + Rapport de Validation - - contient des valeurs hors des choix possibles: + + Fichier Source + + + + + Fichier Résultat - - valeur + + Parametres Eficas - - pour la somme des cles A et B + + Lecteur documentation - - valeur de + + Eficas - - valeur d'instance de + + Version - - devrait etre de type + + Supprimer - - Un nom de fichier se terminant par + + Rechercher - - est attendu. + + Rechercher dans l'arbre d'etude - - chaines de caracteres + + Ctrl+F - - reels + + Replier/Deplier - - un booleen est attendu + + Tab 1 - - - Aide - - Aide + + &Edition + + + + + &JeuDeDonnées - - Index + + Shift+I - - Back + + Ctrl+S - - Forward + + Ctrl+Shift+S - - - ChoixCode - - Choix du code + + Shift+V - - OK + + Chercher Mot-Clef - - Cancel + + Rechercher dans le catalogue - - Veuillez choisir un code : + + Shift+F - - - ChoixMap - - Dialog + + Shift+D - - Family + + Commentaire - - scc + + Shift+C + + + + + Paramètres + + + + + Gestion des paramètres - - concrete + + Shift+P - - image + + Parametre Eficas - - pre + + Execution - - post + + Execution - - solver + + Save Run - - transverse + + Patrons + + + JDCEditor - - Entity + + Save File - - scheme description : + + The file <b>%1</b> could not be saved.<br>Reason: %2 - - Doc + + JDC (*.comm);;All Files (*) + + + &Abandonner + &Abandonner + - DBool + Widget4a6RadioButton - - DUnIn + + Form - - Saisir Valeur + + ... - - Vrai + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - - TextLabel + + RadioButton + + + WidgetBloc - - Faux + + Form - DChoixCata + WidgetCB - - Choix d'une version du code Aster + + Form - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">2 versions sont disponibles</span></p></body></html> - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<table style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> -<tr> -<td style="border: none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large;">Veuillez choisir celle avec laquelle</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large;"> vous souhaitez travailler</span></p></td></tr></table></body></html> - - - - - &OK - - - - - &Cancel - - - - - DComm - - - DComm - - - - - Ajouter Mot-Clef - - - - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - - - - - <h3><p align="center"><u><b>Règles</b></u></p></h3> - - - - - Nommer Concept - - - - - Concept - - - - - <u>Nom du concept :</u> - - - - - <u>Type du concept :</u> - - - - - L'opérateur retourne un concept de type : - - - - - TypeDuConcept - - - - - Nouvelle Commande - - - - - <b><u>Commandes :</u></b> - - - - - Affichage - - - - - alphabétique - - - - - par groupe - - - - - Filtre - - - - - Suivant - - - - - La commande choisie sera ajoutée APRES la commande courante - - - - - Tri Alpha - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DComment - - - DComm - - - - - Commentaire - - - - - Nouvelle Commande - - - - - <b><u>Commandes :</u></b> - - - - - Affichage - - - - - alphabétique - - - - - par groupe - - - - - Filtre - - - - - Suivant - - - - - La commande choisie sera ajoutée APRES la commande courante - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DError - - - DInactif - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> -<tr> -<td style="border: none;"> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Le noeud selectionné</span></p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">ne correspond pas</span></p> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">à un noeud actif</span></p></td></tr></table></body></html> - - - - - suppression du mot clef - - - - - &Supprimer - - - - - Alt+S - - - - - DFormule - - - DMacro - - - - - Définition Formule - - - - - <h3><p align="center"><u><b>Nom de la formule</b></u></p></h3> - - - - - Retour-Chariot permet de vérifier que l'expression est valide. - - - - - <h1><b>(</b></h1> - - - - - <h1><b>)</b></h1> - - - - - variables séparées par des "," - par ex. : x,y,z - - - - - Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles -valeurs seront effectivement prises en compte - - - - - <font size="+4" face="Helvetica"><b>=</b></font> - - - - - <h3><p align="center"><u><b>Expression</b></u></p></h3> - - - - - <h3><p align="center"><u><b>Arguments</b></u></p></h3> - - - - - Nouvelle Commande - - - - - <b><u>Commandes :</u></b> - - - - - Affichage - - - - - alphabétique - - - - - par groupe - - - - - Filtre - - - - - Suivant - - - - - La commande choisie sera ajoutée APRES la commande courante - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DInactif - - - DInactif - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;">Seules les commandes placées</span></p> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:x-large;"><span style=" font-size:x-large;"> entre : DEBUT / FIN sont actives </span></p></body></html> - - - - - suppression du mot clef - - - - - &Supprimer - - - - - Alt+S - - - - - <html><head/><body><p align="center"><span style=" font-size:16pt;">Le noeud sélectionné</span></p><p align="center"><span style=" font-size:16pt;">ne correspond pas à un objet actif</span></p></body></html> - - - - - DInc1 - - - DMacro - - - - - Ajouter Mot-Clef - - - - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - - - - - <h3><p align="center"><u><b>Régles</b></u></p></h3> - - - - - Nouvelle Commande - - - - - <b><u>Commandes :</u></b> - - - - - Affichage - - - - - alphabétique - - - - - par groupe - - - - - Filtre - - - - - Suivant - - - - - La commande choisie sera ajoutée APRES la commande courante - - - - - Fichier Include - - - - - <font size="+1">La commande INCLUDE requiert un nom de Fichier :</font> - - - - - Edit - - - - - Autre Fichier - - - - - Fichier Inc - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:large;"><span style=" font-size:11pt; font-weight:600;">La commande INCLUDE n'a pas de fichier associé. </span></p> -<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt; font-weight:600;"><span style=" font-size:large;">Il faut d'abord choisir un numéro d'unité</span></p></body></html> - - - - - Tri Alpha - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DLisParam - - - Sélection de paramétres - - - - - Valider - - - - - DMCFact - - - DMacro - - - - - Ajouter Mot-Clef - - - - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - - - - - <h3><p align="center"><u><b>Régles</b></u></p></h3> - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - Tri Alpha - - - - - DMCListAjout - - - Form1 - - - - - <p align="center"><font size="+1">Pour ajouter une autre occurrence</font></p> - - - - - <p align="center"><font size="+1">du mot clef-facteur</font> </p> - - - - - validation de la saisie - - - - - &Ajouter - - - - - Alt+A - - - - - <p align="center"><font size="+1">cliquez ci-dessous</font> </p> - - - - - <p align="center">AFFE</p> - - - - - DParam - - - DComm - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - Valeur Parametre - - - - - <u><b><p align="center">Parametre</p></b></u> - - - - - <b> Nom: </b> - - - - - <b> Valeur: </b> - - - - - Retour Chariot dans une sone de saisie permet de vérifier la validité de la valeur saisie. - - - - - Les modifications seront prises en compte en appuyant sur le bouton Valider. - - - - - Nouvelle Commande - - - - - <b><u>Commandes :</u></b> - - - - - Affichage - - - - - alphabétique - - - - - par groupe - - - - - Filtre - - - - - Suivant - - - - - La commande choisie sera ajoutée APRES la commande courante - - - - - DPlusBase - - - DUnIn - - - - - Saisir Valeur - - - - - <u><font size="+1">Valeur(s) actuelle(s)</font></u> - - - - - <font size="+1">Valeur</font> - - - - - ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection) - - - - - enleve l occurence selectionnee - - - - - Visualiser - - - - - suppression du mot clef - - - - - &Parametres - - - - - Alt+P - - - - - &Importer - - - - - Alt+I - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DPlusInto - - - DUnIn - - - - - Saisir Valeur - - - - - <u><font size="+1">Valeur(s) actuelle(s)</font></u> - - - - - <u><font size="+1">Valeur(s) possibles(s)</font></u> - - - - - enleve l occurence selectionnee - - - - - ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection) - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - Tri Alpha - - - - - DPour - - - DMacro - - - - - Ajouter Mot-Clef - - - - - <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> - - - - - <h3><p align="center"><u><b>Régles</b></u></p></h3> - - - - - Nouvelle Commande - - - - - <b><u>Commandes :</u></b> - - - - - Affichage - - - - - alphabétique - - - - - par groupe - - - - - Filtre - - - - - Suivant - - - - - La commande choisie sera ajoutée APRES la commande courante - - - - - Fichier Poursuite - - - - - <font size="+1">La commande POURSUITE requiert un nom de Fichier :</font> - - - - - Autre Fichier - - - - - Edit - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - BAlpha - - - - - DRac - - - DMacro - - - - - <b><u>Commandes :</u></b> - - - - - <p align="center"><b><u>Régles :</u></b></p> - - - - - alphabétique - - - - - par groupe - - - - - Filtre - - - - - Suivant - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DSelImage - - - Image Selection - - - - - DSelVal - - - Sélection de valeurs - - - - - Separateur - - - - - espace - - - - - virgule - - - - - point-virgule - - - - - Ajouter Selection - - - - - Importer Tout - - - - - DUnASSD - - - DUnIn - - - - - Saisir Valeur - - - - - <font size="+1"><p align="center">Structures de données du type -requis par l'objet courant :</p></font> - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DUnBase - - - DUnIn - - - - - Saisir Valeur - - - - - <b><u><p align="center">Valeur: </p></u></b> - - - - - Sélectionner - - - - - Visualiser - - - - - Paramètres - - - - - Fichier - - - - - Visualiser Fichier - - - - - Répertoire - - - - - TextLabel - - - - - validation de la saisie - - - - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A - - - - - DUnComp - - - DUnComp - - - - - Saisir Valeur - - - - - <font size="+2">Complexe de la forme : a+bj</font> - - - - - Ou - - - - - RI : Réel Imaginaire - - - - - MP: Module Phase - - - - - <font size="+2">Un complexe est attendu</font> - - - - - validation de la saisie + + ... - - &Valider - - - - - Shift+A, Alt+A, Alt+A, Alt+A + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - DUnIn + WidgetCommande - - DUnIn + + DCommandeUnique - - - Saisir Valeur + + + Affiche le rapport de validité de la commande - - <b><u><p align="center">Valeurs possibles</p></u></b> + + ... - - validation de la saisie + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> - - - &Valider + + + Nom de l'objet. Seuls, les objets valides peuvent être nommés - - - Shift+A, Alt+A, Alt+A, Alt+A + + + Lance un script associé à la commande - - Tri alpha + + ouvre un navigateur sur l'aide contextuelle - - - DUnSDCO - - - DUnIn + + + affiche les régles de validité - - - Saisir Valeur + + + Détruit la commande - - validation de la saisie + + Affiche les commandes possibles - - &Valider + + &Commandes - + Shift+A, Alt+A, Alt+A, Alt+A - - - <h1><font size="+2">Nom du nouveau concept : </font></h1> - - - - - <font size="+1">Un objet de type CO est attendu</font> - - - DUnSDCOInto - - - DUnIn - - + WidgetCommentaire - - Saisir Valeur + + DCommandeUnique - - <font size="+1"><u>Structures de données du type requis par l'objet courant </u></font> + + Affiche le rapport de validité de la commande - - <font size="+1">Un objet de type CO est attendu</font> + + ... - - <font size="+1"> Nom concept : </font> + + <html><head/><body><p><span style=" color:#0000ff;">Commentaire</span></p></body></html> - - validation de la saisie + + Affiche les commandes possibles - - &Valider + + &Catalogue - + Shift+A, Alt+A, Alt+A, Alt+A - - - DVisu - - - Visualisation Include Materiau + + + Détruit le commentaire - Eficas - - - MainWindow - - - - - &Fichier - - + WidgetFact - - Edition + + Form - - JdC + + ... - - &Aide + + <html><head/><body><p><span style=" font-style:italic;">TextLabel</span></p></body></html> + + + WidgetFactPlie - - toolBar + + Form - - &Nouveau + + ... - - Ctrl+N + + TextLabel + + + WidgetOptionnel - - Nouvel Include + + WidgetOptionnel - - &Ouvrir + + <html><head/><body><p><span style=" color:#0000ff;">commande </span></p></body></html> - - Ctrl+O + + validation de la saisie - - Enregistrer + + &Ajouter - - Ctrl+E + + Shift+A, Alt+A, Alt+A, Alt+A + + + WidgetPlusieursBase - - Enregistrer sous + + Form - - Ctrl+Shift+E + + ... - - Fermer + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + WidgetPlusieursInto - - Ctrl+W + + Form - - Fermer tout + + ... - - Couper + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + WidgetRadioButton - - Ctrl+X + + Form - - Copier + + ... - - Ctrl+C + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - - Coller + + RadioButton + + + WidgetSimpBase - - Ctrl+V + + Form - - Quitter + + ... - - Ctrl+Q + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> + + + WidgetSimpBool - - Rapport de Validation + + Form - - Fichier Source - - - - - Fichier Résultat + + ... - - Parametres Eficas + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - - Lecteur documentation + + True - - Eficas + + False + + + WidgetSimpComplexe - - Version + + Form - - Supprimer + + ... - - Rechercher + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - - Rechercher dans l'arbre d'etude + + Complexe : a+bj - - Ctrl+F + + <html><head/><body><p align="center"><span style=" font-weight:600;">OU </span></p></body></html> - - - Replier/Deplier + + + Réel/Imaginaire - - Ctrl++ + + Module/Phase + + + WidgetSimpFichier - - Execution + + Form - - Execution + + ... - - Patrons + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - JDCEditor - - - Save File - - - - - The file <b>%1</b> could not be saved.<br>Reason: %2 - - + WidgetSimpTxt - - JDC (*.comm);;All Files (*) + + Form - - &Abandonner + + ... - - - LabelPixmap - - PDF de la loi + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - Options + WidgetTuple2 - - Fichier Catalogue + + Form - - Le Fichier n existe pas. Voulez-vous supprimer cette version ? + + ... - - &Oui + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - - &Non + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> - - Restauration des parametres par defaut + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> - - Votre fichier editeur sera ecrase. + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + WidgetTuple3 - - &Ok + + Form - - &Abandonner + + ... - - Repertoire de Documentation + + <html><head/><body><p><span style=" color:#0055ff;">Label</span></p></body></html> - - Le Repertoire n existe pas. + + <html><head/><body><p><span style=" font-size:14pt;">(</span></p></body></html> - - Repertoire De Sauvegarde + + <html><head/><body><p><span style=" font-size:14pt;">,</span></p></body></html> - - Le Repertoire + + <html><head/><body><p><span style=" font-size:14pt;">)</span></p></body></html> + + + baseWidget - - Dossier de sauvegarde par defaut - Dossier de sauvegarde par défaut - - - - Le dossier n'existe pas. - Le dossier n'existe pas. - - - - &Ok - &Ok - - - - &Abandonner - &Abandonner - - - - Repertoire Open TURNS + + DMacro @@ -4063,212 +2895,6 @@ requis par l'objet courant :</p></font> - - desMatrice - - - Dialog - - - - - Valider - - - - - desOptions - - - Option TURNS - - - - - Configurer une Version - - - - - Valider - - - - - Fichier catalogue (chemin complet) : - - - - - Ajouter -Version : - - - - - Supprimer -Version : - - - - - Doc - - - - - Répertoire d'accès à la documentation : - - - - - Espace de travail - - - - - Répertoire de sauvegarde par défaut : - - - - - Réinitialiser avec les valeurs par defaut - - - - - Quitter - - - - - Options Aster - - - - - Répertoire d'accès au catalogue : - - - - - Répertoire d'accès aux matériaux : - - - - - Repertoire d'acces à la documentation : - - - - - Gérer les versions - - - - - Sauvegarde - - - - - Repertoire de sauvegarde : - - - - - Reinitialiser avec les valeurs par defaut - - - - - Configurer les répertoires - - - - - Répertoire d'installation d'Open TURNS : - - - - - Répertoire d'installation des codes MAP : - - - - - Répertoire d'installation de code_Aster : - - - - - Schema - - - - - Options Map - Options Map - - - - Dossier de sauvegarde : - Dossier de sauvegarde : - - - - Choisir le dossier - Choisir le dossier - - - - Valider et fermer - Valider et fermer - - - - Valider - Valider - - - - Annuler - Annuler - - - - Configurer la bibliothèque Open TURNS - - - - - desPdf - - - Lire les Pdf - - - - - Lecteur Pdf : - - - - - acroread - - - - - Ok - - - - - Cancel - - - desRecherche @@ -4277,7 +2903,7 @@ Version : - + Suivant @@ -4285,12 +2911,12 @@ Version : self.appliEficas - + Wrapper Files (*.xml);;All Files (*) - + Noname diff --git a/UiQT4/makefile b/UiQT4/makefile index 807fa660..186c99bd 100644 --- a/UiQT4/makefile +++ b/UiQT4/makefile @@ -10,7 +10,7 @@ PY_FILES = desSelectVal.py desViewTexte.py desChoixCommandes.py desWidgetComman desWidgetSimpBool.py desWidgetSimpComplexe.py desWidgetSimpTuple.py myMain.py \ desChoixCata.py desWidgetPlusieursInto.py desBaseWidget.py desWidgetOptionnel.py \ desWidgetSimpFichier.py desWidgetSimpTxt.py desRecherche.py desWidgetCommentaire.py\ - desWidgetTuple2.py desWidgetTuple3.py + desWidgetTuple2.py desWidgetTuple3.py desWidgetParam.py QM_FILES=eficas_en.qm diff --git a/UiQT4/myMain.ui b/UiQT4/myMain.ui index 075ef86e..bbe8960b 100644 --- a/UiQT4/myMain.ui +++ b/UiQT4/myMain.ui @@ -106,6 +106,9 @@ QMenuBar { 0 + + true + Tab 1 diff --git a/Validation/V_ETAPE.py b/Validation/V_ETAPE.py index 0a38fbe0..fd2c9f08 100644 --- a/Validation/V_ETAPE.py +++ b/Validation/V_ETAPE.py @@ -39,6 +39,13 @@ from Noyau.N_Exception import AsException from Noyau.N_utils import AsType from Noyau.strfunc import ufmt +try : + from Extensions.i18n import tr +except : + def tr(txt): + return txt + + class ETAPE(V_MCCOMPO.MCCOMPO): """ """ @@ -220,17 +227,18 @@ class ETAPE(V_MCCOMPO.MCCOMPO): """ Methode pour generation d un rapport de validite """ - self.cr=self.CR(debut=u'Etape : '+self.nom \ - + u' ligne : '+`self.appel[0]`\ - + u' fichier : '+`self.appel[1]`, - fin = u'Fin Etape : '+self.nom) + self.cr=self.CR(debut=tr('Etape : ')+tr(self.nom) +' ' \ + + tr(' ligne : ')+`self.appel[0]`\ + + tr(' fichier :')+`self.appel[1]`, + fin = tr('Fin Etape : ')+tr(self.nom)) self.state = 'modified' try: self.isvalid(cr='oui') except AsException,e: if CONTEXT.debug : traceback.print_exc() - self.cr.fatal(_(u'Etape : %s ligne : %r fichier : %r %s'), - self.nom, self.appel[0], self.appel[1], e) + self.cr.fatal(tr('Etape : ')+tr(self.nom) \ + + tr(' ligne : ')+`self.appel[0]`\ + + tr(' fichier :')+`self.appel[1]`, +e) for child in self.mc_liste: self.cr.add(child.report()) return self.cr diff --git a/Validation/V_JDC.py b/Validation/V_JDC.py index dca46405..a80cd175 100644 --- a/Validation/V_JDC.py +++ b/Validation/V_JDC.py @@ -32,6 +32,14 @@ from Noyau.N_Exception import AsException from Noyau.N_utils import AsType from Noyau.strfunc import ufmt + +try : + from Extensions.i18n import tr +except : + def tr(txt): + return txt + + class JDC(V_MCCOMPO.MCCOMPO): """ """ @@ -41,8 +49,8 @@ class JDC(V_MCCOMPO.MCCOMPO): Methode pour generation d un rapport de validite """ self.cr.purge() - self.cr.debut="DEBUT CR validation : "+self.nom - self.cr.fin="FIN CR validation :"+self.nom + self.cr.debut=tr("DEBUT CR validation : ")+self.nom + self.cr.fin=tr("FIN CR validation : ")+self.nom for e in self.etapes : if e.isactif(): self.cr.add(e.report()) diff --git a/Validation/V_MCSIMP.py b/Validation/V_MCSIMP.py index 45ac1820..1fb7bee4 100644 --- a/Validation/V_MCSIMP.py +++ b/Validation/V_MCSIMP.py @@ -36,6 +36,15 @@ from Noyau.N_VALIDATOR import ValError,TypeProtocol,CardProtocol,IntoProtocol from Noyau.N_VALIDATOR import listProto from Noyau.strfunc import ufmt +try : + from Extensions.i18n import tr +except : + def tr(txt): + return txt + +print '___________' +print (tr(u"None n'est pas une valeur autorisée")) +print '___________' class MCSIMP: """ COMMENTAIRE CCAR: @@ -96,7 +105,7 @@ class MCSIMP: # verification presence if self.isoblig() and v == None : if cr == 'oui' : - self.cr.fatal(_(u"Mot-clé : %s obligatoire non valorisé"), self.nom) + self.cr.fatal(_(tr(u"Mot-clé : %s obligatoire non valorisé")), self.nom) valid = 0 lval=listProto.adapt(v) @@ -109,7 +118,7 @@ class MCSIMP: if lval is None: valid=0 if cr == 'oui' : - self.cr.fatal(_(u"None n'est pas une valeur autorisée")) + self.cr.fatal(_(tr(u"None n'est pas une valeur autorisée"))) else: # type,into ... #typeProto=TypeProtocol("type",typ=self.definition.type) @@ -149,7 +158,7 @@ class MCSIMP: try: self.definition.validators.convert(lval) except ValError,e: - self.cr.fatal(_(u"Mot-clé %s invalide : %s\nCritère de validité: %s"), + self.cr.fatal(_(tr(u"Mot-clé %s invalide : %s\nCritère de validité: %s")), self.nom, str(e), self.definition.validators.info()) valid=0 else: @@ -185,14 +194,14 @@ class MCSIMP: def report(self): """ génère le rapport de validation de self """ self.cr=self.CR() - self.cr.debut = u"Mot-clé simple : "+self.nom - self.cr.fin = u"Fin Mot-clé simple : "+self.nom + self.cr.debut = tr("Mot-clef simple : ")+tr(self.nom) + self.cr.fin = tr(u"Fin Mot-clé simple : ")+tr(self.nom) self.state = 'modified' try: self.isvalid(cr='oui') except AsException,e: if CONTEXT.debug : traceback.print_exc() - self.cr.fatal(_(u"Mot-clé simple : %s %s"), self.nom, e) + self.cr.fatal(_(tr(u"Mot-clé simple : %s %s")), self.nom, e) return self.cr -- 2.39.2