// TagAlly Engine — textes de sortie en français.
// Terminologie alignée sur la traduction officielle des WCAG 2.1 du W3C
// (« rapport de contraste », « conformité », « texte agrandi ») et sur
// l'interface française d'InDesign/Acrobat, que les utilisateurs ont sous les
// yeux (« texte de remplacement », « balises », « artefact », « signets »).

module.exports = {
  // Métadonnées de langue
  "meta.locale": "fr-FR",
  "meta.htmlLang": "fr",
  "meta.name": "Français",

  // ---------- Rapport : en-tête et métadonnées ----------
  "report.docType": "Rapport de conformité PDF/UA",
  "report.title": "Rapport de conformité — {file}",
  "report.metaFile": "Fichier",
  "report.metaProfile": "Profil de contrôle",
  "report.metaProfileValue": "{profile} · protocole Matterhorn",
  "report.metaEngine": "Moteur de contrôle",
  "report.metaEngineValue": "veraPDF (contrôle automatique) · TagAlly Engine {version}",
  "report.metaDate": "Contrôlé le",

  // ---------- Partie 1 : contrôle automatique ----------
  "report.part1": "Partie 1 — Contrôle automatique",
  "report.passed": "CONFORME",
  "report.failed": "NON CONFORME",
  "report.verdictSub": "{passed} règles respectées · {failed} non respectées{checks} — toutes les conditions du protocole Matterhorn vérifiables automatiquement",
  "report.verdictChecks": " · {n} manquements individuels",
  "report.thClause": "Clause",
  "report.thCondition": "Condition",
  "report.thViolations": "Manquements",
  "report.test": "Test {n}",
  "report.pages": "Pages : {list}",

  // ---------- Partie 2 : contrôle manuel ----------
  "report.part2": "Partie 2 — Contrôle manuel",
  "report.part2Intro": "Aucun logiciel ne peut juger ces conditions : elles exigent un examen humain. La preuve de conformité PDF/UA n'est complète qu'une fois cette liste de contrôle parcourue.",
  "report.hint": "Cochez la liste à l'écran, indiquez vos remarques et votre nom ci-dessous, puis enregistrez le tout en PDF via la fonction d'impression du navigateur — vous obtenez ainsi la preuve archivable.",
  "report.toolsTitle": "Contrôle visuel — comment vérifier cette liste",
  "report.toolsFooter": "Ces symboles réapparaissent en tête de chaque groupe de la liste et indiquent l'outil qui vous aidera à cet endroit.",
  "report.remarks": "Remarques",
  "report.remarksPlaceholder": "Observations, limites, pages contrôlées …",
  "report.signedBy": "Contrôlé par",
  "report.signedDate": "Date, signature",
  "report.footer": "Créé avec TagAlly Pro — des PDF accessibles depuis InDesign",
  "report.page": "Page 1",

  // ---------- Boîte à outils ----------
  "tool.sv": "Vue de la structure",
  "tool.acr": "Acrobat",
  "tool.sr": "Lecteur d'écran",
  "tool.cc": "Contrôle de contraste TagAlly",
  "tool.svText": "<b>Vue de la structure TagAlly</b> (bouton « Vue de la structure » dans le panneau, onglet ②) : affiche <b>l'ordre de lecture, la hiérarchie des titres, les images avec leur texte de remplacement, les tableaux et les changements de langue</b> directement à partir du PDF contrôlé — sans logiciel supplémentaire.",
  "tool.acrText": "<b>Acrobat</b> : le panneau Balises et l'outil « Ordre de lecture » pour vérifier chaque élément en détail ; les propriétés du document pour le titre, la langue et les signets.",
  "tool.srText": "<b>Contre-vérification au lecteur d'écran</b> : faites parcourir le document une fois par VoiceOver (macOS, ⌘F5) ou NVDA (Windows, gratuit) — c'est le test le plus honnête de l'ordre de lecture.",
  "tool.ccText": "<b>Contrôle de contraste TagAlly</b> (étape « Textes de remplacement, tableaux et contrastes » dans l'onglet ① et en direct dans l'inspecteur d'objet) : mesure la couleur du texte par rapport au fond selon les WCAG (respectivement 4,5:1 et 3:1) directement dans le document ; le texte placé sur une image est répertorié pour un contrôle visuel. Pour des mesures au pixel dans le PDF final, le « Colour Contrast Analyser » (TPGi, gratuit) reste une solution complémentaire.",

  // ---------- Liste de contrôle manuelle ----------
  "check.structure": "Structure et ordre de lecture",
  "check.structure.1": "L'ordre de lecture des balises correspond au déroulé logique du document.",
  "check.structure.2": "Aucun élément porteur de contenu n'a été masqué en tant qu'artefact.",
  "check.structure.3": "Les balises sémantiques (paragraphe, citation, liste …) correspondent au sens du contenu.",
  "check.headings": "Titres",
  "check.headings.1": "Les niveaux de titre reflètent correctement la structure du contenu.",
  "check.language": "Langue",
  "check.language.1": "La langue déclarée du document correspond au contenu.",
  "check.language.2": "Les passages en langue étrangère sont balisés avec la langue correspondante.",
  "check.graphics": "Images et textes de remplacement",
  "check.graphics.1": "Chaque texte de remplacement décrit le contenu de l'image de façon exacte et concise.",
  "check.graphics.2": "Les images purement décoratives sont marquées comme artefacts.",
  "check.graphics.3": "Les figures complexes (graphiques, infographies) sont expliquées dans le texte ou par une description longue.",
  "check.tables": "Tableaux",
  "check.tables.1": "Les cellules d'en-tête sont correctes et définies de façon complète.",
  "check.tables.2": "La structure balisée du tableau correspond à sa présentation visuelle.",
  "check.links": "Liens et renvois",
  "check.links.1": "Les intitulés et descriptions de liens sont explicites (pas de « cliquez ici »).",
  "check.color": "Couleur et contraste",
  "check.color.1": "La couleur n'est jamais le seul moyen de transmettre une information.",
  "check.color.2": "Le texte satisfait aux exigences de contraste (niveau AA au minimum).",
  "check.meta": "Métadonnées et navigation",
  "check.meta.1": "Le titre du document est explicite.",
  "check.meta.2": "Pour les documents longs, des signets sont présents et corrects.",
  "check.final": "Contrôle final",
  "check.final.1": "Le PDF corrigé (…-ua.pdf) est visuellement identique à l'export d'origine.",

  // ---------- Résultats de contraste dans le rapport ----------
  "contrast.fails": "✗ Contrôle de contraste TagAlly : {n} endroit(s) sous le seuil WCAG — à corriger dans le panneau (étape « Textes de remplacement, tableaux et contrastes ») puis exporter à nouveau.",
  "contrast.manualItem": "Contrôle visuel du contraste : texte sur image ou dégradé en page {pages} — la lisibilité est-elle suffisante ?",
  "contrast.covered": "✓ Contrôlé automatiquement (contrôle de contraste TagAlly) : {checked} zones de texte, aucune sous les seuils WCAG{approved} — aucun autre contrôle de contraste nécessaire.",
  "contrast.coveredApproved": " — auxquelles s'ajoutent {n} endroit(s) de texte sur image ou dégradé contrôlés visuellement et validés",

  // ---------- Messages d'erreur (moteur) ----------
  "err.fileNotFound": "Fichier introuvable : {file}",
  "err.verapdfMissing": "veraPDF introuvable. Indiquez le chemin dans engine/config.json sous \"verapdfPath\".",
  "err.verapdfFailed": "Échec de l'appel à veraPDF : {msg}",
  "err.verapdfParse": "Rapport veraPDF illisible : {msg}",

  // ---------- Vue de la structure (TagAllyView) ----------
  "view.docType": "Vue de la structure (arbre des balises)",
  "view.intro": "Ordre de lecture de haut en bas — c'est exactement ainsi qu'un lecteur d'écran parcourt le document. Langue du document : {lang} · les passages en langue étrangère sont sur fond bleu (badge à droite) · les textes de remplacement figurent sous chaque image.",
  "view.langConflict": "⚠ Conflit de langue : l'arbre des balises déclare « {lang} » à son niveau supérieur alors que la langue du document est « {docLang} » — un lecteur d'écran lira donc TOUT le document dans la mauvaise langue. Vérifiez la langue dans InDesign et exportez à nouveau.",
  "view.alt": "Alt",
  "view.altMissing": "MANQUANT",
  "view.noStructure": "Ce PDF ne contient aucune structure de balises (il n'est pas balisé).",
  "view.pageChip": "p. {n}",
  "view.footer": "Généré par TagAlly Pro · {headings} titres · {figures} images ({noAlt} sans texte de remplacement) · {tables} tableaux · {links} liens",
  "view.stats": "Éléments : {headings} titres · {figures} images ({noAlt} sans texte de remplacement) · {tables} tableaux · {links} liens",
  "view.saved": "Vue de la structure : {file}",

  // ---------- Correction automatique (TagAllyFix) ----------
  "fix.cidSets": "Flux CIDSet supprimés : {n}",
  "fix.links": "Annotations de lien dotées d'une description (Contents) : {n}",
  "fix.orphanLinks": "Annotations de lien orphelines encadrées dans des éléments Link : {n}",
  "fix.thScope": "Cellules TH dotées d'un attribut Scope : {n}",
  "fix.paths": "Tracés vectoriels non balisés encadrés comme artefacts : {n}",
  "fix.rootLang": "Langue racine de l'arbre des balises corrigée : {n}",
  "fix.roleMap": "Correspondances de rôles résolues (noms de styles → balises standard) : {n}",
  "fix.langInject": "Changements de langue balisés (Lang) : {n}",
  "fix.displayDocTitle": "ViewerPreferences/DisplayDocTitle = true",
  "fix.xmpAdded": "XMP : pdfuaid:part = 1 ajouté",
  "fix.xmpPresent": "XMP : pdfuaid:part déjà présent",
  "fix.saved": "Enregistré : {file}",
  "fix.langSkipped": "Injection de langue ignorée : {msg}",
  "fix.rootLangDetail": "  {type} : Lang {from} → {to}",

  // ---------- Meldungen des Starters und der Konsole ----------
  "console.starting": "Démarrage du moteur TagAlly. Merci de laisser cette fenêtre ouverte.",
  "console.running": "Le moteur TagAlly {version} tourne sur {url}",
  "console.verapdf": "veraPDF : {path}",
  "console.verapdfMissing": "veraPDF est introuvable. Merci d’indiquer son chemin dans config.json.",
  "console.alreadyRunning": "Le moteur TagAlly {version} tourne déjà sur {url}. Rien à faire.",
  "console.closeWindow": "Vous pouvez fermer cette fenêtre.",
  "console.olderRunning": "La version {running} tourne encore, la version {local} est sur le disque.",
  "console.replacing": "Remplacement du moteur plus ancien …",
  "console.replaced": "Remplacé.",
  "console.stopping": "Arrêt du moteur (demandé par le lanceur).",
  "console.stopFailed": "Le moteur en cours n’a pas pu s’arrêter de lui-même.",
  "console.stopFailedHint": "Avec les versions très anciennes, c’est normal. Merci de le faire une fois à la main :",
  "console.stopFailedRetry": "Relancez ensuite ce lanceur.",
  "console.portBusy": "Le port {port} est déjà occupé.",
  "console.portBusyHint": "Le moteur tourne-t-il déjà ? Utilisez alors le lanceur, il remplace une version plus ancienne tout seul.",
  "console.nodeMissing": "Node.js est introuvable.",
  "console.nodeMissingHint": "Merci de l’installer depuis https://nodejs.org puis de relancer ce script.",
  "console.engineStopped": "Le moteur s’est arrêté.",
  "console.pressEnter": "Appuyez sur Entrée pour fermer cette fenêtre …"
};
