notOk = std::remove(fileName.c_str());
if (notOk) errStr = ToComment(" \n error while removing file : ")
<< fileName;
- else errStr= ToComment("\n file : ")<< fileName << " succesfully deleted! \n ";
-
- return errStr;
+ else errStr= ToComment("\n file : ")<< fileName << " succesfully deleted! \n ";
+
+ return errStr;
}
std::string remove_extension(const std::string& filename) {
size_t lastdot = filename.find_last_of(".");
if (lastdot == std::string::npos) return filename;
- return filename.substr(0, lastdot);
+ return filename.substr(0, lastdot);
}
namespace
{
_defaultOptionValues["adaptation" ] = "both";
_defaultOptionValues["components" ] = "outside components";
- _defaultOptionValues["compute_ridges" ] = "yes";
+ _defaultOptionValues["compute_ridges" ] = "yes";
_defaultOptionValues["max_memory" ] = ToComment(defaultMaximumMemory());
}
myUseNoTimeStep = false;
//~med_int aRank, tmst;
//~std::string fieldFile = useBackgroundMap ? sizeMapFile : medFileIn;
- //~getTimeStepInfos(fieldFile, tmst, aRank);
+ //~getTimeStepInfos(fieldFile, tmst, aRank);
//~setRankTimeStep((int) tmst, (int) aRank);
}
void MgAdapt::setNoTimeStep()
-{
+{
myUseLastTimeStep = false;
myUseChosenTimeStep = false;
myUseNoTimeStep = true;
//~setRankTimeStep(tmst, aRank);
}
void MgAdapt::setChosenTimeStepRank()
-{
+{
myUseLastTimeStep = false;
myUseChosenTimeStep = true;
myUseNoTimeStep = false;
else if (data->myUseLastTimeStep)
setTimeStepRankLast();
else
- {
+ {
setChosenTimeStepRank();
setRankTimeStep(data->myTimeStep, data->myRank);
}
if (op_val->second != optionValue)
{
-
+
std::string lowerOptionValue = toLowerStr(optionValue);
const char* ptr = lowerOptionValue.c_str();
// strip white spaces
if (i == 0) {
// empty string
} else if (_charOptions.count(optionName)) {
- // do not check strings
+ // do not check strings
} else if (_doubleOptions.count(optionName)) {
// check if value is double
toDbl(ptr, &typeOk);
}
//================================================================================
/*!
- * \brief Converts a string to a lower
+ * \brief Converts a string to a lower
*/
//================================================================================
std::string MgAdapt::toLowerStr(const std::string& str)
}
else
{
- buf = std::cout.rdbuf();
+ buf = std::cout.rdbuf();
}
std::ostream logStream(buf);
-
+
std::unique_ptr <FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose );
if(!pipe)
{
err = 0;
}
/*
- * to delete tmp files .mesh, .sol and if needed
+ * to delete tmp files .mesh, .sol and if needed
* the log file
- *
+ *
*/
void MgAdapt::cleanUp()
{
std::string errStr;
if(toKeepWorkingFiles)
return;
- if(removeOnSuccess && printLogInFile)
+ if(removeOnSuccess && printLogInFile)
tmpFilesToBeDeleted.push_back(logFile);
-
+
std::vector< std::string>::iterator it = tmpFilesToBeDeleted.begin();
for (; it!=tmpFilesToBeDeleted.end(); ++it)
{
{
appendMsgToLogFile(errStr);
}
-
+
}
}
void MgAdapt::appendMsgToLogFile(std::string& msg)
{
- std::ofstream logStream;
+ std::ofstream logStream;
logStream.open(logFile, std::ofstream::out | std::ofstream::app);
logStream<< msg;
- logStream.close();
+ logStream.close();
}
//================================================================================
/*!
cmd+= " --write_sizemap "+ solFileOut;
solFormatOutput.push_back(solFileOut);
tmpFilesToBeDeleted.push_back(solFileOut);
- }
+ }
if (verbosityLevel != defaultVerboseLevel())
{
cmd+= " --verbose "+ ToComment(verbosityLevel);
}
-
+
std::string option, value;
bool isDefault;
const TOptionValues* options[] = { &_option2value, &_customOption2value };
std::vector<family>::const_iterator fIt = famVec.begin();
for (; fIt!=famVec.end(); ++fIt)
- {
+ {
try //
{
std::string givenFamNameFromMeshGemConverter = fileMesh->getFamilyNameGivenId( std::abs(fIt->_famId) );
catch (const std::exception& e)
{
std::cerr<<e.what();
- }
+ }
}
}
int fileId = writer.GmfOpenMesh( solFormatFieldFileName.c_str(), GmfWrite, version, dim);
int typTab[] = {GmfSca};
writer.GmfSetKwd(fileId, MeshFormat::GmfSolAtVertices, (int)nbNodes, 1, typTab);
- for (mcIdType i = 0; i<nbNodes; i++)
+ for (mcIdType i = 0; i<nbNodes; i++)
{
double valTab[1] = {constantValue};
writer.GmfSetLin( fileId, MeshFormat::GmfSolAtVertices, valTab);
tmpWriter.setMeshFileName(meshFormatsizeMapFile);
tmpWriter.setFieldFileNames( fieldFileNames);
tmpWriter.setMEDFileDS(tmpMfd);
- tmpWriter.write();
+ tmpWriter.write();
}
// =======================================================================
med_idt MgAdapt::openMedFile(const std::string aFile)
if(tmp_numdt > numdt)
{
numdt = tmp_numdt;
- numit = tmp_numit;
- }
+ numit = tmp_numit;
+ }
}
if ( erreur < 0 )
{
void MgAdapt::updateTimeStepRank()
{
-
+
med_int arank;
med_int tmst;
if (myUseNoTimeStep)
SMESH::str_array* str = model->getOptionValuesStrVec();
SMESH::str_array* str2 = model->getCustomOptionValuesStrVec();
std::vector<std::string> s;
- for (int i = 0; i< str->length(); i++) s.push_back( (*str)[i].in());
- for (int j = str->length(); j< str2->length(); j++) s.push_back((*str2)[ j - str->length() ].in() );
+ for (int i = 0; i< str->length(); i++) s.push_back( (*str)[i].in());
+ for (int j = str->length(); j< str2->length(); j++) s.push_back((*str2)[ j - str->length() ].in() );
//~str.insert( str.end(), str2.begin(), str2.end() );
myAdvOpt = new MgAdaptAdvWidget(myTabWidget, &s);
-
+
int argsTab = myTabWidget->addTab( myArgs, tr( "Args" ) );
int advTab = myTabWidget->addTab( myAdvOpt, tr( "ADVOP" ) );
// Initial state
setMode( Mesh, Local);
medFileCheckBox->setChecked(true);
+ visibleTimeStepRankLabel (false);
// Connections
connect( meshInGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( modeChanged( int ) ) );
{
noTimeStep->setChecked(true);
- rankLabel->setVisible(0);
- rankSpinBox->setVisible(0);
+ visibleTimeStepRankLabel (false);
rankSpinBox->setValue(-2);
-
- timeStepLabel->setVisible(0);
- timeStep->setVisible(0);
timeStep->setValue(-2);
lastTimeStep->setDisabled(disableOther);
chosenTimeStep->setDisabled(disableOther);
-
-
}
void SMESHGUI_MgAdaptArguments::onLastTimeStep(bool disableOther)
{
lastTimeStep->setChecked(true);
- rankLabel->setVisible(0);
- rankSpinBox->setVisible(0);
+ visibleTimeStepRankLabel (false);
rankSpinBox->setValue(-1);
-
- timeStepLabel->setVisible(0);
- timeStep->setVisible(0);
timeStep->setValue(-1);
noTimeStep->setDisabled(disableOther);
}
-
void SMESHGUI_MgAdaptArguments::onChosenTimeStep(bool disableOther, int max)
{
chosenTimeStep->setChecked(true);
- rankLabel->setVisible(1);
- rankSpinBox->setVisible(1);
+ visibleTimeStepRankLabel (true);
rankSpinBox->setValue(0);
-
- timeStepLabel->setVisible(1);
- timeStep->setVisible(1);
timeStep->setValue(0);
if (max) timeStep->setMaximum(max);
+}
+void SMESHGUI_MgAdaptArguments::visibleTimeStepRankLabel(bool visible)
+{
+ rankLabel->setVisible(visible);
+ rankSpinBox->setVisible(visible);
+
+ timeStepLabel->setVisible(visible);
+ timeStep->setVisible(visible);
}
void SMESHGUI_MgAdaptArguments::onSelectOutMedFilebutton()
if(it != optionTreeWidgetItem.end()) return; // option exist
else
{
- row = getNewQTreeWidgetItem(table, option, name, isCustom);
- }
+ row = getNewQTreeWidgetItem(table, option, name, isCustom);
+ }
}
- else
+ else
{
- row = getNewQTreeWidgetItem(table, option, name, isCustom);
+ row = getNewQTreeWidgetItem(table, option, name, isCustom);
}
row->setText( 0, tr( name.toLatin1().constData() ));
row->setText( 1, tr( value.toLatin1().constData() ));
QTreeWidgetItem* row = new QTreeWidgetItem( table );
row->setData( NAME_COL, EDITABLE_ROLE, int( isCustom && !option ));
row->setFlags( row->flags() | Qt::ItemIsEditable );
- optionTreeWidgetItem.insert(std::pair <QString, QTreeWidgetItem*> (name, row));
-
+ optionTreeWidgetItem.insert(std::pair <QString, QTreeWidgetItem*> (name, row));
+
return row;
}
/* default adaptation mode
* assume that if meshDim == 2 -->adaptation surface
* if meshDim == 3 and if there is not 2D mesh -->VOLUME
- * else BOTH
+ * else BOTH
*/
-
+
QString adaptation("adaptation"), value;
switch(aMode)
{
case ADAPTATION_MODE::SURFACE:
- {
- value ="surface";
+ {
+ value ="surface";
setOptionValue(adaptation, value);
break;
}
case ADAPTATION_MODE::BOTH :
{
- value = "both";
+ value = "both";
setOptionValue(adaptation, value);
break;
}
case ADAPTATION_MODE::VOLUME :
{
- value = "volume";
+ value = "volume";
setOptionValue(adaptation, value);
break;
}
- }
+ }
}
void MgAdaptAdvWidget::setOptionValue(QString& option, QString& value)
-{
+{
std::map<QString, QTreeWidgetItem *>::iterator it = optionTreeWidgetItem.find(option);
if (it != optionTreeWidgetItem.end())
std::string remove_extension(const std::string& filename) {
size_t lastdot = filename.find_last_of(".");
if (lastdot == std::string::npos) return filename;
- return filename.substr(0, lastdot);
+ return filename.substr(0, lastdot);
}
std::string remove_extension(const std::string& filename);\r
\r
\r
-enum ADAPTATION_MODE{
+enum ADAPTATION_MODE{\r
SURFACE, // surface adaption when meshDim == 2\r
- VOLUME, // \r
- BOTH
+ VOLUME, //\r
+ BOTH\r
};\r
//=================================================================================\r
// class : SMESHGUI_MgAdaptDlg\r
void onNoTimeStep(bool disableOther = false);\r
void onLastTimeStep(bool disableOther = false);\r
void onChosenTimeStep(bool disableOther = false, int max = 0);\r
+ void visibleTimeStepRankLabel(bool visible);\r
\r
private:\r
\r
private:\r
void setOptionValue(QString& option, QString& value);\r
std::map<QString, QTreeWidgetItem *> optionTreeWidgetItem;\r
- \r
+\r
QTreeWidgetItem* getNewQTreeWidgetItem(QTreeWidget* table, const char* option, QString& name, bool isCustom);\r
\r
};\r
<source>Publish_MG_ADAPT</source>
<translation>Publish</translation>
</message>
-<message>
+ <message>
<source>SIZE_MAP_FIELD</source>
<translation>Size map field</translation>
</message>
<source>ADAPT_PREF_MG_ADAPT_SIZE_MAP_BACKGROUND</source>
<translation>Background</translation>
</message>
- <message>
- <source>ADAPT_PREF_MG_ADAPT_MED_SIZE_MAP_BACKGROUND</source>
- <translation>MED file background size map</translation>
- </message>
- <message>
- <source>ADAPT_PREF_MG_ADAPT_TIME_STEP</source>
- <translation>Time step</translation>
- </message>
- <message>
- <source>ADAPT_PREF_MG_ADAPT_NO_TIME_STEP</source>
- <translation>No time step</translation>
- </message>
<message>
<source>ADAPT_PREF_MG_ADAPT_TIME_STEP_LAST</source>
<translation>Last</translation>
</message>
<message>
- <source>ADAPT_PREF_MG_ADAPT_AR</source>
- <translation>Arguments</translation>
- </message>
- <message>
- <source>ADAPT_PREF_MG_ADAPT_ADVOP</source>
- <translation>Advanced Options</translation>
- </message>
- <message>
- <source>ADAPT_PREF_MG_ADAPT_TIME_LAST_STEP</source>
- <translation>Last time step</translation>
- </message>
- <message>
- <source>ADAPT_PREF_MG_ADAPT_TIME_C_STEP</source>
- <translation>Chosen time step</translation>
+ <source>ADAPT_PREF_MG_ADAPT_TIME_STEP</source>
+ <translation>Choosen time step</translation>
</message>
<message>
<source>ADAPT_PREF_MG_ADAPT_TIME_STEP_C</source>
<source>MG_ADAPT_SELECT_FILE_0</source>
<translation>MG-ADAPT select file</translation>
</message>
+ <message>
+ <source>ADAPT_PREF_MG_ADAPT_ADVOP</source>
+ <translation>Advanced Options</translation>
+ </message>
<message>
<source>SMESH_VISU_PROBLEM</source>
<translation>Mesh visualization failed</translation>
<source>MEN_CONSTRUCT_GROUP</source>
<translation>Construire un groupe</translation>
</message>
+ <message>
+ <source>MEN_REF_ALL</source>
+ <translation>Raffinement uniforme</translation>
+ </message>
+ <message>
+ <source>MEN_REF_HOMARD</source>
+ <translation>Raffinement avec HOMARD</translation>
+ </message>
+ <message>
+ <source>MEN_HOMARD_CREATE_CASE</source>
+ <translation>Création d'un cas d'adaptation</translation>
+ </message>
+ <message>
+ <source>MEN_HOMARD_FOLLOW_ITERATION</source>
+ <translation>Poursuite d'une itération d'adaptation</translation>
+ </message>
+ <message>
+ <source>MEN_HOMARD_NEW_ITERATION</source>
+ <translation>Création d'une itération d'adaptation</translation>
+ </message>
+ <message>
+ <source>MEN_HOMARD_COMPUTE</source>
+ <translation>Calculer</translation>
+ </message>
+ <message>
+ <source>MEN_HOMARD_COMPUTE_PUBLISH</source>
+ <translation>Calculer et publier</translation>
+ </message>
+ <message>
+ <source>MEN_MG_ADAPT</source>
+ <translation>Remaillage avec MG_Adapt</translation>
+ </message>
+ <message>
+ <source>Args</source>
+ <translation>Arguments</translation>
+ </message>
+ <message>
+ <source>MeshOut</source>
+ <translation>Maillage en sortie</translation>
+ </message>
+ <message>
+ <source>MeshIn</source>
+ <translation>Maillage en entrée</translation>
+ </message>
+ <message>
+ <source>MEDFile</source>
+ <translation>Fichier MED</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation>Arbre d'études</translation>
+ </message>
+ <message>
+ <source>Publish_MG_ADAPT</source>
+ <translation>Publication</translation>
+ </message>
+ <message>
+ <source>SIZE_MAP_FIELD</source>
+ <translation>Champ de la carte de taille</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_FIELD_NAME</source>
+ <translation>Nom du champ</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_MED_FILE_1</source>
+ <translation>Ce fichier MED est illisible.</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_MED_FILE_2</source>
+ <translation>Ce fichier MED ne contient aucun maillage.</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_MED_FILE_3</source>
+ <translation>Ce fichier MED contient plus d'un maillage.</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_MED_FILE_4</source>
+ <translation>Impossible de lire le maillage de ce fichier MED.</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_MED_FILE_5</source>
+ <translation>Ce fichier MED ne contient aucun champ.</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_MED_FILE_6</source>
+ <translation>Impossible de lire le(s) champ(s) de ce fichier MED.</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_ERROR</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_CH_ST</source>
+ <translation>Pas de temps choisi</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_RANK</source>
+ <translation>Numéro d'ordre</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_TSTP</source>
+ <translation>Pas de temps </translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_NO_T_ST</source>
+ <translation>Sans pas de temps</translation>
+ </message>
+ <message>
+ <source>MG_ADAPT_L_ST</source>
+ <translation>Dernier pas de temps</translation>
+ </message>
+ <message>
+ <source>MeshName</source>
+ <translation>Nom du maillage</translation>
+ </message>
+ <message>
+ <source>LOCAL_MG_ADAPT</source>
+ <translation>Locale</translation>
+ </message>
+ <message>
+ <source>BACKGRND_MG_ADAPT</source>
+ <translation>Arrière-plan</translation>
+ </message>
+ <message>
+ <source>CNST_MG_ADAPT</source>
+ <translation>Constante</translation>
+ </message>
+ <message>
+ <source>MED_FILE_BCKG</source>
+ <translation>Fichier MED de la carte en arrière-plan</translation>
+ </message>
+ <message>
+ <source>VALUE_MG_ADAPT</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>SIZE_MAP_DEF</source>
+ <translation>Définition de la carte de taille</translation>
+ </message>
+ <message>
+ <source>ADVOP</source>
+ <translation>Options avancées</translation>
+ </message>
<message>
<source>MEN_CONV_TO_QUAD</source>
<translation>Convertir vers/depuis quadratique</translation>
<source>MEN_ADAPT</source>
<translation>Adaptation</translation>
</message>
- <message>
- <source>Args</source>
- <translation>Arguments</translation>
- </message>
- <message>
- <source>MeshOut</source>
- <translation>Maillage en sortie</translation>
- </message>
- <message>
- <source>MEDFile</source>
- <translation>Fichier MED</translation>
- </message>
- <message>
- <source>Browser</source>
- <translation>Arbre d'études</translation>
- </message>
- <message>
- <source>BACKGRND_MG_ADAPT</source>
- <translation>Arrière-plan</translation>
- </message>
- <message>
- <source>CNST_MG_ADAPT</source>
- <translation>Constante</translation>
- </message>
-<message>
- <source>SIZE_MAP_FIELD</source>
- <translation>Champ de la carte de taille</translation>
- </message>
- <message>
- <source>MG_ADAPT_FIELD_NAME</source>
- <translation>Nom du champ</translation>
- </message>
- <message>
- <source>MG_ADAPT_MED_FILE_1</source>
- <translation>Ce fichier MED est illisible.</translation>
- </message>
- <message>
- <source>MG_ADAPT_MED_FILE_2</source>
- <translation>Ce fichier MED ne contient aucun maillage.</translation>
- </message>
- <message>
- <source>MG_ADAPT_MED_FILE_3</source>
- <translation>Ce fichier MED contient plus d'un maillage.</translation>
- </message>
- <message>
- <source>MG_ADAPT_MED_FILE_4</source>
- <translation>Impossible de lire le maillage de ce fichier MED.</translation>
- </message>
- <message>
- <source>MG_ADAPT_MED_FILE_5</source>
- <translation>Ce fichier MED ne contient aucun champ.</translation>
- </message>
- <message>
- <source>MG_ADAPT_MED_FILE_6</source>
- <translation>Impossible de lire le(s) champ(s) de ce fichier MED.</translation>
- </message>
- <message>
- <source>MG_ADAPT_NO_T_ST</source>
- <translation>Sans pas de temps</translation>
- </message>
- <message>
- <source>MG_ADAPT_CH_ST</source>
- <translation>Pas de temps choisi</translation>
- </message>
- <message>
- <source>MG_ADAPT_RANK</source>
- <translation>Numéro d'ordre</translation>
- </message>
- <message>
- <source>MG_ADAPT_TSTP</source>
- <translation>Pas de temps </translation>
- </message>
- <message>
- <source>MG_ADAPT_L_ST</source>
- <translation>Dernier pas de temps</translation>
- </message>
- <message>
- <source>MED_FILE_BCKG</source>
- <translation>fichier MED de la carte en arrière-plan</translation>
- </message>
- <message>
- <source>VALUE_MG_ADAPT</source>
- <translation>Valeur</translation>
- </message>
- <message>
- <source>Publish_MG_ADAPT</source>
- <translation>Publication</translation>
- </message>
- <message>
- <source>LOCAL_MG_ADAPT</source>
- <translation>locale</translation>
- </message>
- <message>
- <source>MeshName</source>
- <translation>Nom du maillage</translation>
- </message>
- <message>
- <source>MeshIn</source>
- <translation>Maillage en entrée</translation>
- </message>
- <message>
- <source>SIZE_MAP_DEF</source>
- <translation>Définition de la carte de taille</translation>
- </message>
- <message>
- <source>ADVOP</source>
- <translation>Advanced Options</translation>
- </message>
<message>
<source>MEN_MEASURE</source>
<translation>Outils de mesure</translation>
<source>MEN_TRANSF</source>
<translation>Transformation</translation>
</message>
- <message>
- <source>MEN_REF_ALL</source>
- <translation>Raffinement uniforme</translation>
- </message>
- <message>
- <source>MEN_REF_HOMARD</source>
- <translation>Raffinement avec HOMARD</translation>
- </message>
- <message>
- <source>MEN_HOMARD_CREATE_CASE</source>
- <translation>Création d'un cas d'adaptation</translation>
- </message>
- <message>
- <source>MEN_HOMARD_FOLLOW_ITERATION</source>
- <translation>Poursuite d'une itération d'adaptation</translation>
- </message>
- <message>
- <source>MEN_HOMARD_NEW_ITERATION</source>
- <translation>Création d'une itération d'adaptation</translation>
- </message>
- <message>
- <source>MEN_HOMARD_COMPUTE</source>
- <translation>Calculer</translation>
- </message>
- <message>
- <source>MEN_HOMARD_COMPUTE_PUBLISH</source>
- <translation>Calculer et publier</translation>
- </message>
- <message>
- <source>MEN_MG_ADAPT</source>
- <translation>Remaillage avec MG_Adapt</translation>
- </message>
<message>
<source>MEN_TRANSP</source>
<translation>Transparence</translation>
</message>
<message>
<source>max_memory</source>
- <translation>Maximum memoire (Mb)</translation>
+ <translation>Maximum mémoire (Mb)</translation>
</message>
<message>
- <source>components</source>
- <translation>Composants</translation>
+ <source>Adaption</source>
+ <translation>Adaptation</translation>
</message>
- <message>
- <source>Adapation</source>
- <translation>adaptation</translation>
+ <message>
+ <source>components</source>
+ <translation>Composantes</translation>
</message>
<message>
<source>ADAPT_PREF_MG_ADAPT_SIZE_MAP</source>
<source>ADAPT_PREF_MG_ADAPT_SIZE_MAP_BACKGROUND</source>
<translation>Arrière-plan</translation>
</message>
- <message>
- <source>ADAPT_PREF_MG_ADAPT_TIME_STEP</source>
- <translation>Choix du pas de temps</translation>
- </message>
<message>
<source>ADAPT_PREF_MG_ADAPT_TIME_STEP_LAST</source>
<translation>Dernier</translation>
</message>
+ <message>
+ <source>ADAPT_PREF_MG_ADAPT_TIME_STEP</source>
+ <translation>Choix du pas de temps</translation>
+ </message>
<message>
<source>ADAPT_PREF_MG_ADAPT_TIME_STEP_C</source>
<translation>Valeur</translation>
<source>MG_ADAPT_SELECT_FILE_0</source>
<translation>MG-ADAPT selection fichier MED</translation>
</message>
+ <message>
+ <source>ADAPT_PREF_MG_ADAPT_ADVOP</source>
+ <translation>Options avancées</translation>
+ </message>
<message>
<source>SMESH_VISU_PROBLEM</source>
<translation>Impossible de visualiser le maillage, probablement à cause d'un manque de mémoire</translation>