From 9fa1c895eed3d3b95b86b727a767f27fdf2c5893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20BOYER?= <t.boyer@si17.lan> Date: Mon, 5 Feb 2024 16:03:29 +0100 Subject: [PATCH] [Traductions] MAJ des traductions - Part6 bis - MAJ globale des traductions - MAJ visuel duplication - Fix traductions --- assets/css/app.scss | 46 ---------- .../admin/translations/messages.fr.yaml | 18 +++- .../aipd/translations/validators.fr.yaml | 5 + .../domain/aipd/translations/validators.yaml | 4 - .../critere_principe_fondamental.yaml | 2 +- .../translations/messages.fr.yaml | 2 + .../translations/validators.fr.yaml | 4 + .../maturity/translations/validators.fr.yaml | 3 + .../registry/translations/messages.fr.yaml | 1 + .../registry/translations/validators.fr.yaml | 2 +- .../domain/user/translations/messages.fr.yaml | 2 +- .../AnalyseCriterePrincipeFondamentalType.php | 2 +- .../Type/CriterePrincipeFondamentalType.php | 2 +- .../AIPD/Form/Type/ImportModeleType.php | 4 +- .../Admin/Form/Type/DuplicationType.php | 2 +- .../Documentation/Form/Type/DocumentType.php | 4 +- .../Maturity/Form/Type/ImportModeleType.php | 2 +- src/Domain/Registry/Form/Type/ProofType.php | 2 +- .../Admin/Duplication/processing.html.twig | 92 +++++++++++-------- .../Documentation/Category/delete.html.twig | 2 +- .../Documentation/Document/delete.html.twig | 2 +- .../Documentation/Document/list.html.twig | 2 +- .../Conformite_organisation/delete.html.twig | 2 +- translations/messages.fr.yaml | 1 + 24 files changed, 100 insertions(+), 108 deletions(-) create mode 100644 config/domain/aipd/translations/validators.fr.yaml delete mode 100644 config/domain/aipd/translations/validators.yaml create mode 100644 config/domain/documentation/translations/validators.fr.yaml create mode 100644 config/domain/maturity/translations/validators.fr.yaml diff --git a/assets/css/app.scss b/assets/css/app.scss index 581d6fe49..68a83d122 100644 --- a/assets/css/app.scss +++ b/assets/css/app.scss @@ -324,52 +324,6 @@ body.show .content ul { visibility: visible; } -/* LOADER */ -.lds-ellipsis { - display: inline-block; - position: relative; - width: 14px; - height: 14px; - div { - position: absolute; - top: 6px; - width: 2px; - height: 2px; - border-radius: 50%; - background: #000000; - animation-timing-function: cubic-bezier(0, 1, 1, 0); - } - div:nth-child(1) { - left: 1.3px; - animation: lds-ellipsis1 0.6s infinite; - } - div:nth-child(2) { - left: 1.3px; - animation: lds-ellipsis2 0.6s infinite; - } - div:nth-child(3) { - left: 5.7px; - animation: lds-ellipsis2 0.6s infinite; - } - div:nth-child(4) { - left: 10px; - animation: lds-ellipsis3 0.6s infinite; - } -} - -@keyframes lds-ellipsis1 { - 0% { transform: scale(0); } - 100% { transform: scale(1); } -} -@keyframes lds-ellipsis3 { - 0% { transform: scale(1); } - 100% { transform: scale(0); } -} -@keyframes lds-ellipsis2 { - 0% { transform: translate(0, 0); } - 100% { transform: translate(4px, 0); } -} - #tooltip { display:none; position:fixed; diff --git a/config/domain/admin/translations/messages.fr.yaml b/config/domain/admin/translations/messages.fr.yaml index a21ef4280..680ad5d5a 100644 --- a/config/domain/admin/translations/messages.fr.yaml +++ b/config/domain/admin/translations/messages.fr.yaml @@ -4,10 +4,14 @@ admin: duplicate: Traitement de la duplication new: Module de duplication label: - data: Données à dupliquer - source_collectivity: Structure source type: Type de données + source_collectivity: Structure source + data: Données à dupliquer message_confirm: Attention, vous allez dupliquer des éléments sur un ensemble de structures. + progress: Statut + duplicate: Dupliqué + in_progress: En cours + error: Erreur tab: source: Données sources target: Données cibles @@ -15,6 +19,14 @@ admin: duplicate: Traitement de la duplication new: Module de duplication action: - revert: Annuler la dernière duplication* + revert: Annuler la dernière duplication new_submit: Dupliquer confirm_submit: Confirmer la duplication + flashbag: + success: + duplicate_end: Duplication effectuée. Vous pouvez maintenant fermer cette page. + error: + progress_error: Une erreur est survenue + warning: + duplicate_in_progress: Duplication des données en cours. + progress_warning: Toute fermeture avant la finalisation de la duplication causera une duplication partielle des données. diff --git a/config/domain/aipd/translations/validators.fr.yaml b/config/domain/aipd/translations/validators.fr.yaml new file mode 100644 index 000000000..45347b256 --- /dev/null +++ b/config/domain/aipd/translations/validators.fr.yaml @@ -0,0 +1,5 @@ +aipd_validator: + fichier: + file: "Le type du fichier est invalide. Les fichiers autorisés sont : .jpg, .jpeg, .png" + import: + not_xml: Le type du fichier est invalide. Seul le type de fichier .xml est autorisé. diff --git a/config/domain/aipd/translations/validators.yaml b/config/domain/aipd/translations/validators.yaml deleted file mode 100644 index 450744481..000000000 --- a/config/domain/aipd/translations/validators.yaml +++ /dev/null @@ -1,4 +0,0 @@ -aipd: - critere_principe_fondamental: - fichier: - file: Vous ne pouvez associer qu'un document de type png ou jpg diff --git a/config/domain/aipd/validation/critere_principe_fondamental.yaml b/config/domain/aipd/validation/critere_principe_fondamental.yaml index 906e6d1b4..a4ab52f9f 100644 --- a/config/domain/aipd/validation/critere_principe_fondamental.yaml +++ b/config/domain/aipd/validation/critere_principe_fondamental.yaml @@ -6,5 +6,5 @@ App\Domain\Aipd\Model\CriterePrincipeFondamental: mimeTypes: - image/jpeg - image/png - mimeTypesMessage: 'aipd.critere_principe_fondamental.fichier.file' + mimeTypesMessage: 'aipd_validator.fichier.file' groups: ['default'] diff --git a/config/domain/documentation/translations/messages.fr.yaml b/config/domain/documentation/translations/messages.fr.yaml index 8d7024597..57e2c0b27 100644 --- a/config/domain/documentation/translations/messages.fr.yaml +++ b/config/domain/documentation/translations/messages.fr.yaml @@ -29,6 +29,7 @@ documentation: categories: Catégories islink: Lien direct thumbnail: Miniature + delete_confirm: Souhaitez-vous vraiment supprimer le document "%object%" ? breadcrumb: create: Nouveau document edit: Modifier un document @@ -66,6 +67,7 @@ documentation: count: Total label: name: Catégorie + delete_confirm: Souhaitez-vous vraiment supprimer la catégorie "%object%" ? title: edit: Modifier une catégorie delete: Supprimer une catégorie diff --git a/config/domain/documentation/translations/validators.fr.yaml b/config/domain/documentation/translations/validators.fr.yaml new file mode 100644 index 000000000..0d7dccce4 --- /dev/null +++ b/config/domain/documentation/translations/validators.fr.yaml @@ -0,0 +1,4 @@ +document_validator: + document_file: + thumbnail: "Le type du fichier est invalide. Les fichiers autorisés sont : .jpg, .jpeg, .png." + file: "Le type du fichier est invalide. Les fichiers autorisés sont : .jpg, .jpeg, .png, .mp3, .m4a, .ogg, .wav, .mp4, .mov, .wmv, .avi, .mpg, .ogv, .ogg, .webm, .pdf, .doc, .docx, .odt, .ppt, .pptx, .odp, .xls, .xlsx, .xlsm, ods." diff --git a/config/domain/maturity/translations/validators.fr.yaml b/config/domain/maturity/translations/validators.fr.yaml new file mode 100644 index 000000000..b22682eeb --- /dev/null +++ b/config/domain/maturity/translations/validators.fr.yaml @@ -0,0 +1,3 @@ +referentiel_validator: + import: + not_xml: Le type du fichier est invalide. Seul le type de fichier .xml est autorisé. diff --git a/config/domain/registry/translations/messages.fr.yaml b/config/domain/registry/translations/messages.fr.yaml index 2a08768e2..4035717c0 100644 --- a/config/domain/registry/translations/messages.fr.yaml +++ b/config/domain/registry/translations/messages.fr.yaml @@ -437,6 +437,7 @@ registry: label: date: Date de l'évaluation participants: Participants + delete_confirm: Souhaitez-vous vraiment supprimer l'évaluation "%object%" ? list: pilote: Pilote processus: Processus diff --git a/config/domain/registry/translations/validators.fr.yaml b/config/domain/registry/translations/validators.fr.yaml index 00a8af1e7..277d2ff5a 100644 --- a/config/domain/registry/translations/validators.fr.yaml +++ b/config/domain/registry/translations/validators.fr.yaml @@ -28,7 +28,7 @@ registry_contractor: registry_proof: document_file: not_null: Vous devez ajouter un document - file: Vous ne pouvez associer qu'un document de type png, jpg, pdf, doc, docx, odt, xls, xlsx ou ods + file: "Le type du fichier est invalide. Les fichiers autorisés sont : .jpg, .jpeg, .png, .pdf, .doc, .docx, .odt, .ppt, .pptx, .xls, .xlsx, .xlsm, .ods." name: not_blank: Vous devez saisir un nom diff --git a/config/domain/user/translations/messages.fr.yaml b/config/domain/user/translations/messages.fr.yaml index 31998f705..ce325c5aa 100644 --- a/config/domain/user/translations/messages.fr.yaml +++ b/config/domain/user/translations/messages.fr.yaml @@ -64,7 +64,7 @@ user: management_commitment: Engagement de la direction continuous_improvement: Principe d'amélioration continue delete_confirm: Souhaitez-vous vraiment supprimer la structure "%object%" ? - delete_confirm_list: "La suppression de la structure entrainera la suppression de toutes les données liées à cette structure :" + delete_confirm_list: "La suppression de la structure entraînera la suppression de toutes les données liées à cette structure :" update_related_objects: "Mise à jour des éléments rattachés :" update_duplicate: Éléments dupliqués delete_related_objects: "Suppression des éléments rattachés :" diff --git a/src/Domain/AIPD/Form/Type/AnalyseCriterePrincipeFondamentalType.php b/src/Domain/AIPD/Form/Type/AnalyseCriterePrincipeFondamentalType.php index 25562de3b..ea082e288 100644 --- a/src/Domain/AIPD/Form/Type/AnalyseCriterePrincipeFondamentalType.php +++ b/src/Domain/AIPD/Form/Type/AnalyseCriterePrincipeFondamentalType.php @@ -49,7 +49,7 @@ class AnalyseCriterePrincipeFondamentalType extends AbstractType 'image/jpg', // .jpg 'image/jpeg', // .jpeg ], - 'mimeTypesMessage' => 'Les formats autorisés sont .png, .jpg, .jpeg.', + 'mimeTypesMessage' => 'aipd_validator.fichier.file', ]), ], ]) diff --git a/src/Domain/AIPD/Form/Type/CriterePrincipeFondamentalType.php b/src/Domain/AIPD/Form/Type/CriterePrincipeFondamentalType.php index 1bf229adb..3bae48f4e 100644 --- a/src/Domain/AIPD/Form/Type/CriterePrincipeFondamentalType.php +++ b/src/Domain/AIPD/Form/Type/CriterePrincipeFondamentalType.php @@ -78,7 +78,7 @@ class CriterePrincipeFondamentalType extends AbstractType 'image/jpeg', 'image/png', ], -// 'mimeTypesMessage' => 'aipd.critere_principe_fondamental.fichier.file', +// 'mimeTypesMessage' => 'aipd_validator.fichier.file', 'groups' => ['default'], ]), ], diff --git a/src/Domain/AIPD/Form/Type/ImportModeleType.php b/src/Domain/AIPD/Form/Type/ImportModeleType.php index aa2269475..bdfac757b 100644 --- a/src/Domain/AIPD/Form/Type/ImportModeleType.php +++ b/src/Domain/AIPD/Form/Type/ImportModeleType.php @@ -23,7 +23,7 @@ class ImportModeleType extends AbstractType $builder ->add('file', FileType::class, [ 'required' => true, - 'label' => 'Sélectionner un fichier XML à importer', + 'label' => 'global.label.import_xml', 'constraints' => [ new File([ 'maxSize' => $this->maxSize, @@ -31,7 +31,7 @@ class ImportModeleType extends AbstractType 'application/xml', 'text/xml', ], - 'mimeTypesMessage' => 'Merci d\'importer un fichier XML', + 'mimeTypesMessage' => 'aipd_validator.import.not_xml', ]), ], ]) diff --git a/src/Domain/Admin/Form/Type/DuplicationType.php b/src/Domain/Admin/Form/Type/DuplicationType.php index 085a7a826..3c05d0450 100644 --- a/src/Domain/Admin/Form/Type/DuplicationType.php +++ b/src/Domain/Admin/Form/Type/DuplicationType.php @@ -75,7 +75,7 @@ class DuplicationType extends AbstractType ]) ->add('sourceCollectivity', EntityType::class, [ 'class' => UserModel\Collectivity::class, - 'label' => 'admin.duplication.label.source_collectivity', + 'label' => 'admin.duplication.label.source_organization', 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('c') ->orderBy('c.name', 'ASC'); diff --git a/src/Domain/Documentation/Form/Type/DocumentType.php b/src/Domain/Documentation/Form/Type/DocumentType.php index 396d82383..6940c43d2 100644 --- a/src/Domain/Documentation/Form/Type/DocumentType.php +++ b/src/Domain/Documentation/Form/Type/DocumentType.php @@ -98,7 +98,7 @@ class DocumentType extends AbstractType implements EventSubscriberInterface 'image/jpg', // .jpg 'image/jpeg', // .jpeg ], - 'mimeTypesMessage' => 'Les formats autorisés sont .png, .jpg, .jpeg.', + 'mimeTypesMessage' => 'document_validator.document_file.file', ]), ], 'attr' => [ @@ -202,7 +202,7 @@ class DocumentType extends AbstractType implements EventSubscriberInterface 'application/vnd.ms-excel.sheet.macroEnabled.12', // .xlsm 'application/vnd.oasis.opendocument.spreadsheet', // .ods ], - 'mimeTypesMessage' => "Ce format de fichier n'est pas autorisé.", + 'mimeTypesMessage' => 'registry_proof.document_file.file', ]), ], ]); diff --git a/src/Domain/Maturity/Form/Type/ImportModeleType.php b/src/Domain/Maturity/Form/Type/ImportModeleType.php index 74d4137ae..452266ad6 100644 --- a/src/Domain/Maturity/Form/Type/ImportModeleType.php +++ b/src/Domain/Maturity/Form/Type/ImportModeleType.php @@ -31,7 +31,7 @@ class ImportModeleType extends AbstractType 'application/xml', 'text/xml', ], - 'mimeTypesMessage' => 'Merci d\'importer un fichier XML', + 'mimeTypesMessage' => 'referentiel_validator.import.not_xml', ]), ], ]) diff --git a/src/Domain/Registry/Form/Type/ProofType.php b/src/Domain/Registry/Form/Type/ProofType.php index 2b5aa1598..4d75f2622 100644 --- a/src/Domain/Registry/Form/Type/ProofType.php +++ b/src/Domain/Registry/Form/Type/ProofType.php @@ -93,7 +93,7 @@ class ProofType extends AbstractType 'constraints' => [ new File([ 'maxSize' => $this->maxSize, -// 'mimeTypesMessage' => 'registry_proof.document_file.file', + 'mimeTypesMessage' => 'registry_proof.document_file.thumbnail', 'mimeTypes' => [ // JPG / PNG 'image/jpeg', diff --git a/templates/Admin/Duplication/processing.html.twig b/templates/Admin/Duplication/processing.html.twig index ad7fc6f27..69604d84b 100644 --- a/templates/Admin/Duplication/processing.html.twig +++ b/templates/Admin/Duplication/processing.html.twig @@ -22,54 +22,68 @@ <div class="col-xs-12"> {# Warning message #} <div role="status" id="duplication-status-flashbag" class="alert alert-warning"> - <strong>ATTENTION</strong><br/> - Cette page réalise et vous informe de l'avancée du traitement de la duplication.<br/> - Toute fermeture avant la finalisation de la duplication causera une <strong>duplication partielle</strong> des données. + <p><i aria-hidden="true" class="icon fa fa-spinner"></i><strong>{{ 'admin.duplication.flashbag.warning.duplicate_in_progress'|trans({'%object%': object}) }}</strong></p> + <p>{{ 'admin.duplication.flashbag.warning.progress_warning'|trans }}</p> </div> </div> </div> <div class="row"> - <div class="col-xs-12"> - <div class="box box-solid"> - <div class="box-body"> - - <div class="col-md-6"> - <div> - <p> - <strong>Type des données dupliquées : </strong> - {{ duplication.type|dictionary('admin_duplication_type') }} - </p> - <p> - <strong>Données à dupliquer : </strong> - <ul> - {% for item in duplication.data %} - <li>{{ item }}</li> - {% endfor %} - </ul> - </p> - </div> - </div> - - <div class="col-md-6"> - <table class="table table-striped "> - <thead> + + {# LEFT #} + <div class="col-md-6"> + {# SOURCE DATA #} + <div class="box box-solid box-default"> + <div class="box-header with-border"><h3 class="box-title">{{ 'admin.duplication.tab.source'|trans }}</h3></div> + <div class="box-body no-padding"> + <table role="presentation" class="table"> + <tbody> + <tr> + <td><strong>{{ 'admin.duplication.label.type'|trans }}</strong></td> + <td>{{ duplication.type|dictionary('admin_duplication_type') }}</td> + </tr> <tr> - <th scope="col">Structure(s) cible</th> - <th scope="col">Avancement</th> + <td><strong>{{ 'admin.duplication.label.source_collectivity'|trans }}</strong></td> + <td>{{ duplication.sourceCollectivity }}</td> </tr> - </thead> - <tbody> + <tr> + <td><strong>{{ 'admin.duplication.label.data'|trans }}</strong></td> + <td> + <ul> + {% for item in duplication.data %} + <li>{{ item }}</li> + {% endfor %} + </ul> + </td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + + {# RIGHT #} + <div class="col-md-6"> + {# TARGET DATA #} + <div class="box box-solid box-default"> + <div class="box-header with-border"><h3 class="box-title">{{ 'admin.duplication.tab.target'|trans }}</h3></div> + <div class="box-body no-padding"> + <table class="table table-striped"> + <thead> + <tr> + <th scope="col">{{ 'global.label.organization'|trans }}</th> + <th scope="col">{{ 'admin.duplication.label.progress'|trans }}</th> + </tr> + </thead> + <tbody> {% for collectivity in duplication.targetCollectivities %} <tr id="collectivity-{{ collectivity.id }}"> <td>{{ collectivity }}</td> <td class="duplication-status">{# Content will be added dynamically thanks to JS #}</td> </tr> {% endfor %} - </tbody> - </table> - </div> - + </tbody> + </table> </div> </div> </div> @@ -108,9 +122,9 @@ }; // ROW STATUS UPDATES - const showRowProcess = (collectivityId) => $(`#collectivity-${collectivityId} .duplication-status`).html('<div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>'); - const showRowSuccess = (collectivityId) => $(`#collectivity-${collectivityId} .duplication-status`).html('<i aria-hidden="true" class="fa fa-check text-green"></i>'); - const showRowError = (collectivityId) => $(`#collectivity-${collectivityId} .duplication-status`).html('<i aria-hidden="true" class="fa fa-times text-red"></i>'); + const showRowProcess = (collectivityId) => $(`#collectivity-${collectivityId} .duplication-status`).html('<span class="badge bg-yellow">{{ 'admin.duplication.label.in_progress'|trans }}</span>'); + const showRowSuccess = (collectivityId) => $(`#collectivity-${collectivityId} .duplication-status`).html('<span class="badge bg-green">{{ 'admin.duplication.label.duplicate'|trans }}</span>'); + const showRowError = (collectivityId) => $(`#collectivity-${collectivityId} .duplication-status`).html('<span class="badge bg-red">{{ 'admin.duplication.label.error'|trans }}</span>'); // Pipe actions to handle when every duplication queries are done const handleCompleteDuplication = () => { @@ -123,7 +137,7 @@ let flashbag = $('#duplication-status-flashbag'); flashbag.hasClass('alert-warning') && flashbag.removeClass('alert-warning'); flashbag.addClass('alert-success'); - flashbag.html('<strong>Duplication effectuée</strong><br/>Vous pouvez dorénavant fermer cette page. Le résultat de la duplication est disponible dans le tableau ci-dessous.'); + flashbag.html('<i aria-hidden="true" class="icon fa fa-check"></i>{{ 'admin.duplication.flashbag.success.duplicate_end'|trans }}'); }; $(document).ready(function() { diff --git a/templates/Documentation/Category/delete.html.twig b/templates/Documentation/Category/delete.html.twig index fc96fbbc9..4bdbd6c90 100644 --- a/templates/Documentation/Category/delete.html.twig +++ b/templates/Documentation/Category/delete.html.twig @@ -26,7 +26,7 @@ <div class="box box-solid"> <div class="box-header"></div> <div class="box-body"> - Souhaitez vous vraiment supprimer la catégorie {{ object.name }} ? + <p>{{ 'documentation.category.label.delete_confirm'|trans({'%object%': object.name }) }}</p> </div> <div class="box-footer"> <a href="{{ path('documentation_category_list') }}" class="btn btn-default"> diff --git a/templates/Documentation/Document/delete.html.twig b/templates/Documentation/Document/delete.html.twig index b41d9c830..a6facb6bf 100644 --- a/templates/Documentation/Document/delete.html.twig +++ b/templates/Documentation/Document/delete.html.twig @@ -26,7 +26,7 @@ <div class="box box-solid"> <div class="box-header"></div> <div class="box-body"> - Souhaitez vous vraiment supprimer le document {{ object.name }} ? + <p>{{ 'documentation.document.label.delete_confirm'|trans({'%object%': object.name }) }}</p> </div> <div class="box-footer"> <a href="{{ path('documentation_document_index') }}" class="btn btn-default"> diff --git a/templates/Documentation/Document/list.html.twig b/templates/Documentation/Document/list.html.twig index 9f5080022..dc6df930d 100644 --- a/templates/Documentation/Document/list.html.twig +++ b/templates/Documentation/Document/list.html.twig @@ -94,7 +94,7 @@ </th> <th scope="col"></th> <th scope="col"> - <input class="form-control" type="text" id="search_name" placeholder="Nom" style="width: 100%;"> + <input class="form-control" type="text" id="search_name" placeholder="{{ 'documentation.document.label.name'|trans }}" style="width: 100%;"> </th> <th scope="col"> <select class="form-control selectpicker" id="search_category" style="width: 100%;" multiple> diff --git a/templates/Registry/Conformite_organisation/delete.html.twig b/templates/Registry/Conformite_organisation/delete.html.twig index 3c7d2d3fa..f93cdc4d4 100644 --- a/templates/Registry/Conformite_organisation/delete.html.twig +++ b/templates/Registry/Conformite_organisation/delete.html.twig @@ -26,7 +26,7 @@ <div class="box box-solid"> <div class="box-header"></div> <div class="box-body"> - Souhaitez vous vraiment supprimer l'évaluation "{{ object }}" ? + <p>{{ 'registry.conformite_organisation.label.delete_confirm'|trans({'%object%': object }) }}</p> </div> <div class="box-footer"> <a href="{{ path('registry_conformite_organisation_list') }}" class="btn btn-default"> diff --git a/translations/messages.fr.yaml b/translations/messages.fr.yaml index 8a57c6f88..cbffdfaf3 100644 --- a/translations/messages.fr.yaml +++ b/translations/messages.fr.yaml @@ -41,6 +41,7 @@ global: created_by : Créé par updated_at : Date de modification updated_by : Modifié par + import_xml: Sélectionner un fichier XML à importer no_data: Aucun élément à afficher linked_treatment: Traitements no_linked_treatment: Aucun traitement associé -- GitLab