diff --git a/document-parser/data/docling_studio.db b/document-parser/data/docling_studio.db
index c6ca6be..bdb74be 100644
Binary files a/document-parser/data/docling_studio.db and b/document-parser/data/docling_studio.db differ
diff --git a/frontend/src/pages/StudioPage.vue b/frontend/src/pages/StudioPage.vue
index 06945d4..cbcf370 100644
--- a/frontend/src/pages/StudioPage.vue
+++ b/frontend/src/pages/StudioPage.vue
@@ -156,7 +156,7 @@
{{ t('config.ocr') }}
- ?
+ {{ t('config.ocrHint') }}?
@@ -165,7 +165,7 @@
{{ t('config.tableStructure') }}
- ?
+ {{ t('config.tableStructureHint') }}?
@@ -187,7 +187,7 @@
{{ t('config.codeEnrichment') }}
- ?
+ {{ t('config.codeEnrichmentHint') }}?
@@ -196,7 +196,7 @@
{{ t('config.formulaEnrichment') }}
- ?
+ {{ t('config.formulaEnrichmentHint') }}?
@@ -210,7 +210,7 @@
{{ t('config.pictureClassification') }}
- ?
+ {{ t('config.pictureClassificationHint') }}?
@@ -219,7 +219,7 @@
{{ t('config.pictureDescription') }}
- ?
+ {{ t('config.pictureDescriptionHint') }}?
@@ -228,7 +228,7 @@
{{ t('config.generatePictureImages') }}
- ?
+ {{ t('config.generatePictureImagesHint') }}?
@@ -237,7 +237,7 @@
{{ t('config.generatePageImages') }}
- ?
+ {{ t('config.generatePageImagesHint') }}?
@@ -791,6 +791,7 @@ onMounted(() => {
}
.config-hint {
+ position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
@@ -801,6 +802,43 @@ onMounted(() => {
font-size: 10px;
color: var(--text-muted);
cursor: help;
+ flex-shrink: 0;
+}
+
+.config-hint:hover {
+ border-color: var(--accent);
+ color: var(--accent);
+}
+
+.config-tooltip {
+ display: none;
+ position: absolute;
+ bottom: calc(100% + 8px);
+ right: -8px;
+ width: 240px;
+ padding: 8px 10px;
+ background: var(--bg-primary);
+ border: 1px solid var(--border-light);
+ border-radius: 6px;
+ font-size: 11px;
+ line-height: 1.5;
+ color: var(--text-secondary);
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+ z-index: 100;
+ pointer-events: none;
+}
+
+.config-tooltip::after {
+ content: '';
+ position: absolute;
+ top: 100%;
+ right: 12px;
+ border: 5px solid transparent;
+ border-top-color: var(--border-light);
+}
+
+.config-hint:hover .config-tooltip {
+ display: block;
}
.config-select-display {
diff --git a/frontend/src/shared/i18n.js b/frontend/src/shared/i18n.js
index 399b42d..3d96ce2 100644
--- a/frontend/src/shared/i18n.js
+++ b/frontend/src/shared/i18n.js
@@ -9,7 +9,7 @@ const messages = {
// Studio — import
'studio.title': 'Intelligence des documents',
- 'studio.subtitle': 'Importez un document PDF pour commencer l\'analyse avec Docling',
+ 'studio.subtitle': "Importez un document PDF pour commencer l'analyse avec Docling",
'studio.recentDocs': 'Documents récents',
// Studio — workspace
@@ -27,26 +27,26 @@ const messages = {
'config.model': 'Modèle',
'config.pipeline': 'Pipeline',
'config.ocr': 'OCR',
- 'config.ocrHint': 'Activer l\'OCR pour les documents scannés',
+ 'config.ocrHint': "Applique la reconnaissance optique de caractères sur les pages scannées ou les images intégrées. Indispensable pour les PDF non-natifs.",
'config.tableStructure': 'Extraction des tableaux',
- 'config.tableStructureHint': 'Détecter et extraire la structure des tableaux',
+ 'config.tableStructureHint': "Détecte les tableaux dans le document et reconstruit leur structure lignes/colonnes via le modèle TableFormer, avec correspondance des cellules.",
'config.tableMode': 'Mode tableaux',
'config.tableModeAccurate': 'Précis',
'config.tableModeFast': 'Rapide',
'config.enrichment': 'Enrichissement',
'config.codeEnrichment': 'Code',
- 'config.codeEnrichmentHint': 'OCR spécialisé pour les blocs de code',
+ 'config.codeEnrichmentHint': "Active un modèle OCR spécialisé pour les blocs de code, préservant l'indentation et la syntaxe.",
'config.formulaEnrichment': 'Formules',
- 'config.formulaEnrichmentHint': 'OCR des formules, retourne du LaTeX',
+ 'config.formulaEnrichmentHint': "Reconnaît les formules mathématiques et les convertit en LaTeX via un modèle dédié.",
'config.pictures': 'Images',
'config.pictureClassification': 'Classification',
- 'config.pictureClassificationHint': 'Classifier les types d\'images',
+ 'config.pictureClassificationHint': "Classe chaque image détectée par type (graphique, photo, diagramme, logo…) via un modèle de classification.",
'config.pictureDescription': 'Description',
- 'config.pictureDescriptionHint': 'Générer des descriptions d\'images (VLM)',
+ 'config.pictureDescriptionHint': "Génère une description textuelle de chaque image via un Vision Language Model (VLM). Utile pour l'accessibilité et l'indexation.",
'config.generatePictureImages': 'Extraire les images',
- 'config.generatePictureImagesHint': 'Extraire les images du document',
+ 'config.generatePictureImagesHint': "Extrait les images détectées du document et les sauvegarde en tant que fichiers séparés. Nécessaire pour l'export d'images.",
'config.generatePageImages': 'Images de pages',
- 'config.generatePageImagesHint': 'Générer une image par page via Docling',
+ 'config.generatePageImagesHint': "Rasterise chaque page du PDF en image. Utile pour la visualisation ou le post-traitement visuel.",
'config.imagesScale': 'Échelle images',
'config.documents': 'Documents',
@@ -58,7 +58,7 @@ const messages = {
'results.noImages': 'Aucune image détectée dans ce document',
'results.noMarkdown': 'Pas de contenu markdown',
'results.runAnalysis': 'Lancez une analyse pour voir les résultats',
- 'results.analysisFailed': 'L\'analyse a échoué',
+ 'results.analysisFailed': "L'analyse a échoué",
'results.page': 'Page',
// Upload
@@ -101,26 +101,26 @@ const messages = {
'config.model': 'Model',
'config.pipeline': 'Pipeline',
'config.ocr': 'OCR',
- 'config.ocrHint': 'Enable OCR for scanned documents',
+ 'config.ocrHint': 'Applies Optical Character Recognition on scanned pages or embedded images. Essential for non-native PDFs.',
'config.tableStructure': 'Table extraction',
- 'config.tableStructureHint': 'Detect and extract table structure',
+ 'config.tableStructureHint': 'Detects tables in the document and reconstructs their row/column structure using the TableFormer model, with cell matching.',
'config.tableMode': 'Table mode',
'config.tableModeAccurate': 'Accurate',
'config.tableModeFast': 'Fast',
'config.enrichment': 'Enrichment',
'config.codeEnrichment': 'Code',
- 'config.codeEnrichmentHint': 'Specialized OCR for code blocks',
+ 'config.codeEnrichmentHint': 'Activates a specialized OCR model for code blocks, preserving indentation and syntax.',
'config.formulaEnrichment': 'Formulas',
- 'config.formulaEnrichmentHint': 'Formula OCR, returns LaTeX',
+ 'config.formulaEnrichmentHint': 'Recognizes mathematical formulas and converts them to LaTeX using a dedicated model.',
'config.pictures': 'Pictures',
'config.pictureClassification': 'Classification',
- 'config.pictureClassificationHint': 'Classify picture types',
+ 'config.pictureClassificationHint': 'Classifies each detected image by type (chart, photo, diagram, logo…) using a classification model.',
'config.pictureDescription': 'Description',
- 'config.pictureDescriptionHint': 'Generate picture descriptions (VLM)',
+ 'config.pictureDescriptionHint': 'Generates a text description for each image using a Vision Language Model (VLM). Useful for accessibility and indexing.',
'config.generatePictureImages': 'Extract pictures',
- 'config.generatePictureImagesHint': 'Extract pictures from document',
+ 'config.generatePictureImagesHint': 'Extracts detected images from the document and saves them as separate files. Required for image export.',
'config.generatePageImages': 'Page images',
- 'config.generatePageImagesHint': 'Generate one image per page via Docling',
+ 'config.generatePageImagesHint': 'Rasterizes each PDF page as an image. Useful for visual preview or post-processing.',
'config.imagesScale': 'Images scale',
'config.documents': 'Documents',