This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 55fe697b56ab92173bfcd9800aac273e649b3dba Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 16 12:38:42 2014 +0100 fixes #6105 (amélioration du rapport des données non importées - utilisation des unités + meilleur nommage des actions possibles) --- .../action/AbstractExportMultiPostAction.java | 72 ++++++++++++------- .../action/AbstractImportMultiPostAction.java | 82 +++++++++++++--------- .../swing/action/ImportBenthosMultiPostAction.java | 19 +++-- .../swing/action/ImportCatchMultiPostAction.java | 29 ++++---- .../action/ImportMarineLitterMultiPostAction.java | 11 +-- .../swing/action/ImportSpeciesMultiPostAction.java | 18 +++-- .../resources/i18n/tutti-ui-swing_en_GB.properties | 5 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 29 ++++---- 8 files changed, 154 insertions(+), 111 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractExportMultiPostAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractExportMultiPostAction.java index 58b48b8..7ab9621 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractExportMultiPostAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractExportMultiPostAction.java @@ -96,19 +96,56 @@ public abstract class AbstractExportMultiPostAction<M extends AbstractBean, UI e boolean canSave = model.isModify() && model.isValid(); // ask user to save before export (otherwise some data can't be export) - doSaveCatches = canSave && askToSave(); - String extension = getFileExtension(); + if (canSave) { - // choose file to export - file = saveFile(decorate(fishingOperation, DecoratorService.FILE_NAME_COMPATIBLE), - extension, - getFileChooserTitle(), - getFileChooserButton(), - "^.*\\." + extension, - getFileExtensionDescription()); + String htmlMessage = String.format( + AbstractApplicationUIHandler.CONFIRMATION_FORMAT, + t("tutti.askToSaveCatch.message"), + t("tutti.askToSaveCatchBeforeExport.help")); - doAction = file != null; + int saveResponse =JOptionPane.showOptionDialog(getHandler().getTopestUI(), + htmlMessage, + t("tutti.askToSaveCatch.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + new String[]{t("tutti.option.saveCatch"), t("tutti.option.notSaveCatch"), t("tutti.option.cancelExport")}, + t("tutti.option.saveCatch")); + + switch (saveResponse) { + case 0: + + // should save + doSaveCatches = true; + break; + case 1: + + // nothing to do before export + break; + case 2: + + // cancel import + doAction = false; + } + + } + + if (doAction) { + + String extension = getFileExtension(); + + // choose file to export + file = saveFile(decorate(fishingOperation, DecoratorService.FILE_NAME_COMPATIBLE), + extension, + getFileChooserTitle(), + getFileChooserButton(), + "^.*\\." + extension, + getFileExtensionDescription()); + + doAction = file != null; + + } } @@ -158,19 +195,4 @@ public abstract class AbstractExportMultiPostAction<M extends AbstractBean, UI e sendMessage(getSuccessMessage(file)); } - protected boolean askToSave() { - String htmlMessage = String.format( - AbstractApplicationUIHandler.CONFIRMATION_FORMAT, - t("tutti.askToSaveCatch.message"), - t("tutti.askToSaveCatchBeforeExport.help")); - int i = JOptionPane.showConfirmDialog( - getHandler().getTopestUI(), - htmlMessage, - t("tutti.askToSaveCatch.title"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE); - - boolean result = i == JOptionPane.OK_OPTION; - return result; - } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractImportMultiPostAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractImportMultiPostAction.java index f13f877..5c219aa 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractImportMultiPostAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/AbstractImportMultiPostAction.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.ui.swing.action; import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.catches.multipost.MultiPostImportService; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; @@ -104,25 +105,50 @@ public abstract class AbstractImportMultiPostAction<M extends AbstractBean, UI e // ask user to save before export (otherwise some data can't be export) - boolean shouldSave = askToSave(); - - if (shouldSave) { - - // save catch before - doSaveCatches = true; - } else { - doResetCatches = true; + String htmlMessage = String.format(AbstractApplicationUIHandler.CONFIRMATION_FORMAT, + t("tutti.askToSaveCatch.message"), + t("tutti.askToSaveCatchBeforeImport.help")); + + int saveResponse = JOptionPane.showOptionDialog( + getHandler().getTopestUI(), + htmlMessage, + t("tutti.askToSaveCatch.title"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE, + null, + new String[]{t("tutti.option.saveCatch"), t("tutti.option.resetCatch"), t("tutti.option.cancelImport")}, + t("tutti.option.saveCatch")); + + switch (saveResponse) { + case 0: + + // should save + doSaveCatches = true; + break; + case 1: + + // should reset + doResetCatches = true; + break; + case 2: + + // cancel import + doAction = false; } } - // choose file to import - file = chooseFile(getFileChooserTitle(), - getFileChooserButton(), - "^.*\\." + getFileExtension(), - getFileExtensionDescription()); + if (doAction) { + + // choose file to import + file = chooseFile(getFileChooserTitle(), + getFileChooserButton(), + "^.*\\." + getFileExtension(), + getFileExtensionDescription()); + + doAction = file != null; - doAction = file != null; + } } @@ -197,7 +223,7 @@ public abstract class AbstractImportMultiPostAction<M extends AbstractBean, UI e if (MapUtils.isNotEmpty(notImportedData)) { - String text = buildNotImportedDataText(notImportedData); + String text = buildNotImportedDataReportText(notImportedData); if (!text.isEmpty()) { @@ -218,30 +244,18 @@ public abstract class AbstractImportMultiPostAction<M extends AbstractBean, UI e } - protected String buildNotImportedDataText(Map<String, Object> notImportedData) { + protected String buildNotImportedDataReportText(Map<String, Object> notImportedData) { throw new IllegalStateException("Override this to use it"); } - protected boolean askToSave() { - - String htmlMessage = String.format(AbstractApplicationUIHandler.CONFIRMATION_FORMAT, - t("tutti.askToSaveCatch.message"), - t("tutti.askToSaveCatchBeforeImport.help")); - - int i = JOptionPane.showConfirmDialog(getHandler().getTopestUI(), - htmlMessage, - t("tutti.askToSaveCatch.title"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE); - - boolean result = i == JOptionPane.OK_OPTION; - return result; - - } - - protected EditCatchesUI getEditCatchUI() { EditCatchesUI catchesUI = getUI().getParentContainer(EditCatchesUI.class); return catchesUI; } + + protected void addNotImportedWeightToReport(StringBuilder builder, Float weight, WeightUnit weightUnit, String label) { + if (weight != null) { + builder.append("- ").append(t(label, weightUnit.fromEntity(weight), weightUnit.getShortLabel())).append("\n"); + } + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportBenthosMultiPostAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportBenthosMultiPostAction.java index fbddad2..b1776ea 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportBenthosMultiPostAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportBenthosMultiPostAction.java @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.catches.multipost.MultiPostImportService; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchUIModel; @@ -34,6 +35,7 @@ import java.io.File; import java.util.Collection; import java.util.Map; +import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; /** @@ -80,24 +82,21 @@ public class ImportBenthosMultiPostAction extends AbstractImportMultiPostAction< } @Override - protected String buildNotImportedDataText(Map<String, Object> notImportedData) { + protected String buildNotImportedDataReportText(Map<String, Object> notImportedData) { + + WeightUnit benthosWeightUnit = getConfig().getBenthosWeightUnit(); StringBuilder builder = new StringBuilder(); + Float totalSortedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT); - if (totalSortedWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.totalSortedWeight", totalSortedWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, totalSortedWeight, benthosWeightUnit, n("tutti.multiPostImportLog.totalSortedWeight")); Float inertWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT); - if (inertWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.inertWeight", inertWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, inertWeight, benthosWeightUnit, n("tutti.multiPostImportLog.inertWeight")); Float livingNotItemizedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT); - if (livingNotItemizedWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.livingNotItemizedWeight", livingNotItemizedWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, livingNotItemizedWeight, benthosWeightUnit, n("tutti.multiPostImportLog.livingNotItemizedWeight")); Collection<BenthosBatch> notImportedBenthosBatches = (Collection<BenthosBatch>) notImportedData.get(MultiPostImportService.BATCHES_KEY); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportCatchMultiPostAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportCatchMultiPostAction.java index bcbda02..2ebd268 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportCatchMultiPostAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportCatchMultiPostAction.java @@ -3,6 +3,7 @@ package fr.ifremer.tutti.ui.swing.action; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.catches.multipost.MultiPostImportService; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; @@ -10,6 +11,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; import java.io.File; import java.util.Map; +import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; /** @@ -58,34 +60,29 @@ public class ImportCatchMultiPostAction extends AbstractImportMultiPostAction<Ed } @Override - protected String buildNotImportedDataText(Map<String, Object> notImportedData) { + protected String buildNotImportedDataReportText(Map<String, Object> notImportedData) { + + WeightUnit catchWeightUnit = WeightUnit.KG; + WeightUnit speciesWeightUnit = getConfig().getSpeciesWeightUnit(); + WeightUnit benthosWeightUnit = getConfig().getBenthosWeightUnit(); + WeightUnit marineLitterWeightUnit = getConfig().getMarineLitterWeightUnit(); StringBuilder builder = new StringBuilder(); Float catchTotalWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_CATCH_TOTAL_WEIGHT); - if (catchTotalWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.catchTotalWeight", catchTotalWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, catchTotalWeight, catchWeightUnit, n("tutti.multiPostImportLog.catchTotalWeight")); Float catchTotalRejectedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT); - if (catchTotalRejectedWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.catchTotalRejectedWeight", catchTotalRejectedWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, catchTotalRejectedWeight, catchWeightUnit, n("tutti.multiPostImportLog.catchTotalRejectedWeight")); Float speciesTotalSortedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT); - if (speciesTotalSortedWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.speciesTotalSortedWeight", speciesTotalSortedWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, speciesTotalSortedWeight, speciesWeightUnit, n("tutti.multiPostImportLog.speciesTotalSortedWeight")); Float benthosTotalSortedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT); - if (benthosTotalSortedWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.benthosTotalSortedWeight", benthosTotalSortedWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, benthosTotalSortedWeight, benthosWeightUnit, n("tutti.multiPostImportLog.benthosTotalSortedWeight")); Float marineLitterTotalWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT); - if (marineLitterTotalWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.marineLitterTotalWeight", marineLitterTotalWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, marineLitterTotalWeight, marineLitterWeightUnit, n("tutti.multiPostImportLog.marineLitterTotalWeight")); return builder.toString(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportMarineLitterMultiPostAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportMarineLitterMultiPostAction.java index 2f9fef6..5226d8e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportMarineLitterMultiPostAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportMarineLitterMultiPostAction.java @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; import fr.ifremer.tutti.service.catches.multipost.MultiPostImportService; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchUIModel; @@ -34,6 +35,7 @@ import java.io.File; import java.util.Collection; import java.util.Map; +import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; /** @@ -80,13 +82,14 @@ public class ImportMarineLitterMultiPostAction extends AbstractImportMultiPostAc } @Override - protected String buildNotImportedDataText(Map<String, Object> notImportedData) { + protected String buildNotImportedDataReportText(Map<String, Object> notImportedData) { + + WeightUnit marineLitterWeightUnit = getConfig().getMarineLitterWeightUnit(); StringBuilder builder = new StringBuilder(); + Float totalWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT); - if (totalWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.totalWeight", totalWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, totalWeight, marineLitterWeightUnit, n("tutti.multiPostImportLog.totalWeight")); Collection<MarineLitterBatch> notImportedMarineLitterBatches = (Collection<MarineLitterBatch>) notImportedData.get(MultiPostImportService.BATCHES_KEY); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportSpeciesMultiPostAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportSpeciesMultiPostAction.java index 762a117..7fae152 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportSpeciesMultiPostAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportSpeciesMultiPostAction.java @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.service.catches.multipost.MultiPostImportService; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel; @@ -34,6 +35,7 @@ import java.io.File; import java.util.Collection; import java.util.Map; +import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; /** @@ -80,25 +82,21 @@ public class ImportSpeciesMultiPostAction extends AbstractImportMultiPostAction< } @Override - protected String buildNotImportedDataText(Map<String, Object> notImportedData) { + protected String buildNotImportedDataReportText(Map<String, Object> notImportedData) { + + WeightUnit speciesWeightUnit = getConfig().getSpeciesWeightUnit(); StringBuilder builder = new StringBuilder(); Float totalSortedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT); - if (totalSortedWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.totalSortedWeight", totalSortedWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, totalSortedWeight, speciesWeightUnit, n("tutti.multiPostImportLog.totalSortedWeight")); Float inertWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT); - if (inertWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.inertWeight", inertWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, inertWeight, speciesWeightUnit, n("tutti.multiPostImportLog.inertWeight")); Float livingNotItemizedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT); - if (livingNotItemizedWeight != null) { - builder.append("- ").append(t("tutti.multiPostImportLog.livingNotItemizedWeight", livingNotItemizedWeight)).append("\n"); - } + addNotImportedWeightToReport(builder, livingNotItemizedWeight, speciesWeightUnit, n("tutti.multiPostImportLog.livingNotItemizedWeight")); Collection<SpeciesBatch> notImportedSpeciesBatches = (Collection<SpeciesBatch>) notImportedData.get(MultiPostImportService.BATCHES_KEY); diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 1be41be..d3cccbd 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1571,12 +1571,17 @@ tutti.openReplaceTemporaryVesselUI.loading.source= tutti.openReplaceTemporaryVesselUI.loading.target= tutti.openReplaceTemporaryVesselUI.open.dialog= tutti.option.cancel= +tutti.option.cancelExport= +tutti.option.cancelImport= tutti.option.cleanAndClone= tutti.option.cleanAndEdit= tutti.option.cleanAndImport= tutti.option.clone= 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= 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 e8d0475..eaaf1e9 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 @@ -32,10 +32,10 @@ tutti.applicationUpdater.updateDone.deleteDirectory.caches.error=Erreur lors de tutti.applicationUpdater.updateDone.deleteDirectory.dbConf.error=Erreur lors de la suppression du dossier de configuration de base de données tutti.applicationUpdater.updateDone.deleteDirectory.enum.error=Erreur lors de la suppression du dossier d'énumération tutti.applicationUpdater.updateDone.deleteDirectory.i18n.error=Erreur lors de la suppression du dossier d'internationalisation -tutti.askToSaveCatch.message=Des données sur la capture ne sont pas enregistrées +tutti.askToSaveCatch.message=Des modifications sur la capture ne sont pas enregistrées tutti.askToSaveCatch.title=Modifications non enregistrées sur la capture -tutti.askToSaveCatchBeforeExport.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas enregistrer les modifications</li><li><strong>OK</strong> pour enregistrer les modifications avant d'effectuer l'export</li></ul> -tutti.askToSaveCatchBeforeImport.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas enregistrer les modifications</li><li><strong>OK</strong> pour enregistrer les modifications avant d'effectuer l'import</li></ul> +tutti.askToSaveCatchBeforeExport.help=Que voulez-vous faire ?<ul><li><strong>Annuler l'export</strong> pour annuler l'opération d'export</li><li><strong>Ne pas enregistrer les modifications</strong> pour réaliser l'export sur les données non modifiées</li><li><strong>Enregistrer les modifications</strong> pour enregistrer les modifications puis réaliser l'export</li></ul> +tutti.askToSaveCatchBeforeImport.help=Que voulez-vous faire ?<ul><li><strong>Annuler l'import</strong> pour annuler l'opération d'import</li><li><strong>Annuler les modifications</strong> pour annuler les modifications avant de réaliser l'import</li><li><strong>Enregistrer les modifications</strong> pour enregistrer les modifications puis réaliser l'import</li></ul> tutti.attachmentEditor.action.add.mnemonic=A tutti.attachmentEditor.action.add.tip=Ajouter une pièce jointe tutti.attachmentEditor.action.closeAttachment.tip=Fermer la fenêtre des pièces-jointes @@ -1474,20 +1474,20 @@ tutti.manageTemporaryReferential.title.choose.importTemporarySpeciesFile=Importe 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 kg -tutti.multiPostImportLog.catchTotalRejectedWeight=Poids total NON TRIÉ(Capture) \: %s kg -tutti.multiPostImportLog.catchTotalWeight=Poids TOTAL (Capture) \: %s kg +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 kg -tutti.multiPostImportLog.livingNotItemizedWeight=Poids vivant non détaillé \: %s kg -tutti.multiPostImportLog.marineLitterTotalWeight=Poids total (Macro-déchet) \: %s kg +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 kg +tutti.multiPostImportLog.speciesTotalSortedWeight=Poids total VRAC (Espèce) \: %s %s tutti.multiPostImportLog.title=Lots non importés -tutti.multiPostImportLog.totalSortedWeight=Poids total trié \: %s kg -tutti.multiPostImportLog.totalWeight=Poids total \: %s kg +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> @@ -1497,12 +1497,17 @@ tutti.openReplaceTemporaryUI.loading.source=Chargement des référentiels tempor tutti.openReplaceTemporaryUI.loading.target=Chargement des référentiels officiels de type %s tutti.openReplaceTemporaryUI.open.dialog=Ouverture de l'interface graphique 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.edit=Éditer tutti.option.import=Importer +tutti.option.notSaveCatch=Ne pas enregistrer les modifications +tutti.option.resetCatch=Annuler les modifications +tutti.option.saveCatch=Enregistrer les modifications tutti.persistence.cruise.gearUsedInOperations.error= tutti.propety.no.species.speciesCode= tutti.reimport.step.backupDb=Sauvegarde de la base dans l'archive %s -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.