This is an automated email from the git hooks/post-receive script. New commit to branch feature/8109 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit c714d04f5e6300bffcff8f58cdd8a7af47965ed4 Author: Kevin Morin <morin@codelutin.com> Date: Wed Mar 23 16:07:42 2016 +0100 ajout des nouveaux objets dans le modele + persistence (refs #8109) --- .../entities/protocol/MaturityCaracteristics.java | 14 + .../entities/protocol/TuttiProtocols.java | 1 + .../src/main/xmi/tutti-persistence.properties | 2 +- .../src/main/xmi/tutti-persistence.zargo | Bin 59165 -> 59646 bytes .../ifremer/tutti/service/PersistenceService.java | 9 +- .../content/protocol/EditProtocolUIHandler.java | 4 +- .../content/protocol/EditProtocolUIModel.java | 131 +- .../actions/EditMaturityCaracteristicAction.java | 55 +- .../maturity/EditMaturityCaracteristicPopupUI.jaxx | 7 +- .../EditMaturityCaracteristicPopupUIHandler.java | 29 +- .../EditMaturityCaracteristicPopupUIModel.java | 93 +- ...yCaracteristicPopupUIModel-error-validation.xml | 2 +- .../resources/i18n/tutti-ui-swing_fr_FR.properties | 2056 +++++++++----------- 13 files changed, 1194 insertions(+), 1209 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/MaturityCaracteristics.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/MaturityCaracteristics.java new file mode 100644 index 0000000..c43f284 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/MaturityCaracteristics.java @@ -0,0 +1,14 @@ +package fr.ifremer.tutti.persistence.entities.protocol; + +import javax.annotation.Generated; + +@Generated(value = "org.nuiton.eugene.java.SimpleJavaBeanTransformer", date = "Wed Mar 23 10:50:48 CET 2016") +public class MaturityCaracteristics extends AbstractMaturityCaracteristics { + + public static MaturityCaracteristic newMaturityCaracteristic(String id) { + MaturityCaracteristic caracteristic = newMaturityCaracteristic(); + caracteristic.setId(id); + return caracteristic; + } + +} //MaturityCaracteristics diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java index 814ddf2..80c3a2e 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java @@ -448,6 +448,7 @@ public class TuttiProtocols extends AbstractTuttiProtocols { result.setClassTag(Zone.class.getSimpleName(), Zones.typeOfZone()); result.setClassTag(Strata.class.getSimpleName(), Stratas.typeOfStrata()); result.setClassTag(SubStrata.class.getSimpleName(), SubStratas.typeOfSubStrata()); + result.setClassTag(MaturityCaracteristic.class.getSimpleName(), MaturityCaracteristics.typeOfMaturityCaracteristic()); result.writeConfig.setAlwaysWriteClassname(false); result.writeConfig.setWriteRootTags(false); return result; diff --git a/tutti-persistence/src/main/xmi/tutti-persistence.properties b/tutti-persistence/src/main/xmi/tutti-persistence.properties index d92795b..e31e43c 100644 --- a/tutti-persistence/src/main/xmi/tutti-persistence.properties +++ b/tutti-persistence/src/main/xmi/tutti-persistence.properties @@ -41,7 +41,7 @@ fr.ifremer.tutti.persistence.entities.data.SpeciesBatch.attribute.childBatchs.st fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.caracteristicMapping.stereotype=ordered fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.individualObservationPmfmId.stereotype=ordered fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.lengthClassesPmfmId.stereotype=ordered -fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.maturityPmfmId.stereotype=ordered +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.maturityCaracteristics.stereotype=ordered fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.species.stereotype=ordered fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.benthos.stereotype=ordered diff --git a/tutti-persistence/src/main/xmi/tutti-persistence.zargo b/tutti-persistence/src/main/xmi/tutti-persistence.zargo index a07a79f..9729091 100644 Binary files a/tutti-persistence/src/main/xmi/tutti-persistence.zargo and b/tutti-persistence/src/main/xmi/tutti-persistence.zargo differ diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index 8d898fd..02934c2 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -48,6 +48,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.protocol.MaturityCaracteristic; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; @@ -547,14 +548,14 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer if (protocol != null) { result = Lists.newArrayListWithCapacity( - protocol.sizeMaturityPmfmId()); + protocol.sizeMaturityCaracteristics()); Map<String, Caracteristic> allCaractericsById = TuttiEntities.splitById(caracteristics); - if (!protocol.isMaturityPmfmIdEmpty()) { - for (String id : protocol.getMaturityPmfmId()) { - result.add(allCaractericsById.get(id)); + if (!protocol.isMaturityCaracteristicsEmpty()) { + for (MaturityCaracteristic caracteristic : protocol.getMaturityCaracteristics()) { + result.add(allCaractericsById.get(caracteristic.getId())); } } } else { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index 9883fdf..8dad769 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -114,6 +114,7 @@ import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.TreeSet; import java.util.stream.Collectors; @@ -241,7 +242,8 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI programStratasAndSubstratas.keySet().forEach(strata -> { locationLabelCacheBuilder.put(strata.getId(), strata.getLabel()); - programStratasAndSubstratas.get(strata).forEach(subStrata -> locationLabelCacheBuilder.put(subStrata.getId(), subStrata.getLabel())); + programStratasAndSubstratas.get(strata).stream().filter(Objects::nonNull) + .forEach(subStrata -> locationLabelCacheBuilder.put(subStrata.getId(), subStrata.getLabel())); }); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java index 55e70e4..8d13e59 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java @@ -30,6 +30,8 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; +import fr.ifremer.tutti.persistence.entities.protocol.MaturityCaracteristic; +import fr.ifremer.tutti.persistence.entities.protocol.MaturityCaracteristics; import fr.ifremer.tutti.persistence.entities.protocol.OperationFieldMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; @@ -49,9 +51,12 @@ import org.apache.commons.lang3.mutable.MutableInt; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -95,6 +100,8 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, public static final String PROPERTY_MODIFYING_ZONES = "modifyingZones"; + public static final String PROPERTY_MATURITY_PMFM_ID = "maturityPmfmId"; + /** * Delegate edit object. * @@ -155,6 +162,19 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, protected Map<String, Caracteristic> allCaracteristic; + /** + * List of the maturity pmfm ids + * @since 4.5 + */ + protected List<String> maturityPmfmId; + + /** + * Map of the maturity caracteristic by id. This is what is being edited. + * We do not push the maturity caracteristics directly into the editobject, this is done only when the user saves the protocol + * @since 4.5 + */ + protected final LinkedHashMap<String, MaturityCaracteristic> maturityCaracteristicsById = new LinkedHashMap<>(); + protected Map<Caracteristic, EditProtocolCaracteristicsRowModel> caracteristicMappingRows = new HashMap<>(); @@ -189,6 +209,35 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, public EditProtocolUIModel() { super(fromBeanBinder, toBeanBinder); + + // reset the list of maturity pmfm id when the list of maturity caracteristic changes + addPropertyChangeListener(PROPERTY_MATURITY_CARACTERISTICS, new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + List<MaturityCaracteristic> newValue = (List<MaturityCaracteristic>) evt.getNewValue(); + + EditProtocolUIModel.this.setMaturityPmfmId(newValue.stream().map(MaturityCaracteristic::getId).collect(Collectors.toList())); + + LinkedHashMap<String, MaturityCaracteristic> newMap = new LinkedHashMap<>(); + newValue.forEach(maturityCaracteristic -> newMap.put(maturityCaracteristic.getId(), maturityCaracteristic)); + EditProtocolUIModel.this.setMaturityCaracteristicsById(newMap); + } + }); + + // when the maturity psmf list changes, then remove the removed caracteristic or add the new caracteristic from the maturity caracteristics + addPropertyChangeListener(PROPERTY_MATURITY_PMFM_ID, new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + List<String> newValue = (List<String>) evt.getNewValue(); + LinkedHashMap<String, MaturityCaracteristic> newMap = new LinkedHashMap<>(); + newValue.forEach(maturityPmfmId -> newMap.put(maturityPmfmId, + maturityCaracteristicsById.getOrDefault(maturityPmfmId, + MaturityCaracteristics.newMaturityCaracteristic(maturityPmfmId)))); + EditProtocolUIModel.this.setMaturityCaracteristicsById(newMap); + } + }); } @Override @@ -216,7 +265,7 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, @Override public TuttiProtocol toEntity() { TuttiProtocol result = TuttiProtocols.newTuttiProtocol(); - toBeanBinder.copyExcluding(this, result, PROPERTY_ZONE); + toBeanBinder.copyExcluding(this, result, PROPERTY_ZONE, PROPERTY_MATURITY_CARACTERISTICS); // tree to model Set<Zone> zones = zonesTreeModel.getZones(); @@ -276,6 +325,8 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, } result.setBenthos(benthosProtocols); + result.setMaturityCaracteristics(new ArrayList<>(maturityCaracteristicsById.values())); + return result; } @@ -581,14 +632,12 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, firePropertyChange(PROPERTY_INDIVIDUAL_OBSERVATION_PMFM_ID, null, individualObservationPmfmId); } - @Override public List<String> getMaturityPmfmId() { - return editObject.getMaturityPmfmId(); + return maturityPmfmId; } - @Override public void setMaturityPmfmId(List<String> maturityPmfmId) { - editObject.setMaturityPmfmId(maturityPmfmId); + this.maturityPmfmId = maturityPmfmId; firePropertyChange(PROPERTY_MATURITY_PMFM_ID, null, maturityPmfmId); } @@ -749,54 +798,65 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, } @Override - public void addMaturityPmfmId(String maturityPmfmId) { - editObject.addMaturityPmfmId(maturityPmfmId); - firePropertyChange(PROPERTY_MATURITY_PMFM_ID, null, getMaturityPmfmId()); + public void addAllMaturityCaracteristics(Collection<MaturityCaracteristic> maturityCaracteristics) { + editObject.addAllMaturityCaracteristics(maturityCaracteristics); + firePropertyChanged(PROPERTY_MATURITY_CARACTERISTICS, null, getMaturityCaracteristics()); } @Override - public void addAllMaturityPmfmId(Collection<String> maturityPmfmId) { - editObject.addAllMaturityPmfmId(maturityPmfmId); - firePropertyChange(PROPERTY_MATURITY_PMFM_ID, null, getMaturityPmfmId()); + public MaturityCaracteristic getMaturityCaracteristics(int index) { + return editObject.getMaturityCaracteristics(index); } @Override - public boolean containsAllMaturityPmfmId(Collection<String> maturityPmfmId) { - return editObject.containsAllMaturityPmfmId(maturityPmfmId); + public boolean isMaturityCaracteristicsEmpty() { + return editObject.isMaturityCaracteristicsEmpty(); } @Override - public boolean containsMaturityPmfmId(String maturityPmfmId) { - return editObject.containsMaturityPmfmId(maturityPmfmId); + public int sizeMaturityCaracteristics() { + return editObject.sizeMaturityCaracteristics(); } @Override - public String getMaturityPmfmId(int index) { - return editObject.getMaturityPmfmId(index); + public void addMaturityCaracteristics(MaturityCaracteristic maturityCaracteristics) { + editObject.addMaturityCaracteristics(maturityCaracteristics); + firePropertyChanged(PROPERTY_MATURITY_CARACTERISTICS, null, getMaturityCaracteristics()); } @Override - public boolean isMaturityPmfmIdEmpty() { - return editObject.isMaturityPmfmIdEmpty(); + public boolean removeMaturityCaracteristics(MaturityCaracteristic maturityCaracteristics) { + boolean result = editObject.removeMaturityCaracteristics(maturityCaracteristics); + firePropertyChanged(PROPERTY_MATURITY_CARACTERISTICS, null, getMaturityCaracteristics()); + return result; } @Override - public boolean removeAllMaturityPmfmId(Collection<String> maturityPmfmId) { - boolean result = editObject.removeAllMaturityPmfmId(maturityPmfmId); - firePropertyChange(PROPERTY_MATURITY_PMFM_ID, null, getMaturityPmfmId()); + public boolean removeAllMaturityCaracteristics(Collection<MaturityCaracteristic> maturityCaracteristics) { + boolean result = editObject.removeAllMaturityCaracteristics(maturityCaracteristics); + firePropertyChanged(PROPERTY_MATURITY_CARACTERISTICS, null, getMaturityCaracteristics()); return result; } @Override - public boolean removeMaturityPmfmId(String maturityPmfmId) { - boolean result = editObject.removeMaturityPmfmId(maturityPmfmId); - firePropertyChange(PROPERTY_MATURITY_PMFM_ID, null, getMaturityPmfmId()); - return result; + public boolean containsMaturityCaracteristics(MaturityCaracteristic maturityCaracteristics) { + return editObject.containsMaturityCaracteristics(maturityCaracteristics); + } + + @Override + public boolean containsAllMaturityCaracteristics(Collection<MaturityCaracteristic> maturityCaracteristics) { + return editObject.containsAllMaturityCaracteristics(maturityCaracteristics); + } + + @Override + public List<MaturityCaracteristic> getMaturityCaracteristics() { + return editObject.getMaturityCaracteristics(); } @Override - public int sizeMaturityPmfmId() { - return editObject.sizeMaturityPmfmId(); + public void setMaturityCaracteristics(List<MaturityCaracteristic> maturityCaracteristics) { + editObject.setMaturityCaracteristics(maturityCaracteristics); + firePropertyChanged(PROPERTY_MATURITY_CARACTERISTICS, null, maturityCaracteristics); } @Override @@ -1255,4 +1315,19 @@ public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, this.zonesTreeModel.setLocationLabelCache(locationLabelCache); this.availableStratasTreeModel.setLocationLabelCache(locationLabelCache); } + + public Map<String, MaturityCaracteristic> getMaturityCaracteristicsById() { + return maturityCaracteristicsById; + } + + public void setMaturityCaracteristicsById(LinkedHashMap<String, MaturityCaracteristic> maturityCaracteristicsById) { + this.maturityCaracteristicsById.clear(); + if (maturityCaracteristicsById != null) { + this.maturityCaracteristicsById.putAll(maturityCaracteristicsById); + } + } + + public MaturityCaracteristic getMaturityCaracteristic(String id) { + return maturityCaracteristicsById.get(id); + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/EditMaturityCaracteristicAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/EditMaturityCaracteristicAction.java index fabb121..d35eeec 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/EditMaturityCaracteristicAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/EditMaturityCaracteristicAction.java @@ -1,10 +1,13 @@ package fr.ifremer.tutti.ui.swing.content.protocol.actions; +import fr.ifremer.tutti.persistence.entities.protocol.MaturityCaracteristic; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; import fr.ifremer.tutti.ui.swing.content.protocol.maturity.EditMaturityCaracteristicPopupUI; import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; +import java.util.Collection; + /** * @author Kevin Morin (Code Lutin) * @since 4.5 @@ -19,43 +22,21 @@ public class EditMaturityCaracteristicAction extends SimpleActionSupport<EditPro protected void onActionPerformed(EditProtocolUI ui) { EditMaturityCaracteristicPopupUI popupUI = new EditMaturityCaracteristicPopupUI(ui); - popupUI.open((Caracteristic) ui.getMaturityList().getSelectedList().getSelectedValue()); - -// JXTable cpsTable = ui.getCpsTable(); -// CalcifiedPiecesSamplingEditorTableModel tableModel = (CalcifiedPiecesSamplingEditorTableModel) cpsTable.getModel(); -// -// int selectedRow = cpsTable.getSelectedRow(); -// -// List<CalcifiedPiecesSamplingEditorRowModel> cpsRows = ui.getModel().getCpsRows(); -// -// CalcifiedPiecesSamplingEditorRowModel row = cpsRows.get(selectedRow); -// -// int minMinSize = row.getMinSize() + 1; -// Integer maxMinSize = row.getMaxSize() != null ? row.getMaxSize() - 1 : null; -// -// MinSizePopupUI minSizePopupUI = new MinSizePopupUI(ui); -// minSizePopupUI.open(minMinSize, maxMinSize); -// -// if (minSizePopupUI.getModel().isValid()) { -// -// Integer minSize = minSizePopupUI.getModel().getMinSize(); -// Integer exMaxSize = row.getMaxSize(); -// row.setMaxSize(minSize - 1); -// -// CalcifiedPiecesSamplingEditorRowModel newRow = ui.getHandler().createNewRow(row.getProtocolSpecies(), -// row.getMaturity(), -// row.isSex(), -// minSize, -// exMaxSize); -// cpsRows.add(selectedRow + 1, newRow); -// -// tableModel.fireTableRowsUpdated(selectedRow, selectedRow); -// tableModel.fireTableRowsInserted(newRow); -// -// // select this new row -// // int rowIndex = tableModel.getRowIndex(newRow); -// // SwingUtil.setSelectionInterval(cpsTable, rowIndex); -// } + Caracteristic selectedValue = (Caracteristic) ui.getMaturityList().getSelectedList().getSelectedValue(); + + if (selectedValue != null) { + MaturityCaracteristic maturityCaracteristic = ui.getModel().getMaturityCaracteristic(selectedValue.getId()); + popupUI.open(selectedValue, maturityCaracteristic); + + if (popupUI.getModel().isValid()) { + + Collection<String> matureStateIds = popupUI.getModel().getMatureStateIds(); + maturityCaracteristic.setMatureStateIds(matureStateIds); + + ui.getModel().setModify(true); + + } + } } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUI.jaxx index cf11700..db9e214 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUI.jaxx @@ -23,6 +23,7 @@ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditMaturityCaracteristicPopupUIModel, EditMaturityCaracteristicPopupUIHandler>'> <import> + fr.ifremer.tutti.persistence.entities.protocol.MaturityCaracteristic fr.ifremer.tutti.persistence.entities.referential.Caracteristic fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue @@ -39,8 +40,8 @@ public EditMaturityCaracteristicPopupUI(TuttiUI<?,?> parentUI) { TuttiUIUtil.setParentUI(this, parentUI); } -public void open(Caracteristic maturityCaracteristic) { - handler.open(maturityCaracteristic); +public void open(Caracteristic caracteristic, MaturityCaracteristic maturityCaracteristic) { + handler.open(caracteristic, maturityCaracteristic); } ]]></script> @@ -48,7 +49,7 @@ public void open(Caracteristic maturityCaracteristic) { <BeanValidator id='validator' bean='model' uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> - <field name='qualitativeValues' component='maturityValuesEditor'/> + <field name='matureStateIds' component='maturityValuesEditor'/> </BeanValidator> <Table id='mainPanel' fill='both'> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIHandler.java index 550baa8..6080f07 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIHandler.java @@ -22,6 +22,7 @@ package fr.ifremer.tutti.ui.swing.content.protocol.maturity; * #L% */ +import fr.ifremer.tutti.persistence.entities.protocol.MaturityCaracteristic; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; @@ -35,7 +36,7 @@ import javax.swing.ListCellRenderer; import java.awt.Component; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.util.Map; +import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -61,8 +62,14 @@ public class EditMaturityCaracteristicPopupUIHandler extends AbstractTuttiUIHand CaracteristicQualitativeValue item = list.getModel().getElementAt(index); // Toggle selected state + if (item != null) { + if (getModel().isMature(item)) { + getModel().removeMatureState(item); - getModel().setValueMature(item, !getModel().isMature(item)); + } else { + getModel().addMatureState(item); + } + } // Repaint cell @@ -70,10 +77,10 @@ public class EditMaturityCaracteristicPopupUIHandler extends AbstractTuttiUIHand } }); - getModel().addPropertyChangeListener(EditMaturityCaracteristicPopupUIModel.PROPERTY_QUALITATIVE_VALUES, evt -> { - Map<CaracteristicQualitativeValue, Boolean> newValue = (Map<CaracteristicQualitativeValue, Boolean>) evt.getNewValue(); + getModel().addPropertyChangeListener(EditMaturityCaracteristicPopupUIModel.PROPERTY_ALL_MATURITY_STATES, evt -> { + List<CaracteristicQualitativeValue> newValue = (List<CaracteristicQualitativeValue>) evt.getNewValue(); if (newValue != null) { - maturityValuesEditor.setListData(newValue.keySet().toArray(new CaracteristicQualitativeValue[newValue.size()])); + maturityValuesEditor.setListData(newValue.toArray(new CaracteristicQualitativeValue[newValue.size()])); } else { maturityValuesEditor.setListData(new CaracteristicQualitativeValue[0]); } @@ -95,10 +102,13 @@ public class EditMaturityCaracteristicPopupUIHandler extends AbstractTuttiUIHand return getUI().getMaturityValuesEditor(); } - public void open(Caracteristic maturityCaracteristic) { - getModel().setQualitativeValues(maturityCaracteristic.getQualitativeValue()); + public void open(Caracteristic caracteristic, MaturityCaracteristic maturityCaracteristic) { + getModel().setAllMaturityStates(caracteristic.getQualitativeValue()); + getModel().setMatureStateIds(maturityCaracteristic.getMatureStateIds()); getModel().setValid(false); - ui.getMessage().setText(t("tutti.editProtocol.maturityCaracteristic.dialog.message", decorate(maturityCaracteristic))); + + getUI().getMessage().setText(t("tutti.editProtocol.maturityCaracteristic.dialog.message", decorate(caracteristic))); + getUI().pack(); SwingUtil.center(getContext().getMainUI(), ui); getUI().setVisible(true); @@ -112,7 +122,8 @@ public class EditMaturityCaracteristicPopupUIHandler extends AbstractTuttiUIHand } public void cancel() { - getModel().setQualitativeValues(null); + getModel().setAllMaturityStates(null); + getModel().setMatureStateIds(null); onCloseUI(); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel.java index f9d0322..7c57f15 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel.java @@ -4,10 +4,10 @@ import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativ import org.jdesktop.beans.AbstractSerializableBean; import java.util.ArrayList; -import java.util.LinkedHashMap; +import java.util.Collection; +import java.util.HashSet; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; +import java.util.Objects; /** * @author Kevin Morin (Code Lutin) @@ -15,67 +15,78 @@ import java.util.stream.Collectors; */ public class EditMaturityCaracteristicPopupUIModel extends AbstractSerializableBean { - public static final String PROPERTY_QUALITATIVE_VALUES = "qualitativeValues"; - public static final String PROPERTY_MATURE_VALUES = "matureValues"; - public static final String PROPERTY_IMMATURE_VALUES = "immatureValues"; + public static final String PROPERTY_ALL_MATURITY_STATES = "allMaturityStates"; + + public static final String PROPERTY_MATURE_STATE_IDS = "matureStateIds"; /** * Is the model valid? */ protected boolean valid; - protected final Map<CaracteristicQualitativeValue, Boolean> qualitativeValuesStates = new LinkedHashMap<>(); + protected final List<CaracteristicQualitativeValue> allMaturityStates = new ArrayList<>(); + + protected final Collection<String> matureStateIds = new HashSet<>(); + + public List<CaracteristicQualitativeValue> getAllMaturityStates() { + return allMaturityStates; + } - public Map<CaracteristicQualitativeValue, Boolean> getQualitativeValuesStates() { - return qualitativeValuesStates; + public void setAllMaturityStates(List<CaracteristicQualitativeValue> allMaturityStates) { + this.allMaturityStates.clear(); + if (allMaturityStates != null) { + this.allMaturityStates.addAll(allMaturityStates); + } + firePropertyChange(PROPERTY_ALL_MATURITY_STATES, null, this.allMaturityStates); } - public List<CaracteristicQualitativeValue> getQualitativeValues() { - return new ArrayList<>(qualitativeValuesStates.keySet()); + public Collection<String> getMatureStateIds() { + return matureStateIds; } -// public void setQualitativeValues(TreeMap<Serializable, Boolean> qualitativeValues) { -// Object oldValue = getQualitativeValues(); -// -// this.qualitativeValues.clear(); -// if (qualitativeValues != null) { -// this.qualitativeValues.putAll(qualitativeValues); -// } -// firePropertyChange(PROPERTY_QUALITATIVE_VALUES, oldValue, qualitativeValues); -// } - - public void setQualitativeValues(List<CaracteristicQualitativeValue> qualitativeValues) { - Object oldMatureValues = hasMatureValues(); - Object oldImmatureValues = hasImmatureValues(); - - this.qualitativeValuesStates.clear(); - if (qualitativeValues != null) { - this.qualitativeValuesStates.putAll(qualitativeValues.stream().collect(Collectors.toMap(c -> c, c -> false))); + public void setMatureStateIds(Collection<String> matureStateIds) { + this.matureStateIds.clear(); + if (matureStateIds != null) { + this.matureStateIds.addAll(matureStateIds); } + firePropertyChange(PROPERTY_MATURE_STATE_IDS, null, this.matureStateIds); + } + + public void addMatureState(CaracteristicQualitativeValue state) { + Objects.requireNonNull(state); + addMatureState(state.getId()); + } + + public void addMatureState(String stateId) { + matureStateIds.add(stateId); + firePropertyChange(PROPERTY_MATURE_STATE_IDS, null, matureStateIds); + } + + public void removeMatureState(CaracteristicQualitativeValue state) { + Objects.requireNonNull(state); + removeMatureState(state.getId()); + } - firePropertyChange(PROPERTY_QUALITATIVE_VALUES, null, this.qualitativeValuesStates); - firePropertyChange(PROPERTY_MATURE_VALUES, oldMatureValues, hasMatureValues()); - firePropertyChange(PROPERTY_IMMATURE_VALUES, oldImmatureValues, hasImmatureValues()); + public void removeMatureState(String stateId) { + matureStateIds.remove(stateId); + firePropertyChange(PROPERTY_MATURE_STATE_IDS, null, matureStateIds); } - public void setValueMature(CaracteristicQualitativeValue value, boolean mature) { - Object oldMatureValues = hasMatureValues(); - Object oldImmatureValues = hasImmatureValues(); - qualitativeValuesStates.put(value, mature); - firePropertyChange(PROPERTY_MATURE_VALUES, oldMatureValues, hasMatureValues()); - firePropertyChange(PROPERTY_IMMATURE_VALUES, oldImmatureValues, hasImmatureValues()); + public boolean isMature(CaracteristicQualitativeValue state) { + Objects.requireNonNull(state); + return isMature(state.getId()); } - public boolean isMature(CaracteristicQualitativeValue value) { - return qualitativeValuesStates.get(value); + public boolean isMature(String id) { + return matureStateIds.contains(id); } public boolean hasMatureValues() { - return qualitativeValuesStates.containsValue(true); + return matureStateIds.size() > 0; } public boolean hasImmatureValues() { - return qualitativeValuesStates.containsValue(false); + return matureStateIds.size() < allMaturityStates.size(); } public boolean isValid() { diff --git a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel-error-validation.xml b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel-error-validation.xml index 0db968d..610f47c 100644 --- a/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel-error-validation.xml +++ b/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/maturity/EditMaturityCaracteristicPopupUIModel-error-validation.xml @@ -27,7 +27,7 @@ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> - <field name="qualitativeValues"> + <field name="matureStateIds"> <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> <![CDATA[ hasMatureValues() && hasImmatureValues() ]]> diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 3ad657f..026f016 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1295,1102 +1295,990 @@ tutti.editSpeciesBatch.action.importMultiPostOnlyFrequencies.tip=Importer des lo tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations=Lot espèces et observations individuelles tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.mnemonic=O tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.sourceFile.button=Importer -tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.sourceFile.title=Importer des lots d'espèces et des observations individuelles -tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.success=Des lots d'espèces et observations individuelles ont été importés depuis le fichier %s -tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.tip=Importer des lots d'espèces et des observations individuelles créés sur un poste satellite -tutti.editSpeciesBatch.action.importPsion=Import Psion -tutti.editSpeciesBatch.action.importPsion.existingData.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas importer les données Pupitri et conserver les espèces saisies</li><li><strong>OK</strong> pour supprimer les espèces existantes et les remplacer par les données de Pupitri</li></ul> -tutti.editSpeciesBatch.action.importPsion.existingData.message=Des espèces ont déjà été saisies dans la capture. Si vous continuez, elles vont être écrasées. -tutti.editSpeciesBatch.action.importPsion.existingData.title=Données existantes -tutti.editSpeciesBatch.action.importPsion.invalidSampleCategoryModel.message=<html><body>Le modèle de catégorisation n'est pas compatible pour un import psion.<br> Il manque les catégories suivantes \: <ul>%s</ul><hr/>Veuillez ajouter cette catégorie dans la configuration de catégorisation (menu administration).</body></html> -tutti.editSpeciesBatch.action.importPsion.invalidSampleCategoryModel.title=Modèle de catégorisation non compatible -tutti.editSpeciesBatch.action.importPsion.mnemonic=m -tutti.editSpeciesBatch.action.importPsion.no.matching.data=Import psion non réalisé (des erreurs ont été détectées lors de la lecture du fichier) -tutti.editSpeciesBatch.action.importPsion.no.matching.fishingOperation=L'import Psion n'a pas été réalisé, des erreurs ont été détectées \:<ul>%s</ul><br/>Aucun lot n'a donc été importé. -tutti.editSpeciesBatch.action.importPsion.no.matching.fishingOperation.title=Import Psion -tutti.editSpeciesBatch.action.importPsion.success=Import Psion réussi \: %1s espèces importées (Vrac), %2s espèces importées (Hors-Vrac) -tutti.editSpeciesBatch.action.importPsion.tip=Import Psion -tutti.editSpeciesBatch.action.importPupitri=Import Pupitri -tutti.editSpeciesBatch.action.importPupitri.existingData.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas importer les données Pupitri et conserver les espèces saisies</li><li><strong>OK</strong> pour supprimer les espèces existantes et les remplacer par les données de Pupitri</li></ul> -tutti.editSpeciesBatch.action.importPupitri.existingData.message=Des espèces ont déjà été saisies dans la capture. Si vous continuez, elles vont être écrasées. -tutti.editSpeciesBatch.action.importPupitri.existingData.title=Données existantes -tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.message=<html><body>Le modèle de catégorisation n'est pas compatible pour un import pupitri.<br> Il manque les catégories suivantes \: <ul>%s</ul><hr/>Veuillez ajouter cette catégorie dans la configuration de catégorisation (menu administration).</body></html> -tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.title=Modèle de catégorisation non compatible -tutti.editSpeciesBatch.action.importPupitri.mnemonic=u -tutti.editSpeciesBatch.action.importPupitri.no.matching.data=Import pupitri non réalisé (Les identifiants de Station et/ ou de Date du trait ne correspondent pas) -tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation=L'application n'a pas trouvé dans les fichiers Trunk et Carrousel les identifiants de Station et/ou de Date du trait en cours de saisie.<br/>Aucun lot n'a donc été importé. -tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation.title=Import Pupitri -tutti.editSpeciesBatch.action.importPupitri.showReport.message=L'import pupitri a été réalisé et un rapport a été généré.<br/>Ce rapport (<strong>%s</strong>) a été enregistré dans les pièces-jointes de la capture. -tutti.editSpeciesBatch.action.importPupitri.showReport.title=Consulter le rapport d'import Pupitri -tutti.editSpeciesBatch.action.importPupitri.speciesNotImported.message=%s espèces n'ont pas été importées lors de l'import Pupitri, en voici la liste \: <ul>%s</ul> -tutti.editSpeciesBatch.action.importPupitri.speciesNotImported.title=Import Pupitri (espèces non importées) -tutti.editSpeciesBatch.action.importPupitri.success=Import Pupitri réussi \: %1s espèces importées, %2s espèces rejetées -tutti.editSpeciesBatch.action.importPupitri.tip=Import Pupitri -tutti.editSpeciesBatch.action.removeBatch=Supprimer le lot -tutti.editSpeciesBatch.action.removeBatch.confirm.message=<html>Vous êtes sur le point de supprimer un lot d'espèces.<hr/>Êtes-vous sur de vouloir le supprimer ?</html> -tutti.editSpeciesBatch.action.removeBatch.confirm.title=Suppression de lots d'espèces -tutti.editSpeciesBatch.action.removeBatch.mnemonic=S -tutti.editSpeciesBatch.action.removeBatch.tip=Supprimer le lot courant (celui de la ligne sélectionnée) et tous ces fils -tutti.editSpeciesBatch.action.removeBatches=Supprimer les lots -tutti.editSpeciesBatch.action.removeBatches.confirm.message=<html>Vous êtes sur le point de supprimer %s lots d'espèces.<hr/>Êtes-vous sur de vouloir les supprimer ?</html> -tutti.editSpeciesBatch.action.removeBatches.tip=Supprimer les lot courants (ceux des lignes sélectionnées) et tous leurs fils -tutti.editSpeciesBatch.action.removeSubBatch=Supprimer les lots fils -tutti.editSpeciesBatch.action.removeSubBatch.confirm.message=<html>Vous êtes sur le point de supprimer les fils d'un lot d'espèces.<hr/>Êtes-vous sur de vouloir les supprimer ?</html> -tutti.editSpeciesBatch.action.removeSubBatch.confirm.title=Suppression des fils d'un lot d'espèces -tutti.editSpeciesBatch.action.removeSubBatch.mnemonic=f -tutti.editSpeciesBatch.action.removeSubBatch.tip=Supprimer tous les lots fils du lot sélectionné -tutti.editSpeciesBatch.action.renameBatch=Corriger l'espèce -tutti.editSpeciesBatch.action.renameBatch.mnemonic=o -tutti.editSpeciesBatch.action.renameBatch.tip=Corriger l'espèce -tutti.editSpeciesBatch.action.showReport=Consulter le rapport généré -tutti.editSpeciesBatch.action.splitBatch=Catégoriser le lot -tutti.editSpeciesBatch.action.splitBatch.mnemonic=C -tutti.editSpeciesBatch.action.splitBatch.tip=Catégoriser le lot courant (celui de la ligne sélectionné) -tutti.editSpeciesBatch.action.title.choose.importBigfinFile=Importer un fichier Bigfin -tutti.editSpeciesBatch.action.title.choose.importPsionFile=Importer un fichier Psion -tutti.editSpeciesBatch.error.sampleCategoryValue.notAvailable=La valeur %s de la catégorie %s est déjà utilisée -tutti.editSpeciesBatch.field.speciesTotalInertWeight=Poids inerte trié -tutti.editSpeciesBatch.field.speciesTotalInertWeight.tip=Poids de la fraction inerte restante après le tri des espèces (cailloux, vase, débris coquilliers, etc.) -tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight=Poids vivant non détaillé trié -tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.tip=Poids de la fraction vivante restante après le tri des espèces (algues, matières vivantes non reconnaissable, etc.) -tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight=Poids Vrac observé -tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.tip=Poids total des espèces triées (poissons, crustacés etc.) -tutti.editSpeciesBatch.field.speciesTotalSortedWeight=Poids espèces isolées -tutti.editSpeciesBatch.field.speciesTotalSortedWeight.tip=Poids total VRAC des espèces dans la capture (poissons, crustacés etc.) -tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight=Poids Hors Vrac observé -tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.tip=Poids total HORS VRAC observé des espèces dans la capture (sans les captures accidentelles) -tutti.editSpeciesBatch.field.speciesTotalWeight=Poids total espèces -tutti.editSpeciesBatch.field.speciesTotalWeight.tip=Poids total des espèces dans la capture (poissons, crustacés etc.) -tutti.editSpeciesBatch.filterBatch=Filtre -tutti.editSpeciesBatch.filterBatch.mode.all=Aucun -tutti.editSpeciesBatch.filterBatch.mode.all.tip=Pas de filtre (tous les lots sont visibles) -tutti.editSpeciesBatch.filterBatch.mode.leaf=Feuilles -tutti.editSpeciesBatch.filterBatch.mode.leaf.tip=Voir uniquement les lots *feuilles* -tutti.editSpeciesBatch.filterBatch.mode.root=Parents (%s) -tutti.editSpeciesBatch.filterBatch.mode.root.tip=Voir uniquement les lots *parents* -tutti.editSpeciesBatch.filterSpeciesBatch.tip=Pour filtrer les lots -tutti.editSpeciesBatch.sortSpeciesBatch=Tri -tutti.editSpeciesBatch.sortSpeciesBatch.tip=Trier les lignes selon les espèces -tutti.editSpeciesBatch.speciesSortMode.asc=Ascendant -tutti.editSpeciesBatch.speciesSortMode.asc.tip=Utiliser l'ordre ascendant -tutti.editSpeciesBatch.speciesSortMode.desc=Descendant -tutti.editSpeciesBatch.speciesSortMode.desc.tip=Utiliser l'ordre descendant -tutti.editSpeciesBatch.speciesSortMode.none=Saisie -tutti.editSpeciesBatch.speciesSortMode.none.tip=Utiliser l'ordre de saisie -tutti.editSpeciesBatch.split.weightNotNull.help=Que voulez-vous faire ? <ul><li><strong>Annuler</strong> pour ne pas catégoriser le lot et garder le poids sous-échantilloné</li><li><strong>OK</strong> pour catégoriser le lot et supprimer le poids sous-échantillonné</li></ul>. -tutti.editSpeciesBatch.split.weightNotNull.message=Pour catégoriser un lot, il ne doit pas avoir de poids sous-échantillonné -tutti.editSpeciesBatch.split.weightNotNull.title=Poids sous-échantillonné non nul -tutti.editSpeciesBatch.table.header.comment=Commentaire -tutti.editSpeciesBatch.table.header.comment.tip=Commentaire sur la ligne -tutti.editSpeciesBatch.table.header.computedNumber=Tailles/Poids ou Nombre -tutti.editSpeciesBatch.table.header.computedNumber.tip=Tailles/Poids ou Nombre d'individus dans le lot -tutti.editSpeciesBatch.table.header.file=Pièces jointes -tutti.editSpeciesBatch.table.header.file.tip=Pièces jointes associées à la ligne -tutti.editSpeciesBatch.table.header.id=Id -tutti.editSpeciesBatch.table.header.id.tip=Identifiant du lot -tutti.editSpeciesBatch.table.header.species=Espèce -tutti.editSpeciesBatch.table.header.species.tip=Code campagne ou code Rubin – Nom scientifique -tutti.editSpeciesBatch.table.header.toConfirm.tip=Case à cocher pour marquer le lot -tutti.editSpeciesBatch.table.header.weight=Poids sous-échantillonné -tutti.editSpeciesBatch.table.header.weight.tip=Poids du lot mesuré ou dénombré -tutti.editSpeciesBatch.title.changeSampleCategoryValue=Changer la valeur de la catégorie %s -tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic=... -tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.mnemonic=. -tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.tip=Sélectionner une autre caractéristique -tutti.editSpeciesFrequencies.action.cancel=Annuler -tutti.editSpeciesFrequencies.action.cancel.mnemonic=A -tutti.editSpeciesFrequencies.action.cancel.tip=Annuler l'édition des mensurations -tutti.editSpeciesFrequencies.action.exportMultiPostFull=Mensurations et observations individuelles -tutti.editSpeciesFrequencies.action.exportMultiPostFull.mnemonic=e -tutti.editSpeciesFrequencies.action.exportMultiPostFull.tip=Exporter les mensurations et observations individuelles du lot pour les importer sur le poste maître -tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies=Mensurations -tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.mnemonic=M -tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.tip=Exporter les mensurations du lot pour les importer sur le poste maître -tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations=Observations individuelles -tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.mnemonic=O -tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.tip=Exporter les observations individuelles du lot pour les importer sur le poste maître -tutti.editSpeciesFrequencies.action.generate=Générer -tutti.editSpeciesFrequencies.action.generate.mnemonic=G -tutti.editSpeciesFrequencies.action.generate.tip=Générer les mensurations -tutti.editSpeciesFrequencies.action.importMultiPostFull=Mensurations et observations individuelles -tutti.editSpeciesFrequencies.action.importMultiPostFull.mnemonic=e -tutti.editSpeciesFrequencies.action.importMultiPostFull.tip=Importer les mensurations et observations individuelles du lot créés sur un poste satellite -tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies=Mensurations -tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.mnemonic=M -tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.tip=Importer les mensurations du lot créés sur un poste satellite -tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations=Observations individuelles -tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.mnemonic=O -tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.tip=Importer les observations individuelles du lot créés sur un poste satellite -tutti.editSpeciesFrequencies.action.removeObservation=Supprimer -tutti.editSpeciesFrequencies.action.removeObservation.confirm.message=<html>Vous êtes sur le point de supprimer l'observation sélectionnée.<hr/>Êtes-vous sur de vouloir la supprimer ?</html> -tutti.editSpeciesFrequencies.action.removeObservation.mnemonic=S -tutti.editSpeciesFrequencies.action.removeObservation.tip=Supprimer les lignes sélectionnées -tutti.editSpeciesFrequencies.action.removeObservations.confirm.message=<html>Vous êtes sur le point de supprimer les %s observations sélectionnées.<hr/>Êtes-vous sur de vouloir les supprimer ?</html> -tutti.editSpeciesFrequencies.action.removeObservations.confirm.title=Suppression d'observations individuelles -tutti.editSpeciesFrequencies.action.reset=Réinitialiser -tutti.editSpeciesFrequencies.action.reset.mnemonic=R -tutti.editSpeciesFrequencies.action.reset.tip=Supprimer toutes les mensurations saisies -tutti.editSpeciesFrequencies.action.saveAndClose=Enregistrer et Fermer -tutti.editSpeciesFrequencies.action.saveAndClose.mnemonic=F -tutti.editSpeciesFrequencies.action.saveAndClose.tip=Enregistrer les mensurations -tutti.editSpeciesFrequencies.action.saveAndContinue=Enregistrer et Continuer -tutti.editSpeciesFrequencies.action.saveAndContinue.mnemonic=C -tutti.editSpeciesFrequencies.action.saveAndContinue.tip=Enregistrer les mensurations et saisir les mensurations pour le lot suivant -tutti.editSpeciesFrequencies.addMeasure=Ajout d'un individu de taille <strong>%1$s</strong>%3$s (classe de taille <strong>%2$s</strong>%3$s) -tutti.editSpeciesFrequencies.askBeforeSave.help=Que voulez-vous faire?<ul><li><strong>Non</strong> pour rester sur cet écran</li><li><strong>Oui</strong> pour enregisrer les mensurations avec poids</li></ul> -tutti.editSpeciesFrequencies.askBeforeSave.message=La saisie comporte des classes de taille avec et sans poids associés.<br/><strong>Seules les classes de taille avec poids seront dans ce cas sauvegardées.</strong> -tutti.editSpeciesFrequencies.askBeforeSave.title=Confirmer l'enregistrement des mensurations -tutti.editSpeciesFrequencies.averageWeight.label=Poids moyen -tutti.editSpeciesFrequencies.changeCopyMode.confirm.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas changer de mode de copie</li><li><strong>OK</strong> pour changer de mode de copie et supprimer les données saisies</li></ul> -tutti.editSpeciesFrequencies.changeCopyMode.confirm.message=Vous êtes sur le point de changer de mode de copie alors que des données ont été saisies dans les mensurations.<br/>Si vous changez de mode, les données vont être supprimées. -tutti.editSpeciesFrequencies.changeCopyMode.confirm.title=Changement de mode de copie -tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas copier les poids calculés via les RTP</li><li><strong>OK</strong> pour copier les poids calculés via les RTP et supprimer les données saisies</li></ul> -tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.message=Vous êtes sur le point de remplacer les poids saisis par les poids calculés via les RTP.<br/>Si vous les remplacez, les données saisies seront perdues. -tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.title=Copier les poids calculés via les RTP -tutti.editSpeciesFrequencies.error.itchyometer.bad.record=La mesure provenant de l'ichtyomètre n'est pas valide (la donnée est peut-être corrompue) \:<br/><ul><li>Enregistrement \: <strong>%s</strong></li><li>CRC \: <strong>%s</strong></li><li>CRC calculé \: <strong>%s</strong></li></ul> -tutti.editSpeciesFrequencies.error.length.doublon=La classe de taille <strong>%s</strong> est utilisée plusieurs fois (deuxième occurrence trouvée à la ligne <strong>%s</strong>), ce qui n'est pas autorisé.<hr/>Veuillez corriger cela pour pouvoir enregistrer les mensurations. -tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale=Ajouter aux observations individuelles -tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip=Ajouter une ligne d'observation individuelle avec la taille saisie -tutti.editSpeciesFrequencies.field.copyRtpWeights=Recopie des poids via RTP -tutti.editSpeciesFrequencies.field.copyRtpWeights.tip=Recopie des poids via RTP -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all=Tout -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.mnemonic=T -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.tip=Tout recopier (tailles et poids) -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.label=Recopier \: -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing=Rien -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.mnemonic=R -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.tip=Ne rien recopier -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size=Seulement les tailles -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.mnemonic=T -tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.tip=Ne recopier que les tailles, pas les poids -tutti.editSpeciesFrequencies.field.frequencyMode.autoGen=Génération des classes -tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.mnemonic=G -tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.tip=\=Mode où toutes les classes de taille sont générées -tutti.editSpeciesFrequencies.field.frequencyMode.rafale=Mode "rafale" -tutti.editSpeciesFrequencies.field.frequencyMode.rafale.mnemonic=l -tutti.editSpeciesFrequencies.field.frequencyMode.rafale.tip=Mode où on ne saisit uniquement la classe de taille (les nombres seront alors incrémentés...) -tutti.editSpeciesFrequencies.field.graphAverageWeight=Poids moyens -tutti.editSpeciesFrequencies.field.lengthStepCaracteristic=Type de mesure -tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip=Méthode de mensuration des individus -tutti.editSpeciesFrequencies.field.maxStep=Classe max -tutti.editSpeciesFrequencies.field.maxStep.tip=Taille maximale mesurée -tutti.editSpeciesFrequencies.field.minStep=Classe min -tutti.editSpeciesFrequencies.field.minStep.tip=Taille minimale mesurée -tutti.editSpeciesFrequencies.field.mode.frequencyMode=Mensuration -tutti.editSpeciesFrequencies.field.mode.frequencyMode.mnemonic=M -tutti.editSpeciesFrequencies.field.mode.frequencyMode.tip=Mode par défaut si la classe de taille est renseignée dans le protocole. -tutti.editSpeciesFrequencies.field.mode.simpleCounting=Mode simple dénombrement -tutti.editSpeciesFrequencies.field.mode.simpleCounting.mnemonic=b -tutti.editSpeciesFrequencies.field.mode.simpleCounting.tip=Mode par défaut si la classe de taille n'est pas renseignée dans le protocole. -tutti.editSpeciesFrequencies.field.rafaleStep=Classe de taille à incrémenter -tutti.editSpeciesFrequencies.field.rafaleStep.tip=Saisir à la suite les différentes tailles mesurées -tutti.editSpeciesFrequencies.field.rows=Classes de taille -tutti.editSpeciesFrequencies.field.simpleCountingNumber=Nombre -tutti.editSpeciesFrequencies.field.simpleCountingNumber.tip=Saisir le nombre d'individus dans le lot -tutti.editSpeciesFrequencies.field.simpleCountingWeight=Poids du sous-échantillon -tutti.editSpeciesFrequencies.field.simpleCountingWeight.tip=Poids du sous-échantillon du lot -tutti.editSpeciesFrequencies.field.step=Pas de la classe de taille -tutti.editSpeciesFrequencies.field.step.tip=Pas de la classe de taille pour cette espèce (ex. \: 1 cm, 0,5 cm, 1 mm etc.) -tutti.editSpeciesFrequencies.field.totalNumber=Nombre total -tutti.editSpeciesFrequencies.field.totalNumber.tip=Nombre total d'individus des lignes valides -tutti.editSpeciesFrequencies.field.totalWeight=Poids total -tutti.editSpeciesFrequencies.field.totalWeight.tip=Poids total des lignes valides -tutti.editSpeciesFrequencies.field.useRtp=Utiliser les RTP -tutti.editSpeciesFrequencies.field.useRtp.tip=Utiliser les RTP -tutti.editSpeciesFrequencies.frequenciesPanel=Mensurations -tutti.editSpeciesFrequencies.individualObservationsPanel=Observations individuelles -tutti.editSpeciesFrequencies.label.no.configuration=< Pas de configuration > -tutti.editSpeciesFrequencies.logTable.header.label=Logs -tutti.editSpeciesFrequencies.logTable.removeRow.confirm.message=Êtes-vous sûr de vouloir supprimer la mesure %s ? -tutti.editSpeciesFrequencies.logTable.removeRow.confirm.title=Suppression d'une mesure +tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.sourceFile.title=Importer des lots d'espèces et des observations individu +tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.success= +tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.tip= +tutti.editSpeciesBatch.action.importPsion= +tutti.editSpeciesBatch.action.importPsion.mnemonic= +tutti.editSpeciesBatch.action.importPsion.no.matching.data= +tutti.editSpeciesBatch.action.importPsion.no.matching.fishingOperation= +tutti.editSpeciesBatch.action.importPsion.no.matching.fishingOperation.title= +tutti.editSpeciesBatch.action.importPsion.success= +tutti.editSpeciesBatch.action.importPsion.tip= +tutti.editSpeciesBatch.action.importPupitri= +tutti.editSpeciesBatch.action.importPupitri.existingData.help= +tutti.editSpeciesBatch.action.importPupitri.existingData.message= +tutti.editSpeciesBatch.action.importPupitri.existingData.title= +tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.message= +tutti.editSpeciesBatch.action.importPupitri.invalidSampleCategoryModel.title= +tutti.editSpeciesBatch.action.importPupitri.mnemonic= +tutti.editSpeciesBatch.action.importPupitri.no.matching.data= +tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation= +tutti.editSpeciesBatch.action.importPupitri.no.matching.fishingOperation.title= +tutti.editSpeciesBatch.action.importPupitri.showReport.message= +tutti.editSpeciesBatch.action.importPupitri.showReport.title= +tutti.editSpeciesBatch.action.importPupitri.speciesNotImported.message= +tutti.editSpeciesBatch.action.importPupitri.speciesNotImported.title= +tutti.editSpeciesBatch.action.importPupitri.success= +tutti.editSpeciesBatch.action.importPupitri.tip= +tutti.editSpeciesBatch.action.removeBatch= +tutti.editSpeciesBatch.action.removeBatch.confirm.message= +tutti.editSpeciesBatch.action.removeBatch.confirm.title= +tutti.editSpeciesBatch.action.removeBatch.mnemonic= +tutti.editSpeciesBatch.action.removeBatches= +tutti.editSpeciesBatch.action.removeBatches.confirm.message= +tutti.editSpeciesBatch.action.removeBatches.tip= +tutti.editSpeciesBatch.action.removeSubBatch= +tutti.editSpeciesBatch.action.removeSubBatch.confirm.message= +tutti.editSpeciesBatch.action.removeSubBatch.confirm.title= +tutti.editSpeciesBatch.action.removeSubBatch.mnemonic= +tutti.editSpeciesBatch.action.removeSubBatch.tip= +tutti.editSpeciesBatch.action.renameBatch= +tutti.editSpeciesBatch.action.renameBatch.mnemonic= +tutti.editSpeciesBatch.action.renameBatch.tip= +tutti.editSpeciesBatch.action.showReport= +tutti.editSpeciesBatch.action.splitBatch= +tutti.editSpeciesBatch.action.splitBatch.mnemonic= +tutti.editSpeciesBatch.action.splitBatch.tip= +tutti.editSpeciesBatch.action.title.choose.importBigfinFile= +tutti.editSpeciesBatch.action.title.choose.importPsionFile= +tutti.editSpeciesBatch.error.sampleCategoryValue.notAvailable= +tutti.editSpeciesBatch.field.speciesTotalInertWeight= +tutti.editSpeciesBatch.field.speciesTotalInertWeight.tip= +tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight= +tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.tip= +tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight= +tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.tip= +tutti.editSpeciesBatch.field.speciesTotalSortedWeight= +tutti.editSpeciesBatch.field.speciesTotalSortedWeight.tip= +tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight= +tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.tip= +tutti.editSpeciesBatch.field.speciesTotalWeight= +tutti.editSpeciesBatch.field.speciesTotalWeight.tip= +tutti.editSpeciesBatch.filterBatch= +tutti.editSpeciesBatch.filterBatch.mode.all= +tutti.editSpeciesBatch.filterBatch.mode.all.tip= +tutti.editSpeciesBatch.filterBatch.mode.leaf= +tutti.editSpeciesBatch.filterBatch.mode.leaf.tip= +tutti.editSpeciesBatch.filterBatch.mode.root= +tutti.editSpeciesBatch.filterBatch.mode.root.tip= +tutti.editSpeciesBatch.filterSpeciesBatch.tip= +tutti.editSpeciesBatch.sortSpeciesBatch= +tutti.editSpeciesBatch.sortSpeciesBatch.tip= +tutti.editSpeciesBatch.speciesSortMode.asc= +tutti.editSpeciesBatch.speciesSortMode.asc.tip= +tutti.editSpeciesBatch.speciesSortMode.desc= +tutti.editSpeciesBatch.speciesSortMode.desc.tip= +tutti.editSpeciesBatch.speciesSortMode.none= +tutti.editSpeciesBatch.speciesSortMode.none.tip= +tutti.editSpeciesBatch.split.weightNotNull.help= +tutti.editSpeciesBatch.split.weightNotNull.message= +tutti.editSpeciesBatch.split.weightNotNull.title= +tutti.editSpeciesBatch.table.header.comment= +tutti.editSpeciesBatch.table.header.comment.tip= +tutti.editSpeciesBatch.table.header.computedNumber= +tutti.editSpeciesBatch.table.header.computedNumber.tip= +tutti.editSpeciesBatch.table.header.file= +tutti.editSpeciesBatch.table.header.file.tip= +tutti.editSpeciesBatch.table.header.id= +tutti.editSpeciesBatch.table.header.id.tip= +tutti.editSpeciesBatch.table.header.species= +tutti.editSpeciesBatch.table.header.species.tip= +tutti.editSpeciesBatch.table.header.toConfirm.tip= +tutti.editSpeciesBatch.table.header.weight= +tutti.editSpeciesBatch.table.header.weight.tip= +tutti.editSpeciesBatch.title.changeSampleCategoryValue= +tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic= +tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.mnemonic= +tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.tip= +tutti.editSpeciesFrequencies.action.cancel= +tutti.editSpeciesFrequencies.action.cancel.mnemonic= +tutti.editSpeciesFrequencies.action.cancel.tip= +tutti.editSpeciesFrequencies.action.exportMultiPostFull= +tutti.editSpeciesFrequencies.action.exportMultiPostFull.mnemonic= +tutti.editSpeciesFrequencies.action.exportMultiPostFull.tip= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.mnemonic= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.tip= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.mnemonic= +tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.tip= +tutti.editSpeciesFrequencies.action.generate= +tutti.editSpeciesFrequencies.action.generate.mnemonic= +tutti.editSpeciesFrequencies.action.generate.tip= +tutti.editSpeciesFrequencies.action.importMultiPostFull= +tutti.editSpeciesFrequencies.action.importMultiPostFull.mnemonic= +tutti.editSpeciesFrequencies.action.importMultiPostFull.tip= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.mnemonic= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.tip= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.mnemonic= +tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.tip= +tutti.editSpeciesFrequencies.action.removeObservation= +tutti.editSpeciesFrequencies.action.removeObservation.confirm.message= +tutti.editSpeciesFrequencies.action.removeObservation.mnemonic= +tutti.editSpeciesFrequencies.action.removeObservation.tip= +tutti.editSpeciesFrequencies.action.removeObservations.confirm.message= +tutti.editSpeciesFrequencies.action.removeObservations.confirm.title= +tutti.editSpeciesFrequencies.action.reset= +tutti.editSpeciesFrequencies.action.reset.mnemonic= +tutti.editSpeciesFrequencies.action.reset.tip= +tutti.editSpeciesFrequencies.action.saveAndClose= +tutti.editSpeciesFrequencies.action.saveAndClose.mnemonic= +tutti.editSpeciesFrequencies.action.saveAndClose.tip= +tutti.editSpeciesFrequencies.action.saveAndContinue= +tutti.editSpeciesFrequencies.action.saveAndContinue.mnemonic= +tutti.editSpeciesFrequencies.action.saveAndContinue.tip= +tutti.editSpeciesFrequencies.addMeasure= +tutti.editSpeciesFrequencies.askBeforeSave.help= +tutti.editSpeciesFrequencies.askBeforeSave.message= +tutti.editSpeciesFrequencies.askBeforeSave.title= +tutti.editSpeciesFrequencies.averageWeight.label= +tutti.editSpeciesFrequencies.changeCopyMode.confirm.help= +tutti.editSpeciesFrequencies.changeCopyMode.confirm.message= +tutti.editSpeciesFrequencies.changeCopyMode.confirm.title= +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.help= +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.message= +tutti.editSpeciesFrequencies.changeCopyRtpWeights.confirm.title= +tutti.editSpeciesFrequencies.error.itchyometer.bad.record= +tutti.editSpeciesFrequencies.error.length.doublon= +tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale= +tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip= +tutti.editSpeciesFrequencies.field.copyRtpWeights= +tutti.editSpeciesFrequencies.field.copyRtpWeights.tip= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.mnemonic= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.tip= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.label= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.mnemonic= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.tip= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.mnemonic= +tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.tip= +tutti.editSpeciesFrequencies.field.frequencyMode.autoGen= +tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.mnemonic= +tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.tip= +tutti.editSpeciesFrequencies.field.frequencyMode.rafale= +tutti.editSpeciesFrequencies.field.frequencyMode.rafale.mnemonic= +tutti.editSpeciesFrequencies.field.frequencyMode.rafale.tip= +tutti.editSpeciesFrequencies.field.graphAverageWeight= +tutti.editSpeciesFrequencies.field.lengthStepCaracteristic= +tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip= +tutti.editSpeciesFrequencies.field.maxStep= +tutti.editSpeciesFrequencies.field.maxStep.tip= +tutti.editSpeciesFrequencies.field.minStep= +tutti.editSpeciesFrequencies.field.minStep.tip= +tutti.editSpeciesFrequencies.field.mode.frequencyMode= +tutti.editSpeciesFrequencies.field.mode.frequencyMode.mnemonic= +tutti.editSpeciesFrequencies.field.mode.frequencyMode.tip= +tutti.editSpeciesFrequencies.field.mode.simpleCounting= +tutti.editSpeciesFrequencies.field.mode.simpleCounting.mnemonic= +tutti.editSpeciesFrequencies.field.mode.simpleCounting.tip= +tutti.editSpeciesFrequencies.field.rafaleStep= +tutti.editSpeciesFrequencies.field.rafaleStep.tip= +tutti.editSpeciesFrequencies.field.rows= +tutti.editSpeciesFrequencies.field.simpleCountingNumber= +tutti.editSpeciesFrequencies.field.simpleCountingNumber.tip= +tutti.editSpeciesFrequencies.field.simpleCountingWeight= +tutti.editSpeciesFrequencies.field.simpleCountingWeight.tip= +tutti.editSpeciesFrequencies.field.step= +tutti.editSpeciesFrequencies.field.step.tip= +tutti.editSpeciesFrequencies.field.totalNumber= +tutti.editSpeciesFrequencies.field.totalNumber.tip= +tutti.editSpeciesFrequencies.field.totalWeight= +tutti.editSpeciesFrequencies.field.totalWeight.tip= +tutti.editSpeciesFrequencies.frequenciesPanel= +tutti.editSpeciesFrequencies.individualObservationsPanel= +tutti.editSpeciesFrequencies.logTable.header.label= +tutti.editSpeciesFrequencies.logTable.removeRow.confirm.message= +tutti.editSpeciesFrequencies.logTable.removeRow.confirm.title= tutti.editSpeciesFrequencies.samplingNeeded.immature= tutti.editSpeciesFrequencies.samplingNeeded.mature= -tutti.editSpeciesFrequencies.samplingNeeded.max=max -tutti.editSpeciesFrequencies.samplingNeeded.resume=<html><body><strong>%s</strong> \: trait \: %s | zone \: %s | campagne \: %s -tutti.editSpeciesFrequencies.samplingNeeded.warning=<html><body><strong>Prélevez les pièces calcifiées \!</body></html> -tutti.editSpeciesFrequencies.simpleCountingAndFrequencies=Des mensurations ont été saisies dans le tableau. Saisir un simple dénombrement les effacera. -tutti.editSpeciesFrequencies.table.header.lengthStep=Classe de taille -tutti.editSpeciesFrequencies.table.header.number=Nombre -tutti.editSpeciesFrequencies.table.header.rtpComputedWeight=Poids calculé par les RTP -tutti.editSpeciesFrequencies.table.header.weight=Poids observé -tutti.editSpeciesFrequencies.title=Mensuration -tutti.editSpeciesFrequencies.title.addLengthStepCaracteristic=Choisir une autre caractéristique -tutti.editSpeciesFrequencies.unkownStepUnit=NA -tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.button=Exporter -tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.title=Exporter les mensurations et observations individuelles -tutti.editSpeciesFrequency.action.exportMultiPostFull.success=Les mensurations et observations individuelles du lot ont été exportés dans le fichier %s -tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.button=Exporter -tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.title=Exporter les mensurations -tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.success=Les mensurations du lot ont été exportés dans le fichier %s -tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.button=Exporter -tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.title=Exporter les observations individuelles -tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.success=Les observations individuelles du lot ont été exportés dans le fichier %s -tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.button=Importer -tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.title=Importer les mensurations et observations individuelles -tutti.editSpeciesFrequency.action.importMultiPostFull.success=Les mensurations et observations individuelles du lot ont été importées depuis le fichier %s -tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.button=Importer -tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.title=Importer les mensurations -tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.success=Les mensurations du lot ont été importées depuis le fichier %s -tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.button=Importer -tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.title=Importer les observations individuelles -tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.success=Les observations individuelles du lot ont été importées depuis le fichier %s -tutti.error.application.already.started=<html><body>L'application est déjà démarrée.<br/>Si ce n'était pas le cas, veuillez supprimer le fichier <strong>tutti.lock</strong> présent dans le répertoire de l'outil avant de lancer l'applicatif.</body></html> -tutti.error.delete.startActionFile=Impossible de supprimer le fichier %s -tutti.error.read.startActionFile=Impossible de lire le contenu du fichier %s -tutti.error.update.bad.url.syntax=Mise à jour impossible (le format de l'url <strong>%s</strong> n'est pas valide) -tutti.error.update.could.not.found.url=Mise à jour impossible (l'url <strong>%s</strong> n'existe pas) -tutti.error.update.could.not.reach.url=Mise à jour impossible (l'url <strong>%s</strong> n'est pas joignable) -tutti.error.write.startActionFile=impossible d'écrire dans le fichier %s -tutti.exportCruise.action.computeNbSteps=Calcul du nombre d'opérations à réaliser -tutti.exportCruise.action.exportErrors=Des erreurs sont apparues pendant l'élévation des poids de la campagne <strong>%s</strong>.<br/>L'export a cependant été réalisé.<hr/>Erreur(s) rencontrée(s) \: <br/>%s -tutti.exportCruise.action.success=La campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>. -tutti.exportCruiseCsv.action.chooseFile=Exporter -tutti.exportCruiseCsv.action.success=La campagne sélectionnée a été exportée dans le fichier <strong>%s</strong> -tutti.exportCruiseCsv.message.badBenthos=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Benthos) ont été détectées \: <ul>%s</ul></body></html> -tutti.exportCruiseCsv.message.badSpecies=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Espèce) ont été détectées \: <ul>%s</ul></body></html> -tutti.exportCruiseCsv.message.missing.protocol=<html><body>Pas de protocole renseigné, La colonne <strong>espececampagne</strong> ne sera pas renseigné.</body></html> -tutti.exportCruiseCsv.title.badBenthos=Espèces non présentes dans le protocole (onglet Benthos) -tutti.exportCruiseCsv.title.badSpecies=Espèces non présentes dans le protocole (onglet Espèce) -tutti.exportCruiseCsv.title.choose.exportFile=Exporter la campagne -tutti.exportCruiseCsv.title.missing.protocol=Pas de protocole renseigné -tutti.exportCruiseCsv.title.required.protocol=Protocole requis pour export csv -tutti.exportDb.step.closeDb=Fermeture de la base courante -tutti.exportDb.step.createArchive=Création de l'archive %s -tutti.exportDb.step.openDb=Réouverture de la base courante -tutti.exportDb.step.reloadApplication=Redémarrage de l'application -tutti.exportFishingOperationCsv.action.chooseFile=Exporter -tutti.exportFishingOperationCsv.action.success=Le trait a été exporté dans le fichier <strong>%s</strong> -tutti.exportFishingOperationCsv.message.badBenthos=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Benthos) ont été détectées \: <ul>%s</ul></body></html> -tutti.exportFishingOperationCsv.message.badSpecies=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Espèce) ont été détectées \: <ul>%s</ul></body></html> -tutti.exportFishingOperationCsv.message.missing.protocol=<html><body>Pour faire un export csv, un protocole est requis.<br/>De plus toutes les espèces de la captures doivent être renseignées dans le protocole.</body></html> -tutti.exportFishingOperationCsv.message.model.modified=La capture a été modifiée, veuillez l'enregistrer avant de lancer un export. -tutti.exportFishingOperationCsv.title.badBenthos=Espèces non présentes dans le protocole (onglet Benthos) -tutti.exportFishingOperationCsv.title.badSpecies=Espèces non présentes dans le protocole (onglet Espèce) -tutti.exportFishingOperationCsv.title.choose.exportFile=Exporter le trait de la campagne -tutti.exportFishingOperationCsv.title.missing.protocol=Protocole requis pour export csv -tutti.exportFishingOperationCsv.title.model.modified=Impossible d'exporter, capture modifiée -tutti.exportFishingOperationReport.action.chooseFile=Choisir le fichier de rapport -tutti.exportFishingOperationReport.action.success=Le trait a été exporté dans le fichier <strong>%s</strong> -tutti.exportFishingOperationReport.message.model.modified=La capture a été modifiée, veuillez l'enregistrer avant de lancer un export. -tutti.exportFishingOperationReport.title.choose.exportFile=Exporter le trait de la campagne -tutti.exportFishingOperationReport.title.model.modified=Impossible d'exporter, capture modifiée -tutti.exportProgram.action.computeNbSteps=Calcul du nombre d'opérations à réaliser -tutti.exportProgram.action.exportErrors=Des erreurs sont apparues pendant l'élévation des poids d'une campagne de la série <strong>%s</strong>.<br/>L'export a cependant été réalisé.<hr/>Erreur(s) rencontrée(s) \: <br/>%s -tutti.exportProgram.action.success=La série de campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>. -tutti.exportProtocol.action.success=Protocole [%1s] exporté dans le fichier <strong>%2s</strong>. -tutti.exportSampleCategoryModel.action.chooseSampleCategoryModelFile.export=Exporter -tutti.exportSampleCategoryModel.action.export.success=L'export effectué dans le fichier <strong>%s</strong>. -tutti.exportSampleCategoryModel.title.choose.exportSampleCategoryModelFile=Exporter le modèle de catégorisation -tutti.fishingOperations.action.deleteFishingOperation.mnemonic=S -tutti.fishingOperations.action.deleteFishingOperation.tip=Supprimer l'opération de pêche sélectionnée -tutti.fishingOperations.action.newFishingOperation.mnemonic=N -tutti.fishingOperations.action.newFishingOperation.tip=Créer une nouvelle opération de pêche -tutti.fishingOperations.info.no.fishingOperation.selected=< Aucun trait sélectionné > -tutti.fishingOperations.title.edit.operations=Saisie des opérations de pêches (%s) -tutti.fishingOperations.title.validate.operations=Validation des opérations de pêches (%s) -tutti.fishingOperations.warn.catchBatch.invalidSampleCategoryModel=L'arbre d’échantillonnage n'est pas compatible (utilisation de catégories non configurées ou dans un mauvais ordre). Les captures ne seront pas visibles. -tutti.fishingOperations.warn.catchBatch.notFound=Pas d'arbre d’échantillonnage associé à l'opération de pêche. -tutti.fishingOperations.warn.invalid.batch=<html><body>Les erreurs suivantes ont été détectées, impossible d'afficher les captures \:<br/><ul>%s</ul></body></html>. -tutti.fishingOperations.warn.invalid.batch.model=L'arbre d’échantillonnage n'est pas compatible. Les captures ne seront pas visibles. -tutti.flash.info.all.caractristic.exported=Toutes les caractéristiques exportées dans le fichier <strong>%s</strong>. -tutti.flash.info.benthos.add.to.protocol=Le benthos <strong>%s</strong> a été ajouté au protocole. -tutti.flash.info.benthos.imported.in.protocol=Benthos importés dans le protocole depuis le fichier <strong>%s</strong>. -tutti.flash.info.benthos.imported.in.protocol.oneReplaced=Benthos importés dans le protocole depuis le fichier <strong>%s</strong>. 1 remplacée par son référent. -tutti.flash.info.benthos.imported.in.protocol.severalReplaced=Benthos importés dans le protocole depuis le fichier <strong>%s</strong>. %s remplacées par leur référent. -tutti.flash.info.benthos.remove.from.protocol=Les benthos ont été retirés du protocole. -tutti.flash.info.benthos.replaced=Le benthos <strong>%s</strong> a été remplacé par son référent <strong>%s</strong>. -tutti.flash.info.caracteristic.add.to.protocol=La caractéristique <strong>%s</strong> a été ajoutée au protocole. -tutti.flash.info.caracteristic.imported.in.protocol=Caractéristiques importées dans le protocole depuis le fichier <strong>%s</strong>. -tutti.flash.info.caracteristicMapping.remove.from.protocol=Les caractéristiques ont été retirées du protocole. -tutti.flash.info.caractristic.exported.from.protocol=Caractéristiques du protocole exportées dans le fichier <strong>%s</strong>. -tutti.flash.info.cps.exported.from.protocol=Algorithme de prélèvement du protocole exporté dans le fichier <strong>%s</strong>. -tutti.flash.info.cps.imported.in.protocol=\=Algorithme de prélèvement importé dans le protocole depuis le fichier <strong>%s</strong>. -tutti.flash.info.cruiseCreated=La campagne <strong>%s</strong> a été créée. -tutti.flash.info.cruiseSaved=La campagne <strong>%s</strong> a été enregistrée. -tutti.flash.info.db.closed=La base <strong>%s</strong> est fermée. -tutti.flash.info.db.exported=Base exportée dans l'archive <strong>%s</strong>. -tutti.flash.info.db.exported.and.clean=Base exportée dans l'archive <strong>%s</strong>. -tutti.flash.info.db.imported=La base de données <strong>%s</strong> est importée. -tutti.flash.info.db.imported.but.closed=La base de données <strong>%s</strong> est importée mais n'a pas été ouverte. -tutti.flash.info.db.not.opened=La base <strong>%s</strong> n'a pas été ouverte. -tutti.flash.info.db.opened=La base de données <strong>%s</strong> est ouverte. -tutti.flash.info.db.schema.updated=Le schéma de la base (version %s) a été mise à jour vers la version %s -tutti.flash.info.programCreated=La série de campagne <strong>%s</strong> a été créée. -tutti.flash.info.programSaved=La série de campagne <strong>%s</strong> a été enregistrée. -tutti.flash.info.protocolCreated=Le protocole <strong>%s</strong> a été créé. -tutti.flash.info.protocolSaved=Le protocole <strong>%s</strong> a été enregistré. -tutti.flash.info.species.add.to.protocol=L'espèce <strong>%s</strong> a été ajoutée au protocole. -tutti.flash.info.species.exported.from.protocol=Espèces du protocole exportées dans le fichier <strong>%s</strong>. -tutti.flash.info.species.imported.in.protocol=Espèces importées dans le protocole depuis le fichier <strong>%s</strong>. -tutti.flash.info.species.imported.in.protocol.oneReplaced=Espèces importées dans le protocole depuis le fichier <strong>%s</strong>. 1 remplacée par son référent. -tutti.flash.info.species.imported.in.protocol.severalReplaced=Espèces importées dans le protocole depuis le fichier <strong>%s</strong>. %s remplacées par leur référent. -tutti.flash.info.species.remove.from.protocol=Les espèces ont été retirées du protocole. -tutti.flash.info.species.replaced=L'espèce <strong>%s</strong> a été remplacée par son référent <strong>%s</strong>. -tutti.gear.noCaracteristics=Pas de caractéristiques. -tutti.gear.withCaracteristics=Caractéristiques de l'engin %s -tutti.gearCaracteristicsEditorTable.table.header.key=Caractéristique -tutti.gearCaracteristicsEditorTable.table.header.value=Valeur -tutti.gearUseFeatureTable.action.removeCaracteristic=Supprimer -tutti.gearUseFeatureTable.action.removeCaracteristic.mnemonic=S -tutti.gearUseFeatureTable.action.removeCaracteristic.tip=Supprimer la caractéristique -tutti.gearUseFeatureTable.table.header.key=Caractéristique -tutti.gearUseFeatureTable.table.header.value=Valeur -tutti.gearUseFeatureTable.title=Mise en œuvre de l'engin -tutti.generateReport.action.computeNbSteps=Calcul du nombre d'opérations -tutti.genericFormat.action.chooseDbBackupFile=Sauvegarder la base de données -tutti.genericFormat.action.chooseExportFile=Exporter -tutti.genericFormat.action.chooseImportReportFile=Enregistrer -tutti.genericFormat.action.chooseValidateReportFile=Enregistrer -tutti.genericFormat.export.action.success=Export générique terminé (fichier <strong>%s</strong>) -tutti.genericFormat.import.error=Des erreurs ont été détectées lors de l'import -tutti.genericFormat.import.error.tip=Vous pouvez consulter le rapport d'import pour les corriger -tutti.genericFormat.import.success=L'import s'est déroulé avec succès -tutti.genericFormat.import.success.tip=Vous pouvez consulter le rapport d'import (%s) -tutti.genericFormat.importReportFile.saved=Le rapport d'import a été enregistré <strong>%s</strong> -tutti.genericFormat.title.choose.dbBackupFile=Sauvegarder la base de données -tutti.genericFormat.title.choose.exportFile=Exporter des données au format générique -tutti.genericFormat.title.choose.saveImportReportfile=Enregisrer le rapport d'import -tutti.genericFormat.title.choose.saveValidateReportfile=Enregisrer le rapport de validation -tutti.genericFormat.validate.error=Des erreurs ont été détectées lors de la validation -tutti.genericFormat.validate.error.tip=Vous pouvez consulter le rapport de validation pour les corriger -tutti.genericFormat.validate.success=La validation s'est déroulée avec succès -tutti.genericFormat.validate.success.tip=Vous pouvez consulter le rapport de validation (%s) -tutti.genericFormat.validateReportFile.saved=Le rapport de validation a été enregistré <strong>%s</strong> -tutti.genericFormatExport.action.closeGenericFormatExport=Quitter -tutti.genericFormatExport.action.closeGenericFormatExport.mnemonic=Q -tutti.genericFormatExport.action.closeGenericFormatExport.tip=Quitter l'écran d'export -tutti.genericFormatExport.action.export=Exporter -tutti.genericFormatExport.action.export.mnemonic=E -tutti.genericFormatExport.action.export.tip=Exporter les données sélectionnées -tutti.genericFormatExport.action.foldAll=Tout Replier -tutti.genericFormatExport.action.foldAll.mnemonic=R -tutti.genericFormatExport.action.foldAll.tip=Tout replier -tutti.genericFormatExport.action.selectAll=Tout sélectionner -tutti.genericFormatExport.action.selectAll.mnemonic=S -tutti.genericFormatExport.action.selectAll.tip=Tout sélectionner -tutti.genericFormatExport.action.unfoldAll=Tout Déplier -tutti.genericFormatExport.action.unfoldAll.mnemonic=D -tutti.genericFormatExport.action.unfoldAll.tip=Tout déplier -tutti.genericFormatExport.action.unselectAll=Tout désélectionner -tutti.genericFormatExport.action.unselectAll.mnemonic=T -tutti.genericFormatExport.action.unselectAll.tip=Tout désélectionner -tutti.genericFormatExport.exportConfiguration.legend=Configuration -tutti.genericFormatExport.exportFile.extension=zip -tutti.genericFormatExport.exportFile.extension.description=Archive d'import générique (.zip) -tutti.genericFormatExport.exportOptions.legend=Options d'export -tutti.genericFormatExport.field.exportAccidentalCatch=Exporter les captures accidentelles -tutti.genericFormatExport.field.exportAccidentalCatch.tip=Exporter les captures accidentelles -tutti.genericFormatExport.field.exportAttachments=Exporter les pièces-jointes -tutti.genericFormatExport.field.exportAttachments.tip=Exporter les pièces-jointes -tutti.genericFormatExport.field.exportBenthos=Exporter les lots Benthos -tutti.genericFormatExport.field.exportBenthos.tip=Exporter les lots Benthos -tutti.genericFormatExport.field.exportFile=Fichier d'export -tutti.genericFormatExport.field.exportFile.tip=Fichier d'export -tutti.genericFormatExport.field.exportIndividualObservation=Exporter les observations individuelles -tutti.genericFormatExport.field.exportIndividualObservation.tip=Exporter les observations individuelles -tutti.genericFormatExport.field.exportMarineLitter=Exporter les macro-déchets -tutti.genericFormatExport.field.exportMarineLitter.tip=Exporter les macro-déchets -tutti.genericFormatExport.field.exportSpecies=Exporter les lots Espèces -tutti.genericFormatExport.field.exportSpecies.tip=Exporter les lots Espèces -tutti.genericFormatExport.field.program=Série de campagne -tutti.genericFormatExport.field.program.tip=Série de campagne -tutti.genericFormatExport.selectData.legend=Sélection des données à exporter -tutti.genericFormatExport.title=Export générique -tutti.genericFormatImport.action.closeGenericFormatImport=Quitter -tutti.genericFormatImport.action.closeGenericFormatImport.mnemonic=Q -tutti.genericFormatImport.action.closeGenericFormatImport.tip=Quitter -tutti.genericFormatImport.action.error=L'import depuis le fichier <strong>%s</strong> a échoué. -tutti.genericFormatImport.action.foldAll.tip=Tout replier -tutti.genericFormatImport.action.generateReport=Générer le rapport -tutti.genericFormatImport.action.generateReport.mnemonic=G -tutti.genericFormatImport.action.generateReport.tip=Générer le rapport de l'import -tutti.genericFormatImport.action.import=Importer -tutti.genericFormatImport.action.import.mnemonic=I -tutti.genericFormatImport.action.import.tip=Lancer l'import générique -tutti.genericFormatImport.action.importErrors= -tutti.genericFormatImport.action.openImportReport.tip=Ouvrir le rapport d'import -tutti.genericFormatImport.action.openValidateReport.tip=Ouvrir le rapport de validation -tutti.genericFormatImport.action.saveImportReport.tip=Enregistrer le rapport d'import -tutti.genericFormatImport.action.saveValidateReport.tip=Enregistrer le rapport de validation -tutti.genericFormatImport.action.selectAll.tip=Tout sélectionner -tutti.genericFormatImport.action.showReport=Visualiser -tutti.genericFormatImport.action.showReport.mnemonic=V -tutti.genericFormatImport.action.showReport.tip=Visualiser le rapport -tutti.genericFormatImport.action.success=L'import depuis le fichier <strong>%s</strong> s'est bien déroulé. -tutti.genericFormatImport.action.unfoldAll.tip=Tout déplier -tutti.genericFormatImport.action.unselectAll.tip=Tout déselectionner -tutti.genericFormatImport.action.validate=Valider l'import -tutti.genericFormatImport.action.validate.mnemonic=V -tutti.genericFormatImport.action.validate.tip=Valider l'archive d'import -tutti.genericFormatImport.backupFile.extension=zip -tutti.genericFormatImport.backupFile.extension.description=Sauvegarde de la base (.zip) -tutti.genericFormatImport.field.authorizeObsoleteReferentials=Autoriser l'utilisation de référentiels obsolètes -tutti.genericFormatImport.field.authorizeObsoleteReferentials.tip=Autoriser l'utilisation des référentiels obsolètes dans les données à importer -tutti.genericFormatImport.field.backupFile=Fichier de sauvegarde -tutti.genericFormatImport.field.backupFile.tip=Fichier de sauvegarde de la base avant import -tutti.genericFormatImport.field.checkWeights=Vérifier les poids (élévation) -tutti.genericFormatImport.field.checkWeights.tip=Vérifier les poids via l'élévation des poids -tutti.genericFormatImport.field.cleanWeights=Supprimer les poids en double -tutti.genericFormatImport.field.cleanWeights.tip=Supprimer les poids en double -tutti.genericFormatImport.field.importAccidentalCatch=Importer les captures accidentelles -tutti.genericFormatImport.field.importAccidentalCatch.tip=Importer les captures accidentelles -tutti.genericFormatImport.field.importAttachments=Importer les pièces-jointes -tutti.genericFormatImport.field.importAttachments.tip=Importer les pièces-jointes -tutti.genericFormatImport.field.importBenthos=Importer les lots Benthos -tutti.genericFormatImport.field.importBenthos.tip=Importer les lots Benthos -tutti.genericFormatImport.field.importFile=Fichier d'import -tutti.genericFormatImport.field.importFile.tip=Fichier d'import au format générique -tutti.genericFormatImport.field.importIndividualObservation=Importer les observations individuelles -tutti.genericFormatImport.field.importIndividualObservation.tip=Importer les observations individuelles -tutti.genericFormatImport.field.importMarineLitter=Importer les macro-déchets -tutti.genericFormatImport.field.importMarineLitter.tip=Importer les macro-déchets -tutti.genericFormatImport.field.importSpecies=Importer les lots Espèces -tutti.genericFormatImport.field.importSpecies.tip=Importer les lots Espèces -tutti.genericFormatImport.field.overrideData=Autoriser l'écrasement des données -tutti.genericFormatImport.field.overrideData.tip=Autorise l'écrasement des données existantes -tutti.genericFormatImport.field.program=Série de campagne -tutti.genericFormatImport.field.program.tip=Série de campagne où importer les campagne -tutti.genericFormatImport.field.reportFile=Rapport -tutti.genericFormatImport.field.reportFile.tip=Chemin du fichier de rapport -tutti.genericFormatImport.field.updateCruises=Mettre à jour les campagnes -tutti.genericFormatImport.field.updateCruises.tip=Mettre à jour les caractéristiques des campagnes exitantes -tutti.genericFormatImport.field.updateOperations=Mettre à jour les traits -tutti.genericFormatImport.field.updateOperations.tip=Mettre à jour les traits existants -tutti.genericFormatImport.import.legend=Import -tutti.genericFormatImport.importFile.extension=zip -tutti.genericFormatImport.importFile.extension.description=Import générique (.zip) -tutti.genericFormatImport.importOptions.legend=Options d'import -tutti.genericFormatImport.importReportFile.extension=pdf -tutti.genericFormatImport.importReportFile.extension.description=Rapport d'import (.pdf) -tutti.genericFormatImport.importResult.description=Résultats -tutti.genericFormatImport.importResult.description.tip=Résultat de l'import -tutti.genericFormatImport.importResult.legend=Résultats de l'import -tutti.genericFormatImport.selectData.legend=Sélection des données à importer -tutti.genericFormatImport.step.backupDb=Sauvegarde de la base de données (<strong>%s</strong>) -tutti.genericFormatImport.step.closeDb=Fermeture de la base de données avant la sauvegarde -tutti.genericFormatImport.step.reopenDb=Réouverture de la base de données -tutti.genericFormatImport.title=Import générique -tutti.genericFormatImport.validateImport.legend=Préparation de l'import -tutti.genericFormatImport.validateReportFile.extension=pdf -tutti.genericFormatImport.validateReportFile.extension.description=Rapport de validation (.pdf) -tutti.genericFormatImport.validationResult.description=Résultat de la validation -tutti.genericFormatImport.validationResult.description.tip=Résultat de la validation -tutti.genericformat.export.cruiseNode=<html><body>Campagne <i>%s</i> (<i>%s</i> traits existants) -tutti.genericformat.export.cruiseNode.fullSelected=%s (identifiant <strong>%s</strong>), tous les traits sont sélectionnés -tutti.genericformat.export.cruiseNode.partialSelected=%s (identifiant <strong>%s</strong>), <i>%s</i> trait(s) sélectionné(s) -tutti.genericformat.export.operationNode=Trait %s -tutti.genericformat.export.operationNode.selected=<html><body>%s (identifiant <strong>%s</strong>) sélectionné -tutti.genericformat.import.cruiseNode=<html><body>Campagne <i>%s</i> (<i>%s</i> trait(s) détecté(s)) -tutti.genericformat.import.cruiseNode.fullSelected=%s, tous les traits sont sélectionnés -tutti.genericformat.import.cruiseNode.partialSelected=%s, <i>%s</i> trait(s) sélectionné(s) -tutti.genericformat.import.operationNode=Trait %s -tutti.genericformat.import.operationNode.selected=%s sélectionné -tutti.genericformat.overrideData.conflict.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour annuler l'import</li><li><strong>Oui</strong> pour confirmer l'écrasement des données</li></ul> -tutti.genericformat.overrideData.conflict.message=Parmi les données à importer, certaines existent déjà en base, voulez-vous les écraser ? -tutti.genericformat.overrideData.conflict.title=Confirmer l'écrasement de données -tutti.genericformat.protocol.action.add=Ajouter -tutti.genericformat.protocol.action.cancel=Annuler -tutti.genericformat.protocol.action.override=Remplacer -tutti.genericformat.protocolName.conflict.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour annuler l'import</li><li><strong>Remplacer</strong> pour supprimer le protocole et le remplacer par le protocole à importer</li><li><strong>Ajouter</strong> pour importer le protocole en le renommant en <i>%s</i></li></ul> -tutti.genericformat.protocolName.conflict.message=Le protocole à importer existe déjà avec le même nom (<i>%s</i>) -tutti.genericformat.protocolName.conflict.title=Conflit sur le nom du protocole à importer -tutti.help.mkDir.error=Erreur à la création du dossier d'aide -tutti.i18n.deleteCache.error=Erreur à la suppression du cache de l'internationalisation -tutti.i18n.mkDir.error=Erreur à la création du dossier d'internationalisation -tutti.ichtyometer.choose.remote.device.found=<html><body>Veuillez choisir le périphérique bluetooth qui correspond à l'ichtyomètre parmi ceux détectés.<br/>Si vous ne trouvez pas votre périphérique, vous pouvez modifier dans la configuration l'option <strong>Application \:\: Recherche complète bluetooth</strong> puis retenter une connexion.</body></html> -tutti.ichtyometer.connection.establish=Connexion à l'ichtyomètre <strong>%s</strong> établie -tutti.ichtyometer.connection.establish.message=<html><body>La connexion à l'ichtyomètre <strong>%s</strong> est établie.</body></html> -tutti.ichtyometer.connection.establish.title=Connexion établie -tutti.ichtyometer.connection.stop=Connexion à l'ichtyomètre <strong>%s</strong> arrêtée -tutti.ichtyometer.error.no.local.device=Le bluetooth n'est pas activé sur la machine -tutti.ichtyometer.error.no.remote.device=Aucun périphérique bluetooth détecté ou abandon de l'utilisateur -tutti.ichtyometer.error.no.remote.device.service=Aucun service détecté sur le périphérique bluetooth -tutti.ichtyometer.status.connected.tip=<html><body>L'ichtyomètre <strong>%s</strong> est connecté.</body></html> -tutti.ichtyometer.status.not.connected.tip=<html><body>Aucun ichtyomètre connecté.</body></html> -tutti.ichtyometer.title.choose.remote.device=Choisir l'ichtyomètre parmi les périphériques trouvés -tutti.importDb.step.check.dbContext=Vérification du contexte de saisie -tutti.importDb.step.checkSchemaVersion=Vérification de la version de la base -tutti.importDb.step.closeDb=Fermeture de la base -tutti.importDb.step.openDb=Ouverture de la base de données <strong>%s</strong> -tutti.importDb.step.unzipArchive=Décompression de l'archive -tutti.importDb.step.will.migrateSchema=Démarrage de la mise à jour du schéma de la base depuis la version %s vers la version %s -tutti.importProgram.action.exportErrors= -tutti.importProgram.action.importErrors= -tutti.importProgram.action.success= -tutti.importProtocol.action.success=Protocole [%s] lu depuis le fichier. -tutti.importPupitri.carrouselFile.extension=car -tutti.importPupitri.carrouselFile.extension.description=Fichier du carrousel (.car) -tutti.importPupitri.error.fileMissing.message=Vous devez sélectionner un fichier pour le trémie et un fichier pour le carrousel pour pouvoir continuer l'import. -tutti.importPupitri.error.fileMissing.title=Fichier non renseigné -tutti.importPupitri.field.carrouselFile=Fichier du carrousel -tutti.importPupitri.field.trunkFile=Fichier du trémie -tutti.importPupitri.importMissingBatches=Créer les lots de sexe ou de classe de tri manquants -tutti.importPupitri.importMissingBatches.mnemonic=l -tutti.importPupitri.importMissingBatches.tip=Créer les lots mâle, femelle et indéterminé ou petit, gros s'ils ne sont pas présents dans l'import -tutti.importPupitri.melagWeight.field=Poids total du melag -tutti.importPupitri.melagWeight.message=Du melag a été détecté lors de l'import, veuillez saisir le poids total du melag. -tutti.importPupitri.melagWeight.title=Melag détecté -tutti.importPupitri.title=Import Pupitri -tutti.importPupitri.trunkFile.extension=tnk -tutti.importPupitri.trunkFile.extension.description=Fichier du trémie (.tnk) -tutti.io.error.copyFile=Impossible de copier le fichier -tutti.label.tab.accidental=Captures accidentelles -tutti.label.tab.benthos=Benthos -tutti.label.tab.catches=Captures -tutti.label.tab.catchesCaracteristics=Résumé -tutti.label.tab.fishingOperation=Trait -tutti.label.tab.individualObservations=Observations individuelles -tutti.label.tab.marineLitter=Macro déchets -tutti.label.tab.species=Espèces -tutti.login.field.login=Login -tutti.login.field.password=Mot de passe -tutti.login.infoMmessage=<html><body><p>Une authentification est requise pour accéder à la ressource <br/><strong>%s</strong></p><hr></body></html> -tutti.login.title=Demande d'authentification -tutti.main.action.about=À propos -tutti.main.action.about.mnemonic=À -tutti.main.action.about.tip=À Propos -tutti.main.action.changeLocale.mnemonic=l -tutti.main.action.changeLocale.tip=Changer de langue -tutti.main.action.changeLocaleFR=Français -tutti.main.action.changeLocaleFR.mnemonic=F -tutti.main.action.changeLocaleFR.tip=Passer en français -tutti.main.action.changeLocaleUK=Anglais -tutti.main.action.changeLocaleUK.mnemonic=A -tutti.main.action.changeLocaleUK.tip=Passer en anglais -tutti.main.action.configuration=Configuration -tutti.main.action.configuration.mnemonic=C -tutti.main.action.configuration.tip=Configurer l'application -tutti.main.action.connectIchtyometer=Connexion Ichtyomètre -tutti.main.action.connectIchtyometer.mnemonic=y -tutti.main.action.connectIchtyometer.tip=Se connecter à un ichtyomètre -tutti.main.action.disconnectIchtyometer=Déconnexion Ichtyomètre -tutti.main.action.disconnectIchtyometer.mnemonic=y -tutti.main.action.disconnectIchtyometer.tip=Se déconnecter de l'ichtyomètre -tutti.main.action.editCatches=Éditer les traits et les captures -tutti.main.action.editCatches.mnemonic=S -tutti.main.action.editCatches.tip=Éditer les traits et les captures -tutti.main.action.editProgram.tip=Éditer la série de campagne -tutti.main.action.editSampleCategoryModel=Configurer les catégorisations -tutti.main.action.editSampleCategoryModel.mnemonic=o -tutti.main.action.editSampleCategoryModel.tip=Configurer les catégorisations possibles -tutti.main.action.editSelectedCruise=Campagne -tutti.main.action.editSelectedCruise.mnemonic=C -tutti.main.action.editSelectedCruise.tip=Éditer la campagne sélectionnée -tutti.main.action.editSelectedProgram=Série de campagne -tutti.main.action.editSelectedProgram.mnemonic=S -tutti.main.action.editSelectedProtocol=Protocole -tutti.main.action.editSelectedProtocol.mnemonic=P -tutti.main.action.editSelectedProtocol.tip=Éditer le protocole sélectionné -tutti.main.action.exit=Quitter -tutti.main.action.exit.mnemonic=Q -tutti.main.action.exit.tip=Quitter l'application -tutti.main.action.generateSelectedCruiseReport=Rapport -tutti.main.action.generateSelectedCruiseReport.mnemonic=R -tutti.main.action.generateSelectedCruiseReport.tip=Générer des rapports -tutti.main.action.genericFormatExport=Export générique -tutti.main.action.genericFormatExport.mnemonic=E -tutti.main.action.genericFormatExport.tip=Exporter des campagnes au format générique -tutti.main.action.genericFormatImport=Import générique -tutti.main.action.genericFormatImport.mnemonic=I -tutti.main.action.genericFormatImport.tip=Importer des campagnes au format générique -tutti.main.action.goto.previousScreen.tip=Retour à l'écran précédent -tutti.main.action.importTemporaryReferential=Référentiels temporaires -tutti.main.action.importTemporaryReferential.mnemonic=R -tutti.main.action.importTemporaryReferential.tip=Importer des référentiels temporaires -tutti.main.action.manageDb=Gestionnaire de base -tutti.main.action.manageDb.mnemonic=G -tutti.main.action.manageDb.tip=Gérer la base de données utilisée par l'application -tutti.main.action.reloadTutti=Redémarrer l'application -tutti.main.action.selectCruise=Sélectionner une campagne -tutti.main.action.selectCruise.mnemonic=S -tutti.main.action.selectCruise.tip=Sélectionner la campagne à utiliser -tutti.main.action.showHelp=Aide -tutti.main.action.showHelp.mnemonic=i -tutti.main.action.showHelp.tip=Accéder à l'aide de l'application -tutti.main.action.site=Site -tutti.main.action.site.mnemonic=S -tutti.main.action.site.tip=Accéder au site du projet Allegro Campagne (développement de l'application) -tutti.main.action.updateApplication=Vérifier les mises à jour logiciels -tutti.main.action.updateApplication.mnemonic=V -tutti.main.action.updateApplication.tip=Vérifier les mises à jour logicielles -tutti.main.action.updateReport=Vérifier les mises à jour des rapports -tutti.main.action.updateReport.mnemonic=R -tutti.main.action.updateReport.tip=Vérifier les mises à jour des rapports -tutti.main.action.updateSpecificApplication.tip=Mettre à jour le module <strong>%s</strong> -tutti.main.action.validateCatches=Valider les captures -tutti.main.action.validateCatches.mnemonic=V -tutti.main.action.validateCatches.tip=Valider les captures -tutti.main.menu.actions=Aller à -tutti.main.menu.actions.mnemonic=l -tutti.main.menu.actions.tip=Accès aux différents écrans -tutti.main.menu.administration=Administration -tutti.main.menu.administration.mnemonic=d -tutti.main.menu.administration.tip=Administrer l'application -tutti.main.menu.changeLocale=Langue -tutti.main.menu.file=Fichier -tutti.main.menu.file.mnemonic=h -tutti.main.menu.file.tip=Fichier -tutti.main.menu.help=Aide -tutti.main.menu.help.mnemonic=Z -tutti.main.menu.help.tip=Aide -tutti.main.title.application=Allegro Campagne - v %s [%s] -tutti.main.title.applicationName=Allegro Campagne -tutti.main.title.noSelectedCruise=Pas de campagne sélectionné -tutti.main.title.noSelectedProgram=Pas de série de campagne sélectionné -tutti.main.title.noSelectedProtocol=Pas de protocole sélectionné -tutti.main.title.nodb=Pas de base chargée -tutti.main.title.selectedCruise=Campagne %s -tutti.main.title.selectedProgram=Série de campagne %s -tutti.main.title.selectedProtocol=Protocole %s -tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export.success=Référentiel temporaire des engins existants exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export.success=Référentiel temporaire des personnes existantes exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export.success=Référentiel temporaire des espèces existantes exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export.success=Référentiel temporaire des navires existants exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export.success=Exemple de référentiel temporaire d'engins exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import=Importer -tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import.dialog.message=<html><div>Import réussi</div><ul><li>%1$s engins ajoutés</li><li>%2$s engins mis à jour</li><li>%3$s engins supprimés</li></ul> -tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import.dialog.title=Import réussi -tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import.success=Référentiel temporaire d'engins importé depuis le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.export.success=Exemple de référentiel temporaire de personnes exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import=Importer -tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import.dialog.message=<html><div>Import réussi</div><ul><li>%1$s personnes ajoutées</li><li>%2$s personnes mises à jour</li><li>%3$s personnes supprimées</li></ul> -tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import.dialog.title=Import réussi -tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import.success=Référentiel temporaire de personnes importé depuis le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.export.success=Exemple de référentiel temporaire d'espèces exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import=Importer -tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import.dialog.message=<html><div>Import réussi</div><ul><li>%1$s espèces ajoutées</li><li>%2$s espèces mises à jour</li><li>%3$s espèces supprimées</li></ul> -tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import.dialog.title=Import réussi -tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import.success=Référentiel temporaire d'espèces importé depuis le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export=Exporter -tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export.success=Exemple de référentiel temporaire de navires exporté dans le fichier %s -tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import=Importer -tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.dialog.message=<html><div>Import réussi</div><ul><li>%1$s navires ajoutés</li><li>%2$s navires mis à jour</li><li>%3$s navires supprimés</li></ul> -tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.dialog.title=Import réussi -tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.success=Référentiel temporaire de navires importé depuis le fichier %s -tutti.manageTemporaryReferential.action.exportExistingTemporaryGear=Exporter l'existant -tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.tip=Exporter le référentiel Engin existant -tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson=Exporter l'existant -tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.tip=Exporter le référentiel Personne existant -tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies=Exporter l'existant -tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.tip=Exporter le référentiel Espèces existant -tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel=Exporter l'existant -tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.tip=Exporter le référentiel Navire existant -tutti.manageTemporaryReferential.action.exportTemporaryGearExample=Exporter un exemple -tutti.manageTemporaryReferential.action.exportTemporaryGearExample.tip=Exporter un exemple de référentiel Engin -tutti.manageTemporaryReferential.action.exportTemporaryPersonExample=Exporter un exemple -tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.tip=Exporter un exemple de référentiel Personne -tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample=Exporter un exemple -tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.tip=Exporter un exemple de référentiel Espèces -tutti.manageTemporaryReferential.action.exportTemporaryVesselExample=Exporter un exemple -tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.tip=Exporter un exemple de référentiel Navire -tutti.manageTemporaryReferential.action.importTemporaryGear=Importer -tutti.manageTemporaryReferential.action.importTemporaryGear.tip=Importer un référentiel temporaire d'engins -tutti.manageTemporaryReferential.action.importTemporaryPerson=Importer -tutti.manageTemporaryReferential.action.importTemporaryPerson.tip=Importer un référentiel temporaire de personnes -tutti.manageTemporaryReferential.action.importTemporarySpecies=Importer -tutti.manageTemporaryReferential.action.importTemporarySpecies.tip=Importer un référentiel temporaire d'espèces -tutti.manageTemporaryReferential.action.importTemporaryVessel=Importer -tutti.manageTemporaryReferential.action.importTemporaryVessel.tip=Importer un référentiel temporaire de navires -tutti.manageTemporaryReferential.action.replaceTemporaryGear=Remplacer donnée temporaire -tutti.manageTemporaryReferential.action.replaceTemporaryGear.tip=Remplacer un engin temporaire -tutti.manageTemporaryReferential.action.replaceTemporaryPerson=Remplacer donnée temporaire -tutti.manageTemporaryReferential.action.replaceTemporaryPerson.tip=Remplacer un utilisateur temporaire -tutti.manageTemporaryReferential.action.replaceTemporarySpecies=Remplacer donnée temporaire -tutti.manageTemporaryReferential.action.replaceTemporarySpecies.tip=Remplacer une espèce temporaire -tutti.manageTemporaryReferential.action.replaceTemporaryVessel=Remplacer donnée temporaire -tutti.manageTemporaryReferential.action.replaceTemporaryVessel.tip=Remplacer un navire temporaire -tutti.manageTemporaryReferential.field.gear=Référentiel Engin (%s) -tutti.manageTemporaryReferential.field.gear.tip=%s engins temporaires dans le référentiel -tutti.manageTemporaryReferential.field.person=Référentiel Personne (%s) -tutti.manageTemporaryReferential.field.person.tip=%s personnes temporaires dans le référentiel -tutti.manageTemporaryReferential.field.species=Référentiel Espèce (%s) -tutti.manageTemporaryReferential.field.species.tip=%s espèces temporaires dans le référentiel -tutti.manageTemporaryReferential.field.vessel=Référentiel Navire (%s) -tutti.manageTemporaryReferential.field.vessel.tip=%s navires temporaires dans le référentiel -tutti.manageTemporaryReferential.passwordDialog.error.message=Le mot de passe que vous avez entré est incorrect -tutti.manageTemporaryReferential.passwordDialog.error.title=Mot de passe incorrect -tutti.manageTemporaryReferential.passwordDialog.message=Vous souhaitez entrer dans une partie sensible de l'application -tutti.manageTemporaryReferential.passwordDialog.title=Zone sensible -tutti.manageTemporaryReferential.title=importer des référentiels temporaires -tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryGearFile=Exporter le référentiel Engin existant -tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile=Exporter le référentiel Personne existant -tutti.manageTemporaryReferential.title.choose.exportExistingTemporarySpeciesFile=Exporter le référentiel Espèce existant -tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryVesselFile=Exporter le référentiel Navire existant -tutti.manageTemporaryReferential.title.choose.exportTemporaryGearExampleFile=Exporter un exemple de référentiel Engin -tutti.manageTemporaryReferential.title.choose.exportTemporaryPersonExampleFile=Exporter un exemple de référentiel Personne -tutti.manageTemporaryReferential.title.choose.exportTemporarySpeciesExampleFile=Exporter un exemple de référentiel Espèce -tutti.manageTemporaryReferential.title.choose.exportTemporaryVesselExampleFile=Exporter un exemple de référentiel Navire -tutti.manageTemporaryReferential.title.choose.importTemporaryGearFile=Importer un référentiel Engin -tutti.manageTemporaryReferential.title.choose.importTemporaryPersonFile=Importer un référentiel Personne -tutti.manageTemporaryReferential.title.choose.importTemporarySpeciesFile=Importer un référentiel Espèce -tutti.manageTemporaryReferential.title.choose.importTemporaryVesselFile=Importer un référentiel Navire -tutti.message.openReplaceTemporaryUI.noSource=Aucun référentiel de type %s temporaire détecté dans la base. -tutti.message.openReplaceTemporaryUI.noTarget=Aucun référentiel de type %s officiel détecté dans la base. -tutti.multiPostImportLog.benthosTotalSortedWeight=Poids total VRAC (Benthos) \: %s %s -tutti.multiPostImportLog.catchTotalRejectedWeight=Poids total NON TRIÉ (Capture) \: %s %s -tutti.multiPostImportLog.catchTotalWeight=Poids TOTAL (Capture) \: %s %s -tutti.multiPostImportLog.close=Fermer -tutti.multiPostImportLog.close.mnemonic=F -tutti.multiPostImportLog.close.tip=Fermer la popup -tutti.multiPostImportLog.inertWeight=Poids inerte trié \: %s %s -tutti.multiPostImportLog.livingNotItemizedWeight=Poids vivant non détaillé \: %s %s -tutti.multiPostImportLog.marineLitterTotalWeight=Poids total (Macro déchets) \: %s %s -tutti.multiPostImportLog.message=Des données n'ont pas été importées car ces données avaient déjà été saisies \: -tutti.multiPostImportLog.speciesTotalSortedWeight=Poids total VRAC (Espèce) \: %s %s -tutti.multiPostImportLog.title=Lots non importés -tutti.multiPostImportLog.totalSortedWeight=Poids total trié \: %s %s -tutti.multiPostImportLog.totalWeight=Poids total \: %s %s -tutti.openDb.step.check.dbContext=Vérification du contexte de saisie -tutti.openDb.step.checkSchemaVersion=Vérification de la compatibilité de la base -tutti.openDb.step.open=Ouverture de la base <strong>%s</strong> +tutti.editSpeciesFrequencies.samplingNeeded.max= +tutti.editSpeciesFrequencies.samplingNeeded.resume= +tutti.editSpeciesFrequencies.samplingNeeded.warning= +tutti.editSpeciesFrequencies.simpleCountingAndFrequencies= +tutti.editSpeciesFrequencies.table.header.lengthStep= +tutti.editSpeciesFrequencies.table.header.number= +tutti.editSpeciesFrequencies.table.header.rtpComputedWeight= +tutti.editSpeciesFrequencies.table.header.weight= +tutti.editSpeciesFrequencies.title= +tutti.editSpeciesFrequencies.title.addLengthStepCaracteristic= +tutti.editSpeciesFrequencies.unkownStepUnit= +tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.button= +tutti.editSpeciesFrequency.action.exportMultiPostFull.destinationFile.title= +tutti.editSpeciesFrequency.action.exportMultiPostFull.success= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.button= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.destinationFile.title= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyFrequencies.success= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.button= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.destinationFile.title= +tutti.editSpeciesFrequency.action.exportMultiPostOnlyIndividualObservations.success= +tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.button= +tutti.editSpeciesFrequency.action.importMultiPostFull.sourceFile.title= +tutti.editSpeciesFrequency.action.importMultiPostFull.success= +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.button= +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.sourceFile.title= +tutti.editSpeciesFrequency.action.importMultiPostOnlyFrequencies.success= +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.button= +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.sourceFile.title= +tutti.editSpeciesFrequency.action.importMultiPostOnlyIndividualObservations.success= +tutti.error.application.already.started= +tutti.error.delete.startActionFile= +tutti.error.read.startActionFile= +tutti.error.update.bad.url.syntax= +tutti.error.update.could.not.found.url= +tutti.error.update.could.not.reach.url= +tutti.error.write.startActionFile= +tutti.exportCruise.action.exportErrors= +tutti.exportCruiseCsv.action.chooseFile= +tutti.exportCruiseCsv.action.success= +tutti.exportCruiseCsv.message.badBenthos= +tutti.exportCruiseCsv.message.badSpecies= +tutti.exportCruiseCsv.message.missing.protocol= +tutti.exportCruiseCsv.title.badBenthos= +tutti.exportCruiseCsv.title.badSpecies= +tutti.exportCruiseCsv.title.choose.exportFile= +tutti.exportCruiseCsv.title.missing.protocol= +tutti.exportDb.step.closeDb= +tutti.exportDb.step.createArchive= +tutti.exportDb.step.openDb= +tutti.exportDb.step.reloadApplication= +tutti.exportFishingOperationCsv.action.chooseFile= +tutti.exportFishingOperationCsv.action.success= +tutti.exportFishingOperationCsv.message.badBenthos= +tutti.exportFishingOperationCsv.message.badSpecies= +tutti.exportFishingOperationCsv.message.missing.protocol= +tutti.exportFishingOperationCsv.message.model.modified= +tutti.exportFishingOperationCsv.title.badBenthos= +tutti.exportFishingOperationCsv.title.badSpecies= +tutti.exportFishingOperationCsv.title.choose.exportFile= +tutti.exportFishingOperationCsv.title.missing.protocol= +tutti.exportFishingOperationCsv.title.model.modified= +tutti.exportFishingOperationReport.action.chooseFile= +tutti.exportFishingOperationReport.action.success= +tutti.exportFishingOperationReport.message.model.modified= +tutti.exportFishingOperationReport.title.choose.exportFile= +tutti.exportFishingOperationReport.title.model.modified= +tutti.exportProtocol.action.success= +tutti.exportSampleCategoryModel.action.chooseSampleCategoryModelFile.export= +tutti.exportSampleCategoryModel.action.export.success= +tutti.exportSampleCategoryModel.title.choose.exportSampleCategoryModelFile= +tutti.fishingOperations.action.deleteFishingOperation.tip= +tutti.fishingOperations.action.newFishingOperation.mnemonic= +tutti.fishingOperations.action.newFishingOperation.tip= +tutti.fishingOperations.info.no.fishingOperation.selected= +tutti.fishingOperations.title.edit.operations= +tutti.fishingOperations.title.validate.operations= +tutti.fishingOperations.warn.catchBatch.invalidSampleCategoryModel= +tutti.fishingOperations.warn.catchBatch.notFound= +tutti.fishingOperations.warn.invalid.batch= +tutti.flash.info.all.caractristic.exported= +tutti.flash.info.benthos.add.to.protocol= +tutti.flash.info.benthos.imported.in.protocol= +tutti.flash.info.benthos.imported.in.protocol.oneReplaced= +tutti.flash.info.benthos.imported.in.protocol.severalReplaced= +tutti.flash.info.benthos.remove.from.protocol= +tutti.flash.info.benthos.replaced= +tutti.flash.info.caracteristic.add.to.protocol= +tutti.flash.info.caracteristic.imported.in.protocol= +tutti.flash.info.caracteristicMapping.remove.from.protocol= +tutti.flash.info.caractristic.exported.from.protocol= +tutti.flash.info.cps.exported.from.protocol= +tutti.flash.info.cps.imported.in.protocol= +tutti.flash.info.cruiseCreated= +tutti.flash.info.cruiseSaved= +tutti.flash.info.db.closed= +tutti.flash.info.db.exported= +tutti.flash.info.db.exported.and.clean= +tutti.flash.info.db.imported= +tutti.flash.info.db.imported.but.closed= +tutti.flash.info.db.not.opened= +tutti.flash.info.db.opened= +tutti.flash.info.db.schema.updated= +tutti.flash.info.programCreated= +tutti.flash.info.programSaved= +tutti.flash.info.protocolCreated= +tutti.flash.info.protocolSaved= +tutti.flash.info.species.add.to.protocol= +tutti.flash.info.species.exported.from.protocol= +tutti.flash.info.species.imported.in.protocol= +tutti.flash.info.species.imported.in.protocol.oneReplaced= +tutti.flash.info.species.imported.in.protocol.severalReplaced= +tutti.flash.info.species.remove.from.protocol= +tutti.flash.info.species.replaced= +tutti.gear.noCaracteristics= +tutti.gear.withCaracteristics= +tutti.gearCaracteristicsEditorTable.table.header.key= +tutti.gearCaracteristicsEditorTable.table.header.value= +tutti.gearUseFeatureTable.action.removeCaracteristic= +tutti.gearUseFeatureTable.action.removeCaracteristic.mnemonic= +tutti.gearUseFeatureTable.action.removeCaracteristic.tip= +tutti.gearUseFeatureTable.table.header.key= +tutti.gearUseFeatureTable.table.header.value= +tutti.gearUseFeatureTable.title= +tutti.generateReport.action.computeNbSteps= +tutti.genericFormat.action.chooseDbBackupFile= +tutti.genericFormat.action.chooseExportFile= +tutti.genericFormat.action.chooseImportReportFile= +tutti.genericFormat.action.chooseValidateReportFile= +tutti.genericFormat.export.action.success= +tutti.genericFormat.import.error= +tutti.genericFormat.import.error.tip= +tutti.genericFormat.import.success= +tutti.genericFormat.import.success.tip= +tutti.genericFormat.importReportFile.saved= +tutti.genericFormat.title.choose.dbBackupFile= +tutti.genericFormat.title.choose.exportFile= +tutti.genericFormat.title.choose.saveImportReportfile= +tutti.genericFormat.title.choose.saveValidateReportfile= +tutti.genericFormat.validate.error= +tutti.genericFormat.validate.error.tip= +tutti.genericFormat.validate.success= +tutti.genericFormat.validate.success.tip= +tutti.genericFormat.validateReportFile.saved= +tutti.genericFormatExport.action.closeGenericFormatExport= +tutti.genericFormatExport.action.closeGenericFormatExport.mnemonic= +tutti.genericFormatExport.action.closeGenericFormatExport.tip= +tutti.genericFormatExport.action.export= +tutti.genericFormatExport.action.export.mnemonic= +tutti.genericFormatExport.action.export.tip= +tutti.genericFormatExport.action.foldAll.tip= +tutti.genericFormatExport.action.selectAll.tip= +tutti.genericFormatExport.action.unfoldAll.tip= +tutti.genericFormatExport.action.unselectAll.tip= +tutti.genericFormatExport.exportOptions.legend= +tutti.genericFormatExport.field.exportAccidentalCatch= +tutti.genericFormatExport.field.exportAccidentalCatch.tip= +tutti.genericFormatExport.field.exportAttachments= +tutti.genericFormatExport.field.exportAttachments.tip= +tutti.genericFormatExport.field.exportBenthos= +tutti.genericFormatExport.field.exportBenthos.tip= +tutti.genericFormatExport.field.exportIndividualObservation= +tutti.genericFormatExport.field.exportIndividualObservation.tip= +tutti.genericFormatExport.field.exportMarineLitter= +tutti.genericFormatExport.field.exportMarineLitter.tip= +tutti.genericFormatExport.field.exportSpecies= +tutti.genericFormatExport.field.exportSpecies.tip= +tutti.genericFormatExport.field.program= +tutti.genericFormatExport.field.program.tip= +tutti.genericFormatExport.selectData.legend= +tutti.genericFormatExport.title= +tutti.genericFormatImport.action.closeGenericFormatImport= +tutti.genericFormatImport.action.closeGenericFormatImport.mnemonic= +tutti.genericFormatImport.action.closeGenericFormatImport.tip= +tutti.genericFormatImport.action.foldAll.tip= +tutti.genericFormatImport.action.import= +tutti.genericFormatImport.action.import.mnemonic= +tutti.genericFormatImport.action.import.tip= +tutti.genericFormatImport.action.openImportReport.tip= +tutti.genericFormatImport.action.openValidateReport.tip= +tutti.genericFormatImport.action.saveImportReport.tip= +tutti.genericFormatImport.action.saveValidateReport.tip= +tutti.genericFormatImport.action.selectAll.tip= +tutti.genericFormatImport.action.unfoldAll.tip= +tutti.genericFormatImport.action.unselectAll.tip= +tutti.genericFormatImport.action.validate= +tutti.genericFormatImport.action.validate.mnemonic= +tutti.genericFormatImport.action.validate.tip= +tutti.genericFormatImport.field.authorizeObsoleteReferentials= +tutti.genericFormatImport.field.authorizeObsoleteReferentials.tip= +tutti.genericFormatImport.field.checkWeights= +tutti.genericFormatImport.field.checkWeights.tip= +tutti.genericFormatImport.field.cleanWeights= +tutti.genericFormatImport.field.cleanWeights.tip= +tutti.genericFormatImport.field.importAccidentalCatch= +tutti.genericFormatImport.field.importAccidentalCatch.tip= +tutti.genericFormatImport.field.importAttachments= +tutti.genericFormatImport.field.importAttachments.tip= +tutti.genericFormatImport.field.importBenthos= +tutti.genericFormatImport.field.importBenthos.tip= +tutti.genericFormatImport.field.importFile= +tutti.genericFormatImport.field.importFile.tip= +tutti.genericFormatImport.field.importIndividualObservation= +tutti.genericFormatImport.field.importIndividualObservation.tip= +tutti.genericFormatImport.field.importMarineLitter= +tutti.genericFormatImport.field.importMarineLitter.tip= +tutti.genericFormatImport.field.importSpecies= +tutti.genericFormatImport.field.importSpecies.tip= +tutti.genericFormatImport.field.program= +tutti.genericFormatImport.field.program.tip= +tutti.genericFormatImport.field.updateCruises= +tutti.genericFormatImport.field.updateCruises.tip= +tutti.genericFormatImport.field.updateOperations= +tutti.genericFormatImport.field.updateOperations.tip= +tutti.genericFormatImport.import.legend= +tutti.genericFormatImport.importFile.extension= +tutti.genericFormatImport.importFile.extension.description= +tutti.genericFormatImport.importOptions.legend= +tutti.genericFormatImport.selectData.legend= +tutti.genericFormatImport.step.backupDb= +tutti.genericFormatImport.step.closeDb= +tutti.genericFormatImport.step.reopenDb= +tutti.genericFormatImport.title= +tutti.genericFormatImport.validateImport.legend= +tutti.genericformat.export.cruiseNode= +tutti.genericformat.export.cruiseNode.fullSelected= +tutti.genericformat.export.cruiseNode.partialSelected= +tutti.genericformat.export.operationNode= +tutti.genericformat.export.operationNode.selected= +tutti.genericformat.import.cruiseNode= +tutti.genericformat.import.cruiseNode.fullSelected= +tutti.genericformat.import.cruiseNode.partialSelected= +tutti.genericformat.import.operationNode= +tutti.genericformat.import.operationNode.selected= +tutti.genericformat.overrideData.conflict.help= +tutti.genericformat.overrideData.conflict.message= +tutti.genericformat.overrideData.conflict.title= +tutti.genericformat.protocol.action.add= +tutti.genericformat.protocol.action.cancel= +tutti.genericformat.protocol.action.override= +tutti.genericformat.protocolName.conflict.help= +tutti.genericformat.protocolName.conflict.message= +tutti.genericformat.protocolName.conflict.title= +tutti.help.mkDir.error= +tutti.i18n.deleteCache.error= +tutti.i18n.mkDir.error= +tutti.ichtyometer.choose.remote.device.found= +tutti.ichtyometer.connection.establish= +tutti.ichtyometer.connection.establish.message= +tutti.ichtyometer.connection.establish.title= +tutti.ichtyometer.connection.stop= +tutti.ichtyometer.error.no.local.device= +tutti.ichtyometer.error.no.remote.device= +tutti.ichtyometer.error.no.remote.device.service= +tutti.ichtyometer.status.connected.tip= +tutti.ichtyometer.status.not.connected.tip= +tutti.ichtyometer.title.choose.remote.device= +tutti.importDb.step.check.dbContext= +tutti.importDb.step.checkSchemaVersion= +tutti.importDb.step.closeDb= +tutti.importDb.step.openDb= +tutti.importDb.step.unzipArchive= +tutti.importDb.step.will.migrateSchema= +tutti.importProtocol.action.success= +tutti.importPupitri.carrouselFile.extension= +tutti.importPupitri.carrouselFile.extension.description= +tutti.importPupitri.error.fileMissing.message= +tutti.importPupitri.error.fileMissing.title= +tutti.importPupitri.field.carrouselFile= +tutti.importPupitri.field.trunkFile= +tutti.importPupitri.importMissingBatches= +tutti.importPupitri.importMissingBatches.mnemonic= +tutti.importPupitri.importMissingBatches.tip= +tutti.importPupitri.melagWeight.field= +tutti.importPupitri.melagWeight.message= +tutti.importPupitri.melagWeight.title= +tutti.importPupitri.title= +tutti.importPupitri.trunkFile.extension= +tutti.importPupitri.trunkFile.extension.description= +tutti.io.error.copyFile= +tutti.label.tab.accidental= +tutti.label.tab.benthos= +tutti.label.tab.catches= +tutti.label.tab.catchesCaracteristics= +tutti.label.tab.fishingOperation= +tutti.label.tab.marineLitter= +tutti.label.tab.species= +tutti.login.field.login= +tutti.login.field.password= +tutti.login.infoMmessage= +tutti.login.title= +tutti.main.action.about= +tutti.main.action.about.mnemonic= +tutti.main.action.about.tip= +tutti.main.action.changeLocale.mnemonic= +tutti.main.action.changeLocale.tip= +tutti.main.action.changeLocaleFR= +tutti.main.action.changeLocaleFR.mnemonic= +tutti.main.action.changeLocaleFR.tip= +tutti.main.action.changeLocaleUK= +tutti.main.action.changeLocaleUK.mnemonic= +tutti.main.action.changeLocaleUK.tip= +tutti.main.action.configuration= +tutti.main.action.configuration.mnemonic= +tutti.main.action.configuration.tip= +tutti.main.action.connectIchtyometer= +tutti.main.action.connectIchtyometer.mnemonic= +tutti.main.action.connectIchtyometer.tip= +tutti.main.action.disconnectIchtyometer= +tutti.main.action.disconnectIchtyometer.mnemonic= +tutti.main.action.disconnectIchtyometer.tip= +tutti.main.action.editCatches= +tutti.main.action.editCatches.mnemonic= +tutti.main.action.editCatches.tip= +tutti.main.action.editProgram.tip= +tutti.main.action.editSampleCategoryModel= +tutti.main.action.editSampleCategoryModel.mnemonic= +tutti.main.action.editSampleCategoryModel.tip= +tutti.main.action.editSelectedCruise= +tutti.main.action.editSelectedCruise.mnemonic= +tutti.main.action.editSelectedCruise.tip= +tutti.main.action.editSelectedProgram= +tutti.main.action.editSelectedProgram.mnemonic= +tutti.main.action.editSelectedProtocol= +tutti.main.action.editSelectedProtocol.mnemonic= +tutti.main.action.editSelectedProtocol.tip= +tutti.main.action.exit= +tutti.main.action.exit.mnemonic= +tutti.main.action.exit.tip= +tutti.main.action.generateSelectedCruiseReport= +tutti.main.action.generateSelectedCruiseReport.mnemonic= +tutti.main.action.generateSelectedCruiseReport.tip= +tutti.main.action.genericFormatExport= +tutti.main.action.genericFormatExport.mnemonic= +tutti.main.action.genericFormatExport.tip= +tutti.main.action.genericFormatImport= +tutti.main.action.genericFormatImport.mnemonic= +tutti.main.action.genericFormatImport.tip= +tutti.main.action.goto.previousScreen.tip= +tutti.main.action.importTemporaryReferential= +tutti.main.action.importTemporaryReferential.mnemonic= +tutti.main.action.importTemporaryReferential.tip= +tutti.main.action.manageDb= +tutti.main.action.manageDb.mnemonic= +tutti.main.action.manageDb.tip= +tutti.main.action.reloadTutti= +tutti.main.action.selectCruise= +tutti.main.action.selectCruise.mnemonic= +tutti.main.action.selectCruise.tip= +tutti.main.action.showHelp= +tutti.main.action.showHelp.mnemonic= +tutti.main.action.showHelp.tip= +tutti.main.action.site= +tutti.main.action.site.mnemonic= +tutti.main.action.site.tip= +tutti.main.action.updateApplication= +tutti.main.action.updateApplication.mnemonic= +tutti.main.action.updateApplication.tip= +tutti.main.action.updateReport= +tutti.main.action.updateReport.mnemonic= +tutti.main.action.updateReport.tip= +tutti.main.action.updateSpecificApplication.tip= +tutti.main.action.validateCatches= +tutti.main.action.validateCatches.mnemonic= +tutti.main.action.validateCatches.tip= +tutti.main.menu.actions= +tutti.main.menu.actions.mnemonic= +tutti.main.menu.actions.tip= +tutti.main.menu.administration= +tutti.main.menu.administration.mnemonic= +tutti.main.menu.administration.tip= +tutti.main.menu.changeLocale= +tutti.main.menu.file= +tutti.main.menu.file.mnemonic= +tutti.main.menu.file.tip= +tutti.main.menu.help= +tutti.main.menu.help.mnemonic= +tutti.main.menu.help.tip= +tutti.main.title.application= +tutti.main.title.applicationName= +tutti.main.title.noSelectedCruise= +tutti.main.title.noSelectedProgram= +tutti.main.title.noSelectedProtocol= +tutti.main.title.nodb= +tutti.main.title.selectedCruise= +tutti.main.title.selectedProgram= +tutti.main.title.selectedProtocol= +tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialGearFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialPersonFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialSpeciesFile.export.success= +tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export= +tutti.manageTemporaryReferential.action.chooseExistingReferentialVesselFile.export.success= +tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export= +tutti.manageTemporaryReferential.action.chooseReferentialGearFile.export.success= +tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import= +tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import.dialog.message= +tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import.dialog.title= +tutti.manageTemporaryReferential.action.chooseReferentialGearFile.import.success= +tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.export= +tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.export.success= +tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import= +tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import.dialog.message= +tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import.dialog.title= +tutti.manageTemporaryReferential.action.chooseReferentialPersonFile.import.success= +tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.export= +tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.export.success= +tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import= +tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import.dialog.message= +tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import.dialog.title= +tutti.manageTemporaryReferential.action.chooseReferentialSpeciesFile.import.success= +tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export= +tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export.success= +tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import= +tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.dialog.message= +tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.dialog.title= +tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.success= +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear= +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson= +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies= +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel= +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.tip= +tutti.manageTemporaryReferential.action.exportTemporaryGearExample= +tutti.manageTemporaryReferential.action.exportTemporaryGearExample.tip= +tutti.manageTemporaryReferential.action.exportTemporaryPersonExample= +tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.tip= +tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample= +tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.tip= +tutti.manageTemporaryReferential.action.exportTemporaryVesselExample= +tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.tip= +tutti.manageTemporaryReferential.action.importTemporaryGear= +tutti.manageTemporaryReferential.action.importTemporaryGear.tip= +tutti.manageTemporaryReferential.action.importTemporaryPerson= +tutti.manageTemporaryReferential.action.importTemporaryPerson.tip= +tutti.manageTemporaryReferential.action.importTemporarySpecies= +tutti.manageTemporaryReferential.action.importTemporarySpecies.tip= +tutti.manageTemporaryReferential.action.importTemporaryVessel= +tutti.manageTemporaryReferential.action.importTemporaryVessel.tip= +tutti.manageTemporaryReferential.action.replaceTemporaryGear= +tutti.manageTemporaryReferential.action.replaceTemporaryGear.tip= +tutti.manageTemporaryReferential.action.replaceTemporaryPerson= +tutti.manageTemporaryReferential.action.replaceTemporaryPerson.tip= +tutti.manageTemporaryReferential.action.replaceTemporarySpecies= +tutti.manageTemporaryReferential.action.replaceTemporarySpecies.tip= +tutti.manageTemporaryReferential.action.replaceTemporaryVessel= +tutti.manageTemporaryReferential.action.replaceTemporaryVessel.tip= +tutti.manageTemporaryReferential.field.gear= +tutti.manageTemporaryReferential.field.gear.tip= +tutti.manageTemporaryReferential.field.person= +tutti.manageTemporaryReferential.field.person.tip= +tutti.manageTemporaryReferential.field.species= +tutti.manageTemporaryReferential.field.species.tip= +tutti.manageTemporaryReferential.field.vessel= +tutti.manageTemporaryReferential.field.vessel.tip= +tutti.manageTemporaryReferential.passwordDialog.error.message= +tutti.manageTemporaryReferential.passwordDialog.error.title= +tutti.manageTemporaryReferential.passwordDialog.message= +tutti.manageTemporaryReferential.passwordDialog.title= +tutti.manageTemporaryReferential.title= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryGearFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporarySpeciesFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryVesselFile= +tutti.manageTemporaryReferential.title.choose.exportTemporaryGearExampleFile= +tutti.manageTemporaryReferential.title.choose.exportTemporaryPersonExampleFile= +tutti.manageTemporaryReferential.title.choose.exportTemporarySpeciesExampleFile= +tutti.manageTemporaryReferential.title.choose.exportTemporaryVesselExampleFile= +tutti.manageTemporaryReferential.title.choose.importTemporaryGearFile= +tutti.manageTemporaryReferential.title.choose.importTemporaryPersonFile= +tutti.manageTemporaryReferential.title.choose.importTemporarySpeciesFile= +tutti.manageTemporaryReferential.title.choose.importTemporaryVesselFile= +tutti.message.openReplaceTemporaryUI.noSource= +tutti.message.openReplaceTemporaryUI.noTarget= +tutti.multiPostImportLog.benthosTotalSortedWeight= +tutti.multiPostImportLog.catchTotalRejectedWeight= +tutti.multiPostImportLog.catchTotalWeight= +tutti.multiPostImportLog.close= +tutti.multiPostImportLog.close.mnemonic= +tutti.multiPostImportLog.close.tip= +tutti.multiPostImportLog.inertWeight= +tutti.multiPostImportLog.livingNotItemizedWeight= +tutti.multiPostImportLog.marineLitterTotalWeight= +tutti.multiPostImportLog.message= +tutti.multiPostImportLog.speciesTotalSortedWeight= +tutti.multiPostImportLog.title= +tutti.multiPostImportLog.totalSortedWeight= +tutti.multiPostImportLog.totalWeight= +tutti.openDb.step.check.dbContext= +tutti.openDb.step.checkSchemaVersion= +tutti.openDb.step.open= tutti.openDb.step.updateReferential= -tutti.openDb.step.will.migrateSchema=Démarrage de la mise à jour du schéma de la base depuis la version %s vers la version %s -tutti.openReplaceTemporaryUI.loading.source=Chargement des référentiels temporaires de type %s -tutti.openReplaceTemporaryUI.loading.target=Chargement des référentiels officiels de type %s -tutti.openReplaceTemporaryUI.open.dialog=Ouverture de l'interface graphique -tutti.openScreen.step.loading.allGear=Chargement du référentiel Engin -tutti.openScreen.step.loading.allGearWithObsoletes=Chargement du référentiel Engin (avec non actifs) -tutti.openScreen.step.loading.allPerson=Chargement du référentiel Personne -tutti.openScreen.step.loading.allPersonWithObsoletes=Chargement du référentiel Personne (avec non actifs) -tutti.openScreen.step.loading.allSpecies=Chargement du référentiel Taxinomique -tutti.openScreen.step.loading.allSpeciesWithObsoletes=Chargement du référentiel Taxinomique (avec non actifs) -tutti.openScreen.step.loading.allVessel=Chargement du référentiel Navire -tutti.openScreen.step.loading.allVesselWithObsoletes=Chargement du référentiel Navire (avec non actifs) -tutti.openScreen.step.loading.ui=Chargement des interfaces graphiques -tutti.option.cancel=Annuler -tutti.option.cancelExport=Annuler l'export -tutti.option.cancelImport=Annuler l'import -tutti.option.cleanAndClone=Nettoyer et Cloner -tutti.option.cleanAndEdit=Nettoyer et Éditer -tutti.option.cleanAndImport=Nettoyer et Importer -tutti.option.clone=Cloner -tutti.option.confirm=Confirmer -tutti.option.continue=Continuer -tutti.option.edit=Éditer -tutti.option.import=Importer -tutti.option.notSaveCatch=Ne pas enregistrer les modifications -tutti.option.quit=Quitter -tutti.option.resetCatch=Annuler les modifications -tutti.option.saveAndQuit=Enregistrer et quitter -tutti.option.saveCatch=Enregistrer les modifications +tutti.openDb.step.will.migrateSchema= +tutti.openReplaceTemporaryUI.loading.source= +tutti.openReplaceTemporaryUI.loading.target= +tutti.openReplaceTemporaryUI.open.dialog= +tutti.openScreen.step.loading.allGear= +tutti.openScreen.step.loading.allGearWithObsoletes= +tutti.openScreen.step.loading.allPerson= +tutti.openScreen.step.loading.allPersonWithObsoletes= +tutti.openScreen.step.loading.allSpecies= +tutti.openScreen.step.loading.allSpeciesWithObsoletes= +tutti.openScreen.step.loading.allVessel= +tutti.openScreen.step.loading.allVesselWithObsoletes= +tutti.openScreen.step.loading.ui= +tutti.option.cancel= +tutti.option.cancelExport= +tutti.option.cancelImport= +tutti.option.cleanAndClone= +tutti.option.cleanAndEdit= +tutti.option.cleanAndImport= +tutti.option.clone= +tutti.option.continue= +tutti.option.edit= +tutti.option.import= +tutti.option.notSaveCatch= +tutti.option.resetCatch= +tutti.option.saveCatch= tutti.persistence.cruise.gearUsedInOperations.error= tutti.propety.no.species.speciesCode= -tutti.reimport.step.backupDb=Sauvegarde de la base dans l'archive %s -tutti.reimport.step.closeDb=Fermeture de la base -tutti.reimport.step.reloadApplication=Redémarrage de l'application... -tutti.reinstallDb.step.backupDb=Sauvegarde de la base dans l'archive %s -tutti.reinstallDb.step.closeDb=Fermeture de la base <strong>%s</strong> -tutti.reinstallDb.step.reloadApplication=Redémarrage de l'application... -tutti.replaceTemporary.done=<html><body>Le référentiel temporaire de type %s <strong>%s</strong> a été remplacée par <strong>%s</strong> -tutti.replaceTemporaryAndDelete.done=<html><body>Le référentiel temporaire de type %s <strong>%s</strong> a été remplacée par <strong>%s</strong> puis supprimé. -tutti.replaceTemporaryGear.title=Remplacer un engin temporaire -tutti.replaceTemporaryPerson.title=Remplacer un utilisateur temporaire -tutti.replaceTemporaryReferential.action.cancel=Annuler -tutti.replaceTemporaryReferential.action.cancel.mnemonic=A -tutti.replaceTemporaryReferential.action.cancel.tip=Annuler le remplacement -tutti.replaceTemporaryReferential.action.replace=Remplacer -tutti.replaceTemporaryReferential.action.replace.mnemonic=R -tutti.replaceTemporaryReferential.action.replace.tip=Remplacer le référentiel temporaire sélectionné -tutti.replaceTemporaryReferential.field.delete=Supprimer la donnée temporaire après le remplacement -tutti.replaceTemporaryReferential.field.delete.tip=Supprimer la donnée temporaire après le remplacement -tutti.replaceTemporaryReferential.field.sourceList=Référentiel temporaire -tutti.replaceTemporaryReferential.field.sourceList.tip=Sélectionner le référentiel temporaire à remplacer -tutti.replaceTemporaryReferential.field.targetList=Référentiel officiel -tutti.replaceTemporaryReferential.field.targetList.tip=Sélectionner le référentiel officiel de remplacement -tutti.replaceTemporarySpecies.title=Remplacer une espèce temporaire -tutti.replaceTemporaryVessel.title=Remplacer un navire temporaire -tutti.report.action.cancel=Quitter -tutti.report.action.cancel.mnemonic=Q -tutti.report.action.cancel.tip=Quitter l'écran -tutti.report.action.generate=Générer -tutti.report.action.generate.mnemonic=G -tutti.report.action.generate.tip=Générer le rapport -tutti.report.action.openReport=Ouvrir -tutti.report.action.openReport.mnemonic=O -tutti.report.action.openReport.tip=Ouvrir le dernier rapport généré -tutti.report.action.save=Enregistrer -tutti.report.action.save.mnemonic=S -tutti.report.action.save.tip=Enregistrer le dernier rapport généré -tutti.report.action.showOutputFile.mnemonic=V -tutti.report.action.showOutputFile.tip=Voir le rapport -tutti.report.field.fishingOperation=Trait -tutti.report.field.fishingOperation.tip=Sélectionner le trait -tutti.report.field.outputFile=Rapport -tutti.report.field.outputFile.tip=Chemin où générer le rapport -tutti.report.field.report=Modèle -tutti.report.field.report.tip=Modèle de rapport à générer -tutti.report.generated=Le rapport a été généré avec succès. -tutti.report.saved=Rapport enregistré \: <strong>%s</strong> -tutti.report.title=Rapports -tutti.report.title.choose.saveReportFile=Enregistrer le rapport généré -tutti.resetCruise.action.cruiseReloaded=<html><body>La campagne <strong>%s</strong> est rechargée</body></html>. -tutti.resetProgram.action.programReloaded=<html><body>Le programme <strong>%s</strong> est rechargé</body></html>. -tutti.rtpEdit.askCancelEditBeforeLeaving=Les relations taille-poids ne sont pas valides et ne peuvent pas être enregistrées -tutti.rtpEdit.askSaveBeforeLeaving=Des modifications n'ont pas été enregistrées -tutti.rtpEdit.title=Relations taille-poids de l'espèce %s -tutti.selectBenthos.title=Choisissez une espèce du benthos -tutti.selectCruise.action.chooseCruiseExportFile=Exporter -tutti.selectCruise.action.chooseProgramExportFile=Exporter -tutti.selectCruise.action.cloneProtocol=Cloner -tutti.selectCruise.action.cloneProtocol.tip=Dupliquer le protocole sélectionné -tutti.selectCruise.action.deleteProtocol=Supprimer -tutti.selectCruise.action.deleteProtocol.message=Vous êtes sur le point de supprimer le protocole <strong>%s</strong> -tutti.selectCruise.action.deleteProtocol.tip=Supprimer le protocole sélectionné -tutti.selectCruise.action.deleteProtocol.title=Supprimer le protocole sélectionné -tutti.selectCruise.action.editCatches=Saisir les traits et les captures -tutti.selectCruise.action.editCatches.mnemonic=S -tutti.selectCruise.action.editCatches.tip=Ouvrir les écrans de saisie des traits et des captures -tutti.selectCruise.action.editCruise=Éditer -tutti.selectCruise.action.editCruise.tip=Éditer la campagne sélectionnée -tutti.selectCruise.action.editProgram=Éditer -tutti.selectCruise.action.editProgram.tip=Éditer le programme sélectionné -tutti.selectCruise.action.editProtocol=Éditer -tutti.selectCruise.action.editProtocol.tip=Éditer le protocole sélectionné -tutti.selectCruise.action.exportCruise=Export Générique -tutti.selectCruise.action.exportCruise.tip=Exporter la campagne sélectionnée au format générique -tutti.selectCruise.action.exportCruiseForSumatra=Export csv -tutti.selectCruise.action.exportCruiseForSumatra.tip=Exporter la campagne sélectionnée au format csv -tutti.selectCruise.action.exportProgram=Exporter -tutti.selectCruise.action.exportProgram.tip=Exporter la série sélectionnée -tutti.selectCruise.action.exportProtocol=Exporter -tutti.selectCruise.action.exportProtocol.tip=Exporter le protocole sélectionné -tutti.selectCruise.action.importGenericformat=Importer -tutti.selectCruise.action.importProgram=Importer -tutti.selectCruise.action.importProgram.tip=Importer des campagnes au format générique -tutti.selectCruise.action.importProtocol=Importer -tutti.selectCruise.action.importProtocol.tip=Importer un protocole -tutti.selectCruise.action.newCruise=Nouveau -tutti.selectCruise.action.newCruise.tip=Créer une nouvelle campagne -tutti.selectCruise.action.newProgram=Nouveau -tutti.selectCruise.action.newProgram.tip=Créer une nouvelle série de campagne -tutti.selectCruise.action.newProtocol=Nouveau -tutti.selectCruise.action.newProtocol.tip=Créer un nouveau protocole -tutti.selectCruise.action.sendCruiseReport=Export Pdf -tutti.selectCruise.action.sendCruiseReport.tip=Exporter au format pdf et envoyer par courriel -tutti.selectCruise.action.speciesToConfirmReportForCruise=Espèces à confirmer -tutti.selectCruise.action.speciesToConfirmReportForCruise.tip=Créer le rapport des espèces à confirmer pour la campagne -tutti.selectCruise.action.validateCatches=Valider les captures -tutti.selectCruise.action.validateCatches.mnemonic=V -tutti.selectCruise.action.validateCatches.tip=Lancer le processus de validation des données -tutti.selectCruise.field.cruise=Campagne -tutti.selectCruise.field.cruise.tip=Nom de la campagne -tutti.selectCruise.field.program=Série de campagne -tutti.selectCruise.field.program.tip=Nom de la série de campagne -tutti.selectCruise.field.protocol=Protocole de saisie -tutti.selectCruise.field.protocol.tip=Nom du protocole de saisie -tutti.selectCruise.title=Sélection de la campagne -tutti.selectCruise.title.choose.exportCruiseFile=Exporter une campagne -tutti.selectCruise.title.choose.exportFile=Exporter le protocole -tutti.selectCruise.title.choose.exportProgramFile=Exporter une série de campagne -tutti.selectCruise.title.choose.exportProtocolFile=Exporter le protocole -tutti.selectCruise.title.choose.importFile=Importer le protocole -tutti.selectCruise.title.choose.importGenericFormatFile=Importer des campagnes -tutti.selectCruise.title.choose.importProtocolFile=Importer le protocole -tutti.selectCruise.warn.invalid.selected.data=Les données sélectionnées ne sont pas valides, impossible de saisir ou valider les captures. -tutti.selectNode.cruisePartialSelected=La campagne est partiellement sélectionnée pour l'export ( %s traits à exporter , %s enregistrés ) -tutti.selectNode.cruiseSelected=La campagne est sélectionnée pour l'export ( %s traits à exporter ) -tutti.selectNode.operation=Trait %s -tutti.selectNode.operationSelected=Le trait est sélectionné pour l'export -tutti.selectSpecies.action.cancel=Annuler -tutti.selectSpecies.action.cancel.mnemonic=A -tutti.selectSpecies.action.cancel.tip=Annuler la sélection de l'espèce -tutti.selectSpecies.action.showAllSpecies=Afficher toutes les espèces -tutti.selectSpecies.action.showAllSpecies.mnemonic=t -tutti.selectSpecies.action.showAllSpecies.tip=Afficher toutes les espèces, réferents et synonymes dans la liste déroulante -tutti.selectSpecies.action.validate=Valider -tutti.selectSpecies.action.validate.mnemonic=V -tutti.selectSpecies.action.validate.tip=Valider la sélection de l'espèce -tutti.selectSpecies.title=Choisissez une espèce -tutti.selectSpeciesForBenthosBatch.title=Choisissez une espèce hors protocole -tutti.selectSpeciesForSpeciesBatch.title=Choisissez une espèce hors protocole -tutti.sendCruiseReport.action.chooseFile=Choisir le fichier de rapport -tutti.sendCruiseReport.action.success=Les captures ont correctement été exporté dans le fichier <strong>%s</strong> -tutti.sendCruiseReport.title.choose.exportFile=Envoyer les captures de la campagne -tutti.species.name.tip=Nom scientifique -tutti.species.refTaxCode.tip=Code Rubin -tutti.species.surveyCode.tip=Code campagne ou code rubin -tutti.speciesToConfirmReport.action.chooseFile=Choisir le fichier de rapport -tutti.speciesToConfirmReport.fileName.default=Especes_a_confirmer_%1$s_%2$s -tutti.speciesToConfirmReport.title.choose.exportFile=Rapport des espèces à confirmer -tutti.splitBenthosBatch.action.cancel=Annuler -tutti.splitBenthosBatch.action.cancel.mnemonic=A -tutti.splitBenthosBatch.action.cancel.tip=Annuler le sous-échantillonnage -tutti.splitBenthosBatch.action.save=Enregistrer -tutti.splitBenthosBatch.action.save.mnemonic=E -tutti.splitBenthosBatch.action.save.tip=Sauver le sous-échantillonnage -tutti.splitBenthosBatch.field.batchWeight=Poids du lot père -tutti.splitBenthosBatch.field.batchWeight.tip=Poids du lot père (si renseigné) -tutti.splitBenthosBatch.field.category=Catégorie -tutti.splitBenthosBatch.field.category.tip=Choisir le mode de catégorisation -tutti.splitBenthosBatch.field.sampleWeight=Poids total catégorisé -tutti.splitBenthosBatch.field.sampleWeight.tip=Somme des poids saisis ci-dessous -tutti.splitBenthosBatch.table.header.category=Catégorie -tutti.splitBenthosBatch.table.header.selected=Sélection -tutti.splitBenthosBatch.table.header.weight=Poids -tutti.splitBenthosBatch.title=Catégorisation du lot -tutti.splitSpeciesBatch.action.cancel=Annuler -tutti.splitSpeciesBatch.action.cancel.mnemonic=A -tutti.splitSpeciesBatch.action.cancel.tip=Annuler le sous-échantillonnage -tutti.splitSpeciesBatch.action.save=Enregistrer -tutti.splitSpeciesBatch.action.save.mnemonic=E -tutti.splitSpeciesBatch.action.save.tip=Sauver le sous-échantillonnage -tutti.splitSpeciesBatch.field.batchWeight=Poids total à catégoriser -tutti.splitSpeciesBatch.field.batchWeightField.tip=Poids du lot père (si renseigné) -tutti.splitSpeciesBatch.field.category=Catégorie -tutti.splitSpeciesBatch.field.categoryField.tip=Choisir le mode de catégorisation -tutti.splitSpeciesBatch.field.sampleWeight=Poids total catégorisé -tutti.splitSpeciesBatch.field.sampleWeightField.tip=Somme des poids saisis ci-dessous -tutti.splitSpeciesBatch.table.header.category=Catégorie -tutti.splitSpeciesBatch.table.header.selected=Sélection -tutti.splitSpeciesBatch.table.header.weight=Poids -tutti.splitSpeciesBatch.title=Catégorisation du lot -tutti.test= -tutti.title.openReplaceTemporaryUI.noSource=Pas de référentiel temporaire de type %s dans la base -tutti.title.openReplaceTemporaryUI.noTarget=Pas de référentiel officiel de type %s dans la base -tutti.todo= -tutti.toolbar.menu.action=Actions -tutti.toolbar.menu.action.mnemonic=A -tutti.toolbar.menu.action.tip=Actions possibles pour cet onglet -tutti.toolbar.menuExportMultiPost.action=Export multi-postes -tutti.toolbar.menuExportMultiPost.action.mnemonic=E -tutti.toolbar.menuExportMultiPost.action.tip=Exporter des lots espèces -tutti.toolbar.menuImportMultiPost.action=Import multi-postes -tutti.toolbar.menuImportMultiPost.action.mnemonic=I -tutti.toolbar.menuImportMultiPost.action.tip=Import des lots espèces -tutti.ui.change.species.decorator=Changer la décoration -tutti.update.db=Base de données -tutti.update.error.with.auth=Impossible de télécharger la mise à jour du module <strong>%s</strong>.<br/>Le login / mot de passe que vous avez saisis n'étaient peut-être pas corrects.<br/>Si le problème persiste, veuillez consulter l'administrateur. -tutti.update.error.with.noauth=Impossible de télécharger la mise à jour du module <strong>%s</strong>.<br/>Si le problème persiste, veuillez consulter l'administrateur. -tutti.update.help=Aide en ligne -tutti.update.i18n=Traductions -tutti.update.ichtyometer=Ichtyometre -tutti.update.jre=Java -tutti.update.launcher=Lanceur d'application -tutti.update.report=Rapports -tutti.update.tutti=Allegro Campagne -tutti.updateApplication.checkUpdates=Recherche de mises à jour -tutti.updateApplication.message.success=La mise à jour du logiciel nécessite le redémarrage de l'application -tutti.updateApplication.noUpdate=<strong>Aucune mise à jour de l'application détectée.</strong> -tutti.updateApplication.title.success=Redémarrage de l'application nécessaire... -tutti.updateDb.error.with.auth=Impossible de télécharger la base de données.<br/>Le login / mot de passe que vous avez saisis n'étaient peut-être pas corrects.<br/>Si le problème persiste, veuillez consulter l'administrateur. -tutti.updateDb.error.with.noauth=Impossible de télécharger la base de données.<br/>Si le problème persiste, veuillez consulter l'administrateur. -tutti.updateReport.error.with.auth=Impossible de télécharger la mise à jour des rapports.<br/>Le login / mot de passe que vous avez saisis n'étaient peut-être pas corrects.<br/>Si le problème persiste, veuillez consulter l'administrateur. -tutti.updateReport.error.with.noauth=Impossible de télécharger la mise à jour des rapports.<br/>Si le problème persiste, veuillez consulter l'administrateur. -tutti.updateReport.message.success=La mise à jour des rapports nécessite le redémarrage de l'application -tutti.updateReport.noUpdate=<strong>Aucune mise à jour de rapports détectée.</strong> -tutti.updateReport.title.success=Redémarrage de l'application nécessaire... -tutti.upgradeDb.message.success=La mise à jour des référentiels nécessite le redémarrage de l'application -tutti.upgradeDb.title.success=Redémarrage de l'application nécessaire... -tutti.validateCruise.action.editCruise.tip=Éditer la campagne -tutti.validateCruise.action.export.all.chooseFile.label=Exporter -tutti.validateCruise.action.export.all.chooseFile.title=Exporter les messages de validation de la campagne -tutti.validateCruise.action.export.all.success=Les messages de validation des captures ont correctement été exporté dans le fichier %s -tutti.validateCruise.action.export.all.tip=Exporter les messages de validation de la campagne -tutti.validateCruise.action.export.operation.chooseFile.label=Exporter -tutti.validateCruise.action.export.operation.chooseFile.title=Exporter les messages de validation de l'opération -tutti.validateCruise.action.export.operation.success=Les messages de validation de l'opération ont correctement été exporté dans le fichier %s -tutti.validateCruise.action.export.operation.tip=Exporter les messages de validation de l'opération -tutti.validateCruise.navigation.action.export.all.tip=Exporter les messages de validation de la campagne -tutti.validateCruise.navigation.action.export.operation=Exporter -tutti.validateCruise.navigation.action.export.operation.mnemonic=x -tutti.validateCruise.navigation.action.export.operation.tip=Exporter les messages de validation de l'opération -tutti.validateCruise.navigation.action.readyToSynch=Rendre les données synchronisables -tutti.validateCruise.navigation.action.readyToSynch.mnemonic=S -tutti.validateCruise.navigation.action.readyToSynch.tip=Rendre les données synchronisables vers Harmonie -tutti.validateCruise.navigation.title=Traits -tutti.validationCruise.action.saveCruiseToReadyToSynch.message=<html>Voulez vous rendre vos données synchronisables vers Harmonie ?</html> -tutti.validationCruise.action.saveCruiseToReadyToSynch.tip=Rendre les données synchronisables vers Harmonie -tutti.validationCruise.action.saveCruiseToReadyToSynch.title=Rendre synchronisable les données vers Harmonie -tutti.validator.error.benthosFrequency.incoherentTotalWeights=Le poids total est différent de la somme des poids des poids observés -tutti.validator.error.benthosFrequency.lengthStepCaracteristic.required=La classe de taille est obligatoire -tutti.validator.error.benthosFrequency.oneRowRequired=Au moins une classe de taille doit être observée -tutti.validator.error.benthosFrequency.step.positiveValue=Le pas de la classe de taille doit être strictement positif +tutti.reimport.step.backupDb= +tutti.reimport.step.closeDb= +tutti.reimport.step.reloadApplication= +tutti.reinstallDb.step.backupDb= +tutti.reinstallDb.step.closeDb= +tutti.reinstallDb.step.reloadApplication= +tutti.replaceTemporary.done= +tutti.replaceTemporaryAndDelete.done= +tutti.replaceTemporaryGear.title= +tutti.replaceTemporaryPerson.title= +tutti.replaceTemporaryReferential.action.cancel= +tutti.replaceTemporaryReferential.action.cancel.mnemonic= +tutti.replaceTemporaryReferential.action.cancel.tip= +tutti.replaceTemporaryReferential.action.replace= +tutti.replaceTemporaryReferential.action.replace.mnemonic= +tutti.replaceTemporaryReferential.action.replace.tip= +tutti.replaceTemporaryReferential.field.delete= +tutti.replaceTemporaryReferential.field.delete.tip= +tutti.replaceTemporaryReferential.field.sourceList= +tutti.replaceTemporaryReferential.field.sourceList.tip= +tutti.replaceTemporaryReferential.field.targetList= +tutti.replaceTemporaryReferential.field.targetList.tip= +tutti.replaceTemporarySpecies.title= +tutti.replaceTemporaryVessel.title= +tutti.report.action.cancel= +tutti.report.action.cancel.mnemonic= +tutti.report.action.cancel.tip= +tutti.report.action.generate= +tutti.report.action.generate.mnemonic= +tutti.report.action.generate.tip= +tutti.report.action.openReport= +tutti.report.action.openReport.mnemonic= +tutti.report.action.openReport.tip= +tutti.report.action.save= +tutti.report.action.save.mnemonic= +tutti.report.action.save.tip= +tutti.report.field.fishingOperation= +tutti.report.field.fishingOperation.tip= +tutti.report.field.report= +tutti.report.field.report.tip= +tutti.report.generated= +tutti.report.saved= +tutti.report.title= +tutti.report.title.choose.saveReportFile= +tutti.resetCruise.action.cruiseReloaded= +tutti.resetProgram.action.programReloaded= +tutti.rtpEdit.askCancelEditBeforeLeaving= +tutti.rtpEdit.askSaveBeforeLeaving= +tutti.rtpEdit.title= +tutti.selectBenthos.title= +tutti.selectCruise.action.cloneProtocol= +tutti.selectCruise.action.cloneProtocol.tip= +tutti.selectCruise.action.deleteProtocol= +tutti.selectCruise.action.deleteProtocol.message= +tutti.selectCruise.action.deleteProtocol.tip= +tutti.selectCruise.action.deleteProtocol.title= +tutti.selectCruise.action.editCatches= +tutti.selectCruise.action.editCatches.mnemonic= +tutti.selectCruise.action.editCatches.tip= +tutti.selectCruise.action.editCruise= +tutti.selectCruise.action.editCruise.tip= +tutti.selectCruise.action.editProgram= +tutti.selectCruise.action.editProgram.tip= +tutti.selectCruise.action.editProtocol= +tutti.selectCruise.action.editProtocol.tip= +tutti.selectCruise.action.exportCruiseForSumatra= +tutti.selectCruise.action.exportCruiseForSumatra.tip= +tutti.selectCruise.action.exportProtocol= +tutti.selectCruise.action.exportProtocol.tip= +tutti.selectCruise.action.importProtocol= +tutti.selectCruise.action.importProtocol.tip= +tutti.selectCruise.action.newCruise= +tutti.selectCruise.action.newCruise.tip= +tutti.selectCruise.action.newProgram= +tutti.selectCruise.action.newProgram.tip= +tutti.selectCruise.action.newProtocol= +tutti.selectCruise.action.newProtocol.tip= +tutti.selectCruise.action.sendCruiseReport= +tutti.selectCruise.action.sendCruiseReport.tip= +tutti.selectCruise.action.speciesToConfirmReportForCruise= +tutti.selectCruise.action.speciesToConfirmReportForCruise.tip= +tutti.selectCruise.action.validateCatches= +tutti.selectCruise.action.validateCatches.mnemonic= +tutti.selectCruise.action.validateCatches.tip= +tutti.selectCruise.field.cruise= +tutti.selectCruise.field.cruise.tip= +tutti.selectCruise.field.program= +tutti.selectCruise.field.program.tip= +tutti.selectCruise.field.protocol= +tutti.selectCruise.field.protocol.tip= +tutti.selectCruise.title= +tutti.selectCruise.title.choose.exportProtocolFile= +tutti.selectCruise.title.choose.importProtocolFile= +tutti.selectCruise.warn.invalid.selected.data= +tutti.selectSpecies.action.cancel= +tutti.selectSpecies.action.cancel.mnemonic= +tutti.selectSpecies.action.cancel.tip= +tutti.selectSpecies.action.showAllSpecies= +tutti.selectSpecies.action.showAllSpecies.mnemonic= +tutti.selectSpecies.action.showAllSpecies.tip= +tutti.selectSpecies.action.validate= +tutti.selectSpecies.action.validate.mnemonic= +tutti.selectSpecies.action.validate.tip= +tutti.selectSpecies.title= +tutti.selectSpeciesForSpeciesBatch.title= +tutti.sendCruiseReport.action.chooseFile= +tutti.sendCruiseReport.action.success= +tutti.sendCruiseReport.title.choose.exportFile= +tutti.species.name.tip= +tutti.species.refTaxCode.tip= +tutti.species.surveyCode.tip= +tutti.speciesToConfirmReport.action.chooseFile= +tutti.speciesToConfirmReport.fileName.default= +tutti.speciesToConfirmReport.title.choose.exportFile= +tutti.splitSpeciesBatch.action.cancel= +tutti.splitSpeciesBatch.action.cancel.mnemonic= +tutti.splitSpeciesBatch.action.cancel.tip= +tutti.splitSpeciesBatch.action.save= +tutti.splitSpeciesBatch.action.save.mnemonic= +tutti.splitSpeciesBatch.action.save.tip= +tutti.splitSpeciesBatch.field.batchWeight= +tutti.splitSpeciesBatch.field.batchWeightField.tip= +tutti.splitSpeciesBatch.field.category= +tutti.splitSpeciesBatch.field.categoryField.tip= +tutti.splitSpeciesBatch.field.sampleWeight= +tutti.splitSpeciesBatch.field.sampleWeightField.tip= +tutti.splitSpeciesBatch.table.header.category= +tutti.splitSpeciesBatch.table.header.selected= +tutti.splitSpeciesBatch.table.header.weight= +tutti.splitSpeciesBatch.title= +tutti.title.openReplaceTemporaryUI.noSource= +tutti.title.openReplaceTemporaryUI.noTarget= +tutti.toolbar.menu.action= +tutti.toolbar.menu.action.mnemonic= +tutti.toolbar.menu.action.tip= +tutti.toolbar.menuExportMultiPost.action= +tutti.toolbar.menuExportMultiPost.action.mnemonic= +tutti.toolbar.menuExportMultiPost.action.tip= +tutti.toolbar.menuImportMultiPost.action= +tutti.toolbar.menuImportMultiPost.action.mnemonic= +tutti.toolbar.menuImportMultiPost.action.tip= +tutti.ui.change.species.decorator= +tutti.update.db= +tutti.update.error.with.auth= +tutti.update.error.with.noauth= +tutti.update.help= +tutti.update.i18n= +tutti.update.ichtyometer= +tutti.update.jre= +tutti.update.launcher= +tutti.update.report= +tutti.update.tutti= +tutti.updateApplication.checkUpdates= +tutti.updateApplication.message.success= +tutti.updateApplication.noUpdate= +tutti.updateApplication.title.success= +tutti.updateReport.message.success= +tutti.updateReport.noUpdate= +tutti.updateReport.title.success= +tutti.validateCruise.action.editCruise.tip= +tutti.validateCruise.action.export.all.chooseFile.label= +tutti.validateCruise.action.export.all.chooseFile.title= +tutti.validateCruise.action.export.all.success= +tutti.validateCruise.action.export.all.tip= +tutti.validateCruise.action.export.operation.chooseFile.label= +tutti.validateCruise.action.export.operation.chooseFile.title= +tutti.validateCruise.action.export.operation.success= +tutti.validateCruise.action.export.operation.tip= +tutti.validateCruise.navigation.action.export.all.tip= +tutti.validateCruise.navigation.action.export.operation= +tutti.validateCruise.navigation.action.export.operation.mnemonic= +tutti.validateCruise.navigation.action.export.operation.tip= +tutti.validateCruise.navigation.action.readyToSynch= +tutti.validateCruise.navigation.action.readyToSynch.mnemonic= +tutti.validateCruise.navigation.action.readyToSynch.tip= +tutti.validateCruise.navigation.title= +tutti.validationCruise.action.saveCruiseToReadyToSynch.message= +tutti.validationCruise.action.saveCruiseToReadyToSynch.tip= +tutti.validationCruise.action.saveCruiseToReadyToSynch.title= +tutti.validator.error.benthosFrequency.incoherentTotalWeights= +tutti.validator.error.benthosFrequency.lengthStepCaracteristic.required= +tutti.validator.error.benthosFrequency.oneRowRequired= +tutti.validator.error.benthosFrequency.step.positiveValue= tutti.validator.error.cpsEditor.dialog.minSize.between= tutti.validator.error.cpsEditor.dialog.minSize.required= -tutti.validator.error.createAccidentalBatch.species.required=L'espèce est obligatoire -tutti.validator.error.createIndividualObservationBatch.lengthStepCaracteristic.required=La classe de taille est obligatoire -tutti.validator.error.createIndividualObservationBatch.size.required=La taille est obligatoire -tutti.validator.error.createIndividualObservationBatch.species.required=L'espèce est obligatoire -tutti.validator.error.createIndividualObservationBatch.weight.required=Le poids est obligatoire -tutti.validator.error.createMarineLitterBatch.categoryAndSizeCategory.notAvailable=Couple (catégorie de déchet - catégorie de taille) déjà utilisée -tutti.validator.error.createMarineLitterBatch.marineLitterCategory.required=La catégorie de déchet est obligatoire -tutti.validator.error.createMarineLitterBatch.marineLitterSizeCategory.required=La catégorie de taille est obligatoire -tutti.validator.error.createMarineLitterBatch.number.invalidValue=Le nombre doit être strictement positif -tutti.validator.error.createMarineLitterBatch.number.required=Le nombre est obligatoire +tutti.validator.error.createAccidentalBatch.species.required= +tutti.validator.error.createIndividualObservationBatch.lengthStepCaracteristic.required= +tutti.validator.error.createIndividualObservationBatch.size.required= +tutti.validator.error.createIndividualObservationBatch.species.required= +tutti.validator.error.createIndividualObservationBatch.weight.required= +tutti.validator.error.createMarineLitterBatch.categoryAndSizeCategory.notAvailable= +tutti.validator.error.createMarineLitterBatch.marineLitterCategory.required= +tutti.validator.error.createMarineLitterBatch.marineLitterSizeCategory.required= +tutti.validator.error.createMarineLitterBatch.number.invalidValue= +tutti.validator.error.createMarineLitterBatch.number.required= tutti.validator.error.createSpeciesBatch.batchSampleCategoryWeight.invalidValue= -tutti.validator.error.createSpeciesBatch.batchSampleWeight.invalidValue=Le poids du lot doit être strictement positif -tutti.validator.error.createSpeciesBatch.batchWeight.invalidValue=Le poids du sous-échantillon doit être strictement positif -tutti.validator.error.createSpeciesBatch.sampleWeight.invalidValue=La somme des poids ventilés doit être strictement positive -tutti.validator.error.createSpeciesBatch.sampleWeight.sampleBatchGreaterThanBatchSampleCategoryWeight=La somme des poids ventilés doit être inférieur ou égale à celle du poids du lot -tutti.validator.error.createSpeciesBatch.sortedUnsortedCategory.required=La catégorie Vrac / Hors Vrac est obligatoire -tutti.validator.error.createSpeciesBatch.species.required=L'espèce est obligatoire -tutti.validator.error.createSpeciesBatch.speciesAndCategory.notAvailable=Couple (espèce - Vrac/Hors Vrac) déjà utilisée -tutti.validator.error.createSpeciesBatch.weight.weightGreaterThanBatchSampleCategoryWeight=Le poids du sous-échantillon doit être inférieur au poids du lot -tutti.validator.error.cruise.name.format=Le format n'est pas celui attendu ... -tutti.validator.error.latitude.decimal.outOfBounds=La décimale de la latitude doit être comprise entre 0 et 99 -tutti.validator.error.latitude.degree.outOfBounds=Le degré de la latitude doit être compris entre -90 et 90 -tutti.validator.error.latitude.end.required=La latitude de fin de traîne est obligatoire -tutti.validator.error.latitude.minute.outOfBounds=La minute de la latitude doit être comprise entre 0 et 59 -tutti.validator.error.latitude.second.outOfBounds=La seconde de la latitude doit être comprise entre 0 et 59 -tutti.validator.error.latitude.start.required=La latitude de début de traîne est obligatoire -tutti.validator.error.longitude.decimal.outOfBounds=La décimale de la longitude doit être comprise entre 0 et 99 -tutti.validator.error.longitude.degree.outOfBounds=Le degré de la longitude doit être compris entre -180 et 180 -tutti.validator.error.longitude.end.required=La longitude de fin de traîne est obligatoire -tutti.validator.error.longitude.minute.outOfBounds=La minute de la longitude doit être comprise entre 0 et 59 -tutti.validator.error.longitude.second.outOfBounds=La seconde de la longitude doit être comprise entre 0 et 59 -tutti.validator.error.longitude.start.required=La longitude de début de traîne est obligatoire +tutti.validator.error.createSpeciesBatch.batchWeight.invalidValue= +tutti.validator.error.createSpeciesBatch.sampleWeight.invalidValue= +tutti.validator.error.createSpeciesBatch.sampleWeight.sampleBatchGreaterThanBatchSampleCategoryWeight= +tutti.validator.error.createSpeciesBatch.sortedUnsortedCategory.required= +tutti.validator.error.createSpeciesBatch.species.required= +tutti.validator.error.createSpeciesBatch.speciesAndCategory.notAvailable= +tutti.validator.error.createSpeciesBatch.weight.weightGreaterThanBatchSampleCategoryWeight= +tutti.validator.error.cruise.name.format= +tutti.validator.error.latitude.decimal.outOfBounds= +tutti.validator.error.latitude.degree.outOfBounds= +tutti.validator.error.latitude.end.required= +tutti.validator.error.latitude.minute.outOfBounds= +tutti.validator.error.latitude.second.outOfBounds= +tutti.validator.error.latitude.start.required= +tutti.validator.error.longitude.decimal.outOfBounds= +tutti.validator.error.longitude.degree.outOfBounds= +tutti.validator.error.longitude.end.required= +tutti.validator.error.longitude.minute.outOfBounds= +tutti.validator.error.longitude.second.outOfBounds= +tutti.validator.error.longitude.start.required= tutti.validator.error.maturityCaracteristicEditor.dialog.qualitativeValues.bithStates= -tutti.validator.error.program.zone.required=La zone de la série est obligatoire -tutti.validator.error.replaceTemporaryReferential.source.required=Un référentiel temporaire doit être sélectionné -tutti.validator.error.replaceTemporaryReferential.target.required=Un référentiel officiel doit être sélectionné -tutti.validator.error.report.cruiseId.required=La campagne est obligatoire -tutti.validator.error.report.fishingOperation.required=Un trait doit être sélectionné -tutti.validator.error.report.outputFile.required=Le fichier de sortie est obligatoire -tutti.validator.error.report.report.required=Un modèle de rapport doit être sélectionné +tutti.validator.error.program.zone.required= +tutti.validator.error.replaceTemporaryReferential.source.required= +tutti.validator.error.replaceTemporaryReferential.target.required= +tutti.validator.error.report.cruiseId.required= +tutti.validator.error.report.fishingOperation.required= +tutti.validator.error.report.report.required= tutti.validator.error.rtpEditor.rtpFemaleA.required= tutti.validator.error.rtpEditor.rtpFemaleB.required= tutti.validator.error.rtpEditor.rtpMaleA.required= tutti.validator.error.rtpEditor.rtpMaleB.required= tutti.validator.error.rtpEditor.rtpUndefinedA.required= tutti.validator.error.rtpEditor.rtpUndefinedB.required= -tutti.validator.error.speciesFrequency.allWeightsOrNoneRequired=Tous les poids doivent être saisis ou aucun -tutti.validator.error.speciesFrequency.incoherentTotalWeights=Le poids total est différent de la somme des poids des poids observés -tutti.validator.error.speciesFrequency.individualObservationsWithoutWeights=Tous les poids des observations individuelles ne sont pas renseignés -tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required=La classe de taille est obligatoire -tutti.validator.error.speciesFrequency.oneRowRequired=Au moins une classe de taille doit être observée -tutti.validator.error.speciesFrequency.step.positiveValue=Le pas de la classe de taille doit être strictement positif -tutti.validator.error.splitSpeciesBatch.sampleWeight.invalidValue=La somme des poids ventilés doit être strictement positive -tutti.validator.error.splitSpeciesBatch.sampleWeight.sampleBatchGreaterThanBatchWeight=La somme des poids ventilés doit être inférieur ou égale à celle du poids du lot -tutti.validator.error.splitSpeciesBatch.selectedCategory.required=La catégorie est obligatoire -tutti.validator.error.zoneEditor.availableStratas.remaining=Il reste des strates ou des sous-strates à positionner dans les zones -tutti.validator.info.cruise.noError=Campagne sans erreur -tutti.validator.info.operation.noError=Trait sans erreur -tutti.validator.warning.benthosFrequency.redundantTotalWeight=Le poids total est redondant (égal au poids calculé à partir des poids observés) -tutti.validator.warning.speciesFrequency.redundantTotalWeight=Le poids total est redondant (égal au poids calculé à partir des poids observés) -tutti.vesselUseFeatureTable.action.removeCaracteristic=Supprimer -tutti.vesselUseFeatureTable.action.removeCaracteristic.mnemonic=S -tutti.vesselUseFeatureTable.action.removeCaracteristic.tip=Supprimer la caractéristique -tutti.vesselUseFeatureTable.table.header.key=Caractéristique -tutti.vesselUseFeatureTable.table.header.value=Valeur -tutti.vesselUseFeatureTable.title=Autres paramètres -tutti.zoneEditor.action.delete=Supprimer la zone -tutti.zoneEditor.action.delete.mnemonic=Supprimer la zone sélectionnée -tutti.zoneEditor.action.delete.tip=S -tutti.zoneEditor.action.rename=Renommer la zone -tutti.zoneEditor.action.rename.mnemonic=Renommer la zone sélectionnée -tutti.zoneEditor.action.rename.tip=R -tutti.zoneEditor.availableStratas.root.label=Strates à attribuer à une zone -tutti.zoneEditor.createZone.message=Libellé de la nouvelle zone -tutti.zoneEditor.createZone.title=Nouvelle zone -tutti.zoneEditor.deleteZone.message=Vous êtes sur le point de supprimer la zone %s. Êtes-vous sûr de vouloir la supprimer ? -tutti.zoneEditor.deleteZone.title=Suppression de zone -tutti.zoneEditor.renameZone.message=Nouveau libellé de la zone -tutti.zoneEditor.renameZone.title=Renommer la zone %s -tutti.zoneEditor.zones.root.label=Zones +tutti.validator.error.speciesFrequency.allWeightsOrNoneRequired= +tutti.validator.error.speciesFrequency.incoherentTotalWeights= +tutti.validator.error.speciesFrequency.individualObservationsWithoutWeights= +tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required= +tutti.validator.error.speciesFrequency.oneRowRequired= +tutti.validator.error.speciesFrequency.step.positiveValue= +tutti.validator.error.splitSpeciesBatch.sampleWeight.invalidValue= +tutti.validator.error.splitSpeciesBatch.sampleWeight.sampleBatchGreaterThanBatchWeight= +tutti.validator.error.splitSpeciesBatch.selectedCategory.required= +tutti.validator.error.zoneEditor.availableStratas.remaining= +tutti.validator.info.cruise.noError= +tutti.validator.info.operation.noError= +tutti.validator.warning.benthosFrequency.redundantTotalWeight= +tutti.validator.warning.speciesFrequency.redundantTotalWeight= +tutti.vesselUseFeatureTable.action.removeCaracteristic= +tutti.vesselUseFeatureTable.action.removeCaracteristic.mnemonic= +tutti.vesselUseFeatureTable.action.removeCaracteristic.tip= +tutti.vesselUseFeatureTable.table.header.key= +tutti.vesselUseFeatureTable.table.header.value= +tutti.vesselUseFeatureTable.title= +tutti.zoneEditor.action.delete= +tutti.zoneEditor.action.delete.mnemonic= +tutti.zoneEditor.action.delete.tip= +tutti.zoneEditor.action.rename= +tutti.zoneEditor.action.rename.mnemonic= +tutti.zoneEditor.action.rename.tip= +tutti.zoneEditor.availableStratas.root.label= +tutti.zoneEditor.createZone.message= +tutti.zoneEditor.createZone.title= +tutti.zoneEditor.deleteZone.message= +tutti.zoneEditor.deleteZone.title= +tutti.zoneEditor.renameZone.message= +tutti.zoneEditor.renameZone.title= +tutti.zoneEditor.zones.root.label= -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.