<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

/**
 * French strings for local_kid.
 *
 * @package    local_kid
 */

defined('MOODLE_INTERNAL') || die();

$string['pluginname'] = 'KID — Évaluation par compétences';

// Navigation.
$string['nav_dashboard'] = 'Tableau de bord';
$string['nav_evaluations'] = 'Enseignements';
$string['nav_stages'] = 'Stages';
$string['nav_capp'] = 'Conseil d\'apprentissage';
$string['nav_student'] = 'Vue élève';
$string['nav_admin'] = 'Administration';
$string['nav_annuaire'] = 'Annuaire';

// Capacités (identifiant = capacité sans le préfixe local/kid:).
$string['kid:view'] = 'Accéder au plugin, au tableau de bord et aux écrans de consultation';
$string['kid:evaluate_evaluation'] = 'Saisir, valider, finaliser et rouvrir les dossiers d\'évaluation';
$string['kid:evaluate_stage'] = 'Saisir, valider, finaliser et rouvrir les dossiers de stage';
$string['kid:evaluate_capp'] = 'Saisir, valider, finaliser et rouvrir les dossiers du conseil d\'apprentissage';
$string['kid:sync_moodle'] = 'Rattacher un devoir Moodle et synchroniser ses feedbacks avec une évaluation';
$string['kid:publish_evaluation'] = 'Publier les dossiers d\'évaluation aux élèves';
$string['kid:publish_stage'] = 'Publier les dossiers de stage aux élèves';
$string['kid:publish_capp'] = 'Publier les dossiers du conseil d\'apprentissage aux élèves';
$string['kid:manage_evaluation'] = 'Administrer le référentiel des évaluations (créer, modifier, activer, supprimer)';
$string['kid:manage_stage'] = 'Administrer le référentiel des stages (créer, modifier, activer, supprimer)';
$string['kid:manage_capp'] = 'Administrer les sessions du conseil d\'apprentissage (créer, modifier, activer, supprimer)';
$string['kid:manage'] = 'Administrer les compétences, niveaux, promotions, cohortes et suppressions';
$string['kid:export_adesi'] = 'Générer les fichiers d\'export ADESI';
$string['kid:selectpromotion'] = 'Choisir la promotion affichée (sélecteur global)';
$string['kid:viewany'] = 'Prévisualiser le dossier de n\'importe quel élève';
$string['kid:viewown'] = 'Consulter uniquement son propre dossier élève publié';
$string['kid:viewjournal'] = 'Consulter le journal d\'audit des actions utilisateurs';
$string['kid:viewannuaire'] = 'Consulter l\'annuaire des élèves';
$string['kid:managedashboardfavourites'] = 'Gérer ses vues enregistrées (Comparateur de bilans)';

// Écrans (titres placeholder de la Phase 0, remplacés phase par phase).
$string['page_dashboard'] = 'Tableau de bord';
$string['page_evaluations'] = 'Enseignements';
$string['page_stages'] = 'Stages';
$string['page_capp'] = 'Conseil d\'apprentissage';
$string['page_student'] = 'Vue élève';
$string['page_admin'] = 'Administration';
$string['page_annuaire'] = 'Annuaire';
$string['page_comparateur'] = 'Comparateur de bilans';
$string['placeholder_notice'] = 'Cet écran sera construit dans une prochaine phase.';

$string['role_badge'] = 'Rôle : {$a}';

// Journal (audit trail).
$string['journal_filter_author'] = 'Auteur';
$string['journal_filter_promotion'] = 'Promotion';
$string['journal_filter_domain'] = 'Domaine';
$string['journal_filter_action'] = 'Type d\'action';
$string['journal_filter_student'] = 'Élève';
$string['journal_filter_datefrom'] = 'Du';
$string['journal_filter_dateto'] = 'Au';
$string['journal_filter_all'] = 'Tous';
$string['journal_filter_apply'] = 'Filtrer';
$string['journal_filter_reset'] = 'Réinitialiser';
$string['journal_col_date'] = 'Date';
$string['journal_col_author'] = 'Auteur';
$string['journal_col_domain'] = 'Domaine';
$string['journal_col_action'] = 'Action';
$string['journal_col_promotion'] = 'Promotion';
$string['journal_col_student'] = 'Élève';
$string['journal_col_details'] = 'Détails';
$string['journal_count'] = '{$a} entrée(s)';
$string['journal_empty'] = 'Aucune entrée de journal ne correspond à ces filtres.';
$string['journal_diff_empty'] = '(vide)';
$string['journal_diff_nolevel'] = '(aucun niveau)';
$string['journal_diff_unknown'] = '(inconnu)';

// Annuaire des élèves.
$string['annuaire_filter_query'] = 'Rechercher (nom, prénom)';
$string['annuaire_filter_promotion'] = 'Promotion';
$string['annuaire_filter_all'] = 'Toutes';
$string['annuaire_filter_apply'] = 'Filtrer';
$string['annuaire_filter_reset'] = 'Réinitialiser';
$string['annuaire_col_lastname'] = 'Nom';
$string['annuaire_col_firstname'] = 'Prénom';
$string['annuaire_col_promotion'] = 'Promotion';
$string['annuaire_col_dossier'] = 'Dossier';
$string['annuaire_col_promotionlink'] = 'Vue promotion';
$string['annuaire_link_dossier'] = 'Ouvrir le dossier';
$string['annuaire_link_promotion'] = 'Voir la promotion';
$string['annuaire_count'] = '{$a} élève(s)';
$string['annuaire_empty'] = 'Aucun élève ne correspond à ces filtres.';

// Comparateur de bilans.
$string['comparateur_filter_students'] = 'Élèves';
$string['comparateur_filter_sources'] = 'Sources';
$string['comparateur_filter_levels'] = 'Filtrer par niveau';
$string['comparateur_filter_competencies'] = 'Compétences';
$string['comparateur_filter_apply'] = 'Filtrer';
$string['comparateur_search'] = 'Rechercher…';
$string['comparateur_selectall'] = 'Tout sélectionner';
$string['comparateur_selectnone'] = 'Tout effacer';
$string['comparateur_toggle_comments'] = 'Afficher les commentaires';
$string['comparateur_toggle_onlyobserved'] = 'Masquer les compétences non observées';
$string['comparateur_col_competence'] = 'Compétence';
$string['comparateur_empty_title'] = 'Rien à comparer pour l\'instant';
$string['comparateur_empty'] = 'Choisissez au moins un élève et une source (évaluation, stage ou CAPP) dans le panneau de gauche.';
$string['comparateur_nomatch'] = 'Aucune donnée ne correspond à ces filtres pour cet élève.';
$string['comparateur_nostats'] = 'Aucune sélection.';
$string['comparateur_stats'] = '{$a->students} élève(s) · {$a->sources} source(s) · {$a->cells} case(s) observée(s)';
$string['comparateur_card_stats'] = '{$a->competencies} compétence(s) · {$a->sources} source(s)';
$string['comparateur_outofscope'] = 'Cette source n\'évalue pas cette compétence';
$string['comparateur_seemore'] = 'voir plus';
$string['comparateur_export_csv'] = 'Exporter la sélection (CSV)';
$string['comparateur_export_xlsx'] = 'Exporter la sélection (XLSX)';
$string['comparateur_export_col_promotion'] = 'Promotion';
$string['comparateur_export_col_student'] = 'Élève';
$string['comparateur_export_col_code'] = 'Code';
$string['comparateur_export_col_competency'] = 'Compétence';
$string['comparateur_export_col_source'] = 'Source';
$string['comparateur_export_col_type'] = 'Type';
$string['comparateur_export_col_niveau'] = 'Niveau';
$string['comparateur_export_col_commentaire'] = 'Commentaire';
$string['comparateur_type_eval'] = 'Évaluation';
$string['comparateur_type_stage'] = 'Stage';
$string['comparateur_type_capp'] = 'CAPP';
$string['comparateur_drawer_title'] = 'Détail';
$string['comparateur_drawer_close'] = 'Fermer';
$string['comparateur_drawer_competency'] = 'Compétence';
$string['comparateur_drawer_source'] = 'Source';
$string['comparateur_drawer_niveau'] = 'Niveau';
$string['comparateur_drawer_comment'] = 'Commentaire';
$string['comparateur_drawer_saisie'] = 'Ouvrir la page de saisie →';
$string['comparateur_favoris_title'] = 'Vues enregistrées';
$string['comparateur_favoris_placeholder'] = 'Nom de la vue…';
$string['comparateur_favoris_save'] = 'Enregistrer';
$string['comparateur_favoris_rename'] = 'Renommer';
$string['comparateur_favoris_delete'] = 'Supprimer';
$string['comparateur_favoris_empty'] = 'Aucune vue enregistrée. Réglez vos filtres, nommez la vue puis Enregistrer.';

// Administration — onglets.
$string['admintab_competences'] = 'Compétences';
$string['admintab_niveaux'] = 'Niveaux';
$string['admintab_promotions'] = 'Promotions';
$string['admintab_stages'] = 'Stages';
$string['admintab_evaluations'] = 'Enseignements';
$string['admintab_capp'] = 'CAPP';
$string['admintab_export'] = 'Export ADESI';
$string['admintab_journal'] = 'Journal';

// Promotions.
$string['promotion_name'] = 'Nom de la promotion';
$string['promotion_add_title'] = 'Ajouter une promotion';
$string['promotion_rename_title'] = 'Renommer la promotion';
$string['promotion_link_title'] = 'Lier une cohorte Moodle';
$string['promotion_add'] = 'Ajouter une promotion';
$string['promotion_col_name'] = 'Promotion';
$string['promotion_col_cohort'] = 'Cohorte liée';
$string['promotion_col_students'] = 'Élèves';
$string['promotion_col_status'] = 'Statut';
$string['promotion_col_actions'] = 'Actions';
$string['promotion_status_active'] = 'Active';
$string['promotion_status_inactive'] = 'Inactive';
$string['promotion_cohort_none'] = 'Aucune';
$string['promotion_cohort_deleted'] = 'Cohorte supprimée';
$string['promotion_unlinked'] = 'Cohorte déliée. Les élèves déjà enregistrés restent conservés.';
$string['promotion_link_result'] = '{$a->addedcount} élève(s) ajouté(s), {$a->removedcount} retiré(s).';
$string['action_rename'] = 'Renommer';
$string['action_link'] = 'Lier une cohorte';
$string['action_unlink'] = 'Délier';
$string['action_resync'] = 'Resynchroniser';
$string['action_toggle_active'] = 'Activer/désactiver';
$string['promotion_delete_confirm'] = 'Supprimer définitivement cette promotion ? Cette action est irréversible : les élèves, le référentiel de compétences et toutes les données de saisie (évaluations, stages, CAPP) associés à cette promotion seront perdus.';
$string['promotion_deleted'] = 'Promotion supprimée.';
$string['promotion_delete_blocked_last'] = 'Impossible de supprimer : il doit rester au moins une promotion.';
$string['promotion_delete_blocked_current'] = 'Impossible de supprimer la promotion actuellement affichée. Affichez d\'abord une autre promotion.';

// Promotion switcher / états génériques.
$string['promotion_switch'] = 'Promotion';
$string['promotion_switch_go'] = 'Afficher';
$string['competences_admin_promotion'] = 'Promotion à configurer';
$string['no_promotion_yet'] = 'Aucune promotion n\'existe encore. Créez-en une dans l\'onglet Promotions.';
$string['action_edit'] = 'Modifier';
$string['action_delete'] = 'Supprimer';

// Compétences.
$string['competency_libelle'] = 'Libellé';
$string['competency_codeadesi'] = 'Code ADESI / Karuta';
$string['competency_codeadesi_help'] = 'Code exact attendu par ADESI pour cette compétence, ex. @insp-2025-2027-a-c01-COMM. Jamais généré automatiquement.';
$string['competency_active'] = 'Active';
$string['competency_add'] = 'Ajouter une compétence';
$string['competency_edit_title'] = 'Modifier la compétence';
$string['competency_col_code'] = 'Code';
$string['competency_deleted'] = 'Compétence supprimée.';
$string['competency_delete_blocked'] = 'Impossible de supprimer : cette compétence est utilisée par au moins une évaluation, un stage ou un CAPP.';
$string['competency_sync_framework'] = 'Référentiel Moodle';
$string['competency_sync_framework_help'] = 'La synchronisation ajoute les compétences manquantes et met à jour les libellés des compétences déjà synchronisées. Le code ADESI n\'est jamais écrasé après sa création initiale.';
$string['competency_sync_action'] = 'Synchroniser depuis un référentiel Moodle';
$string['competency_sync_none'] = 'Aucun référentiel de compétences Moodle disponible.';
$string['competency_sync_result'] = '{$a->added} compétence(s) ajoutée(s), {$a->updated} mise(s) à jour.';

// Niveaux.
$string['niveau_code'] = 'Code (immuable)';
$string['niveau_libelle'] = 'Libellé';
$string['niveau_couleur'] = 'Couleur';
$string['niveau_sortorder'] = 'Ordre';
$string['niveau_codeadesi'] = 'Code ADESI';
$string['niveau_rename_title'] = 'Renommer le niveau';

// Évaluations.
$string['eval_titre'] = 'Titre de l\'évaluation';
$string['eval_sourcetype'] = 'Type';
$string['eval_sourcetype_manual'] = 'Saisie manuelle';
$string['eval_sourcetype_devoir'] = 'Devoir Moodle';
$string['eval_devoir'] = 'Devoir Moodle';
$string['eval_devoir_category'] = 'Catégorie de cours';
$string['eval_devoir_category_placeholder'] = '— Choisir une catégorie —';
$string['eval_devoir_course'] = 'Cours';
$string['eval_devoir_course_placeholder_initial'] = 'Choisissez d\'abord une catégorie';
$string['eval_devoir_course_placeholder_ready'] = '— Choisir un cours —';
$string['eval_devoir_placeholder_initial'] = 'Choisissez d\'abord un cours';
$string['eval_devoir_placeholder_ready'] = '— Choisir un devoir —';
$string['eval_devoir_required'] = 'Veuillez choisir un devoir Moodle.';
$string['eval_competencies'] = 'Compétences concernées';
$string['eval_add'] = 'Ajouter une évaluation';
$string['eval_edit_title'] = 'Modifier l\'évaluation';
$string['eval_col_source'] = 'Type';
$string['eval_col_competencies'] = 'Compétences';
$string['eval_delete_confirm'] = 'Supprimer définitivement cette évaluation ? Cette action est irréversible et les données de saisie associées (dossiers et niveaux des élèves) seront perdues.';
$string['eval_deleted'] = 'Évaluation supprimée.';
$string['eval_template_global'] = 'Télécharger le modèle (toute la promotion)';
$string['eval_template_student'] = 'Télécharger le modèle (cet élève)';
$string['eval_import_action'] = 'Importer un CSV';
$string['eval_import_file'] = 'Fichier CSV';
$string['eval_import_format_help'] = 'CSV séparé par des points-virgules (;), encodage UTF-8. Colonnes attendues : code_eleve;nom;prenom;competence;niveau;commentaire — la compétence doit correspondre exactement à son nom complet (pas le code) et le niveau à son libellé (ou code) déjà défini. Les lignes commençant par # sont ignorées.';
$string['eval_import_submit'] = 'Importer';
$string['eval_import_result'] = '{$a} dossier(s) mis à jour.';
$string['eval_import_error_student'] = 'Ligne {$a} : élève introuvable (code_eleve inconnu).';
$string['eval_import_error_competency'] = 'Ligne {$a} : compétence introuvable (nom complet inconnu).';
$string['eval_import_error_niveau'] = 'Ligne {$a} : niveau introuvable (libellé ou code inconnu).';
$string['picker_intro_evaluations'] = 'Choisissez l\'évaluation à saisir, puis l\'élève.';
$string['picker_empty_evaluations'] = 'Aucune évaluation active pour cette promotion. Activez-en une dans Administration > Évaluations.';
$string['picker_intro_stages'] = 'Choisissez le stage à saisir, puis l\'élève.';
$string['picker_empty_stages'] = 'Aucun stage actif pour cette promotion. Activez-en un dans Administration > Stages.';
$string['picker_intro_capp'] = 'Choisissez la session de Conseil d\'apprentissage à saisir, puis l\'élève.';
$string['picker_empty_capp'] = 'Aucune session CAPP active pour cette promotion. Activez-en une dans Administration > CAPP.';

// Grille de saisie / workflow générique.
$string['entry_comment'] = 'Commentaire';
$string['entry_current_niveau'] = 'Niveau actuel';
$string['action_save'] = 'Enregistrer';
$string['action_open'] = 'Ouvrir';
$string['entry_col_student'] = 'Élève';
$string['entry_col_published'] = 'Publié';
$string['entry_back_to_summary'] = '← Retour au récapitulatif';
$string['niveau_none'] = '— Non renseigné —';

// Prévention des conflits sur les commentaires (amd/src/unsaved_guard.js, amd/src/conflict_view.js).
$string['guard_modal_title'] = 'Modifications non enregistrées';
$string['guard_modal_body'] = 'Des modifications n\'ont pas été enregistrées. Souhaitez-vous les sauvegarder avant de continuer ?';
$string['guard_btn_save'] = 'Enregistrer et continuer';
$string['guard_btn_back'] = 'Revenir à la fiche';
$string['guard_btn_discard'] = 'Continuer sans enregistrer';
$string['conflict_modal_title'] = 'Conflit de saisie';
$string['conflict_card_subtitle_author'] = 'Modifié par {$a} · comparez et recopiez ce que vous souhaitez conserver.';
$string['conflict_card_subtitle_noauthor'] = 'Modifié entre-temps · comparez et recopiez ce que vous souhaitez conserver.';
$string['conflict_col_mine'] = 'Votre saisie';
$string['conflict_col_db'] = 'Version en base';
$string['conflict_btn_keepmine'] = 'Conserver ma version';
$string['conflict_btn_keepdb'] = 'Garder la version en base';

// Historique du commentaire, lecture seule (amd/src/comment_history.js).
$string['history_link_single'] = 'Voir l\'historique (1 version)';
$string['history_link_multiple'] = 'Voir l\'historique ({$a} versions)';
$string['history_author_unknown'] = 'Auteur inconnu';
$string['history_date_format'] = '%d/%m/%Y à %Hh%M';
$string['history_modal_title'] = 'Historique du commentaire';
$string['history_current_badge'] = 'Version actuelle';

$string['workflow_saisie'] = 'Saisie';
$string['workflow_valide'] = 'Validé';
$string['workflow_finalise'] = 'Finalisé';
$string['workflow_action_validate'] = 'Valider';
$string['workflow_action_finalise'] = 'Finaliser';
$string['workflow_action_reopen'] = 'Rouvrir';
$string['published_yes'] = 'Publié';
$string['published_no'] = 'Non publié';

// Barre d'actions groupées (récapitulatif Évaluations/Stages/CAPP).
$string['bulk_select_all'] = 'Tout sélectionner';
$string['bulk_actions_label'] = 'Pour les élèves sélectionnés :';
$string['bulk_actions_choose'] = 'Choisir une action…';
$string['bulk_actions_apply'] = 'Appliquer';
$string['bulk_actions_count'] = '{$a} élève(s) sélectionné(s)';
$string['bulk_action_download_pdf'] = 'Télécharger la fiche PDF';
$string['bulk_action_download_docx'] = 'Télécharger la fiche Word (DOCX)';
$string['bulk_action_publish'] = 'Publier';
$string['bulk_action_hide'] = 'Masquer';
$string['bulk_action_export_capp_rapport'] = 'Télécharger le livret CAPP (PDF)';
$string['bulk_result_publish'] = '{$a} dossier(s) publié(s).';
$string['bulk_result_publish_ignored'] = '{$a->done} dossier(s) publié(s) · {$a->ignored} ignoré(s) (non finalisé(s)) : {$a->names}';
$string['bulk_result_hide'] = '{$a} dossier(s) masqué(s).';
$string['bulk_result_hide_ignored'] = '{$a->done} dossier(s) masqué(s) · {$a->ignored} ignoré(s) : {$a->names}';

// Stages.
$string['stage_libelle'] = 'Libellé du stage';
$string['stage_datedebut'] = 'Date de début';
$string['stage_datefin'] = 'Date de fin';
$string['stage_competencyscope'] = 'Compétences concernées';
$string['stage_competencyscope_all'] = 'Toutes les compétences actives';
$string['stage_competencyscope_custom'] = 'Sélection personnalisée';
$string['stage_add'] = 'Ajouter un stage';
$string['stage_edit_title'] = 'Modifier le stage';
$string['stage_col_libelle'] = 'Stage';
$string['stage_col_periode'] = 'Période';
$string['stage_col_scope'] = 'Compétences';
$string['stage_delete_confirm'] = 'Supprimer définitivement ce stage ? Cette action est irréversible et les données de saisie associées (dossiers, niveaux et documents des élèves) seront perdues.';
$string['stage_deleted'] = 'Stage supprimé.';
$string['stage_template_global'] = 'Télécharger le modèle (toute la promotion)';
$string['stage_template_student'] = 'Télécharger le modèle (cet élève)';
$string['stage_import_action'] = 'Importer un CSV';
$string['stage_import_file'] = 'Fichier CSV';
$string['stage_import_format_help'] = 'CSV séparé par des points-virgules (;), encodage UTF-8. Colonnes attendues : code_eleve;nom;prenom;competence;niveau;commentaire — la compétence doit correspondre exactement à son nom complet (pas le code) et le niveau à son libellé (ou code) déjà défini. Les lignes commençant par # sont ignorées.';
$string['stage_import_submit'] = 'Importer';
$string['stage_import_result'] = '{$a} dossier(s) mis à jour.';
$string['stage_import_error_student'] = 'Ligne {$a} : élève introuvable (code_eleve inconnu).';
$string['stage_import_error_competency'] = 'Ligne {$a} : compétence introuvable (nom complet inconnu).';
$string['stage_import_error_niveau'] = 'Ligne {$a} : niveau introuvable (libellé ou code inconnu).';
$string['stage_import_error_scope'] = 'Ligne {$a} : ignorée, hors de l\'élève sélectionné pour cet import individuel.';
$string['stage_import_error_locked'] = 'Ligne {$a} : ignorée, ce dossier est finalisé (verrouillé).';
$string['stage_commentaire_global'] = 'Commentaire global du stage';
$string['error_entry_locked'] = 'Ce dossier est finalisé, il n\'est plus modifiable. Réouvrez-le pour pouvoir le modifier.';

// Documents de stage.
$string['stagedoc_heading'] = 'Documents';
$string['stagedoc_none'] = 'Aucun document déposé.';
$string['stagedoc_help'] = 'Formats acceptés : PDF, Word, Excel.';
$string['stagedoc_upload'] = 'Déposer';
$string['stagedoc_upload_result'] = '{$a} fichier(s) déposé(s).';
$string['stagedoc_rejected'] = 'Fichier(s) refusé(s) (format non autorisé) : {$a}.';
$string['stagedoc_error_none'] = 'Aucun fichier valide n\'a été envoyé.';

// CAPP (Conseil d'apprentissage).
$string['capp_code'] = 'Code (ex. CAPP1)';
$string['capp_libelle'] = 'Libellé de la session';
$string['capp_add'] = 'Ajouter une session';
$string['capp_edit_title'] = 'Modifier la session';
$string['capp_col_code'] = 'Session';
$string['capp_unassigned'] = 'Non rattaché';
$string['capp_col_enseignements'] = 'Enseignements';
$string['capp_col_stages'] = 'Stages';
$string['capp_commentaire'] = 'Commentaire CAPP';
$string['capp_appreciation_globale'] = 'Appréciation d\'ensemble';
$string['capp_no_source'] = 'aucune évaluation/stage rattaché';
$string['capp_niveau_of'] = 'Niveau {$a}';
$string['capp_rattachement_heading'] = 'Rattachement des évaluations et stages';
$string['capp_rattachement_help'] = 'Rattachement consultatif uniquement : les niveaux/commentaires des évaluations et stages rattachés sont affichés en lecture seule dans la grille CAPP, jamais copiés automatiquement.';
$string['capp_session_delete_confirm'] = 'Supprimer définitivement cette session CAPP ? Cette action est irréversible et les données de saisie associées (dossiers, niveaux et appréciations des élèves) seront perdues.';
$string['capp_session_deleted'] = 'Session CAPP supprimée.';
$string['capp_no_rattachable'] = 'Aucune évaluation ni stage actif à rattacher.';
$string['capp_col_type'] = 'Type';
$string['capp_col_source'] = 'Élément';
$string['capp_col_session'] = 'Session CAPP';
$string['capp_recover_action'] = 'Récupérer les niveaux de la session précédente (toute la promotion)';
$string['capp_recover_one'] = 'Récupérer les niveaux de {$a}';
$string['capp_recover_bulk_notice'] = 'Récupérer les niveaux de la session {$a} pour toute la promotion (le commentaire n\'est jamais copié).';
$string['capp_recover_result'] = '{$a} niveau(x) récupéré(s).';
$string['capp_recover_bulk_result'] = '{$a->totalcopied} niveau(x) récupéré(s) pour {$a->studentcount} élève(s).';
$string['error_capp_code_duplicate'] = 'Ce code de session existe déjà pour cette promotion.';
$string['error_capp_fields_required'] = 'Le code et le libellé sont obligatoires.';

// CAPP — import CSV.
$string['capp_mode_saisie'] = 'Saisie directe';
$string['capp_mode_import'] = 'Import CSV';
$string['capp_template_action'] = 'Télécharger le modèle';
$string['capp_import_submit'] = 'Importer';
$string['capp_import_result'] = '{$a} dossier(s) mis à jour.';
$string['capp_import_competences_heading'] = 'Compétences';
$string['capp_import_competences_action'] = 'Importer un CSV';
$string['capp_import_competences_file'] = 'Fichier CSV (compétences)';
$string['capp_import_competences_format_help'] = 'CSV séparé par des points-virgules (;), encodage UTF-8. Colonnes attendues : code_eleve;nom;prenom;competence;niveau;commentaire — la compétence doit correspondre exactement à son nom complet (pas le code) et le niveau à son libellé (ou code) déjà défini. Ce fichier alimente le niveau CAPP final (jamais les niveaux des évaluations/stages sources). Les lignes commençant par # sont ignorées.';
$string['capp_import_appreciations_heading'] = 'Appréciation d\'ensemble';
$string['capp_import_appreciations_action'] = 'Importer un CSV';
$string['capp_import_appreciations_file'] = 'Fichier CSV (appréciations)';
$string['capp_import_appreciations_format_help'] = 'CSV séparé par des points-virgules (;), encodage UTF-8. Colonnes attendues : code_eleve;nom;prenom;appreciation — une ligne par élève. Ce fichier n\'écrit que l\'appréciation d\'ensemble, jamais les compétences (fichier séparé, importable indépendamment). Les lignes commençant par # sont ignorées.';
$string['capp_import_error_student'] = 'Ligne {$a} : élève introuvable (code_eleve inconnu).';
$string['capp_import_error_competency'] = 'Ligne {$a} : compétence introuvable (nom complet inconnu).';
$string['capp_import_error_niveau'] = 'Ligne {$a} : niveau introuvable (libellé ou code inconnu).';
$string['capp_import_error_locked'] = 'Ligne {$a} : ignorée, ce dossier est finalisé (verrouillé).';
$string['capp_import_appreciation_error_student'] = 'Ligne {$a} : élève introuvable (code_eleve inconnu).';
$string['capp_import_appreciation_error_locked'] = 'Ligne {$a} : ignorée, ce dossier est finalisé (verrouillé).';

// Livret CAPP (PDF).
$string['capp_rapport_action'] = 'Télécharger le livret PDF';
$string['capp_rapport_coverpage_title'] = 'Conseil d\'apprentissage';
$string['capp_rapport_generated'] = 'Données issues de {$a->source} en date du {$a->date}';
$string['capp_rapport_bilan_heading'] = 'Bilan général';
$string['capp_rapport_studentcount'] = 'Nombre d\'élèves : {$a}';
$string['capp_rapport_col_nonobserve'] = 'Non observé';
$string['capp_rapport_col_nonacquis'] = 'Non acquis';
$string['capp_rapport_col_encours'] = 'En cours d\'acquisition';
$string['capp_rapport_col_acquisdla'] = 'Acquis DLA';
$string['capp_rapport_col_niveau_previous'] = 'Niveau {$a}';
$string['capp_rapport_col_niveau_current'] = 'Niveau attribué sur la séquence {$a}';
$string['capp_rapport_student_heading'] = 'Élève : {$a}';
$string['capp_rapport_coverpage_promotion'] = 'Promotion';
$string['capp_rapport_sommaire_heading'] = 'Sommaire';
$string['capp_rapport_coverpage_bookmark'] = 'Page de garde';
$string['capp_rapport_header'] = 'Direction des stages et de l\'accompagnement des élèves - CAPP {$a->code} - promotion {$a->promotion}';
$string['capp_rapport_logo_marianne_alt'] = 'République Française, Liberté Égalité Fraternité';
$string['capp_rapport_logo_insp_alt'] = 'Institut national du service public';
$string['capp_rapport_pdf_title'] = 'Conseil d\'apprentissage {$a->session} — promotion {$a->promotion}';

// Tableau de bord.
$string['dashboard_title'] = 'Tableau de bord — {$a}';
$string['dashboard_subtitle'] = 'Vue consolidée et exports de la promotion.';
$string['dashboard_global_title'] = 'Tableau de bord — Vue globale';
$string['dashboard_global_subtitle'] = 'Toutes les promotions, tous établissements confondus.';
$string['dashboard_tab_global'] = 'Vue globale';
$string['dashboard_tab_apercu'] = 'Vue d\'ensemble';
$string['dashboard_tab_comparateur'] = 'Comparateur de bilans';
$string['dashboard_stat_students'] = 'Élèves';
$string['dashboard_stat_evals'] = 'Évaluations à valider';
$string['dashboard_stat_stages'] = 'Stages à compléter';
$string['dashboard_stat_capp_todo'] = 'CAPP à compléter';
$string['dashboard_stat_capp_done'] = 'CAPP finalisés';
$string['dashboard_badge_pending'] = 'En attente';
$string['dashboard_global_stat_promotions'] = 'Promotions';
$string['dashboard_global_stat_active'] = 'Promotions actives';
$string['dashboard_global_open'] = 'Ouvrir';
$string['dashboard_open_fiche'] = 'Voir la fiche';
$string['dashboard_export_view'] = 'Exporter cette vue (XLSX)';
$string['dashboard_see_more'] = 'Voir le commentaire';

// Vue élève et fiches.
$string['student_no_promotion'] = 'Aucune promotion active pour cet élève.';
$string['student_field_code'] = 'Code ENA';
$string['student_preview_select_label'] = 'Prévisualiser en tant qu\'élève';
$string['student_preview_go'] = 'Afficher';
$string['student_preview_banner'] = 'Aperçu du dossier de {$a} — vue en lecture seule.';

// Navigation entre élèves (écrans de saisie Évaluations/Stages/CAPP).
$string['student_nav_select_label'] = 'Élève :';
$string['student_nav_go'] = 'Afficher';
$string['student_nav_previous'] = 'Élève précédent';
$string['student_nav_next'] = 'Élève suivant';
$string['student_nav_counter'] = 'Élève {$a->position} sur {$a->total}';
$string['fiche_pdf_title'] = 'Fiche — {$a->student} — {$a->promotion}';
$string['student_section_eval'] = 'Mes évaluations d\'enseignement';
$string['student_section_eval_empty'] = 'Aucune évaluation publiée pour le moment.';
$string['student_section_eval_staff'] = 'Évaluations d\'enseignement';
$string['student_section_eval_empty_staff'] = 'Aucune évaluation pour le moment.';
$string['student_section_stage'] = 'Mes évaluations de stage';
$string['student_section_stage_empty'] = 'Aucune évaluation de stage publiée pour le moment.';
$string['student_section_stage_staff'] = 'Évaluations de stage';
$string['student_section_stage_empty_staff'] = 'Aucune évaluation de stage pour le moment.';
$string['student_section_capp'] = 'Mes CAPP';
$string['student_section_capp_empty'] = 'Aucun CAPP publié pour le moment.';
$string['student_section_capp_staff'] = 'Conseil d\'apprentissage (CAPP)';
$string['student_section_capp_empty_staff'] = 'Aucun CAPP pour le moment.';
$string['student_accordions_expand_all'] = 'Tout déplier';
$string['student_accordions_collapse_all'] = 'Tout replier';
$string['grid_competence'] = 'Compétence';
$string['grid_niveau'] = 'Niveau';
$string['grid_commentaire'] = 'Commentaire';
$string['fiche_download_student'] = 'Télécharger la fiche';
$string['fiche_format_docx'] = 'Word';
$string['fiche_format_pdf'] = 'PDF';
$string['error_no_active_students'] = 'Aucun élève actif dans cette promotion.';

// Réglages.
$string['setting_codeenafield'] = 'Champ de profil code_ena';
$string['setting_codeenafield_desc'] = 'Short name du champ de profil utilisateur Moodle porteur du code_ena attendu par ADESI (jamais le userid Moodle). Si absent/vide, la table de correspondance manuelle sert de repli.';
$string['setting_tasklookback'] = 'Fenêtre de la tâche planifiée';
$string['setting_tasklookback_desc'] = 'Un dossier synchronisé plus récemment que cette durée est ignoré au passage suivant de la tâche planifiée (optimisation uniquement, sans effet sur la synchronisation manuelle).';
$string['setting_journalretention'] = 'Durée de rétention du journal';
$string['setting_journalretention_desc'] = 'Les entrées du journal d\'audit plus anciennes que cette durée sont purgées automatiquement par une tâche planifiée quotidienne. Laisser à 0 désactive la purge (aucune entrée n\'est jamais supprimée). Valeur par défaut : 2 ans.';

// Synchronisation des feedbacks (administration des évaluations).
$string['eval_col_sync'] = 'Synchronisation';
$string['eval_sync_uptodate'] = 'À jour';
$string['eval_sync_changed_count'] = '{$a} feedback(s) modifié(s)';
$string['eval_sync_never'] = 'Jamais synchronisé';
$string['eval_sync_last'] = 'Dernière synchro : {$a}';
$string['eval_sync_action'] = 'Synchroniser';
$string['eval_sync_result'] = '{$a} dossier(s) synchronisé(s).';
$string['task_sync_moodle_feedback'] = 'Synchronisation des feedbacks Moodle (KID)';
$string['task_journal_purge'] = 'Purge du journal d\'audit (KID)';
$string['tabs_nav_label'] = 'Navigation par onglet';
$string['eval_feedback_heading'] = 'Feedback enseignant (Moodle)';
$string['eval_feedback_empty'] = 'Aucun feedback Moodle pour le moment.';
$string['eval_feedback_changed_notice'] = 'Le feedback Moodle a été modifié depuis la dernière synchronisation.';

// Export ADESI.
$string['adesi_help'] = 'L\'export est construit uniquement à partir des CAPP finalisés et des champs saisis dans l\'écran Conseil d\'apprentissage.';
$string['adesi_preview_heading'] = 'Prévisualisation';
$string['adesi_rows_niveaux'] = 'Lignes exportables (niveaux)';
$string['adesi_rows_commentaires'] = 'Lignes exportables (commentaires)';
$string['adesi_errors_heading'] = 'Erreurs bloquantes';
$string['adesi_download_niveaux'] = 'Télécharger le CSV niveaux';
$string['adesi_download_commentaires'] = 'Télécharger le CSV commentaires';
$string['adesi_export_blocked'] = 'Export impossible : des erreurs bloquantes subsistent. Voir la prévisualisation.';
$string['adesi_error_norows'] = 'Aucune ligne exportable : aucun dossier finalisé pour cette session CAPP.';
$string['adesi_error_competency_code'] = 'La compétence "{$a}" n\'a pas de code ADESI renseigné.';
$string['adesi_error_niveau_mapping'] = 'Le niveau "Non observé" (COMPETENCE0) n\'a pas de correspondance ADESI renseignée.';
$string['adesi_error_codeena'] = 'L\'élève "{$a}" n\'a pas de code_ena renseigné.';
$string['event_adesi_exported'] = 'Export ADESI effectué';

// Confidentialité (RGPD).
$string['privacy:metadata:local_kid_student'] = 'Rattachement d\'un utilisateur à une promotion en tant qu\'élève.';
$string['privacy:metadata:local_kid_student:userid'] = 'Identifiant de l\'utilisateur Moodle.';
$string['privacy:metadata:local_kid_student:promotionid'] = 'Promotion à laquelle l\'élève est rattaché.';
$string['privacy:metadata:local_kid_student:status'] = 'Statut d\'appartenance (actif ou retiré) à la promotion.';
$string['privacy:metadata:local_kid_eval_result'] = 'Niveau et commentaire d\'évaluation d\'enseignement saisis pour l\'élève.';
$string['privacy:metadata:local_kid_stage_result'] = 'Niveau et commentaire d\'évaluation de stage saisis pour l\'élève.';
$string['privacy:metadata:local_kid_stage_doc'] = 'Document de stage déposé pour l\'élève.';
$string['privacy:metadata:local_kid_stage_doc:filename'] = 'Nom du fichier déposé.';
$string['privacy:metadata:local_kid_stage_doc:timecreated'] = 'Date de dépôt du fichier.';
$string['privacy:metadata:local_kid_stage_entry'] = 'Dossier de stage de l\'élève.';
$string['privacy:metadata:local_kid_stage_entry:commentaireglobal'] = 'Commentaire global du stage.';
$string['privacy:metadata:local_kid_capp_result'] = 'Niveau et commentaire de Conseil d\'apprentissage saisis pour l\'élève.';
$string['privacy:metadata:local_kid_capp_entry'] = 'Dossier de Conseil d\'apprentissage de l\'élève.';
$string['privacy:metadata:local_kid_capp_entry:appreciationglobale'] = 'Appréciation d\'ensemble du Conseil d\'apprentissage.';
$string['privacy:metadata:local_kid_codeena_map'] = 'Correspondance manuelle entre un utilisateur Moodle et son code ENA.';
$string['privacy:metadata:local_kid_codeena_map:userid'] = 'Identifiant de l\'utilisateur Moodle.';
$string['privacy:metadata:local_kid_codeena_map:codeena'] = 'Code ENA de l\'utilisateur.';
$string['privacy:metadata:result:niveauid'] = 'Niveau saisi pour cette compétence.';
$string['privacy:metadata:result:commentaire'] = 'Commentaire saisi pour cette compétence.';
$string['privacy:metadata:adesi'] = 'Export ADESI (système externe du ministère) — niveaux et commentaires globaux des dossiers CAPP finalisés.';
$string['privacy:metadata:adesi:codeena'] = 'Code ENA de l\'élève.';
$string['privacy:metadata:adesi:niveau_competence'] = 'Code de niveau ADESI (COMPETENCE0..4).';
$string['privacy:metadata:adesi:commentaire'] = 'Commentaire global du Conseil d\'apprentissage.';
$string['privacy:metadata:local_kid_journal'] = 'Journal d\'audit append-only des actions effectuées dans le plugin KID (jamais modifiable ni supprimable par les utilisateurs métier).';
$string['privacy:metadata:local_kid_journal:userid'] = 'Auteur de l\'action.';
$string['privacy:metadata:local_kid_journal:action'] = 'Type d\'action effectuée.';
$string['privacy:metadata:local_kid_journal:studentid'] = 'Élève concerné par l\'action, le cas échéant.';
$string['privacy:metadata:local_kid_journal:oldvalue'] = 'Valeur avant modification, le cas échéant.';
$string['privacy:metadata:local_kid_journal:newvalue'] = 'Valeur après modification, le cas échéant.';
$string['privacy:metadata:local_kid_journal:context'] = 'Détails additionnels de l\'action (fichier, nombre de lignes, motif...).';
$string['privacy_journal_authored'] = 'Journal — actions effectuées par cet utilisateur';
$string['privacy_journal_concerning'] = 'Journal — actions concernant cet utilisateur en tant qu\'élève';

// Événements.
$string['event_promotion_updated'] = 'Promotion modifiée';
$string['event_cohort_synced'] = 'Cohorte synchronisée';
$string['event_workflow_changed'] = 'Statut de workflow modifié';
$string['event_entry_published'] = 'Dossier publié';
$string['event_entry_unpublished'] = 'Dossier masqué (dépublié)';
$string['event_entry_reopened'] = 'Dossier rouvert';
$string['event_result_saved'] = 'Résultats enregistrés';
$string['event_csv_imported'] = 'Import CSV effectué';
$string['event_export_generated'] = 'Export de fiche généré';
$string['event_dossier_consulted'] = 'Dossier élève consulté (vue totale)';
