File size: 28,961 Bytes
a0dc23e
 
76e79a0
a0dc23e
35001ff
 
 
 
 
 
a0dc23e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76e79a0
 
 
 
 
 
 
 
 
 
 
a0dc23e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4afd2c6
 
76e79a0
 
 
 
 
 
 
a0dc23e
 
 
 
 
 
6fef74e
 
 
 
 
 
 
 
160d558
 
 
 
 
 
 
 
 
 
 
 
 
b401086
 
 
 
 
 
 
 
 
 
 
 
e0adc96
 
 
 
 
 
 
 
 
 
 
 
 
 
a0dc23e
 
 
 
 
 
 
 
 
b6bdecc
a0dc23e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b6bdecc
 
 
 
 
 
 
 
a0dc23e
 
 
 
 
 
 
1766da1
d28d854
 
a0dc23e
 
 
 
 
 
 
 
1d89034
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95964dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48aae80
 
 
 
 
 
 
 
 
 
 
 
 
b0b2691
 
 
 
65d9862
 
 
 
 
8542799
 
 
b826d7e
 
4afd2c6
b826d7e
 
 
ae79fd3
 
 
 
 
 
3821901
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a6bae97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e11f03a
 
 
 
 
 
 
 
e88e70e
 
 
 
 
 
 
 
 
 
 
 
 
8588daf
 
 
 
 
 
 
 
 
0fe9ecd
 
 
 
 
 
 
 
a68b00d
 
 
 
 
 
 
 
cf6df23
 
 
 
 
 
 
 
 
 
dbab656
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
03e7c21
 
 
 
 
 
 
 
 
 
 
94e0210
 
 
 
 
 
2193d6c
 
 
 
 
 
 
 
 
b277c46
 
 
 
 
 
 
 
 
 
 
 
43d25a5
 
 
 
 
 
17cc547
 
 
 
 
f0362de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
{
  "bootstrap_note": "IC à 95% sur le CER moyen par moteur (1000 itérations bootstrap).",
  "btn_customize": "⚙ Avancé",
  "btn_present": "⊞ Présentation",
  "cdd_help_axis": "L'axe horizontal montre le rang moyen de chaque moteur (1 = meilleur, k = pire).",
  "cdd_help_bars": "Les barres horizontales épaisses relient les moteurs statistiquement indiscernables au seuil α = 0,05 (test post-hoc de Nemenyi).",
  "cdd_help_cd": "La barre rouge CD en haut à gauche donne la distance critique de référence : deux moteurs dont les rangs moyens diffèrent de moins que CD ne peuvent pas être distingués.",
  "cdd_help_ref": "Référence : Demšar (2006), Statistical Comparisons of Classifiers over Multiple Data Sets, JMLR 7:1-30.",
  "cdd_help_title": "Comment lire ce diagramme ?",
  "cdd_title": "Test multi-moteurs — Friedman & Nemenyi",
  "char_engine_label": "Moteur :",
  "class_col": "Classe",
  "col_anchor": "Ancrage",
  "col_anchor_title": "Score d'ancrage : proportion des trigrammes de la sortie trouvant un ancrage dans le GT — faible score = hallucinations probables (LLM/VLM)",
  "col_cer": "CER exact",
  "col_cer_diplo": "CER diplo.",
  "col_cer_diplo_title": "CER après normalisation diplomatique (ſ=s, u=v, i=j…) — mesure les erreurs substantielles en ignorant les variantes graphiques codifiées",
  "col_cer_max": "CER max",
  "col_cer_median": "CER médian",
  "col_cer_min": "CER min",
  "col_diacritics": "Diacritiques",
  "col_diacritics_title": "Taux de conservation des diacritiques (accents, cédilles, trémas…)",
  "col_docs": "Docs",
  "col_engine": "Concurrent",
  "col_gini": "Gini",
  "col_gini_title": "Coefficient de Gini des erreurs CER par ligne — 0 = erreurs uniformes, 1 = erreurs concentrées. Un bon moteur a CER bas ET Gini bas.",
  "col_ligatures": "Ligatures",
  "col_ligatures_title": "Taux de reconnaissance des ligatures (fi, fl, œ, æ, ff…)",
  "col_mer": "MER",
  "col_overnorm": "Sur-norm.",
  "col_overnorm_title": "Classe 10 — Sur-normalisation LLM : taux de mots corrects dégradés par le LLM",
  "col_rank": "#",
  "col_wer": "WER",
  "col_wil": "WIL",
  "corr_engine_label": "Moteur :",
  "corr_note": "Coefficient de Pearson entre les métriques CER, WER, qualité image, ligatures, diacritiques. Vert = corrélation positive, Rouge = corrélation négative.",
  "customize_columns": "Colonnes visibles",
  "customize_composite_col": "Score",
  "customize_filters": "Filtres par strate",
  "customize_filters_empty": "Aucune strate détectée dans les métadonnées du corpus.",
  "customize_reset": "Réinitialiser la vue",
  "customize_title": "Mode avancé — personnalisation",
  "customize_weights": "Score composite personnel",
  "customize_weights_disable": "Désactiver",
  "customize_weights_enable": "Activer",
  "customize_weights_none": "Aucun poids non nul — score composite inactif.",
  "customize_weights_warning": "Ces poids reflètent votre cas d'usage. Il n'existe pas de pondération universellement valide — Picarones ne suggère aucune pondération par défaut.",
  "date_locale": "fr-FR",
  "doc_sidebar_header": "Documents",
  "doc_title_default": "Sélectionner un document",
  "errors_classified": "erreurs classifiées.",
  "footer_by": "par Picarones",
  "footer_generated": "Rapport généré le",
  "gallery_empty": "Aucun document ne correspond aux filtres.",
  "gallery_filter_all": "Tous",
  "gallery_filter_cer_label": "Filtrer CER >",
  "gallery_filter_engine_label": "Moteur :",
  "gallery_sort_best": "Meilleur moteur",
  "gallery_sort_cer": "CER moyen",
  "gallery_sort_difficulty": "Difficulté",
  "gallery_sort_id": "Identifiant",
  "gallery_sort_label": "Trier par :",
  "gini_cer_ideal": "— lecture : bas-gauche",
  "gini_cer_note": "Axe X = CER moyen, Axe Y = coefficient de Gini. Un moteur dans la zone bas-gauche combine CER bas ET Gini bas (erreurs rares et uniformément réparties). Le choix selon ce graphe dépend du workflow visé.",
  "glossary_definition": "Définition",
  "glossary_empty": "Aucune entrée pour ce terme.",
  "glossary_limits": "Limites",
  "glossary_measures": "Ce que la métrique mesure",
  "glossary_reference": "Référence",
  "glossary_tooltip": "Définition",
  "glossary_usage": "Cas d'usage",
  "h_bootstrap": "Intervalles de confiance à 95 % (bootstrap)",
  "h_cer_dist": "Distribution du CER par moteur",
  "h_cer_doc": "CER par document (tous moteurs)",
  "h_characters": "Analyse des caractères",
  "h_clusters": "Clustering des patterns d'erreurs",
  "h_correlation": "Matrice de corrélation entre métriques",
  "stratification_caption": "Classement par strate (script_type)",
  "stratification_description": "Le tableau global classe sur l'ensemble du corpus. Quand le corpus est hétérogène, certains moteurs dominent sur un type de document et perdent sur un autre — la vue stratifiée le révèle.",
  "stratification_median_label": "Médiane CER",
  "stratification_mean_label": "Moyenne CER",
  "stratification_docs_label": "Documents",
  "stratification_no_data_label": "—",
  "stratification_n_docs_label": "documents",
  "stratification_gap_summary": "Écart inter-strate du leader {leader} : {gap_pct} points de CER médian (entre « {min_stratum} » et « {max_stratum} »).",
  "h_calibration": "Calibration des moteurs",
  "calibration_note": "ECE (Expected Calibration Error) : moyenne pondérée des écarts |confiance − précision| par bin. Plus l'ECE est bas, plus le moteur est honnête sur sa fiabilité — la diagonale du diagramme représente la calibration parfaite. Un ECE élevé signale qu'on ne peut pas se fier au score de confiance pour cibler la relecture humaine.",
  "calibration_summary_caption": "Calibration des moteurs (ECE, MCE)",
  "calibration_engine_label": "Moteur",
  "calibration_ece_label": "ECE",
  "calibration_mce_label": "MCE",
  "calibration_n_label": "Prédictions",
  "calibration_acc_label": "Précision moyenne",
  "calibration_conf_label": "Confiance moyenne",
  "calibration_docs_label": "Docs évalués",
  "reliability_diagram_title": "Diagramme de fiabilité",
  "reliability_x_axis": "Confiance",
  "reliability_y_axis": "Précision",
  "h_ner": "Précision sur entités nommées",
  "ner_note": "F1 calculé par alignement IoU ≥ 0,5 sur les spans (labels case-insensitive). Plus le F1 est haut, plus le moteur restitue fidèlement les entités nommées (personnes, lieux, dates) — ce qui prédit l'utilité aval pour l'indexation prosopographique. Cette métrique mesure conjointement OCR + extracteur NER ; le modèle d'extraction lui-même peut halluciner.",
  "ner_summary_caption": "Précision sur entités nommées",
  "ner_per_category_caption": "F1 par catégorie d'entité (heatmap)",
  "ner_engine_label": "Moteur",
  "ner_f1_label": "F1 global",
  "ner_precision_label": "Précision",
  "ner_recall_label": "Rappel",
  "ner_doc_count_label": "Docs évalués",
  "ner_hallucinated_label": "Hallucinations",
  "ner_missed_label": "Entités manquées",
  "ner_no_data_label": "—",
  "h_inter_engine": "Analyse inter-moteurs",
  "inter_engine_note": "Plus la divergence est élevée, plus deux moteurs se trompent sur des classes d'erreurs différentes — ils sont alors candidats à un voting ensemble. L'oracle est la borne supérieure du recall token-level atteignable par ce voting (proxy bag-of-words).",
  "divergence_caption": "Divergence taxonomique entre moteurs",
  "divergence_metric_label": "Métrique",
  "divergence_max_pair_label": "Paire la plus divergente",
  "divergence_diagonal_label": "(identité)",
  "oracle_caption": "Complémentarité — gain potentiel d'un voting majoritaire",
  "oracle_best_engine": "Meilleur moteur seul",
  "oracle_best_recall": "Tokens préservés",
  "oracle_recall": "Oracle (au moins un moteur)",
  "oracle_gap": "Gain potentiel d'un ensemble",
  "oracle_doc_count": "Documents évalués",
  "oracle_recoverable": "récupérable",
  "oracle_explanation": "L'oracle est la borne supérieure du recall token-level atteignable par un voting majoritaire entre les moteurs (proxy bag-of-words).",
  "h_diff": "Sorties OCR — diff par moteur",
  "h_duration": "Temps d'exécution moyen (secondes/document)",
  "h_gallery": "Galerie des documents",
  "h_gini_cer": "Gini vs CER moyen",
  "h_gt": "Vérité terrain (GT)",
  "h_hallucination": "Analyse des hallucinations",
  "h_image": "Image originale",
  "h_line_metrics": "Distribution des erreurs par ligne",
  "h_pairwise": "Tests de Wilcoxon — comparaisons par paires",
  "h_pareto": "Compromis qualité / coût",
  "h_quality_cer": "Qualité image ↔ CER (scatter plot)",
  "h_radar": "Profil des moteurs (radar)",
  "h_ranking": "Classement des moteurs",
  "h_ratio_anchor": "Ratio longueur vs ancrage",
  "h_reliability": "Courbes de fiabilité",
  "h_taxonomy": "Taxonomie des erreurs par moteur",
  "h_venn": "Erreurs communes / exclusives (Venn)",
  "hall_block_label": "Bloc halluciné",
  "hall_blocks_title": "Blocs sans ancrage dans le GT :",
  "hall_detected": "⚠️ Hallucinations détectées",
  "hall_more_blocks": "bloc(s) supplémentaire(s)",
  "hall_ok": "✓ Ancrage satisfaisant",
  "heatmap_end": "Fin",
  "heatmap_mid": "Milieu",
  "heatmap_start": "Début",
  "heatmap_title": "CARTE THERMIQUE (position)",
  "html_lang": "fr",
  "lines": "lignes",
  "nav_report": "rapport OCR",
  "no_gini": "Données Gini non disponibles.",
  "no_hall_blocks": "Aucun bloc halluciné détecté.",
  "no_hall_metrics": "Aucune métrique d'hallucination disponible.",
  "no_line_metrics": "Aucune métrique de ligne disponible.",
  "no_scatter": "Données non disponibles.",
  "pairwise_note": "Test signé-rangé de Wilcoxon (non-paramétrique). Seuil α = 0.05.",
  "pareto_assumptions_summary": "Hypothèses détaillées par moteur",
  "pareto_axis_co2": "Carbone (g CO₂)",
  "pareto_axis_cost": "Coût € / 1000 pages",
  "pareto_axis_speed": "Vitesse (s / page)",
  "pareto_dominated_label": "Dominés",
  "pareto_empty": "Données insuffisantes pour cette vue.",
  "pareto_front_label": "Front Pareto",
  "pareto_note": "Les moteurs sur la frontière de Pareto (en évidence) sont ceux pour lesquels aucun autre moteur n'offre simultanément un meilleur CER ET un meilleur coût. Prix indicatifs (table interne, datée). Le mode carbone est expérimental.",
  "percentile_title": "PERCENTILES CER",
  "proportion_col": "Proportion",
  "quality_cer_note": "Chaque point = un document. Axe X = score qualité image [0–1]. Axe Y = CER. Corrélation négative attendue.",
  "radar_note": "Axe radar : CER, WER, MER, WIL — valeurs inversées (plus c'est haut, meilleur est le moteur).",
  "ratio_anchor_note": "Axe X = score d'ancrage trigrammes [0–1]. Axe Y = ratio longueur sortie/GT. Zone ⚠️ : ancrage < 0.5 ou ratio > 1.2 → hallucinations probables.",
  "ratio_anchor_subtitle": "— hallucinations VLM",
  "reliability_note": "Pour les X% documents les plus faciles (triés par CER croissant), quel est le CER moyen cumulé ? Une courbe basse = moteur performant même sur les documents faciles.",
  "synth_cases_link": "Pour comprendre comment d'autres équipes ont raisonné sur des problèmes similaires, voir les études de cas.",
  "synth_hint": "Générée mécaniquement depuis les résultats — aucun LLM, reproductible.",
  "synth_title": "Synthèse factuelle",
  "tab_analyses": "Analyses",
  "tab_characters": "Caractères",
  "tab_document": "Document",
  "tab_gallery": "Galerie",
  "tab_ranking": "Classement",
  "taxonomy_engine_label": "Moteur :",
  "taxonomy_note": "Distribution des classes d'erreurs (classes 1–9 de la taxonomie Picarones).",
  "total_errors": "Total :",
  "venn_note": "Intersection des ensembles d'erreurs entre les 2 ou 3 premiers concurrents. Erreurs communes = segments partagés.",
  "philo_profile_title": "Profil philologique",
  "philo_profile_note": "Données brutes par catégorie de marqueur philologique. L'outil ne classifie pas la convention adoptée par chaque moteur — c'est au chercheur de lire les chiffres et de conclure selon ses critères éditoriaux.",
  "philo_engine_label": "Moteur",
  "philo_global_label": "Global",
  "philo_strict_label": "Strict",
  "philo_expansion_label": "Expansion",
  "philo_n_total_label": "n total",
  "philo_unicode_blocks_title": "Précision par bloc Unicode",
  "philo_unicode_blocks_note": "Pourcentage de caractères correctement restitués par bloc Unicode rencontré dans la GT (hors Basic Latin).",
  "philo_abbreviations_title": "Abréviations médiévales (Capelli)",
  "philo_abbreviations_note": "Strict = forme abrégée (ꝑ, ꝓ, ⁊…) préservée telle quelle ; Expansion = abrégée OU forme développée (per, pro, et…) présente. Le ratio strict/expansion par moteur indique la convention adoptée (diplomatique / modernisante).",
  "philo_mufi_title": "Couverture MUFI (Medieval Unicode Font Initiative)",
  "philo_mufi_note": "Taux de caractères MUFI de la GT (þ, ð, ƿ, ſ, æ, lettres PUA…) correctement restitués dans l'OCR. Critère éditorial central pour les médiévistes.",
  "philo_mufi_coverage_label": "Couverture",
  "philo_early_modern_title": "Marqueurs typographiques imprimé ancien (XVIᵉ-XVIIIᵉ)",
  "philo_early_modern_note": "Préservation des ligatures (fi fl ff), s long (ſ), i sans point (ı), esperluette (&) et tildes nasaux (ã õ ñ). Une ligne par moteur, une colonne par catégorie.",
  "philo_modern_archives_title": "Abréviations des archives modernes (XIXᵉ-XXᵉ)",
  "philo_modern_archives_note": "Strict = abrégé préservé (Mme, S.A.R., bd, vol., …) ; Expansion = abrégé OU forme développée. Affiché par catégorie : civilité, ordinaux, monnaie, administratif, état civil, ponctuation typo, latin, biblio, adresse.",
  "philo_roman_numerals_title": "Numéraux romains : restitution par statut",
  "philo_roman_numerals_note": "Pour chaque numéral romain de la GT, statut de restitution : strict (forme exacte), case_changed (casse modifiée), j_dropped (j médiéval normalisé), converted_to_arabic, lost. Le breakdown indique la convention : majoritaire strict → diplomatique ; majoritaire arabic → modernisation profonde.",
  "philo_roman_status_strict_preserved": "Strict",
  "philo_roman_status_case_changed": "Casse",
  "philo_roman_status_j_dropped": "j supprimé",
  "philo_roman_status_converted_to_arabic": "→ arabe",
  "philo_roman_status_lost": "Perdu",
  "pipeline_report_title": "Rapport de pipeline composée",
  "pipeline_report_note": "Données brutes par étape. L'outil mesure et agrège — il ne classe pas la pipeline « bonne » ou « mauvaise ». C'est au chercheur de juger les chiffres selon ses critères.",
  "pipeline_summary_title": "Résumé du benchmark",
  "pipeline_name_label": "Pipeline",
  "pipeline_corpus_label": "Corpus",
  "pipeline_n_docs_label": "Documents",
  "pipeline_succeeded_label": "Pipelines réussies",
  "pipeline_failed_label": "Pipelines échouées",
  "pipeline_duration_label": "Durée totale",
  "pipeline_steps_title": "Détail par étape",
  "pipeline_step_name_label": "Étape",
  "pipeline_success_rate_label": "Taux succès",
  "pipeline_duration_mean_label": "Durée moyenne",
  "pipeline_duration_median_label": "Durée médiane",
  "pipeline_junction_metrics_label": "Métriques aux jonctions",
  "pipeline_error_breakdown_label": "Erreurs",
  "pipeline_docs_short": "docs",
  "pipeline_comparison_report_title": "Rapport de comparaison de pipelines",
  "pipeline_comparison_report_note": "Données comparatives brutes. L'outil mesure et classe — il ne tranche pas le débat éditorial. C'est au chercheur de lire les chiffres et de conclure selon ses critères.",
  "pipeline_comparison_summary_title": "Résumé de la comparaison",
  "pipeline_n_pipelines_label": "Pipelines comparées",
  "pipeline_n_pipelines_short": "pipelines",
  "pipeline_per_pipeline_label": "Par pipeline",
  "pipeline_ranking_title": "Classement par {label}",
  "pipeline_rank_label": "Rang",
  "pipeline_value_label": "Valeur",
  "pipeline_gain_title": "Gain vs {baseline} sur {label}",
  "pipeline_gain_absolute_label": "Gain absolu",
  "pipeline_gain_relative_label": "Gain relatif",
  "pipeline_baseline_marker": "(référence)",
  "baseline_corpus_title": "Ce corpus est-il habituel ?",
  "baseline_corpus_harder": "Difficulté observée {current:.2f} — au {percentile:.0f}ᵉ percentile des {n_runs} corpus précédents de votre institution. Ce corpus est plus difficile que la moyenne.",
  "baseline_corpus_easier": "Difficulté observée {current:.2f} — au {percentile:.0f}ᵉ percentile des {n_runs} corpus précédents. Ce corpus est plus facile que la moyenne.",
  "baseline_corpus_usual": "Difficulté observée {current:.2f} — au {percentile:.0f}ᵉ percentile des {n_runs} corpus précédents. Ce corpus est dans la moyenne.",
  "taxocooc_title": "Co-occurrence des classes d'erreur",
  "taxocooc_note": "Indice de Jaccard au niveau document : 1,00 = ces deux classes apparaissent toujours ensemble ; 0,00 = jamais. Lecture par paires co-occurrentes ci-dessous.",
  "taxocooc_n_docs": "Calculé sur {n_docs} documents.",
  "taxocooc_pair_label": "Paire",
  "taxocooc_jaccard_label": "Jaccard",
  "intradoc_title": "Évolution intra-document des classes d'erreur",
  "intradoc_note": "Heatmap class × position : densité relative par classe (plus foncé = concentré). Une classe concentrée dans la première colonne suggère une erreur de marge ; une distribution uniforme suggère une erreur de scribe.",
  "intradoc_n_words": "Calculé sur {n_words_gt} mots GT, répartis en {n_bins} tranches.",
  "taxocomp_title": "Profil taxonomique : {engine_a} vs {engine_b}",
  "taxocomp_note": "Diagramme miroir des proportions d'erreurs par classe. Couleur selon récupérabilité éditoriale (vert = corrigeable, rouge = irrécupérable). À CER global égal, un moteur dont les erreurs sont majoritairement vertes tend à produire des erreurs plus facilement corrigées en édition critique.",
  "taxocomp_level_label": "Catégorie",
  "taxocomp_recoverable": "Récupérable",
  "taxocomp_difficult": "Difficile",
  "taxocomp_irrecoverable": "Irrécupérable",
  "lexmod_title": "Modernisation lexicale (top tokens)",
  "lexmod_note": "Tokens GT que le moteur réécrit le plus souvent. Lecture : « maistre → maître modernisé dans 85 % des cas » indique de quoi corriger dans le prompt pour préserver l'orthographe historique.",
  "lexmod_gt_label": "Forme historique GT",
  "lexmod_hyp_label": "Variantes OCR",
  "lexmod_n_label": "n GT",
  "lexmod_rate_label": "% modernisé",
  "levers_title": "Leviers d'amélioration",
  "levers_note": "Observations factuelles synthétisées depuis les modules d'analyse. Aucune recommandation imposée — c'est au chercheur de juger ce qui est exploitable selon son workflow.",
  "levers_top_classes": "Principales classes :",
  "levers_importance_high": "Important",
  "levers_importance_medium": "À noter",
  "levers_importance_low": "Mineur",
  "levers_label_dominant_recoverable_class": "Erreurs majoritairement récupérables",
  "levers_label_pareto_concentration": "Concentration Pareto du CER",
  "levers_label_complementarity_observation": "Complémentarité inter-moteurs",
  "levers_label_lexical_modernization_observation": "Modernisation lexicale systématique",
  "levers_label_robustness_projection_observation": "Déficit projeté sur le corpus réel",
  "levers_dominant_recoverable_phrase": "{pct}% des erreurs de {engine} ({n_recov}/{n_total}) sont classifiées récupérables (case_error, ligature_error, abbreviation_error).",
  "levers_pareto_phrase": "Sur {engine}, {n_top} documents ({top_pct}% du corpus) concentrent {cer_pct}% du CER cumulé (sur {n_total} documents au total).",
  "levers_complementarity_phrase": "L'oracle bag-of-words atteint un rappel supérieur de {abs_pct} points (+{rel_pct}% relatif) à celui du meilleur moteur seul.",
  "levers_complementarity_phrase_with_engine": "L'oracle bag-of-words atteint un rappel supérieur de {abs_pct} points (+{rel_pct}% relatif) à celui du meilleur moteur seul ({best_engine}).",
  "levers_lexical_phrase": "Top tokens GT systématiquement modernisés par {engine} : {items}.",
  "levers_robustness_phrase": "Déficit projeté de {engine} sur le corpus réel : {deficit_pct} points de CER cumulés sur {n_types} dégradations.",
  "levers_robustness_phrase_with_worst": "Déficit projeté de {engine} sur le corpus réel : {deficit_pct} points de CER cumulés sur {n_types} dégradations — pire dégradation : {worst_type} ({worst_pct} points).",
  "search_title": "Recherchabilité fuzzy",
  "search_note": "Proportion de tokens GT retrouvés dans la sortie OCR à distance de Levenshtein ≤ 2 — proxy direct de la qualité pour la recherche plein-texte (Elastic, Solr, Gallica).",
  "search_engine": "Moteur",
  "search_recall": "Rappel",
  "search_count": "Tokens retrouvés / total",
  "search_docs": "Docs",
  "numseq_title": "Précision sur séquences numériques",
  "numseq_note": "Score strict (forme préservée) — la valeur entre parenthèses est le score sur la valeur (XIV ↔ 14 accepté). Foliotation : recto/verso non interchangeables.",
  "numseq_engine": "Moteur",
  "numseq_global": "Global",
  "numseq_cat_year": "Année",
  "numseq_cat_roman": "Romain",
  "numseq_cat_foliation": "Foliation",
  "numseq_cat_currency": "Montant",
  "numseq_cat_regnal": "Régnal",
  "readability_title": "Lisibilité (delta Flesch)",
  "readability_note": "Différence de lisibilité Flesch entre la sortie OCR et la GT. Δ > +5 : over-normalisation (typique des LLM qui modernisent un texte ancien). Δ < -5 : dégradation brutale. Δ ≈ 0 : fidélité au registre linguistique.",
  "readability_engine": "Moteur",
  "readability_delta_mean": "Δ moyen",
  "readability_delta_median": "Δ médian",
  "readability_over_norm_rate": "% over-normalisé",
  "readability_under_norm_count": "Docs under-normalisés",
  "readability_docs": "Docs",
  "robproj_title": "Déficit projeté de robustesse sur le corpus réel",
  "robproj_note": "Projection des courbes de dégradation synthétique sur les caractéristiques d'image réelles. Le déficit total suppose l'indépendance des dégradations — approximation utile pour le diagnostic, pas un verdict.",
  "robproj_summary": "Résumé par moteur",
  "robproj_detail": "Détail par couple (moteur × dégradation)",
  "robproj_engine": "Moteur",
  "robproj_total": "Déficit total (pts CER)",
  "robproj_n_types": "Types évalués",
  "robproj_worst": "Pire dégradation",
  "robproj_deg_type": "Dégradation",
  "robproj_n_docs": "Docs",
  "robproj_n_with_data": "Docs avec data",
  "robproj_deficit": "Δ CER projeté (pts)",
  "robproj_above": "Docs ≥ seuil critique",
  "specialization_title": "Spécialisation inter-moteurs",
  "specialization_note": "Score de divergence Jensen-Shannon entre les profils taxonomiques de chaque paire de moteurs (0 = profils identiques, 1 = totalement disjoints). Une paire très spécialisée signale des erreurs de natures différentes — c'est au chercheur d'en tirer parti, pas à l'outil de prescrire un ensemble.",
  "specialization_engine_a": "Moteur A",
  "specialization_engine_b": "Moteur B",
  "specialization_score": "Score",
  "specialization_category": "Lecture",
  "specialization_cat_similar": "Profils similaires",
  "specialization_cat_distinct": "Profils distincts",
  "specialization_cat_highly_specialized": "Forte spécialisation",
  "stability_title": "Stabilité multi-runs",
  "stability_note": "Quand un moteur LLM/VLM est non déterministe, la variance entre runs successifs sur les mêmes documents est un proxy de la fiabilité scientifique. Un CV élevé ou un faible taux de runs identiques discrédite l'interprétation du CER moyen.",
  "stability_engine": "Moteur",
  "stability_n_runs": "Runs",
  "stability_cer": "CER moyen ± σ",
  "stability_cv": "CV (%)",
  "stability_identical": "% runs identiques",
  "stability_distinct": "Sorties distinctes",
  "throughput_title": "Throughput effectif",
  "throughput_note": "Pages traitables par heure en intégrant le temps de correction humaine post-OCR. Discrimine entre un cloud rapide mais imprécis et un local lent mais fiable. Constante de correction : {time_per_error}s par erreur (défaut HTR-United, surchargeable).",
  "throughput_engine": "Moteur",
  "throughput_raw": "Pages/h brut",
  "throughput_effective": "Pages/h utilisable",
  "throughput_drag": "% correction",
  "throughput_pages": "Pages",
  "throughput_errors": "Erreurs",
  "longitudinal_title": "Évolution dans le temps",
  "longitudinal_note": "Tendance et points de rupture sur l'historique SQLite des runs précédents. Une variation positive signale une dégradation cumulée — utile pour relier une régression à un changement de pipeline ou de modèle.",
  "longitudinal_engine": "Moteur",
  "longitudinal_n_runs": "Runs",
  "longitudinal_first": "Premier CER",
  "longitudinal_last": "Dernier CER",
  "longitudinal_delta": "Δ cumulé (pts)",
  "longitudinal_slope": "Pente annuelle (pts/an)",
  "longitudinal_r2": "R²",
  "longitudinal_change": "Rupture",
  "imgpred_title": "Profil d'image du corpus",
  "imgpred_note": "Score de complexité paléographique combinant bruit, flou, faible contraste et rotation. Le score d'homogénéité signale si la moyenne globale est fiable (corpus uniforme) ou trompeuse (corpus hétérogène — voir alors la vue stratifiée).",
  "imgpred_complexity": "Complexité paléographique",
  "imgpred_homogeneity": "Homogénéité du corpus",
  "imgpred_score": "Score",
  "imgpred_mean": "Moyenne",
  "imgpred_median": "Médiane",
  "imgpred_min": "Min",
  "imgpred_max": "Max",
  "imgpred_stdev": "Écart-type",
  "imgpred_docs": "Docs",
  "imgpred_feature": "Feature",
  "imgpred_feat_mean": "Moyenne",
  "imgpred_feat_stdev": "Écart-type",
  "imgpred_feat_norm": "Contribution normalisée",
  "imgpred_feat_noise": "Niveau de bruit",
  "imgpred_feat_sharpness": "Netteté",
  "imgpred_feat_contrast": "Contraste",
  "imgpred_feat_rotation": "Rotation",
  "absorption_title": "Absorption d'erreur par jonction",
  "absorption_note": "À chaque jonction du pipeline, deux flux sont mesurés indépendamment : combien d'erreurs sont corrigées et combien sont introduites. Une jonction qui corrige beaucoup mais introduit aussi beaucoup absorbe les différences amont au lieu de les améliorer.",
  "absorption_junction": "Jonction",
  "absorption_errors_before": "Erreurs avant",
  "absorption_errors_after": "Erreurs après",
  "absorption_corrected": "Corrigées",
  "absorption_introduced": "Introduites",
  "absorption_corr_rate": "% corrigées",
  "absorption_intro_rate": "% introduites",
  "absorption_net": "Amélioration nette",
  "absorption_sample": "Échantillon (intro)",
  "dag_title": "Pipeline DAG",
  "dag_note": "Graphe orienté du pipeline composé. Chaque arête porte le type d'artefact transmis et la métrique calculée à la jonction. Code couleur vert/orange/rouge selon le seuil. Outil d'inspection — le YAML reste source de vérité.",
  "dag_legend": "Lecture",
  "dag_legend_green": "qualité élevée",
  "dag_legend_yellow": "qualité moyenne",
  "dag_legend_red": "qualité faible",
  "incr_title": "Comparaison contrôlée par slot",
  "incr_note": "Effet isolé du module variant sur les pipelines en contrôlant les autres slots. Pour chaque valeur du slot, moyenne ± écart-type, rang moyen sur les groupes fixes, et nombre d'observations. Type design d'expérience pour des comparaisons honnêtes.",
  "incr_slot_label": "Slot variant",
  "incr_value": "Valeur",
  "incr_mean": "Score moyen",
  "incr_stdev": "± σ",
  "incr_rank": "Rang moyen",
  "incr_n_obs": "Observations",
  "incr_groups": "Groupes fixes",
  "audit_title": "Modules audités",
  "audit_note": "Récapitulatif des modules utilisés dans la pipeline composée. Un module qui ne passe pas l'audit n'est pas exécutable. Métadonnées issues du manifest fourni par le contributeur (auteur, licence, citation).",
  "audit_pass": "audit OK",
  "audit_fail": "checks échoués",
  "audit_module": "Module",
  "audit_status": "Audit",
  "audit_version": "Version",
  "audit_author": "Auteur",
  "audit_license": "Licence",
  "audit_io": "Entrée → sortie",
  "audit_citation": "Citation",
  "audit_homepage": "Page projet",
  "skip_to_content": "Aller au contenu",
  "reset_all": "Réinitialiser",
  "view_data": "Voir les données",
  "hide_data": "Masquer les données",
  "chart_no_data": "Aucune donnée disponible",
  "chart_data_caption": "Données du graphique",
  "no_anchor_data": "Données d'ancrage non disponibles.",
  "locale": "fr-FR",
  "palette_toggle": "Mode daltonien-friendly",
  "palette_toggle_help": "Bascule la palette du rapport vers Okabe-Ito (palette WCAG AA recommandée pour la déficience de la vision des couleurs)."
}