From e95f297de1956f0cab9e01c0ed3167d831004cab Mon Sep 17 00:00:00 2001 From: Laurent Redor Date: Tue, 19 May 2026 12:16:28 +0200 Subject: [PATCH 1/4] Fix french typo in message using task words MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tache instead of Tâche --- .../core/util/strings_fr.properties | 620 +++++++++--------- 1 file changed, 310 insertions(+), 310 deletions(-) diff --git a/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties b/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties index acfaf7b0..eea2eaf4 100644 --- a/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties +++ b/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties @@ -1,310 +1,310 @@ -AboutUI.errors.COULDNT_OPEN_MAIL_OR_BROWSER_APP=Impossible de lancer le navigateur internet par défaut.\n''{0}'' a été copié dans le presse papier.\nVous pouver le coller dans votre navigateur pour continuer. -AboutUI.infos.IO_ERROR_WHILE_PRINTING_STACKTRACE=Erreur entrée/sortie inattendue lors de l''impression d''une pile d''appel (stacktrace). -AboutUI.infos.SEE_LOGS_FOR_MORE_DETAILS=Veuillez consulter les traces pour plus d''informations. -AboutUI.labels.BSD_LICENCE=Activity Manager est distribué sous licence BSD : -AboutUI.labels.BUG_REPORT=Pour rapporter un bug, demander une nouvelle fonctionnalité, poser une question ou pour tout autre sujet,\nveuillez écrire à jfbraz@yahoo.fr. -AboutUI.labels.FOR_MORE_INFORMATION=Pour plus d''information à propos d''Activity Manager, veuillez vous reporter à la documentation \nà l'adresse: http://activitymanager.sourceforge.net -AboutUI.labels.THIS_PRODUCT_INCLUDES_APACHE_SOFTWARE=Cette application contient des briques logicielles développées par la fondation Apache\n(http://www.apache.org/). -AboutUI.labels.THIS_PRODUCT_INCLUDES_ECLIPSE_SOFTWARE=Cette application contient également des briques logicielles développées par\n - La fondation Eclipse (http://www.eclipse.org)\n - L'orgnisation MySQL (http://www.mysql.com)\n - Le groupe de développement HSQLDB (http://www.hsqldb.org) -AboutUI.titles.INFORMATION=Information -AbstractDialog.dialog.TITLE=Erreur -CollaboratorsUI.columns.FIRST_NAME=Prénom -CollaboratorsUI.columns.IDENTIFIER=Identifiant -CollaboratorsUI.columns.LAST_NAME=Nom -CollaboratorsUI.errors.UNKNOWN_COLUMN=Colonne inconnue -CollaboratorsUI.menuitems.EXPORT=Export -CollaboratorsUI.menuitems.LIST_CONTRIBUTIONS=Liste des contrib. -CollaboratorsUI.menuitems.NEW=Nouveau collaborateur -CollaboratorsUI.menuitems.REMOVE=Supprimer -CollaboratorsUI.table.TOOL_TIP=Utilisez la première colonne pour activer/désactiver les collaborateurs\n(les collaborateurs désactivés ne sont pas supprimés de la base de données mais sont cachés\ndans l'onglet de saisie des contributions) -ContributionsUI.buttons.NEXT_MONTH=mois >> -ContributionsUI.buttons.NEXT_MONTH_TOOLTIP=Mois prochain -ContributionsUI.buttons.NEXT_WEEK=semaine >> -ContributionsUI.buttons.NEXT_WEEK_TOOLTIP=Semaine prochaine -ContributionsUI.buttons.NEXT_YEAR=année >> -ContributionsUI.buttons.NEXT_YEAR_TOOLTIP=Année prochaine -ContributionsUI.buttons.PREVIOUS_MONTH=<< mois -ContributionsUI.buttons.PREVIOUS_MONTH_TOOLTIP=Mois précédent -ContributionsUI.buttons.PREVIOUS_WEEK=<< semaine -ContributionsUI.buttons.PREVIOUS_WEEK_TOOLTIP=Semaine précédente -ContributionsUI.buttons.PREVIOUS_YEAR=<< année -ContributionsUI.buttons.PREVIOUS_YEAR_TOOLTIP=Année précédente -ContributionsUI.columns.FRIDAY=VEN -ContributionsUI.columns.MONDAY=LUN -ContributionsUI.columns.SATURDAY=SAM -ContributionsUI.columns.SUNDAY=DIM -ContributionsUI.columns.TASK_NAME=Nom -ContributionsUI.columns.TASK_PATH=Chemin -ContributionsUI.columns.THURSDAY=JEU -ContributionsUI.columns.TUESDAY=MAR -ContributionsUI.columns.WEDNESDAY=MER -ContributionsUI.errors.PARENT_TASK_SELECTED=Cette tache est une tache "parente". Veuillez choisir une de ses sous-taches. -ContributionsUI.errors.TASK_PATH_CANNOT_BE_MODIFIED=La colonne liée au chemin de tache n''est pas supposée être modifiée. -ContributionsUI.errors.UNKNOWN_COLUMN=Colonne inconnue -ContributionsUI.labels.SELECT_A_COLLABORATOR=Selectionnez un collaborateur : -ContributionsUI.labels.TOTAL=Total : -ContributionsUI.labels.WEEK=Semaine : {0} -> {1} -ContributionsUI.menuitems.EXPORT=Export -ContributionsUI.menuitems.NEW_CONTRIBUTION=Nouvelle contribution -ContributionsUI.menuitems.PASTE=Coller (Ctrl + v) -ContributionsUI.menuitems.REMOVE=Supprimer -ContributionsViewerDialog.texts.TITLE=Contributions sélectionnées -ContributionsViewerTable.columns.COLLABORATOR=Collaborateur -ContributionsViewerTable.columns.DURATION=Durée -ContributionsViewerTable.columns.DATE=Date -ContributionsViewerTable.columns.TASK_NAME=Nom de la tache -ContributionsViewerTable.columns.TASK_PATH=Chemin de la tache -ContributionsViewerTable.errors.UNKNOWN_COLUMN=Colonne inconnue -ContributionsViewerTable.menuitems.EXPORT=Export -DatabaseUI.buttons.CLOSE_DATABASE=Fermer la base -DatabaseUI.buttons.EXPORT_DATABASE=Exporter la base -DatabaseUI.buttons.IMPORT_DATABASE=Importer depuis XML -DatabaseUI.buttons.OPEN_DATABASE=Ouvrir la base -DatabaseUI.buttons.RESET_DATABASE=Réinitialiser les données -DatabaseUI.databasetypes.MARIA_DB=Base de données MariaDB -DatabaseUI.databasetypes.STANDALONE_MODE=Mode standalone (base HSQL embarquée) -DatabaseUI.databasetypes.USER_DEFINED=Autre base de données -DatabaseUI.errors.DATABASE_NOT_INSTALLED=La base de données n''est pas installée.\nLa connexion a échoué. -DatabaseUI.errors.DURATIONS_CREATION_ERROR=Erreur inattendue lors de la création des durées par défaut -DatabaseUI.errors.FILE_DOES_NOT_EXIST=Le fichier spécifié n'existe pas. Veuillez spécifier un nom valide. -DatabaseUI.errors.FILE_ERROR=Erreur liée au fichier -DatabaseUI.errors.FILE_NAME_ERROR=Erreur liée au nom du fichier -DatabaseUI.errors.UNKNOWN_DATABASE_TYPE=Type de base de données inconnue -DatabaseUI.errors.XML_FILE_NOT_SPECIFIED=Le fichier XML n'est pas spécifié\! -DatabaseUI.informations.DATABASE_SUCCESSFULLY_EXPORTED=Base de données exportée avec succès. -DatabaseUI.informations.DATABASE_SUCCESSFULLY_IMPORTED=Fichier XML importé avec succès. -DatabaseUI.labels.CONFIRMATION=Confirmation -DatabaseUI.labels.CONNECTION_PROPERTIES=Propriétés de connexion -DatabaseUI.labels.DATABASE_HOST=Hote de la base de données : -DatabaseUI.labels.DATABASE_NAME=Nom de la base de données : -DatabaseUI.labels.DATABASE_PORT=Port : -DatabaseUI.labels.DATABASE_TYPE=Type de la base de données : -DatabaseUI.labels.DATA_FILE=Fichier de données : -DatabaseUI.labels.ERROR=Erreur -DatabaseUI.labels.EXPORT_IMPORT=Exportation/importation -DatabaseUI.labels.INFORMATION=Information -DatabaseUI.labels.JDBC_DRIVER=Pilote JDBC : -DatabaseUI.labels.PASSWORD_WARNING=(stocké en clair) -DatabaseUI.labels.SERVER_URL=URL du serveur : -DatabaseUI.labels.USER_ID=Identifiant utilisateur : -DatabaseUI.labels.USER_PASSWORD=Mot de passe : -DatabaseUI.labels.XML_FILE=Fichier XML : -DatabaseUI.questions.CREATE_DEFAULT_DURATIONS=L'initialisation des tables de la base de données est terminée.\nVoulez-vous créer les durées par défaut (0.25, 0.50, 0.75 & 1.00) ?\nAttention : \n - si vous êtes sur le point d'importer un fichier XML, choisissez 'non' pour éviter les conflits de données\n - si vous choisissez non, vous devrez les créer manuellement -DatabaseUI.questions.DATABASE_NOT_INSTALLED=La base de données ne semble pas installée.\nSouhaitez-vous qu'elle soit installée dès à présent ? -DatabaseUI.questions.DATABASE_RESET_BEFORE_IMPORTATION=Voulez-vous que les tables de la base de données soient réinitialisées avant l'importation ? -DatabaseUI.questions.IMPORTATION_CONFIRMATION=Etes-vous certain de vouloir procéder à cette importation ? -DatabaseUI.questions.OVERWRITE_CONFIRMATION=Le fichier existe. Souhaitez-vous l'écraser ? -DatabaseUI.questions.RESET_CONFIRMATION_1=Etes-vous certain de vouloir réinitialiser les données stockées en base ? -DatabaseUI.questions.RESET_CONFIRMATION_2=Réellement certain ???? (Vous pourriez DEFINITIVEMENT perdre vos données) -ReportsUI.task=tache -ReportsUI.task.budget=budget -ReportsUI.task.name=nom -ReportsUI.task.code=code -ReportsUI.task.path=chemin -ReportsUI.task.etc=raf -ReportsUI.task.initiallyConsumed=cons. init. -ReportsUI.task.comment=commentaire -ReportsUI.collaborator=collaborator -ReportsUI.collaborator.isActive=actif -ReportsUI.collaborator.lastName=nom -ReportsUI.collaborator.firstName=prénom -ReportsUI.collaborator.login=login -DateHelper.errors.UNKNOWN_DATE_INCREMENT_TYPE=Type d'incrément de date non supporté -DbMgr.errors.COLLABORATORS_SELECTION_FAILURE=Un incident inattendue s'est produit pendant l'extraction des collaborateurs -DbMgr.errors.COLLABORATOR_CREATION_FAILUE=Erreur lors de la création du collaborateur : ''{0}'' -DbMgr.errors.COLLABORATOR_DELETION_FAILURE=Erreur lors de la suppression du collaborateur ''{0}'' -DbMgr.errors.COLLABORATOR_SELECTION_BY_ID_FAILURE=Un incident inattendue s'est produit pendant la lecture des données du collaborateur à partir de l'identifiant : ''{0}'' -DbMgr.errors.COLLABORATOR_SELECTION_BY_LOGIN_FAILURE=Un incident inattendue s'est produit pendant la lecture des données du collaborateur à partir de l'identifiant de connexion ''{0}'' -DbMgr.errors.COLLABORATOR_UPDATE_FAILURE=La mise à jour du collaborateur ''{0}'' a échoué. -DbMgr.errors.CONTRIBUTIONS_SELECTION_FAILURE=Un incident inattendu s'est produit lors de la sélection d'une contribution -DbMgr.errors.CONTRIBUTIONS_SUM_COMPUTATION_FAILURE=Un incident inattendu s'est produit pendant le calcul de la somme des contributions -DbMgr.errors.CONTRIBUTION_CREATION_FAILUE=Echec lors de la création de la contribution -DbMgr.errors.CONTRIBUTION_DELETION_FAILURE=Echec lors de la suppression de la contribution -DbMgr.errors.CONTRIBUTION_UPDATE_FAILURE=Echec lors de la mise à jour de la contribution -DbMgr.errors.DURATIONS_SELECTION_FAILURE=Un incident inattendu s'est produit lors de la sélection des durées en base de données -DbMgr.errors.DURATION_CREATION_FAILUE=Echec lors de la création de la durée : ''{0}'' -DbMgr.errors.DURATION_DELETION_FAILURE=Echec lors de la suppression de la durée ''{0}'' -DbMgr.errors.DURATION_SELECTION_BY_ID=Un incident inattendu s'est produit lors de la sélection de la durée ''{0}'' -DbMgr.errors.DURATION_UPDATE_FAILURE=La mise à jour de la durée ''{0}'' a échoué -DbMgr.errors.MEMORY_IO_FAILURE=Incient I/O inattendu lors de la lecture d'un flux mémoire\! -DbMgr.errors.SQL_AUTOINCREMENT_FAILURE=Un incident inattendu s'est produit lors de la récupération de l'identifiant d'un objet. -DbMgr.errors.SQL_COMMIT_FAILURE=Echec lors d'une validation de transaction -DbMgr.errors.SQL_CONNECTION_ESTABLISHMENT_FAILURE=La connexion à la base de donnée n'est pas établie. -DbMgr.errors.SQL_CONNECTION_OPEN=Echec lors de l'ouverture de la connexion SQL -DbMgr.errors.SQL_DATABASE_NAME_EXTRACTION_FAILURE=Echec lors de la r\u00E9cup\u00E9ration du nom de la BDD -DbMgr.errors.SQL_DISCONNECTION_FAILURE=Echec lors de la déconnexion de la base de données -DbMgr.errors.SQL_DURATION_CHECK_FAILURE=Echec lors de la vérification de la durée : ''{0}'' -DbMgr.errors.SQL_EMPTY_QUERY_RESULT=La requête SQL n'a retourné aucun résultat -DbMgr.errors.SQL_MULTI_TRANSACTION_DETECTED=Un conflit de transaction a été détecté -DbMgr.errors.SQL_ROLLBACK_FAILURE=Echec lors de l'annulation de la transaction -DbMgr.errors.SQL_ROW_DELETION_FAILURE=Aucune ligne de la base de donnée n'a été supprimée -DbMgr.errors.SQL_SCRIPT_LOAD_FAILURE=Erreur lors de la lecture du fichier SQL de création des tables. -DbMgr.errors.SQL_TABLES_DETECTION_FAILURE=La table SQL ''{0}'' ne semble pas exister en base de données. -DbMgr.errors.SQL_TABLE_CREATION_FAILURE=La création des tables en base de données a échoué -DbMgr.errors.SQL_UPDATE_FAILURE=Aucune ligne n'a été mise à jour -DbMgr.errors.TASKS_SELECTION_FAILURE=Incident inattendu lors de la recherche de taches -DbMgr.errors.TASK_CREATION_FAILURE=La création de la tache ''{0}'' a échoué -DbMgr.errors.TASK_DELETION_FAILURE=La suppression de la tache ''{0}'' a échoué -DbMgr.errors.TASK_NUMBER_COMPUTATION_FAILURE=Un incident inattendu s'est produit pendant la génération d'un nouveau numéro pour la tache de chemin ''{0}'' -DbMgr.errors.TASK_SELECTION_BY_CODE_FAILURE=Un incident inattendu s'est produit pendant la récupération de la tache de code ''{0}'' -DbMgr.errors.TASK_SELECTION_BY_COLLABORATOR_FAILURE=Un incident inattendu s'est produit pendant la récupération des taches associées au collaborateur -DbMgr.errors.TASK_MAX_PATH_DEPTH_RETRIEVAL=Un incident inattendu s'est produit pendant la lecture de la profondeur de l'arborescence de taches -DbMgr.errors.TASK_SELECTION_BY_ID_FAILURE=Un incident inattendu s'est produit pendant la récupération de taches à partit de leuts identifiants -DbMgr.errors.TASK_SELECTION_BY_NUMBER_FROM_PATH_FAILURE=Un incident inattendu s'est produit pendant la récupération de la tache N° ''{0}'' dans le chemin ''{1}'' -DbMgr.errors.TASK_SELECTION_BY_PATH=Un incident inattendu s'est produit pendant la récupération de la tache de chemin ''{0}'' -DbMgr.errors.TASK_SUMS_COMPUTATION_FAILURE=Un incident inattendu s'est produit pendant le calcul des cumuls pour la tache d'identifiant ''{0}'' -DbMgr.errors.TASK_UPDATE_FAILURE=La mise à jour de la tache ''{0}'' a échoué -DbMgr.errors.UNKNOWN_CRITERIA_INDEX=Index de critère inconnu ''{0}'' -DbMgr.errors.UNKNOWN_FIELD_INDEX=Index de champ inconnu ''{0}'' -DurationsUI.columns.DURATION=Durée -DurationsUI.errors.DATABASE_CONNECTION_FAILURE_WHILE_DURATION_EXISTENCE_CHECK=La connexion à la base de données a échoué lors de la vérification de l'existence de la durée -DurationsUI.errors.DURATION_ALREADY_EXIST=Cette durée existe -DurationsUI.errors.UNKNOWN_COLUMN=Colonne inconnue -DurationsUI.menuitems.NEW=Nouvelle durée -DurationsUI.menuitems.EXPORT=Exportation -DurationsUI.menuitems.REMOVE=Supprimer -DurationsUI.menuitems.REFRESH=Rafraichir -DurationsUI.questions.NEW_DURATION=Veuillez entrer une nouvelle durée -DurationsUI.table.TOOL_TIP=Utilisez la première colonne pour activer ou désactiver les durées\n(les durées désactivées ne sont pas supprimées de la base de données mais sontr cachées)\ndans l'onglet des contributions) -DurationsUI.titles.INPUT_DIALOG=Fenêtre de saisie -ErrorDialog.infos.IO_ERROR_WHILE_PRINTING_STACKTRACE=Incident I/O inattendu pendant l'affichage de la pile (stacktrace). -ErrorDialog.infos.SEE_LOGS_FOR_MORE_DETAILS=Consultez les traces pour plus de détails. -ErrorDialog.texts.TITLE=Erreur -Main.status.CONNECTED=Connecté -Main.status.NOT_CONNECTED=Non connecté -Main.tabs.ABOUT=A propos -Main.tabs.COLLABORATORS=Collaborateurs -Main.tabs.CONTRIBUTIONS=Contributions -Main.tabs.REPORTS=Rapports -Main.tabs.DATABASE=Base de données -Main.tabs.DURATIONS=Durées -Main.tabs.TASKS=Taches -Main.texts.TITLE=ActivityManager -ModelMgr.defaults.COLLABORATOR_FIRST_NAME=NOUVEAU -ModelMgr.defaults.COLLABORATOR_LAST_NAME=NOUVEAU -ModelMgr.defaults.COLLABORATOR_LOGIN_PREFIX=NOUVEAU -ModelMgr.defaults.TASK_NAME=NOUVEAU -ModelMgr.errors.A_TASK_WITH_SUBTASKS_CANNOT_ACCEPT_CONTRIBUTIONS=Cette tache contient au moins une tache fille ; elle ne peut accepter de contribution. -ModelMgr.errors.DURATION_DOES_NOT_EXIST=Cette durée n'existe pas -ModelMgr.errors.CONTRIBUTOR_MUST_BE_SPECIFIED=Le collaborateur doit être spécifié -ModelMgr.errors.FROM_DATE_MUST_BE_BEFORE_TO_DATE=La date de début doit ête antérieure à la date de fin -ModelMgr.errors.INVALID_TASK_CODE_PATH=Une tache valide doit commencer par un '/' -ModelMgr.errors.NON_NULL_TASK_BUDGET=Le budget de cette tache est non nul ({0}); elle ne peut donc pas recevoir de tache fille. -ModelMgr.errors.NON_NULL_TASK_ESTIMATED_TIME_TO_COMPLETE=Le reste à faire de cette tache est non nul ({0}); elle ne peut donc pas recevoir de tache fille -ModelMgr.errors.NON_NULL_TASK_INITIALLY_CONSUMMED=Le consommé initial de cette tache n'est pas nul ({0}); elle ne peut donc pas recevoir de tache fille. -ModelMgr.errors.NON_UNIQUE_COLLABORATOR_LOGIN=Le login "{0}" est déjà utilisé par un autre collaborateur -ModelMgr.errors.NUL_DURATION_FORBIDDEN=Une durée ne peut pas être nulle -ModelMgr.errors.TASK_CANNOT_BE_MOVED_DOWN=Cette tache ne peut pas être déplacée vers le bas. -ModelMgr.errors.TASK_CANNOT_BE_MOVED_UNDER_ITSELF=Déplacer une tache sous elle-même ou sous une de ses taches filles n'est pas permis. -ModelMgr.errors.TASK_CANNOT_BE_MOVED_UP=Cette tache ne peut pas être déplacée vers le haut. -ModelMgr.errors.TASK_CODE_ALREADY_IN_USE=Ce code est déjà utilisé: {0} -ModelMgr.errors.TASK_CODE_EXIST_AT_DESTINATION=Le code de tache ''{0}'' existe déjà à la destination choisie. -ModelMgr.errors.TASK_HAS_SUBTASKS=Cette tache totalise avec ses taches filles {0} contributions -ModelMgr.errors.TASK_NUMBER_UPDATE_DETECTED=Le numéro de la tache a changé en base de données. -ModelMgr.errors.TASK_PATH_UPDATE_DETECTED=Le chemin de la tache a changé en base de données. -ModelMgr.errors.TASK_USED_BY_CONTRIBUTIONS=La tache ''{0}'' est déjà utilisée (nombre de contributions={1}). Elle ne peut donc pas recevoir de tache fille. -ModelMgr.errors.TASK_WITH_AT_LEAST_ONE_SUBTASK_CANNOT_ACCEPT_CONTRIBUTIONS=Cette tache a au moins une tache fille ; elle ne peut donc pas recevoir de contribution. -ModelMgr.errors.UNKNOWN_TASK=La tache n'existe pas en base de données -ModelMgr.errors.UNKNOWN_TASK=Tache inconnue : ''{0}'' -ModelMgr.errors.UNKNOWN_TASK_CODE_PATH=Chemin de tache inconnu : ''{0}'' -ModelMgr.errors.UNMOVEABLE_DURATION=Cette contribution est utilisée, elle ne peut donc pas être supprimée. -ModelMgr.errros.COLLABORATOR_WITH_CONTRIBUTIONS_CANNOT_BE_REMOVED=Ce collaborateur a {0} contributions -ModelMgr.errros.DUPLICATE_DURATION=La durée existe déjà -ModelMgr.errors.CONTRIBUTION_UPDATE_DETECTED=La contribution a été mise à jour en base de données dans une autre transaction -ModelMgr.errors.CONTRIBUTION_DELETION_DETECTED=La contribution n'existe pas en base de données -ModelMgr.errors.INVALID_DURATION=Durée invalide -ModelMgr.errors.BAD_REPORT_PARAMS_EMPTY_TASK_ATTRIBUTES=Rapport invalide : si les taches sont incluses dans le rapport, au moins un attribut de tache doit être sélectionné -ModelMgr.errors.BAD_REPORT_PARAMS_EMPTY_COLLABORATOR_ATTRIBUTES=Rapport invalide : si les taches sont incluses dans le rapport, au moins un attribut de tache doit être sélectionnéRapport invalide : si les collaborateurs sont inclus dans le rapport, au moins un attribut de collaborateur doit être sélectionné -ModelMgr.xmlexport.comment.BUDGET=\ \ \ \ - Budgets : -ModelMgr.xmlexport.comment.CONSUMED=\ \ \ \ - Consommé : -ModelMgr.xmlexport.comment.CONTRIBUTIONS_NUMBER=\ \ \ \ - Nombre de contributions : -ModelMgr.xmlexport.comment.ESTIMATED_TIME_TO_COMPLETE=\ \ \ \ - Reste à faire : -ModelMgr.xmlexport.comment.INITIALLY_CONSUMED=\ \ \ \ - Consommé initial : -ModelMgr.xmlexport.comment.ROOT_TASKS_CHECK_SUMS=\ \ Sommes de controle des taches racines : -ModelMgr.xmlexport.comment.ROOT_TASK=\ \ * Tache racine[{0}]='/{1}' ({2}) -PropertiesHelper.errors.CIRCULAR_REFERENCE=Référence circulaire détectée pour la propriété '$\{{0}\}' -PropertiesHelper.errors.NOT_IMPLEMENTED=Non implémenté -PropertiesHelper.errors.PARAMETER_NOT_SPECIFIED=Le paramètre ''{0}'' n'est pas spécifié (sous ''{1}'', '{2}' ou '{3}' -ReportMgr.errors.DIRECTORY_CREATION_FAILURE=Echec lors de la création des répertoires ({0}) -ReportMgr.errors.OUTPUT_FILENAME_REQUIRED=Un fichier de sortie doit être spécifié pour l'identifiant ''{0}'' -ReportMgr.errors.REQUIRED_TEMPLATE_TYPE_OR_PATH=Un type ou un modèle doit être spécifié pour l'identifiant ''{0}'' -ReportMgr.errors.TEMPLATE_NOT_FOUND=Modèle de rapport non trouvé : ''{0}'' -ReportMgr.errors.UNEXPECTED_ERROR=Incident inattendu -SWTHelper.errors.IO_EXCEPTION_WHILE_EXPORTING=Incident entrée/sortie lors de l'exportation. -SWTHelper.errors.IO_EXCEPTION_WHILE_IMPORTING=Incident entrée/sortie lors de importation. -SWTHelper.excelsheet.TAB_NAME=exporter -SafeRunner.errors.UNABLE_TO_COMPLETE_OPERATION=Impossible de compléter l''opération : ''{0}'' -SafeRunner.errors.UNEXPECTED_ERROR=Incident inattendu -SelectableCollaboratorPanel.columns.FIRST_NAME=Prénom -SelectableCollaboratorPanel.columns.LAST_NAME=Nom -SelectableCollaboratorPanel.errors.UNKNOWN_COLUMN=Colonne inconnue -StringHelper.errors.MEMORY_IO_FAILURE=Incident inattendu lors d'un accès en lecture/écriture sur un buffer mémoire! -StringHelper.errors.TOO_MANY_DIGITS=Trop de décimales -StringHelper.errors.WRONG_NUMBER_FORMAT=Mauvais format (XXXXXX.XX) -TableOrTreeColumnsMgr.errors.COLUMN_NAME_REQUIRED=Le nom de la colonne ne peut être nul -TaskChooserDialog.labels.FOUND_TASKS=Taches trouvées : -TaskChooserDialog.texts.TITLE=Choisissez une tache -TaskChooserTable.columns.TASK_NAME=Tache -TaskChooserTable.columns.TASK_PATH=Chemin -TaskChooserTable.errors.UNKNOWN_COLUMN=Colonne inconnue -TaskChooserTree.columns.TASK_CODE=Code -TaskChooserTree.columns.TASK_NAME=Tache -TaskChooserTree.errors.UNKNOWN_COLUMN=Colonne inconnue -TaskChooserTree.labels.PLACEHOLDER=Entrez une chaine pour filtrer... -TaskChooserTreeWithHistoryDialog.errors.TASK_REQUIRED=Veuillez choisir une tache -TaskChooserTreeWithHistoryDialog.labels.PREVIOUS_SELECTION=Sélection(s) précédente(s) -TaskChooserTreeWithHistoryDialog.labels.TASK_TREE=Arbre des taches -TaskChooserTreeWithHistoryDialog.texts.TITLE=Choisissez une tache -TaskFinderPanel.attributes.TASK_CODE=Code -TaskFinderPanel.attributes.TASK_NAME=Tache -TaskFinderPanel.buttons.FIND=Rechercher... -TaskFinderPanel.criterias..ENDS_WITH=se termine par -TaskFinderPanel.criterias.CONTAINS=contient -TaskFinderPanel.criterias.IS_EQUAL_TO=est égal à -TaskFinderPanel.criterias.STARTS_WITH=commence par -TaskFinderPanel.errors.NOTHING_FOUND=Les critères de recherches ne correspondent à aucune donnée -TaskFinderPanel.labels.SEARCH_FILTER=Filtre de recherche -TaskFinderPanel.titles.SEARCH_STATUS=Statut de recherche -TasksChooserTree.columns.TASK_CODE=Code -TasksChooserTree.columns.TASK_NAME=Tache -TasksChooserTree.errors.UNKNOWN_COLUMN=Colonne inconnue -TasksUI.columns.TASK_NAME=Tache -TasksUI.columns.TASK_BUDGET=Budget -TasksUI.columns.TASK_CODE=Code -TasksUI.columns.TASK_COMMENT=Commentaire -TasksUI.columns.TASK_CONSUMED=Consommé -TasksUI.columns.TASK_DELTA=Delta -TasksUI.columns.TASK_ESTIMATED_TIME_TO_COMPLETE=RAF -TasksUI.columns.TASK_INITIAL=Conso. initial -TasksUI.columns.TASK_CLOSED=Fermée -TasksUI.errors.MOVE_TO_SAME_PARENT=La tache parente de destination est identique à la tache parente source -TasksUI.errors.TECHNICAL_ERROR=Incident technique : ''{0}'' -TasksUI.errors.UNKNOWN_COLUMN=Colonne inconnue -TasksUI.errros.READ_ONLY_COLUMN=Cette colonne ne peut pas être modifiée -TasksUI.menuitems.COLLAPSE_ALL=Tout plier -TasksUI.menuitems.COPY=Copier (Ctrl + c) -TasksUI.menuitems.EXPAND_ALL=Tout développer -TasksUI.menuitems.EXPORT_IMPORT=Excel -TasksUI.menuitems.XLS_EXPORT=Export -TasksUI.menuitems.XLS_IMPORT=Import -TasksUI.menuitems.XLS_SNAPSHOT_EXPORT=Instantané de l'arbre -TasksUI.menuitems.LIST_CONTRIBUTIONS=Liste des contrib. -TasksUI.menuitems.MOVE=Déplacer -TasksUI.menuitems.MOVE_DOWN=en bas (Ctrl + flèche bas) -TasksUI.menuitems.MOVE_BEFORE_ANOTHER_TASK=avant une autre tache -TasksUI.menuitems.MOVE_AFTER_ANOTHER_TASK=après une autre tache -TasksUI.menuitems.MOVE_UNDER_ANOTHER_TASK=sous une autre tache -TasksUI.menuitems.MOVE_UNDER_ROOT=sous la racine -TasksUI.menuitems.MOVE_UP=en haut (Ctrl + flèche haut) -TasksUI.menuitems.NEW=Nouvelle -TasksUI.menuitems.NEW_SUBTASK=sous tache -TasksUI.menuitems.NEW_TASK=tache (même niveau) -TasksUI.menuitems.REFRESH=Rafraîchir -TasksUI.menuitems.REMOVE=Supprimer -XmlHelper.errors.DATABASE_ACCESS_ERROR=Incident inattendu lors de l'accès à la base de données -XmlHelper.errors.INVALID_ATTRIBUTE=Valeur d'attribut invalide ''{0}'' pour ''{1}'' -XmlHelper.errors.MISSING_ATTRIBUTE=Valeur de l'attribut manquant pour ''{0}'' -XmlHelper.errors.MODEL_VIOLATION=Violation du modèle : -XmlHelper.errors.NOT_IMPLEMENTED=La fonctionnalité XML SAX n'est pas implémentée dans ActivityManager ('{0}') -XmlHelper.errors.NUMBER_FORMAT_ERROR=Erreur de format (format numérique) : -XmlHelper.errors.UNEXPECTED_NODE=Noeud XML inattendu : ''{0}'' +AboutUI.errors.COULDNT_OPEN_MAIL_OR_BROWSER_APP=Impossible de lancer le navigateur internet par défaut.\n''{0}'' a été copié dans le presse papier.\nVous pouver le coller dans votre navigateur pour continuer. +AboutUI.infos.IO_ERROR_WHILE_PRINTING_STACKTRACE=Erreur entrée/sortie inattendue lors de l''impression d''une pile d''appel (stacktrace). +AboutUI.infos.SEE_LOGS_FOR_MORE_DETAILS=Veuillez consulter les traces pour plus d''informations. +AboutUI.labels.BSD_LICENCE=Activity Manager est distribué sous licence BSD : +AboutUI.labels.BUG_REPORT=Pour rapporter un bug, demander une nouvelle fonctionnalité, poser une question ou pour tout autre sujet,\nveuillez écrire à jfbraz@yahoo.fr. +AboutUI.labels.FOR_MORE_INFORMATION=Pour plus d''information à propos d''Activity Manager, veuillez vous reporter à la documentation \nà l'adresse: http://activitymanager.sourceforge.net +AboutUI.labels.THIS_PRODUCT_INCLUDES_APACHE_SOFTWARE=Cette application contient des briques logicielles développées par la fondation Apache\n(http://www.apache.org/). +AboutUI.labels.THIS_PRODUCT_INCLUDES_ECLIPSE_SOFTWARE=Cette application contient également des briques logicielles développées par\n - La fondation Eclipse (http://www.eclipse.org)\n - L'orgnisation MySQL (http://www.mysql.com)\n - Le groupe de développement HSQLDB (http://www.hsqldb.org) +AboutUI.titles.INFORMATION=Information +AbstractDialog.dialog.TITLE=Erreur +CollaboratorsUI.columns.FIRST_NAME=Prénom +CollaboratorsUI.columns.IDENTIFIER=Identifiant +CollaboratorsUI.columns.LAST_NAME=Nom +CollaboratorsUI.errors.UNKNOWN_COLUMN=Colonne inconnue +CollaboratorsUI.menuitems.EXPORT=Export +CollaboratorsUI.menuitems.LIST_CONTRIBUTIONS=Liste des contrib. +CollaboratorsUI.menuitems.NEW=Nouveau collaborateur +CollaboratorsUI.menuitems.REMOVE=Supprimer +CollaboratorsUI.table.TOOL_TIP=Utilisez la première colonne pour activer/désactiver les collaborateurs\n(les collaborateurs désactivés ne sont pas supprimés de la base de données mais sont cachés\ndans l'onglet de saisie des contributions) +ContributionsUI.buttons.NEXT_MONTH=mois >> +ContributionsUI.buttons.NEXT_MONTH_TOOLTIP=Mois prochain +ContributionsUI.buttons.NEXT_WEEK=semaine >> +ContributionsUI.buttons.NEXT_WEEK_TOOLTIP=Semaine prochaine +ContributionsUI.buttons.NEXT_YEAR=année >> +ContributionsUI.buttons.NEXT_YEAR_TOOLTIP=Année prochaine +ContributionsUI.buttons.PREVIOUS_MONTH=<< mois +ContributionsUI.buttons.PREVIOUS_MONTH_TOOLTIP=Mois précédent +ContributionsUI.buttons.PREVIOUS_WEEK=<< semaine +ContributionsUI.buttons.PREVIOUS_WEEK_TOOLTIP=Semaine précédente +ContributionsUI.buttons.PREVIOUS_YEAR=<< année +ContributionsUI.buttons.PREVIOUS_YEAR_TOOLTIP=Année précédente +ContributionsUI.columns.FRIDAY=VEN +ContributionsUI.columns.MONDAY=LUN +ContributionsUI.columns.SATURDAY=SAM +ContributionsUI.columns.SUNDAY=DIM +ContributionsUI.columns.TASK_NAME=Nom +ContributionsUI.columns.TASK_PATH=Chemin +ContributionsUI.columns.THURSDAY=JEU +ContributionsUI.columns.TUESDAY=MAR +ContributionsUI.columns.WEDNESDAY=MER +ContributionsUI.errors.PARENT_TASK_SELECTED=Cette tâche est une tâche "parente". Veuillez choisir une de ses sous-tâches. +ContributionsUI.errors.TASK_PATH_CANNOT_BE_MODIFIED=La colonne liée au chemin de tâche n''est pas supposée être modifiée. +ContributionsUI.errors.UNKNOWN_COLUMN=Colonne inconnue +ContributionsUI.labels.SELECT_A_COLLABORATOR=Selectionnez un collaborateur : +ContributionsUI.labels.TOTAL=Total : +ContributionsUI.labels.WEEK=Semaine : {0} -> {1} +ContributionsUI.menuitems.EXPORT=Export +ContributionsUI.menuitems.NEW_CONTRIBUTION=Nouvelle contribution +ContributionsUI.menuitems.PASTE=Coller (Ctrl + v) +ContributionsUI.menuitems.REMOVE=Supprimer +ContributionsViewerDialog.texts.TITLE=Contributions sélectionnées +ContributionsViewerTable.columns.COLLABORATOR=Collaborateur +ContributionsViewerTable.columns.DURATION=Durée +ContributionsViewerTable.columns.DATE=Date +ContributionsViewerTable.columns.TASK_NAME=Nom de la tâche +ContributionsViewerTable.columns.TASK_PATH=Chemin de la tâche +ContributionsViewerTable.errors.UNKNOWN_COLUMN=Colonne inconnue +ContributionsViewerTable.menuitems.EXPORT=Export +DatabaseUI.buttons.CLOSE_DATABASE=Fermer la base +DatabaseUI.buttons.EXPORT_DATABASE=Exporter la base +DatabaseUI.buttons.IMPORT_DATABASE=Importer depuis XML +DatabaseUI.buttons.OPEN_DATABASE=Ouvrir la base +DatabaseUI.buttons.RESET_DATABASE=Réinitialiser les données +DatabaseUI.databasetypes.MARIA_DB=Base de données MariaDB +DatabaseUI.databasetypes.STANDALONE_MODE=Mode standalone (base HSQL embarquée) +DatabaseUI.databasetypes.USER_DEFINED=Autre base de données +DatabaseUI.errors.DATABASE_NOT_INSTALLED=La base de données n''est pas installée.\nLa connexion a échoué. +DatabaseUI.errors.DURATIONS_CREATION_ERROR=Erreur inattendue lors de la création des durées par défaut +DatabaseUI.errors.FILE_DOES_NOT_EXIST=Le fichier spécifié n'existe pas. Veuillez spécifier un nom valide. +DatabaseUI.errors.FILE_ERROR=Erreur liée au fichier +DatabaseUI.errors.FILE_NAME_ERROR=Erreur liée au nom du fichier +DatabaseUI.errors.UNKNOWN_DATABASE_TYPE=Type de base de données inconnue +DatabaseUI.errors.XML_FILE_NOT_SPECIFIED=Le fichier XML n'est pas spécifié\! +DatabaseUI.informations.DATABASE_SUCCESSFULLY_EXPORTED=Base de données exportée avec succès. +DatabaseUI.informations.DATABASE_SUCCESSFULLY_IMPORTED=Fichier XML importé avec succès. +DatabaseUI.labels.CONFIRMATION=Confirmation +DatabaseUI.labels.CONNECTION_PROPERTIES=Propriétés de connexion +DatabaseUI.labels.DATABASE_HOST=Hote de la base de données : +DatabaseUI.labels.DATABASE_NAME=Nom de la base de données : +DatabaseUI.labels.DATABASE_PORT=Port : +DatabaseUI.labels.DATABASE_TYPE=Type de la base de données : +DatabaseUI.labels.DATA_FILE=Fichier de données : +DatabaseUI.labels.ERROR=Erreur +DatabaseUI.labels.EXPORT_IMPORT=Exportation/importation +DatabaseUI.labels.INFORMATION=Information +DatabaseUI.labels.JDBC_DRIVER=Pilote JDBC : +DatabaseUI.labels.PASSWORD_WARNING=(stocké en clair) +DatabaseUI.labels.SERVER_URL=URL du serveur : +DatabaseUI.labels.USER_ID=Identifiant utilisateur : +DatabaseUI.labels.USER_PASSWORD=Mot de passe : +DatabaseUI.labels.XML_FILE=Fichier XML : +DatabaseUI.questions.CREATE_DEFAULT_DURATIONS=L'initialisation des tables de la base de données est terminée.\nVoulez-vous créer les durées par défaut (0.25, 0.50, 0.75 & 1.00) ?\nAttention : \n - si vous êtes sur le point d'importer un fichier XML, choisissez 'non' pour éviter les conflits de données\n - si vous choisissez non, vous devrez les créer manuellement +DatabaseUI.questions.DATABASE_NOT_INSTALLED=La base de données ne semble pas installée.\nSouhaitez-vous qu'elle soit installée dès à présent ? +DatabaseUI.questions.DATABASE_RESET_BEFORE_IMPORTATION=Voulez-vous que les tables de la base de données soient réinitialisées avant l'importation ? +DatabaseUI.questions.IMPORTATION_CONFIRMATION=Etes-vous certain de vouloir procéder à cette importation ? +DatabaseUI.questions.OVERWRITE_CONFIRMATION=Le fichier existe. Souhaitez-vous l'écraser ? +DatabaseUI.questions.RESET_CONFIRMATION_1=Etes-vous certain de vouloir réinitialiser les données stockées en base ? +DatabaseUI.questions.RESET_CONFIRMATION_2=Réellement certain ???? (Vous pourriez DEFINITIVEMENT perdre vos données) +ReportsUI.task=tâche +ReportsUI.task.budget=budget +ReportsUI.task.name=nom +ReportsUI.task.code=code +ReportsUI.task.path=chemin +ReportsUI.task.etc=raf +ReportsUI.task.initiallyConsumed=cons. init. +ReportsUI.task.comment=commentaire +ReportsUI.collaborator=collaborator +ReportsUI.collaborator.isActive=actif +ReportsUI.collaborator.lastName=nom +ReportsUI.collaborator.firstName=prénom +ReportsUI.collaborator.login=login +DateHelper.errors.UNKNOWN_DATE_INCREMENT_TYPE=Type d'incrément de date non supporté +DbMgr.errors.COLLABORATORS_SELECTION_FAILURE=Un incident inattendue s'est produit pendant l'extraction des collaborateurs +DbMgr.errors.COLLABORATOR_CREATION_FAILUE=Erreur lors de la création du collaborateur : ''{0}'' +DbMgr.errors.COLLABORATOR_DELETION_FAILURE=Erreur lors de la suppression du collaborateur ''{0}'' +DbMgr.errors.COLLABORATOR_SELECTION_BY_ID_FAILURE=Un incident inattendue s'est produit pendant la lecture des données du collaborateur à partir de l'identifiant : ''{0}'' +DbMgr.errors.COLLABORATOR_SELECTION_BY_LOGIN_FAILURE=Un incident inattendue s'est produit pendant la lecture des données du collaborateur à partir de l'identifiant de connexion ''{0}'' +DbMgr.errors.COLLABORATOR_UPDATE_FAILURE=La mise à jour du collaborateur ''{0}'' a échoué. +DbMgr.errors.CONTRIBUTIONS_SELECTION_FAILURE=Un incident inattendu s'est produit lors de la sélection d'une contribution +DbMgr.errors.CONTRIBUTIONS_SUM_COMPUTATION_FAILURE=Un incident inattendu s'est produit pendant le calcul de la somme des contributions +DbMgr.errors.CONTRIBUTION_CREATION_FAILUE=Echec lors de la création de la contribution +DbMgr.errors.CONTRIBUTION_DELETION_FAILURE=Echec lors de la suppression de la contribution +DbMgr.errors.CONTRIBUTION_UPDATE_FAILURE=Echec lors de la mise à jour de la contribution +DbMgr.errors.DURATIONS_SELECTION_FAILURE=Un incident inattendu s'est produit lors de la sélection des durées en base de données +DbMgr.errors.DURATION_CREATION_FAILUE=Echec lors de la création de la durée : ''{0}'' +DbMgr.errors.DURATION_DELETION_FAILURE=Echec lors de la suppression de la durée ''{0}'' +DbMgr.errors.DURATION_SELECTION_BY_ID=Un incident inattendu s'est produit lors de la sélection de la durée ''{0}'' +DbMgr.errors.DURATION_UPDATE_FAILURE=La mise à jour de la durée ''{0}'' a échoué +DbMgr.errors.MEMORY_IO_FAILURE=Incient I/O inattendu lors de la lecture d'un flux mémoire\! +DbMgr.errors.SQL_AUTOINCREMENT_FAILURE=Un incident inattendu s'est produit lors de la récupération de l'identifiant d'un objet. +DbMgr.errors.SQL_COMMIT_FAILURE=Echec lors d'une validation de transaction +DbMgr.errors.SQL_CONNECTION_ESTABLISHMENT_FAILURE=La connexion à la base de donnée n'est pas établie. +DbMgr.errors.SQL_CONNECTION_OPEN=Echec lors de l'ouverture de la connexion SQL +DbMgr.errors.SQL_DATABASE_NAME_EXTRACTION_FAILURE=Echec lors de la r\u00E9cup\u00E9ration du nom de la BDD +DbMgr.errors.SQL_DISCONNECTION_FAILURE=Echec lors de la déconnexion de la base de données +DbMgr.errors.SQL_DURATION_CHECK_FAILURE=Echec lors de la vérification de la durée : ''{0}'' +DbMgr.errors.SQL_EMPTY_QUERY_RESULT=La requête SQL n'a retourné aucun résultat +DbMgr.errors.SQL_MULTI_TRANSACTION_DETECTED=Un conflit de transaction a été détecté +DbMgr.errors.SQL_ROLLBACK_FAILURE=Echec lors de l'annulation de la transaction +DbMgr.errors.SQL_ROW_DELETION_FAILURE=Aucune ligne de la base de donnée n'a été supprimée +DbMgr.errors.SQL_SCRIPT_LOAD_FAILURE=Erreur lors de la lecture du fichier SQL de création des tables. +DbMgr.errors.SQL_TABLES_DETECTION_FAILURE=La table SQL ''{0}'' ne semble pas exister en base de données. +DbMgr.errors.SQL_TABLE_CREATION_FAILURE=La création des tables en base de données a échoué +DbMgr.errors.SQL_UPDATE_FAILURE=Aucune ligne n'a été mise à jour +DbMgr.errors.TASKS_SELECTION_FAILURE=Incident inattendu lors de la recherche de tâches +DbMgr.errors.TASK_CREATION_FAILURE=La création de la tâche ''{0}'' a échoué +DbMgr.errors.TASK_DELETION_FAILURE=La suppression de la tâche ''{0}'' a échoué +DbMgr.errors.TASK_NUMBER_COMPUTATION_FAILURE=Un incident inattendu s'est produit pendant la génération d'un nouveau numéro pour la tâche de chemin ''{0}'' +DbMgr.errors.TASK_SELECTION_BY_CODE_FAILURE=Un incident inattendu s'est produit pendant la récupération de la tâche de code ''{0}'' +DbMgr.errors.TASK_SELECTION_BY_COLLABORATOR_FAILURE=Un incident inattendu s'est produit pendant la récupération des tâches associées au collaborateur +DbMgr.errors.TASK_MAX_PATH_DEPTH_RETRIEVAL=Un incident inattendu s'est produit pendant la lecture de la profondeur de l'arborescence de tâches +DbMgr.errors.TASK_SELECTION_BY_ID_FAILURE=Un incident inattendu s'est produit pendant la récupération de tâches à partit de leuts identifiants +DbMgr.errors.TASK_SELECTION_BY_NUMBER_FROM_PATH_FAILURE=Un incident inattendu s'est produit pendant la récupération de la tâche N° ''{0}'' dans le chemin ''{1}'' +DbMgr.errors.TASK_SELECTION_BY_PATH=Un incident inattendu s'est produit pendant la récupération de la tâche de chemin ''{0}'' +DbMgr.errors.TASK_SUMS_COMPUTATION_FAILURE=Un incident inattendu s'est produit pendant le calcul des cumuls pour la tâche d'identifiant ''{0}'' +DbMgr.errors.TASK_UPDATE_FAILURE=La mise à jour de la tâche ''{0}'' a échoué +DbMgr.errors.UNKNOWN_CRITERIA_INDEX=Index de critère inconnu ''{0}'' +DbMgr.errors.UNKNOWN_FIELD_INDEX=Index de champ inconnu ''{0}'' +DurationsUI.columns.DURATION=Durée +DurationsUI.errors.DATABASE_CONNECTION_FAILURE_WHILE_DURATION_EXISTENCE_CHECK=La connexion à la base de données a échoué lors de la vérification de l'existence de la durée +DurationsUI.errors.DURATION_ALREADY_EXIST=Cette durée existe +DurationsUI.errors.UNKNOWN_COLUMN=Colonne inconnue +DurationsUI.menuitems.NEW=Nouvelle durée +DurationsUI.menuitems.EXPORT=Exportation +DurationsUI.menuitems.REMOVE=Supprimer +DurationsUI.menuitems.REFRESH=Rafraichir +DurationsUI.questions.NEW_DURATION=Veuillez entrer une nouvelle durée +DurationsUI.table.TOOL_TIP=Utilisez la première colonne pour activer ou désactiver les durées\n(les durées désactivées ne sont pas supprimées de la base de données mais sontr cachées)\ndans l'onglet des contributions) +DurationsUI.titles.INPUT_DIALOG=Fenêtre de saisie +ErrorDialog.infos.IO_ERROR_WHILE_PRINTING_STACKTRACE=Incident I/O inattendu pendant l'affichage de la pile (stacktrace). +ErrorDialog.infos.SEE_LOGS_FOR_MORE_DETAILS=Consultez les traces pour plus de détails. +ErrorDialog.texts.TITLE=Erreur +Main.status.CONNECTED=Connecté +Main.status.NOT_CONNECTED=Non connecté +Main.tabs.ABOUT=A propos +Main.tabs.COLLABORATORS=Collaborateurs +Main.tabs.CONTRIBUTIONS=Contributions +Main.tabs.REPORTS=Rapports +Main.tabs.DATABASE=Base de données +Main.tabs.DURATIONS=Durées +Main.tabs.TASKS=Tâches +Main.texts.TITLE=ActivityManager +ModelMgr.defaults.COLLABORATOR_FIRST_NAME=NOUVEAU +ModelMgr.defaults.COLLABORATOR_LAST_NAME=NOUVEAU +ModelMgr.defaults.COLLABORATOR_LOGIN_PREFIX=NOUVEAU +ModelMgr.defaults.TASK_NAME=NOUVEAU +ModelMgr.errors.A_TASK_WITH_SUBTASKS_CANNOT_ACCEPT_CONTRIBUTIONS=Cette tâche contient au moins une tâche fille ; elle ne peut accepter de contribution. +ModelMgr.errors.DURATION_DOES_NOT_EXIST=Cette durée n'existe pas +ModelMgr.errors.CONTRIBUTOR_MUST_BE_SPECIFIED=Le collaborateur doit être spécifié +ModelMgr.errors.FROM_DATE_MUST_BE_BEFORE_TO_DATE=La date de début doit ête antérieure à la date de fin +ModelMgr.errors.INVALID_TASK_CODE_PATH=Une tâche valide doit commencer par un '/' +ModelMgr.errors.NON_NULL_TASK_BUDGET=Le budget de cette tâche est non nul ({0}); elle ne peut donc pas recevoir de tâche fille. +ModelMgr.errors.NON_NULL_TASK_ESTIMATED_TIME_TO_COMPLETE=Le reste à faire de cette tâche est non nul ({0}); elle ne peut donc pas recevoir de tâche fille +ModelMgr.errors.NON_NULL_TASK_INITIALLY_CONSUMMED=Le consommé initial de cette tâche n'est pas nul ({0}); elle ne peut donc pas recevoir de tâche fille. +ModelMgr.errors.NON_UNIQUE_COLLABORATOR_LOGIN=Le login "{0}" est déjà utilisé par un autre collaborateur +ModelMgr.errors.NUL_DURATION_FORBIDDEN=Une durée ne peut pas être nulle +ModelMgr.errors.TASK_CANNOT_BE_MOVED_DOWN=Cette tâche ne peut pas être déplacée vers le bas. +ModelMgr.errors.TASK_CANNOT_BE_MOVED_UNDER_ITSELF=Déplacer une tâche sous elle-même ou sous une de ses tâches filles n'est pas permis. +ModelMgr.errors.TASK_CANNOT_BE_MOVED_UP=Cette tâche ne peut pas être déplacée vers le haut. +ModelMgr.errors.TASK_CODE_ALREADY_IN_USE=Ce code est déjà utilisé: {0} +ModelMgr.errors.TASK_CODE_EXIST_AT_DESTINATION=Le code de tâche ''{0}'' existe déjà à la destination choisie. +ModelMgr.errors.TASK_HAS_SUBTASKS=Cette tâche totalise avec ses tâches filles {0} contributions +ModelMgr.errors.TASK_NUMBER_UPDATE_DETECTED=Le numéro de la tâche a changé en base de données. +ModelMgr.errors.TASK_PATH_UPDATE_DETECTED=Le chemin de la tâche a changé en base de données. +ModelMgr.errors.TASK_USED_BY_CONTRIBUTIONS=La tâche ''{0}'' est déjà utilisée (nombre de contributions={1}). Elle ne peut donc pas recevoir de tâche fille. +ModelMgr.errors.TASK_WITH_AT_LEAST_ONE_SUBTASK_CANNOT_ACCEPT_CONTRIBUTIONS=Cette tâche a au moins une tâche fille ; elle ne peut donc pas recevoir de contribution. +ModelMgr.errors.UNKNOWN_TASK=La tâche n'existe pas en base de données +ModelMgr.errors.UNKNOWN_TASK=Tâche inconnue : ''{0}'' +ModelMgr.errors.UNKNOWN_TASK_CODE_PATH=Chemin de tâche inconnu : ''{0}'' +ModelMgr.errors.UNMOVEABLE_DURATION=Cette contribution est utilisée, elle ne peut donc pas être supprimée. +ModelMgr.errros.COLLABORATOR_WITH_CONTRIBUTIONS_CANNOT_BE_REMOVED=Ce collaborateur a {0} contributions +ModelMgr.errros.DUPLICATE_DURATION=La durée existe déjà +ModelMgr.errors.CONTRIBUTION_UPDATE_DETECTED=La contribution a été mise à jour en base de données dans une autre transaction +ModelMgr.errors.CONTRIBUTION_DELETION_DETECTED=La contribution n'existe pas en base de données +ModelMgr.errors.INVALID_DURATION=Durée invalide +ModelMgr.errors.BAD_REPORT_PARAMS_EMPTY_TASK_ATTRIBUTES=Rapport invalide : si les tâches sont incluses dans le rapport, au moins un attribut de tâche doit être sélectionné +ModelMgr.errors.BAD_REPORT_PARAMS_EMPTY_COLLABORATOR_ATTRIBUTES=Rapport invalide : si les tâches sont incluses dans le rapport, au moins un attribut de tâche doit être sélectionnéRapport invalide : si les collaborateurs sont inclus dans le rapport, au moins un attribut de collaborateur doit être sélectionné +ModelMgr.xmlexport.comment.BUDGET=\ \ \ \ - Budgets : +ModelMgr.xmlexport.comment.CONSUMED=\ \ \ \ - Consommé : +ModelMgr.xmlexport.comment.CONTRIBUTIONS_NUMBER=\ \ \ \ - Nombre de contributions : +ModelMgr.xmlexport.comment.ESTIMATED_TIME_TO_COMPLETE=\ \ \ \ - Reste à faire : +ModelMgr.xmlexport.comment.INITIALLY_CONSUMED=\ \ \ \ - Consommé initial : +ModelMgr.xmlexport.comment.ROOT_TASKS_CHECK_SUMS=\ \ Sommes de controle des tâches racines : +ModelMgr.xmlexport.comment.ROOT_TASK=\ \ * Tâche racine[{0}]='/{1}' ({2}) +PropertiesHelper.errors.CIRCULAR_REFERENCE=Référence circulaire détectée pour la propriété '$\{{0}\}' +PropertiesHelper.errors.NOT_IMPLEMENTED=Non implémenté +PropertiesHelper.errors.PARAMETER_NOT_SPECIFIED=Le paramètre ''{0}'' n'est pas spécifié (sous ''{1}'', '{2}' ou '{3}' +ReportMgr.errors.DIRECTORY_CREATION_FAILURE=Echec lors de la création des répertoires ({0}) +ReportMgr.errors.OUTPUT_FILENAME_REQUIRED=Un fichier de sortie doit être spécifié pour l'identifiant ''{0}'' +ReportMgr.errors.REQUIRED_TEMPLATE_TYPE_OR_PATH=Un type ou un modèle doit être spécifié pour l'identifiant ''{0}'' +ReportMgr.errors.TEMPLATE_NOT_FOUND=Modèle de rapport non trouvé : ''{0}'' +ReportMgr.errors.UNEXPECTED_ERROR=Incident inattendu +SWTHelper.errors.IO_EXCEPTION_WHILE_EXPORTING=Incident entrée/sortie lors de l'exportation. +SWTHelper.errors.IO_EXCEPTION_WHILE_IMPORTING=Incident entrée/sortie lors de importation. +SWTHelper.excelsheet.TAB_NAME=exporter +SafeRunner.errors.UNABLE_TO_COMPLETE_OPERATION=Impossible de compléter l''opération : ''{0}'' +SafeRunner.errors.UNEXPECTED_ERROR=Incident inattendu +SelectableCollaboratorPanel.columns.FIRST_NAME=Prénom +SelectableCollaboratorPanel.columns.LAST_NAME=Nom +SelectableCollaboratorPanel.errors.UNKNOWN_COLUMN=Colonne inconnue +StringHelper.errors.MEMORY_IO_FAILURE=Incident inattendu lors d'un accès en lecture/écriture sur un buffer mémoire! +StringHelper.errors.TOO_MANY_DIGITS=Trop de décimales +StringHelper.errors.WRONG_NUMBER_FORMAT=Mauvais format (XXXXXX.XX) +TableOrTreeColumnsMgr.errors.COLUMN_NAME_REQUIRED=Le nom de la colonne ne peut être nul +TaskChooserDialog.labels.FOUND_TASKS=Tâches trouvées : +TaskChooserDialog.texts.TITLE=Choisissez une tâche +TaskChooserTable.columns.TASK_NAME=Tâche +TaskChooserTable.columns.TASK_PATH=Chemin +TaskChooserTable.errors.UNKNOWN_COLUMN=Colonne inconnue +TaskChooserTree.columns.TASK_CODE=Code +TaskChooserTree.columns.TASK_NAME=Tâche +TaskChooserTree.errors.UNKNOWN_COLUMN=Colonne inconnue +TaskChooserTree.labels.PLACEHOLDER=Entrez une chaine pour filtrer... +TaskChooserTreeWithHistoryDialog.errors.TASK_REQUIRED=Veuillez choisir une tâche +TaskChooserTreeWithHistoryDialog.labels.PREVIOUS_SELECTION=Sélection(s) précédente(s) +TaskChooserTreeWithHistoryDialog.labels.TASK_TREE=Arbre des tâches +TaskChooserTreeWithHistoryDialog.texts.TITLE=Choisissez une tâche +TaskFinderPanel.attributes.TASK_CODE=Code +TaskFinderPanel.attributes.TASK_NAME=Tâche +TaskFinderPanel.buttons.FIND=Rechercher... +TaskFinderPanel.criterias..ENDS_WITH=se termine par +TaskFinderPanel.criterias.CONTAINS=contient +TaskFinderPanel.criterias.IS_EQUAL_TO=est égal à +TaskFinderPanel.criterias.STARTS_WITH=commence par +TaskFinderPanel.errors.NOTHING_FOUND=Les critères de recherches ne correspondent à aucune donnée +TaskFinderPanel.labels.SEARCH_FILTER=Filtre de recherche +TaskFinderPanel.titles.SEARCH_STATUS=Statut de recherche +TasksChooserTree.columns.TASK_CODE=Code +TasksChooserTree.columns.TASK_NAME=Tâche +TasksChooserTree.errors.UNKNOWN_COLUMN=Colonne inconnue +TasksUI.columns.TASK_NAME=Tâche +TasksUI.columns.TASK_BUDGET=Budget +TasksUI.columns.TASK_CODE=Code +TasksUI.columns.TASK_COMMENT=Commentaire +TasksUI.columns.TASK_CONSUMED=Consommé +TasksUI.columns.TASK_DELTA=Delta +TasksUI.columns.TASK_ESTIMATED_TIME_TO_COMPLETE=RAF +TasksUI.columns.TASK_INITIAL=Conso. initial +TasksUI.columns.TASK_CLOSED=Fermée +TasksUI.errors.MOVE_TO_SAME_PARENT=La tâche parente de destination est identique à la tâche parente source +TasksUI.errors.TECHNICAL_ERROR=Incident technique : ''{0}'' +TasksUI.errors.UNKNOWN_COLUMN=Colonne inconnue +TasksUI.errros.READ_ONLY_COLUMN=Cette colonne ne peut pas être modifiée +TasksUI.menuitems.COLLAPSE_ALL=Tout plier +TasksUI.menuitems.COPY=Copier (Ctrl + c) +TasksUI.menuitems.EXPAND_ALL=Tout développer +TasksUI.menuitems.EXPORT_IMPORT=Excel +TasksUI.menuitems.XLS_EXPORT=Export +TasksUI.menuitems.XLS_IMPORT=Import +TasksUI.menuitems.XLS_SNAPSHOT_EXPORT=Instantané de l'arbre +TasksUI.menuitems.LIST_CONTRIBUTIONS=Liste des contrib. +TasksUI.menuitems.MOVE=Déplacer +TasksUI.menuitems.MOVE_DOWN=en bas (Ctrl + flèche bas) +TasksUI.menuitems.MOVE_BEFORE_ANOTHER_TASK=avant une autre tâche +TasksUI.menuitems.MOVE_AFTER_ANOTHER_TASK=après une autre tâche +TasksUI.menuitems.MOVE_UNDER_ANOTHER_TASK=sous une autre tâche +TasksUI.menuitems.MOVE_UNDER_ROOT=sous la racine +TasksUI.menuitems.MOVE_UP=en haut (Ctrl + flèche haut) +TasksUI.menuitems.NEW=Nouvelle +TasksUI.menuitems.NEW_SUBTASK=sous tâche +TasksUI.menuitems.NEW_TASK=tâche (même niveau) +TasksUI.menuitems.REFRESH=Rafraîchir +TasksUI.menuitems.REMOVE=Supprimer +XmlHelper.errors.DATABASE_ACCESS_ERROR=Incident inattendu lors de l'accès à la base de données +XmlHelper.errors.INVALID_ATTRIBUTE=Valeur d'attribut invalide ''{0}'' pour ''{1}'' +XmlHelper.errors.MISSING_ATTRIBUTE=Valeur de l'attribut manquant pour ''{0}'' +XmlHelper.errors.MODEL_VIOLATION=Violation du modèle : +XmlHelper.errors.NOT_IMPLEMENTED=La fonctionnalité XML SAX n'est pas implémentée dans ActivityManager ('{0}') +XmlHelper.errors.NUMBER_FORMAT_ERROR=Erreur de format (format numérique) : +XmlHelper.errors.UNEXPECTED_NODE=Noeud XML inattendu : ''{0}'' From 6163184097357558a0c25dad5a88159e711fa312 Mon Sep 17 00:00:00 2001 From: Laurent Redor Date: Tue, 19 May 2026 12:16:55 +0200 Subject: [PATCH 2/4] Add the code of the task in some error messages --- .../src/org/activitymgr/core/model/impl/ModelMgrImpl.java | 4 ++-- .../src/org/activitymgr/core/util/strings.properties | 4 ++-- .../src/org/activitymgr/core/util/strings_fr.properties | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/plugins/org.activitymgr.core.model/src/org/activitymgr/core/model/impl/ModelMgrImpl.java b/core/plugins/org.activitymgr.core.model/src/org/activitymgr/core/model/impl/ModelMgrImpl.java index 5f9daf81..4ec5c73f 100644 --- a/core/plugins/org.activitymgr.core.model/src/org/activitymgr/core/model/impl/ModelMgrImpl.java +++ b/core/plugins/org.activitymgr.core.model/src/org/activitymgr/core/model/impl/ModelMgrImpl.java @@ -301,8 +301,8 @@ private void verifyTaskPath(Task task) throws ModelException { try { _task = getTask(task.getId()); verify("UNKNOWN_TASK", _task != null, task.getId()); //$NON-NLS-1$ - verify("TASK_PATH_UPDATE_DETECTED", _task.getPath().equals(task.getPath())); //$NON-NLS-1$ - verify("TASK_NUMBER_UPDATE_DETECTED", _task.getNumber() == task.getNumber()); //$NON-NLS-1$ + verify("TASK_PATH_UPDATE_DETECTED", _task.getPath().equals(task.getPath()), task.getCode()); //$NON-NLS-1$ + verify("TASK_NUMBER_UPDATE_DETECTED", _task.getNumber() == task.getNumber(), task.getCode()); //$NON-NLS-1$ noErrorOccured = true; } finally { diff --git a/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings.properties b/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings.properties index 3490057b..a8ad9b35 100644 --- a/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings.properties +++ b/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings.properties @@ -202,8 +202,8 @@ ModelMgr.errors.TASK_CANNOT_BE_MOVED_UP=This task can not be moved up ModelMgr.errors.TASK_CODE_ALREADY_IN_USE=This code is already in use: {0} ModelMgr.errors.TASK_CODE_EXIST_AT_DESTINATION=The task''s code ''{0}'' already exists in the destination path. ModelMgr.errors.TASK_HAS_SUBTASKS=This task and its subtasks have {0} contributions -ModelMgr.errors.TASK_NUMBER_UPDATE_DETECTED=Task''s number has changed in the database -ModelMgr.errors.TASK_PATH_UPDATE_DETECTED=Task''s path has changed in the database +ModelMgr.errors.TASK_NUMBER_UPDATE_DETECTED=Task''s number, with code ''{0}'', has changed in the database +ModelMgr.errors.TASK_PATH_UPDATE_DETECTED=Task''s path, with code ''{0}'', has changed in the database ModelMgr.errors.TASK_USED_BY_CONTRIBUTIONS=The task ''{0}'' is already used (contribsNb={1}). It cannot accept sub tasks. ModelMgr.errors.TASK_WITH_AT_LEAST_ONE_SUBTASK_CANNOT_ACCEPT_CONTRIBUTIONS=This task has one or more sub tasks. It cannot accept a contribution. ModelMgr.errors.UNKNOWN_TASK=Task does not exist in the database diff --git a/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties b/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties index eea2eaf4..c994f3c6 100644 --- a/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties +++ b/core/plugins/org.activitymgr.core.util/src/org/activitymgr/core/util/strings_fr.properties @@ -200,8 +200,8 @@ ModelMgr.errors.TASK_CANNOT_BE_MOVED_UP=Cette t ModelMgr.errors.TASK_CODE_ALREADY_IN_USE=Ce code est déjà utilisé: {0} ModelMgr.errors.TASK_CODE_EXIST_AT_DESTINATION=Le code de tâche ''{0}'' existe déjà à la destination choisie. ModelMgr.errors.TASK_HAS_SUBTASKS=Cette tâche totalise avec ses tâches filles {0} contributions -ModelMgr.errors.TASK_NUMBER_UPDATE_DETECTED=Le numéro de la tâche a changé en base de données. -ModelMgr.errors.TASK_PATH_UPDATE_DETECTED=Le chemin de la tâche a changé en base de données. +ModelMgr.errors.TASK_NUMBER_UPDATE_DETECTED=Le numéro de la tâche, avec le code ''{0}'', a changé en base de données. +ModelMgr.errors.TASK_PATH_UPDATE_DETECTED=Le chemin de la tâche, avec le code ''{0}'', a changé en base de données. ModelMgr.errors.TASK_USED_BY_CONTRIBUTIONS=La tâche ''{0}'' est déjà utilisée (nombre de contributions={1}). Elle ne peut donc pas recevoir de tâche fille. ModelMgr.errors.TASK_WITH_AT_LEAST_ONE_SUBTASK_CANNOT_ACCEPT_CONTRIBUTIONS=Cette tâche a au moins une tâche fille ; elle ne peut donc pas recevoir de contribution. ModelMgr.errors.UNKNOWN_TASK=La tâche n'existe pas en base de données From 168dce58c30dedb528fd5e58c605e10d96c73310 Mon Sep 17 00:00:00 2001 From: Laurent Redor Date: Tue, 19 May 2026 15:12:51 +0200 Subject: [PATCH 3/4] Fix #38 - Replace missed magic number 2 by its corresponding constant --- .../src/org/activitymgr/ui/rcp/ContributionsUI.java | 4 ++-- .../ui/rcp/dialogs/TaskChooserTreeWithHistoryDialog.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/ContributionsUI.java b/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/ContributionsUI.java index 530460a9..098076d4 100644 --- a/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/ContributionsUI.java +++ b/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/ContributionsUI.java @@ -1266,8 +1266,8 @@ public void taskMoved(final String oldTaskFullpath, final Task movedTask) { taskChooserDialog.taskMoved(oldTaskFullpath, movedTask); // Déduction de l'ancien chemin de la tache à partir de l'ancien // chemin complet - String oldTaskPath = oldTaskFullpath.substring(0, - oldTaskFullpath.length() - 2); + String oldTaskPath = oldTaskFullpath.substring(0, + oldTaskFullpath.length() - Task.PATH_SGM_SIZE); // Parcours des taches présentes dans le tableau int itemCount = tableViewer.getTable().getItemCount(); for (int i = 0; i < itemCount; i++) { diff --git a/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/dialogs/TaskChooserTreeWithHistoryDialog.java b/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/dialogs/TaskChooserTreeWithHistoryDialog.java index b7789af8..7454dbd3 100644 --- a/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/dialogs/TaskChooserTreeWithHistoryDialog.java +++ b/ui.rcp/plugins/org.activitymgr.ui.rcp/src/org/activitymgr/ui/rcp/dialogs/TaskChooserTreeWithHistoryDialog.java @@ -331,7 +331,7 @@ protected Object runUnsafe() throws Exception { // Déduction de l'ancien chemin de la tache à partir de l'ancien // chemin complet String oldTaskPath = oldTaskFullpath.substring(0, - oldTaskFullpath.length() - 2); + oldTaskFullpath.length() - Task.PATH_SGM_SIZE); for (int i = 0; i < previouslySelectedTasks.size(); i++) { Task currentTask = (Task) previouslySelectedTasks.get(i); // Cas ou la tache modifiée est dans la liste From 8747b636c6c2b3f744a2d0dfc07ad7f3857359ff Mon Sep 17 00:00:00 2001 From: Laurent Redor Date: Tue, 19 May 2026 12:39:27 +0200 Subject: [PATCH 4/4] [cleanup] Reword README of Docker tests --- misc/docker/test-runner/README.md | 32 ++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/misc/docker/test-runner/README.md b/misc/docker/test-runner/README.md index 927e2091..8ebd0335 100644 --- a/misc/docker/test-runner/README.md +++ b/misc/docker/test-runner/README.md @@ -1,9 +1,11 @@ # Docker test runner -The image is intentionally based on Debian 8 / Jessie to stay close to the target environment. +## Run tests in current production environment in Docker + +The image is intentionally based on Debian 8 / Jessie to stay close to the current production environment. Because Jessie is end-of-life, Java 11 and Maven are installed manually in the container instead of relying on a modern Maven base image. -Build the image: +**Build the image:** ```bash docker build -t activity-manager-tests misc/docker/test-runner @@ -11,7 +13,7 @@ docker build -t activity-manager-tests misc/docker/test-runner This build currently starts from `debian/eol:jessie`. -Run the core Tycho tests from the repository root: +**Run the core Tycho tests from the repository root:** ```bash docker run --rm \ @@ -20,7 +22,7 @@ docker run --rm \ activity-manager-tests ``` -Run a single test pattern: +**Run a single test pattern:** ```bash docker run --rm \ @@ -31,7 +33,7 @@ docker run --rm \ -DfailIfNoTests=false ``` -Useful environment variables: +**Useful environment variables:** ```text TP_MODE=build @@ -40,7 +42,7 @@ WORKSPACE_DIR=/workspace M2_DIR=/m2/repository ``` -Notes: +**Notes:** - The script installs `parent/tpd` first because the Tycho test module resolves the target platform from that local artifact. - The script then runs a root `install` with `-Dmaven.test.skip=true` so Tycho fragments are present in the local Maven repository before the test phase. @@ -49,54 +51,54 @@ Notes: - Maven dependencies are cached in the named Docker volume `activity-manager-m2`. - The Dockerfile downloads a Java 11 JDK from Eclipse Adoptium and Maven 3.9.9 during image build time. -Run the same tests against MySQL 5.5.47: +## Run the same tests against MySQL 5.5.47 ```bash docker compose -f misc/docker/test-runner/compose.mysql55.yml up --build --abort-on-container-exit tests ``` -Stop the stack: +**Stop the stack:** ```bash docker compose -f misc/docker/test-runner/compose.mysql55.yml down -v ``` -Notes for the MySQL scenario: +**Notes for the MySQL scenario:** - The `tests` service keeps using the same runner image and script. - The MySQL-specific JDBC settings are injected through environment variables, so the default H2 configuration remains unchanged outside Compose. - The `mysql55` service installs MySQL from the official Debian Jessie repositories to stay close to a standard Jessie setup. -Run the tests with a Debian 12 runner and MySQL 8: +## Run the tests with a Debian 12 runner and MySQL 8 ```bash docker compose -f misc/docker/test-runner/compose.mysql8.yml up --build --abort-on-container-exit tests ``` -Stop that stack: +**Stop that stack:** ```bash docker compose -f misc/docker/test-runner/compose.mysql8.yml down -v ``` -Notes for the Debian 12 / MySQL 8 scenario: +**Notes for the Debian 12 / MySQL 8 scenario:** - The test runner uses `Dockerfile.debian12` and keeps the same Java 11 + Maven bootstrap approach. - The MySQL service uses the official `mysql:8.0` image with `mysql_native_password` enabled to keep the test setup compatible with the current JDBC configuration. -Run the tests with a full Debian 12 + MariaDB stack: +## Run the tests with a full Debian 12 + MariaDB stack ```bash docker compose -f misc/docker/test-runner/compose.mariadb12.yml up --build --abort-on-container-exit tests ``` -Stop that stack: +**Stop that stack:** ```bash docker compose -f misc/docker/test-runner/compose.mariadb12.yml down -v ``` -Notes for the Debian 12 / MariaDB scenario: +**Notes for the Debian 12 / MariaDB scenario:** - Both the runner and the database services are built from Debian 12 images. - The database service installs `mariadb-server` from the official Debian 12 repositories.