living-ai-documentation 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.fr.md +344 -0
- package/README.md +344 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +262 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/src/frontend/accuracy-gauge.js +70 -0
- package/dist/src/frontend/admin.html +1532 -0
- package/dist/src/frontend/annotations.js +585 -0
- package/dist/src/frontend/boot.js +101 -0
- package/dist/src/frontend/config.js +29 -0
- package/dist/src/frontend/confirm-modal.js +82 -0
- package/dist/src/frontend/context.html +1252 -0
- package/dist/src/frontend/dark-mode.js +20 -0
- package/dist/src/frontend/diagram/alignment.js +161 -0
- package/dist/src/frontend/diagram/clipboard.js +187 -0
- package/dist/src/frontend/diagram/constants.js +109 -0
- package/dist/src/frontend/diagram/custom-shapes.js +104 -0
- package/dist/src/frontend/diagram/debug.js +43 -0
- package/dist/src/frontend/diagram/drawio-export.js +649 -0
- package/dist/src/frontend/diagram/edge-panel.js +293 -0
- package/dist/src/frontend/diagram/edge-rendering.js +12 -0
- package/dist/src/frontend/diagram/evidence.js +146 -0
- package/dist/src/frontend/diagram/grid.js +78 -0
- package/dist/src/frontend/diagram/groups.js +102 -0
- package/dist/src/frontend/diagram/history.js +157 -0
- package/dist/src/frontend/diagram/image-name-modal.js +48 -0
- package/dist/src/frontend/diagram/image-upload.js +36 -0
- package/dist/src/frontend/diagram/label-editor.js +115 -0
- package/dist/src/frontend/diagram/link-panel.js +144 -0
- package/dist/src/frontend/diagram/main.js +364 -0
- package/dist/src/frontend/diagram/network.js +2214 -0
- package/dist/src/frontend/diagram/node-panel.js +389 -0
- package/dist/src/frontend/diagram/node-rendering.js +964 -0
- package/dist/src/frontend/diagram/persistence.js +168 -0
- package/dist/src/frontend/diagram/ports.js +421 -0
- package/dist/src/frontend/diagram/selection-overlay.js +387 -0
- package/dist/src/frontend/diagram/state.js +43 -0
- package/dist/src/frontend/diagram/t.js +3 -0
- package/dist/src/frontend/diagram/toast.js +21 -0
- package/dist/src/frontend/diagram/unlock-hold.js +206 -0
- package/dist/src/frontend/diagram/zoom.js +20 -0
- package/dist/src/frontend/diagram-link-modal.js +137 -0
- package/dist/src/frontend/diagram.html +1494 -0
- package/dist/src/frontend/documents.js +479 -0
- package/dist/src/frontend/export.js +338 -0
- package/dist/src/frontend/file-attach.js +178 -0
- package/dist/src/frontend/files-modal.js +243 -0
- package/dist/src/frontend/i18n/en.json +624 -0
- package/dist/src/frontend/i18n/fr.json +624 -0
- package/dist/src/frontend/i18n.js +32 -0
- package/dist/src/frontend/image-paste.js +126 -0
- package/dist/src/frontend/index.html +2806 -0
- package/dist/src/frontend/local-search.js +476 -0
- package/dist/src/frontend/metadata.js +318 -0
- package/dist/src/frontend/misc.js +92 -0
- package/dist/src/frontend/new-doc-modal.js +285 -0
- package/dist/src/frontend/new-folder-modal.js +169 -0
- package/dist/src/frontend/search.js +194 -0
- package/dist/src/frontend/shape-editor.html +685 -0
- package/dist/src/frontend/sidebar-helpers.js +96 -0
- package/dist/src/frontend/sidebar-resize.js +98 -0
- package/dist/src/frontend/sidebar.js +351 -0
- package/dist/src/frontend/snippet-detect.js +25 -0
- package/dist/src/frontend/snippet-table.js +85 -0
- package/dist/src/frontend/snippet-tree.js +94 -0
- package/dist/src/frontend/snippets.js +1146 -0
- package/dist/src/frontend/state.js +46 -0
- package/dist/src/frontend/utils.js +21 -0
- package/dist/src/frontend/validate.js +107 -0
- package/dist/src/frontend/vendor/wordcloud2.js +1187 -0
- package/dist/src/frontend/wordcloud.js +693 -0
- package/dist/src/lib/config.d.ts +26 -0
- package/dist/src/lib/config.d.ts.map +1 -0
- package/dist/src/lib/config.js +195 -0
- package/dist/src/lib/config.js.map +1 -0
- package/dist/src/lib/hash.d.ts +2 -0
- package/dist/src/lib/hash.d.ts.map +1 -0
- package/dist/src/lib/hash.js +18 -0
- package/dist/src/lib/hash.js.map +1 -0
- package/dist/src/lib/metadata.d.ts +31 -0
- package/dist/src/lib/metadata.d.ts.map +1 -0
- package/dist/src/lib/metadata.js +128 -0
- package/dist/src/lib/metadata.js.map +1 -0
- package/dist/src/lib/parser.d.ts +11 -0
- package/dist/src/lib/parser.d.ts.map +1 -0
- package/dist/src/lib/parser.js +111 -0
- package/dist/src/lib/parser.js.map +1 -0
- package/dist/src/lib/status.d.ts +9 -0
- package/dist/src/lib/status.d.ts.map +1 -0
- package/dist/src/lib/status.js +72 -0
- package/dist/src/lib/status.js.map +1 -0
- package/dist/src/mcp/server.d.ts +3 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +2046 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools/diagrams.d.ts +82 -0
- package/dist/src/mcp/tools/diagrams.d.ts.map +1 -0
- package/dist/src/mcp/tools/diagrams.js +594 -0
- package/dist/src/mcp/tools/diagrams.js.map +1 -0
- package/dist/src/mcp/tools/documents.d.ts +44 -0
- package/dist/src/mcp/tools/documents.d.ts.map +1 -0
- package/dist/src/mcp/tools/documents.js +186 -0
- package/dist/src/mcp/tools/documents.js.map +1 -0
- package/dist/src/mcp/tools/git.d.ts +10 -0
- package/dist/src/mcp/tools/git.d.ts.map +1 -0
- package/dist/src/mcp/tools/git.js +217 -0
- package/dist/src/mcp/tools/git.js.map +1 -0
- package/dist/src/mcp/tools/metadata.d.ts +57 -0
- package/dist/src/mcp/tools/metadata.d.ts.map +1 -0
- package/dist/src/mcp/tools/metadata.js +222 -0
- package/dist/src/mcp/tools/metadata.js.map +1 -0
- package/dist/src/mcp/tools/source.d.ts +29 -0
- package/dist/src/mcp/tools/source.d.ts.map +1 -0
- package/dist/src/mcp/tools/source.js +196 -0
- package/dist/src/mcp/tools/source.js.map +1 -0
- package/dist/src/routes/annotations.d.ts +3 -0
- package/dist/src/routes/annotations.d.ts.map +1 -0
- package/dist/src/routes/annotations.js +83 -0
- package/dist/src/routes/annotations.js.map +1 -0
- package/dist/src/routes/browse-source.d.ts +3 -0
- package/dist/src/routes/browse-source.d.ts.map +1 -0
- package/dist/src/routes/browse-source.js +79 -0
- package/dist/src/routes/browse-source.js.map +1 -0
- package/dist/src/routes/browse.d.ts +3 -0
- package/dist/src/routes/browse.d.ts.map +1 -0
- package/dist/src/routes/browse.js +91 -0
- package/dist/src/routes/browse.js.map +1 -0
- package/dist/src/routes/config.d.ts +3 -0
- package/dist/src/routes/config.d.ts.map +1 -0
- package/dist/src/routes/config.js +145 -0
- package/dist/src/routes/config.js.map +1 -0
- package/dist/src/routes/context.d.ts +3 -0
- package/dist/src/routes/context.d.ts.map +1 -0
- package/dist/src/routes/context.js +287 -0
- package/dist/src/routes/context.js.map +1 -0
- package/dist/src/routes/diagrams.d.ts +3 -0
- package/dist/src/routes/diagrams.d.ts.map +1 -0
- package/dist/src/routes/diagrams.js +69 -0
- package/dist/src/routes/diagrams.js.map +1 -0
- package/dist/src/routes/documents.d.ts +11 -0
- package/dist/src/routes/documents.d.ts.map +1 -0
- package/dist/src/routes/documents.js +450 -0
- package/dist/src/routes/documents.js.map +1 -0
- package/dist/src/routes/export.d.ts +3 -0
- package/dist/src/routes/export.d.ts.map +1 -0
- package/dist/src/routes/export.js +280 -0
- package/dist/src/routes/export.js.map +1 -0
- package/dist/src/routes/files.d.ts +3 -0
- package/dist/src/routes/files.d.ts.map +1 -0
- package/dist/src/routes/files.js +180 -0
- package/dist/src/routes/files.js.map +1 -0
- package/dist/src/routes/images.d.ts +3 -0
- package/dist/src/routes/images.d.ts.map +1 -0
- package/dist/src/routes/images.js +49 -0
- package/dist/src/routes/images.js.map +1 -0
- package/dist/src/routes/metadata.d.ts +3 -0
- package/dist/src/routes/metadata.d.ts.map +1 -0
- package/dist/src/routes/metadata.js +131 -0
- package/dist/src/routes/metadata.js.map +1 -0
- package/dist/src/routes/shape-libraries.d.ts +3 -0
- package/dist/src/routes/shape-libraries.d.ts.map +1 -0
- package/dist/src/routes/shape-libraries.js +118 -0
- package/dist/src/routes/shape-libraries.js.map +1 -0
- package/dist/src/routes/wordcloud.d.ts +3 -0
- package/dist/src/routes/wordcloud.d.ts.map +1 -0
- package/dist/src/routes/wordcloud.js +95 -0
- package/dist/src/routes/wordcloud.js.map +1 -0
- package/dist/src/server.d.ts +7 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +93 -0
- package/dist/src/server.js.map +1 -0
- package/dist/starter-doc/.living-doc.json +52 -0
- package/dist/starter-doc/ADRS/2026_01_01_[ADR]_example_architecture_decision.md +59 -0
- package/dist/starter-doc/AI/2026_01_01_how_to.md +112 -0
- package/dist/starter-doc/AI/PROJECT-INSTRUCTIONS.md +172 -0
- package/dist/starter-doc/AI/PROJECT-STACK.md +77 -0
- package/dist/starter-doc/AI/PROJECT-USEFUL-COMMANDS.md +80 -0
- package/dist/starter-doc/AI/default/AGENTS.md +31 -0
- package/dist/starter-doc/AI/default/CLAUDE.md +31 -0
- package/dist/starter-doc/AI/default/MEMORY.md +24 -0
- package/dist/starter-doc/AI/rules/no-magic-numbers.md +18 -0
- package/dist/starter-doc/AI/rules/track-current-work.md +23 -0
- package/dist/starter-doc/WORKLOG/current-task.md +57 -0
- package/dist/starter-doc-fr/.living-doc.json +52 -0
- package/dist/starter-doc-fr/ADRS/2026_01_01_[ADR]_example_architecture_decision.md +59 -0
- package/dist/starter-doc-fr/AI/2026_01_01_how_to.md +100 -0
- package/dist/starter-doc-fr/AI/PROJECT-INSTRUCTIONS.md +172 -0
- package/dist/starter-doc-fr/AI/PROJECT-STACK.md +77 -0
- package/dist/starter-doc-fr/AI/PROJECT-USEFUL-COMMANDS.md +80 -0
- package/dist/starter-doc-fr/AI/default/AGENTS.md +31 -0
- package/dist/starter-doc-fr/AI/default/CLAUDE.md +31 -0
- package/dist/starter-doc-fr/AI/default/MEMORY.md +24 -0
- package/dist/starter-doc-fr/AI/rules/no-magic-numbers.md +18 -0
- package/dist/starter-doc-fr/AI/rules/track-current-work.md +23 -0
- package/dist/starter-doc-fr/WORKLOG/current-task.md +57 -0
- package/images/living_documentation.jpg +0 -0
- package/images/readme-extra-files.png +0 -0
- package/images/readme-filename-pattern.png +0 -0
- package/images/readme-intelligent-search-demo.jpg +0 -0
- package/images/readme-sidebar.png +0 -0
- package/package.json +72 -0
|
@@ -0,0 +1,624 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.save": "Enregistrer",
|
|
3
|
+
"common.cancel": "Annuler",
|
|
4
|
+
"common.confirm": "Confirmer",
|
|
5
|
+
"common.reset": "Réinitialiser",
|
|
6
|
+
"common.loading": "Chargement…",
|
|
7
|
+
"common.remove": "Supprimer",
|
|
8
|
+
"common.create": "Créer",
|
|
9
|
+
"common.add": "Ajouter",
|
|
10
|
+
"common.close": "Fermer",
|
|
11
|
+
"common.back": "Retour",
|
|
12
|
+
"common.general": "Général",
|
|
13
|
+
"common.select": "Sélectionner",
|
|
14
|
+
"common.error_prefix": "Erreur : ",
|
|
15
|
+
"common.up": "↑ Haut",
|
|
16
|
+
"common.empty_dir": "Dossier vide",
|
|
17
|
+
"common.cannot_read_dir": "Impossible de lire le dossier",
|
|
18
|
+
|
|
19
|
+
"nav.toggle_sidebar": "Afficher/masquer le panneau",
|
|
20
|
+
"nav.search_placeholder": "Rechercher dans les docs…",
|
|
21
|
+
"nav.search_mobile_placeholder": "Rechercher…",
|
|
22
|
+
"nav.toggle_dark": "Basculer le mode sombre",
|
|
23
|
+
"nav.export": "Exporter",
|
|
24
|
+
"nav.toggle_categories": "Afficher/masquer le regroupement par catégorie",
|
|
25
|
+
"nav.toggle_attachments": "Afficher/masquer les pièces jointes",
|
|
26
|
+
"nav.export_html": "Exporter les dossiers en HTML (ZIP)",
|
|
27
|
+
"nav.export_all_pdf": "Exporter tous les documents en PDF",
|
|
28
|
+
"nav.new_folder": "Nouveau dossier",
|
|
29
|
+
"nav.new_document": "Nouveau document",
|
|
30
|
+
"nav.word_cloud": "☁ Nuage de mots",
|
|
31
|
+
"nav.diagram": "◇ Diagramme",
|
|
32
|
+
"nav.ai_context": "Contexte IA",
|
|
33
|
+
"nav.files": "📁 Fichiers joints",
|
|
34
|
+
"nav.admin": "⚙ Admin",
|
|
35
|
+
|
|
36
|
+
"files.title": "📁 Fichiers joints",
|
|
37
|
+
"files.empty": "Aucun fichier — téléversez-en un depuis un document (trombone, glisser-déposer ou coller).",
|
|
38
|
+
"files.replace": "Remplacer",
|
|
39
|
+
"files.delete": "Supprimer",
|
|
40
|
+
"files.open": "Ouvrir",
|
|
41
|
+
"files.confirm_replace": "Remplacer « {name} » par « {newName} » ? La version précédente sera perdue.",
|
|
42
|
+
"files.confirm_replace_title": "Remplacer le fichier",
|
|
43
|
+
"files.confirm_replace_message": "Remplacer « {name} » par « {newName} » ?",
|
|
44
|
+
"files.confirm_replace_detail": "La version précédente sera perdue.",
|
|
45
|
+
"files.confirm_delete": "Supprimer définitivement « {name} » ?",
|
|
46
|
+
"files.confirm_delete_title": "Supprimer le fichier",
|
|
47
|
+
"files.confirm_delete_message": "Supprimer définitivement « {name} » ?",
|
|
48
|
+
"files.confirm_delete_detail": "Cette action est irréversible.",
|
|
49
|
+
"files.replacing": "Remplacement…",
|
|
50
|
+
"files.deleting": "Suppression…",
|
|
51
|
+
"files.error_load": "Impossible de charger les fichiers : ",
|
|
52
|
+
"files.error_replace": "Échec du remplacement : ",
|
|
53
|
+
"files.error_delete": "Échec de la suppression : ",
|
|
54
|
+
"files.size_bytes": "{n} o",
|
|
55
|
+
"files.size_kb": "{n} Ko",
|
|
56
|
+
"files.size_mb": "{n} Mo",
|
|
57
|
+
|
|
58
|
+
"welcome.title": "Sélectionner un document",
|
|
59
|
+
"welcome.hint": "Choisissez un document dans la barre latérale pour commencer à lire.",
|
|
60
|
+
"welcome.pattern_hint": "Modèle de nom de fichier attendu",
|
|
61
|
+
|
|
62
|
+
"sidebar.failed_to_load": "Impossible de charger les documents.",
|
|
63
|
+
"sidebar.no_docs": "Aucun document trouvé.",
|
|
64
|
+
"sidebar.annotation_badge": "annotation",
|
|
65
|
+
"sidebar.annotated_docs_badge": "document contenant des annotations",
|
|
66
|
+
"sidebar.file_attachment_badge": "pièce jointe",
|
|
67
|
+
"sidebar.file_attached_docs_badge": "document contenant des pièces jointes",
|
|
68
|
+
|
|
69
|
+
"doc.validate_mode": "Valider le document — passer le statut frontmatter de « To be validated » à « Accepted »",
|
|
70
|
+
"doc.validate_btn": "Valider",
|
|
71
|
+
"doc.validate_title": "Valider ce document ?",
|
|
72
|
+
"doc.validate_message": "Le statut frontmatter va passer de « To be validated » à « Accepted ».",
|
|
73
|
+
"doc.validate_detail_low_accuracy": "La fiabilité actuelle est de {accuracy}. Confirmer va aussi réinitialiser les hashes des fichiers source, ramenant la fiabilité à 100 %.",
|
|
74
|
+
"doc.validate_confirm": "Valider",
|
|
75
|
+
"doc.validate_failed": "Échec de la validation : ",
|
|
76
|
+
"metadata.readonly_banner": "Lecture seule — ce document est SuperSeeded. Les métadonnées source peuvent être consultées mais pas modifiées.",
|
|
77
|
+
"doc.marker_mode": "Mode Marqueur — surligner pour annoter",
|
|
78
|
+
"doc.marker_btn": "Marqueur",
|
|
79
|
+
"doc.toggle_width": "Basculer la largeur",
|
|
80
|
+
"doc.full_width_btn": "↔ Pleine largeur",
|
|
81
|
+
"doc.full_width_narrow_btn": "⇤ Réduire",
|
|
82
|
+
"doc.export_pdf": "Exporter en PDF",
|
|
83
|
+
"doc.export_pdf_btn": "Exporter PDF",
|
|
84
|
+
"doc.copy_link": "Copier le lien",
|
|
85
|
+
"doc.copy_link_btn": "Copier le lien",
|
|
86
|
+
"doc.copy_mcp_id": "Copier l'id MCP du document",
|
|
87
|
+
"doc.copy_mcp_id_copied": "Id MCP du document copié",
|
|
88
|
+
"doc.edit": "Modifier le document",
|
|
89
|
+
"doc.edit_btn": "Modifier",
|
|
90
|
+
"doc.delete": "Supprimer le document",
|
|
91
|
+
"doc.delete_btn": "Supprimer",
|
|
92
|
+
"doc.confirm_delete": "Supprimer définitivement ce document ?",
|
|
93
|
+
"doc.confirm_delete_btn": "Supprimer",
|
|
94
|
+
"doc.cancel_edit": "Annuler la modification",
|
|
95
|
+
"doc.snippets": "Insérer un snippet",
|
|
96
|
+
"doc.snippets_btn": "🧩 Snippets",
|
|
97
|
+
"doc.save": "Enregistrer le document",
|
|
98
|
+
"doc.uploading_image": "Téléversement de l'image…",
|
|
99
|
+
"doc.image_upload_failed": "Échec du téléversement : ",
|
|
100
|
+
"doc.uploading_file": "Téléversement du fichier…",
|
|
101
|
+
"doc.file_upload_failed": "Échec du téléversement du fichier : ",
|
|
102
|
+
"doc.file_too_large": "Fichier trop volumineux",
|
|
103
|
+
"doc.saving": "Enregistrement…",
|
|
104
|
+
"doc.failed_to_load": "Impossible de charger le document : ",
|
|
105
|
+
"doc.copied": "✓ Copié !",
|
|
106
|
+
"doc.code_show_more": "▾ Afficher plus",
|
|
107
|
+
"doc.code_show_less": "▴ Réduire",
|
|
108
|
+
"doc.code_copy": "Copier",
|
|
109
|
+
"doc.code_copied": "Copié !",
|
|
110
|
+
|
|
111
|
+
"metadata.button": "Métadonnées",
|
|
112
|
+
"metadata.button_title": "Gérer les métadonnées des fichiers source",
|
|
113
|
+
"metadata.title": "Métadonnées des sources",
|
|
114
|
+
"metadata.subtitle": "Rattachez des fichiers source pour suivre si ce document reste à jour.",
|
|
115
|
+
"metadata.add": "Ajouter un fichier source",
|
|
116
|
+
"metadata.refresh": "Rafraîchir les hashs",
|
|
117
|
+
"metadata.remove": "Retirer",
|
|
118
|
+
"metadata.empty": "Aucune métadonnée — ajoutez un fichier source pour commencer à suivre la justesse.",
|
|
119
|
+
"metadata.status.unchanged": "Inchangé",
|
|
120
|
+
"metadata.status.modified": "Modifié",
|
|
121
|
+
"metadata.status.missing": "Manquant",
|
|
122
|
+
"accuracy.label": "Fiabilité",
|
|
123
|
+
"accuracy.tooltip": "Inchangés : {unchanged} · Modifiés : {modified} · Manquants : {missing} · Total : {total}",
|
|
124
|
+
|
|
125
|
+
"context.back_to_docs": "Retour aux docs",
|
|
126
|
+
"context.title": "Contexte IA",
|
|
127
|
+
"context.orientation_title": "Orientation IA",
|
|
128
|
+
"context.orientation_intro": "Instructions et règles stables pour le développement assisté par IA.",
|
|
129
|
+
"context.instructions_title": "Fichiers d'instructions",
|
|
130
|
+
"context.add_instruction_file": "Ajouter un fichier d'instruction IA",
|
|
131
|
+
"context.hide_instruction_browser": "Masquer le navigateur",
|
|
132
|
+
"context.rules_title": "Règles IA",
|
|
133
|
+
"context.add_rule_title": "Ajouter une règle IA",
|
|
134
|
+
"context.add_rule_button": "Ajouter la règle",
|
|
135
|
+
"context.mcp_title": "Explorateur MCP",
|
|
136
|
+
"context.mcp_intro": "Vérifiez l'endpoint MCP local Living Documentation exposé aux outils IA.",
|
|
137
|
+
"context.mcp_refresh": "Rafraîchir",
|
|
138
|
+
"context.mcp_status": "Statut",
|
|
139
|
+
"context.mcp_transport": "Transport",
|
|
140
|
+
"context.mcp_endpoint": "Endpoint",
|
|
141
|
+
"context.mcp_tools": "Outils",
|
|
142
|
+
"context.mcp_prompts": "Prompts",
|
|
143
|
+
"context.mcp_available": "Disponible",
|
|
144
|
+
"context.mcp_unavailable": "Indisponible",
|
|
145
|
+
"context.mcp_no_tools": "Aucun outil exposé.",
|
|
146
|
+
"context.mcp_no_prompts": "Aucun prompt exposé.",
|
|
147
|
+
"context.mcp_input_schema": "Schéma d'entrée",
|
|
148
|
+
"context.mcp_arguments": "Arguments",
|
|
149
|
+
"context.mcp_required": "Obligatoire",
|
|
150
|
+
"context.mcp_optional": "Optionnel",
|
|
151
|
+
"context.mcp_request_json": "JSON de requête",
|
|
152
|
+
"context.mcp_run_tool": "Tester l'outil",
|
|
153
|
+
"context.mcp_get_prompt": "Générer le prompt",
|
|
154
|
+
"context.mcp_run_all_tools": "Tester tous les outils",
|
|
155
|
+
"context.mcp_get_all_prompts": "Générer tous les prompts",
|
|
156
|
+
"context.mcp_running_all": "Exécution… {current}/{total}",
|
|
157
|
+
"context.mcp_done_all": "Terminé — {total} élément(s) traité(s).",
|
|
158
|
+
"context.mcp_invalid_json": "JSON invalide.",
|
|
159
|
+
"context.mcp_running": "Exécution…",
|
|
160
|
+
"context.mcp_error": "L'appel MCP a retourné une erreur.",
|
|
161
|
+
"context.mcp_saved_to": "Enregistré dans :",
|
|
162
|
+
"context.loading": "Chargement…",
|
|
163
|
+
"context.empty": "Aucun élément.",
|
|
164
|
+
"context.exists": "Trouvé",
|
|
165
|
+
"context.missing": "Manquant",
|
|
166
|
+
"context.root.sourceRoot": "Racine des sources",
|
|
167
|
+
"context.root.docsFolder": "Dossier docs",
|
|
168
|
+
"context.type.file": "Fichier",
|
|
169
|
+
"context.type.directory": "Dossier",
|
|
170
|
+
"context.type.missing": "Manquant",
|
|
171
|
+
"context.no_rules": "Aucune règle IA pour le moment. Ajoutez-en une pour créer documentation/AI/rules/*.md.",
|
|
172
|
+
"context.no_instructions": "Aucun fichier d'instruction IA pour le moment. Ajoutez-en un pour lier un document dans AI/.",
|
|
173
|
+
"context.add_file_action": "+ Ajouter",
|
|
174
|
+
"context.added": "Ajouté",
|
|
175
|
+
"context.adding_instruction_file": "Ajout du fichier d'instruction…",
|
|
176
|
+
"context.removing_instruction_file": "Retrait du fichier d'instruction…",
|
|
177
|
+
"context.remove_instruction_title": "Retirer le fichier d'instruction",
|
|
178
|
+
"context.remove_instruction_message": "Retirer « {name} » des instructions IA ?",
|
|
179
|
+
"context.remove_instruction_detail": "Le lien symbolique dans AI/ sera supprimé. Le fichier original est conservé.",
|
|
180
|
+
"context.rule_title_label": "Titre",
|
|
181
|
+
"context.rule_title_placeholder": "Éviter les magic numbers",
|
|
182
|
+
"context.rule_severity_label": "Sévérité",
|
|
183
|
+
"context.rule_severity_guideline": "Règle",
|
|
184
|
+
"context.rule_severity_warning": "Avertissement",
|
|
185
|
+
"context.rule_severity_required": "Obligatoire",
|
|
186
|
+
"context.rule_description_label": "Description",
|
|
187
|
+
"context.rule_description_placeholder": "Nommer les constantes métier au lieu de répéter des valeurs brutes.",
|
|
188
|
+
"context.rule_tags_label": "Tags",
|
|
189
|
+
"context.rule_tags_placeholder": "qualité-code, maintenabilité",
|
|
190
|
+
"context.rule_applies_to_label": "S'applique à",
|
|
191
|
+
"context.rule_applies_to_placeholder": "src/**/*.ts, src/frontend/**/*.js",
|
|
192
|
+
"context.rule_body_label": "Corps de la règle",
|
|
193
|
+
"context.rule_body_placeholder": "Les constantes numériques qui portent un sens métier doivent être nommées.",
|
|
194
|
+
"context.rule_title_required": "Le titre de la règle est obligatoire.",
|
|
195
|
+
"context.saving_rule": "Enregistrement de la règle…",
|
|
196
|
+
|
|
197
|
+
"modal.new_folder.title": "Nouveau dossier",
|
|
198
|
+
"modal.new_folder.name_label": "Nom du dossier",
|
|
199
|
+
"modal.new_folder.name_placeholder": "mon-dossier",
|
|
200
|
+
"modal.new_folder.location_label": "Emplacement",
|
|
201
|
+
"modal.new_folder.root": "/ (racine)",
|
|
202
|
+
"modal.new_folder.browse_btn": "Parcourir…",
|
|
203
|
+
"modal.new_folder.enter_name": "(saisir un nom)",
|
|
204
|
+
"modal.new_folder.will_be_created": "Sera créé à",
|
|
205
|
+
"modal.new_folder.create_btn": "Créer",
|
|
206
|
+
"modal.new_folder.creating_btn": "Création…",
|
|
207
|
+
"modal.new_folder.error_empty": "Veuillez saisir un nom de dossier.",
|
|
208
|
+
"modal.new_folder.error_invalid_chars": "Caractères non autorisés dans le nom du dossier.",
|
|
209
|
+
"modal.new_folder.error_reserved": "\"files\" et \"images\" sont des noms de dossiers réservés à la racine des documents.",
|
|
210
|
+
"modal.new_folder.no_subfolders": "Aucun sous-dossier",
|
|
211
|
+
"modal.new_folder.error_loading": "Erreur de chargement",
|
|
212
|
+
|
|
213
|
+
"modal.new_doc.title": "Nouveau document",
|
|
214
|
+
"modal.new_doc.title_label": "Titre",
|
|
215
|
+
"modal.new_doc.category_label": "Catégorie",
|
|
216
|
+
"modal.new_doc.location_label": "Emplacement",
|
|
217
|
+
"modal.new_doc.filename_label": "Nom de fichier généré",
|
|
218
|
+
"modal.new_doc.title_placeholder": "(saisir un titre)",
|
|
219
|
+
"modal.new_doc.browse_btn": "Parcourir",
|
|
220
|
+
"modal.new_doc.new_folder_placeholder": "Nom du nouveau dossier…",
|
|
221
|
+
"modal.new_doc.create_folder_btn": "+ Créer",
|
|
222
|
+
"modal.new_doc.error_empty_title": "Veuillez saisir un titre.",
|
|
223
|
+
"modal.new_doc.no_subfolders": "Aucun sous-dossier",
|
|
224
|
+
|
|
225
|
+
"modal.diag_link.title": "◇ Lier un diagramme",
|
|
226
|
+
"modal.diag_link.existing_radio": "Diagramme existant",
|
|
227
|
+
"modal.diag_link.new_radio": "Nouveau diagramme",
|
|
228
|
+
"modal.diag_link.select_label": "Sélectionner un diagramme",
|
|
229
|
+
"modal.diag_link.name_label": "Nom du diagramme",
|
|
230
|
+
"modal.diag_link.name_placeholder": "Mon diagramme",
|
|
231
|
+
"modal.diag_link.img_label": "Nom du fichier image",
|
|
232
|
+
"modal.diag_link.img_hint": "(enregistré dans ./images/)",
|
|
233
|
+
"modal.diag_link.markdown_label": "Markdown qui sera ajouté",
|
|
234
|
+
"modal.diag_link.insert_btn": "Insérer & Ouvrir le diagramme",
|
|
235
|
+
"modal.diag_link.saving_btn": "Enregistrement…",
|
|
236
|
+
"modal.diag_link.no_diagrams": "Aucun diagramme",
|
|
237
|
+
|
|
238
|
+
"snippet.modal_title": "🧩 Insérer un snippet",
|
|
239
|
+
"snippet.type_label": "Type de snippet",
|
|
240
|
+
"snippet.diagram": "◇ Diagramme",
|
|
241
|
+
"snippet.collapsible": "▸ Bloc repliable (détails)",
|
|
242
|
+
"snippet.link": "🔗 Lien",
|
|
243
|
+
"snippet.link_doc": "📄 Lien vers un document",
|
|
244
|
+
"snippet.link_anchor": "⚓ Lien vers une ancre",
|
|
245
|
+
"snippet.link_doc_anchor": "📄⚓ Lien vers un document avec ancre",
|
|
246
|
+
"snippet.numbered_list": "🔢 Liste numérotée",
|
|
247
|
+
"snippet.bullet_list": "• Liste à puces",
|
|
248
|
+
"snippet.code_block": "💻 Bloc de code",
|
|
249
|
+
"snippet.blockquote": "❝ Citation (blockquote)",
|
|
250
|
+
"snippet.separator": "― Séparateur horizontal",
|
|
251
|
+
"snippet.image": "🖼 Image",
|
|
252
|
+
"snippet.table": "▦ Tableau",
|
|
253
|
+
"snippet.tree": "🌳 Arborescence",
|
|
254
|
+
"snippet.colored_section": "🎨 Section colorée",
|
|
255
|
+
"snippet.colored_section_color_label": "Couleur",
|
|
256
|
+
"snippet.colored_section_swatch_info": "Info (bleu)",
|
|
257
|
+
"snippet.colored_section_swatch_success": "Succès (vert)",
|
|
258
|
+
"snippet.colored_section_swatch_warning": "Avertissement (orange)",
|
|
259
|
+
"snippet.colored_section_swatch_danger": "Danger (rouge)",
|
|
260
|
+
"snippet.colored_section_swatch_note": "Note (violet)",
|
|
261
|
+
"snippet.colored_section_swatch_neutral": "Neutre (gris)",
|
|
262
|
+
"snippet.colored_section_content_label": "Contenu",
|
|
263
|
+
"snippet.colored_section_content_placeholder": "Votre texte ici…",
|
|
264
|
+
"snippet.colored_text": "🖍 Texte coloré",
|
|
265
|
+
"snippet.colored_text_color_label": "Couleur",
|
|
266
|
+
"snippet.colored_text_content_label": "Texte",
|
|
267
|
+
"snippet.colored_text_content_placeholder": "Votre texte…",
|
|
268
|
+
"snippet.collapsible_summary_label": "Titre du résumé",
|
|
269
|
+
"snippet.collapsible_details_placeholder": "Détails",
|
|
270
|
+
"snippet.collapsible_summary_value": "Détails",
|
|
271
|
+
"snippet.link_text_label": "Texte du lien",
|
|
272
|
+
"snippet.link_text_placeholder": "Mon lien",
|
|
273
|
+
"snippet.link_url_label": "URL",
|
|
274
|
+
"snippet.link_url_placeholder": "https://…",
|
|
275
|
+
"snippet.link_doc_label": "Document",
|
|
276
|
+
"snippet.link_doc_text_hint": "(optionnel, utilise le titre par défaut)",
|
|
277
|
+
"snippet.link_section_placeholder": "Voir la section",
|
|
278
|
+
"snippet.link_section_hint": "(optionnel, utilise le titre par défaut)",
|
|
279
|
+
"snippet.link_anchor_label": "Ancre",
|
|
280
|
+
"snippet.link_anchor_placeholder": "mon-titre",
|
|
281
|
+
"snippet.link_anchor_hint": "(sans #, ex : mon-titre)",
|
|
282
|
+
"snippet.link_anchor_select_hint": "(choisissez un titre du document)",
|
|
283
|
+
"snippet.link_anchor_no_headings": "Aucun titre détecté dans ce document",
|
|
284
|
+
"snippet.link_target_doc_label": "Document cible",
|
|
285
|
+
"snippet.code_lang_label": "Langage",
|
|
286
|
+
"snippet.code_lang_hint": "(ex : javascript, python, bash…)",
|
|
287
|
+
"snippet.image_alt_label": "Texte alternatif",
|
|
288
|
+
"snippet.image_alt_placeholder": "Description de l'image",
|
|
289
|
+
"snippet.image_url_label": "URL de l'image",
|
|
290
|
+
"snippet.image_url_placeholder": "(sauvegardé dans ./images/)",
|
|
291
|
+
"snippet.image_src_placeholder": "./images/mon-image.png",
|
|
292
|
+
"snippet.table_rows_label": "Lignes",
|
|
293
|
+
"snippet.table_cols_label": "Colonnes",
|
|
294
|
+
"snippet.tree_hint": "← → pour indenter · les noms avec / seront des dossiers",
|
|
295
|
+
"snippet.tree_add_btn": "+ Ajouter un élément",
|
|
296
|
+
"snippet.markdown_preview_label": "Aperçu du markdown",
|
|
297
|
+
"snippet.insert_btn": "Insérer",
|
|
298
|
+
"snippet.diagram_existing": "Diagramme existant",
|
|
299
|
+
"snippet.diagram_new": "Nouveau diagramme",
|
|
300
|
+
"snippet.diagram_select_label": "Sélectionner un diagramme",
|
|
301
|
+
"snippet.diagram_no_diagrams": "Aucun diagramme",
|
|
302
|
+
"snippet.diagram_name_label": "Nom du diagramme",
|
|
303
|
+
"snippet.diagram_name_placeholder": "Nom du diagramme…",
|
|
304
|
+
"snippet.diag_img_label": "Nom du fichier image",
|
|
305
|
+
"snippet.diag_img_saved_hint": "(sauvegardé dans ./images/)",
|
|
306
|
+
"snippet.diagram_markdown_label": "Markdown qui sera ajouté",
|
|
307
|
+
"snippet.insert_open_btn": "Insérer & Ouvrir le diagramme",
|
|
308
|
+
"snippet.saving_btn": "Enregistrement…",
|
|
309
|
+
"snippet.detected_msg": "✓ Type détecté : {type}. Les champs ont été pré-remplis — modifiez puis cliquez sur Insérer pour remplacer la sélection.",
|
|
310
|
+
"snippet.unknown_type_msg": "⚠ Le texte sélectionné ne correspond à aucun type de snippet reconnu. Choisissez un type ci-dessous — le snippet remplacera quand même la sélection.",
|
|
311
|
+
"snippet.emojis": "😀 Émojis",
|
|
312
|
+
"snippet.emoji_selected_label": "Émojis sélectionnés",
|
|
313
|
+
"snippet.emoji_clear_btn": "Vider",
|
|
314
|
+
"snippet.emoji_cat_smileys": "Smileys & personnes",
|
|
315
|
+
"snippet.emoji_cat_gestures": "Gestes & corps",
|
|
316
|
+
"snippet.emoji_cat_hearts": "Cœurs & étincelles",
|
|
317
|
+
"snippet.emoji_cat_objects": "Tech & outils",
|
|
318
|
+
"snippet.emoji_cat_office": "Bureau & documents",
|
|
319
|
+
"snippet.emoji_cat_symbols": "Symboles & flèches",
|
|
320
|
+
"snippet.emoji_search_placeholder": "Rechercher un émoji… (ex : coeur, etoile, fusee)",
|
|
321
|
+
"snippet.emoji_no_results": "Aucun émoji ne correspond à cette recherche.",
|
|
322
|
+
"snippet.attachment": "📎 Pièce jointe",
|
|
323
|
+
"snippet.local_search": "🔎 Recherche locale",
|
|
324
|
+
"local_search.placeholder": "Rechercher dans ce document…",
|
|
325
|
+
"local_search.clear": "Effacer",
|
|
326
|
+
"local_search.no_results": "Aucun résultat.",
|
|
327
|
+
"local_search.count_singular": "{count} occurrence",
|
|
328
|
+
"local_search.count_plural": "{count} occurrences",
|
|
329
|
+
"snippet.attachment_help": "Cliquez sur <strong>Insérer</strong> pour choisir un fichier. Il sera téléversé dans le dossier <code>files/</code> et inséré sous forme de lien <i class=\"fa-solid fa-paperclip\"></i> dans votre document.",
|
|
330
|
+
"snippet.attachment_alt": "Astuce : vous pouvez aussi glisser-déposer un fichier sur l'éditeur ou le coller depuis le presse-papiers.",
|
|
331
|
+
|
|
332
|
+
"modal.img_paste.title": "Coller l'image du presse-papiers ?",
|
|
333
|
+
"modal.img_paste.filename_label": "Nom du fichier",
|
|
334
|
+
"modal.img_paste.saved_hint": "(enregistré dans images/)",
|
|
335
|
+
"modal.img_paste.paste_btn": "Coller",
|
|
336
|
+
|
|
337
|
+
"modal.export.title": "Exporter",
|
|
338
|
+
"modal.export.tab_markdown": "Markdown",
|
|
339
|
+
"modal.export.tab_html": "HTML",
|
|
340
|
+
"modal.export.tab_pdf": "PDF",
|
|
341
|
+
"modal.export.markdown_hint": "Exporte tous les documents et images en fichiers Markdown, avec les liens internes réécrits en chemins relatifs.",
|
|
342
|
+
"modal.export.markdown_btn": "Exporter Markdown",
|
|
343
|
+
"modal.export.pdf_hint": "Exporte tous les documents en un seul PDF avec table des matières.",
|
|
344
|
+
"modal.export.pdf_btn": "Exporter tout en PDF",
|
|
345
|
+
|
|
346
|
+
"modal.export_html.title": "Exporter les dossiers en HTML",
|
|
347
|
+
"modal.export_html.hint": "Sélectionnez les dossiers à inclure dans l'archive ZIP.",
|
|
348
|
+
"modal.export_html.notion_btn": "Exporter Notion",
|
|
349
|
+
"modal.export_html.confluence_btn": "Exporter Confluence",
|
|
350
|
+
|
|
351
|
+
"annotation.title": "Annotation",
|
|
352
|
+
"annotation.placeholder": "Votre remarque ou suggestion…",
|
|
353
|
+
"annotation.save_btn": "Enregistrer",
|
|
354
|
+
"annotation.delete_btn": "🗑 Supprimer",
|
|
355
|
+
"annotation.confirm_delete": "Supprimer cette annotation ?",
|
|
356
|
+
"annotation.confirm_btn": "Supprimer",
|
|
357
|
+
"annotation.orphan": "⚠ Texte annoté introuvable — l'extrait a été modifié ou supprimé.",
|
|
358
|
+
|
|
359
|
+
"wc.title": "☁ Nuage de mots",
|
|
360
|
+
"wc.close_btn": "✕ Fermer",
|
|
361
|
+
"wc.search_root_label": "Dossier de recherche",
|
|
362
|
+
"wc.browse_btn": "Parcourir",
|
|
363
|
+
"wc.exclude_label": "Exclure",
|
|
364
|
+
"wc.exclude_placeholder": "components/ui, package-lock.json (une par ligne ou séparées par virgule)",
|
|
365
|
+
"wc.extensions_label": "Extensions",
|
|
366
|
+
"wc.all_btn": "Tout",
|
|
367
|
+
"wc.min_files_label": "Fichiers min.",
|
|
368
|
+
"wc.apply_btn": "Appliquer",
|
|
369
|
+
"wc.top_words": "Mots clés",
|
|
370
|
+
"wc.found_in": "Trouvé dans",
|
|
371
|
+
"wc.launch_btn": "Lancer",
|
|
372
|
+
|
|
373
|
+
"search.notice_singular": "{count} résultat pour \"{query}\"",
|
|
374
|
+
"search.notice_plural": "{count} résultats pour \"{query}\"",
|
|
375
|
+
|
|
376
|
+
"error.create_diagram": "Erreur lors de la création du diagramme : ",
|
|
377
|
+
"error.save": "Erreur lors de la sauvegarde : ",
|
|
378
|
+
"error.pdf_popup": "Veuillez autoriser les popups pour exporter en PDF.",
|
|
379
|
+
"error.pdf_export": "Export échoué : ",
|
|
380
|
+
"error.no_diagrams": "Aucun diagramme",
|
|
381
|
+
|
|
382
|
+
"pdf.toc_title": "Table des matières",
|
|
383
|
+
|
|
384
|
+
"admin.title": "Panneau d'administration",
|
|
385
|
+
"admin.toggle_dark": "Basculer le mode sombre",
|
|
386
|
+
"admin.back_to_docs": "← Retour aux docs",
|
|
387
|
+
|
|
388
|
+
"admin.server_info.title": "Informations serveur",
|
|
389
|
+
"admin.server_info.docs_folder": "Dossier docs",
|
|
390
|
+
"admin.server_info.port": "Port",
|
|
391
|
+
"admin.server_info.source_root": "Racine des sources",
|
|
392
|
+
"admin.server_info.source_root_hint": "Chemin relatif au dossier docs (ex. \"..\" ou \"../src\"). Utilisé par les outils MCP de lecture du code source. Laisser vide pour utiliser le dossier parent par défaut.",
|
|
393
|
+
|
|
394
|
+
"admin.config.title": "Configuration",
|
|
395
|
+
"admin.config.description": "Les paramètres sont sauvegardés dans .living-doc.json dans votre dossier docs.",
|
|
396
|
+
"admin.config.save_btn": "Enregistrer",
|
|
397
|
+
|
|
398
|
+
"admin.section.general.title": "Général",
|
|
399
|
+
"admin.section.general.desc": "Identité du site, thème, et langue de l'interface.",
|
|
400
|
+
"admin.section.filename.title": "Convention de nommage",
|
|
401
|
+
"admin.section.filename.desc": "Comment nommer les nouveaux documents, et comment le viewer les analyse.",
|
|
402
|
+
"admin.section.source.title": "Source & fichiers supplémentaires",
|
|
403
|
+
"admin.section.source.desc": "Racine du code source (pour les outils MCP) et fichiers Markdown hors dossier docs.",
|
|
404
|
+
"admin.section.sidebar.title": "Comportement de la sidebar",
|
|
405
|
+
"admin.section.sidebar.desc": "Comment dossiers et catégories s'ouvrent dans le drawer gauche.",
|
|
406
|
+
"admin.section.markdown.title": "Rendu Markdown",
|
|
407
|
+
"admin.section.markdown.desc": "Comment le viewer rend les retours à la ligne et les longs blocs de code.",
|
|
408
|
+
"admin.section.files.title": "Pièces jointes",
|
|
409
|
+
"admin.section.diagram.title": "Palettes de diagramme",
|
|
410
|
+
"admin.section.diagram.desc": "Personnalisez les couleurs disponibles dans l'éditeur de diagrammes.",
|
|
411
|
+
"admin.section.developer.title": "Développeur",
|
|
412
|
+
"admin.section.developer.desc": "Options avancées pour utilisateurs expérimentés.",
|
|
413
|
+
"admin.section.added_files_label": "Fichiers ajoutés",
|
|
414
|
+
|
|
415
|
+
"admin.appearance.site_title_label": "Titre du site",
|
|
416
|
+
"admin.appearance.site_title_placeholder": "Living Documentation",
|
|
417
|
+
"admin.appearance.site_title_hint": "Affiché dans l'onglet du navigateur et l'en-tête de la barre latérale.",
|
|
418
|
+
"admin.appearance.theme_label": "Thème par défaut",
|
|
419
|
+
"admin.appearance.theme_system": "Système (suivre les préférences OS)",
|
|
420
|
+
"admin.appearance.theme_light": "Clair",
|
|
421
|
+
"admin.appearance.theme_dark": "Sombre",
|
|
422
|
+
"admin.appearance.theme_hint": "Les utilisateurs peuvent toujours basculer avec le bouton dédié.",
|
|
423
|
+
"admin.appearance.language_label": "Langue",
|
|
424
|
+
"admin.appearance.language_en": "English",
|
|
425
|
+
"admin.appearance.language_fr": "Français",
|
|
426
|
+
"admin.appearance.language_hint": "Langue de l'interface pour toutes les pages.",
|
|
427
|
+
"admin.appearance.debug_label": "Afficher le bouton debug dans l'éditeur de diagrammes",
|
|
428
|
+
"admin.appearance.debug_hint": "Affiche un bouton Debug qui superpose les informations brutes de position et de taille sur chaque nœud — utile pour diagnostiquer les problèmes de grille.",
|
|
429
|
+
"admin.appearance.exclusive_folder_label": "Ouverture exclusive des dossiers dans la barre latérale",
|
|
430
|
+
"admin.appearance.exclusive_folder_hint": "Si activé, l'ouverture d'un dossier dans la barre latérale referme automatiquement tout autre dossier ouvert au même niveau (ainsi que ses enfants).",
|
|
431
|
+
"admin.appearance.exclusive_category_label": "Ouverture exclusive des catégories dans la barre latérale",
|
|
432
|
+
"admin.appearance.exclusive_category_hint": "Si activé, l'ouverture d'une catégorie referme automatiquement toute autre catégorie ouverte sous le même dossier parent.",
|
|
433
|
+
"admin.appearance.code_max_height_label": "Hauteur max des blocs de code (px)",
|
|
434
|
+
"admin.appearance.code_max_height_hint": "Les blocs plus longs reçoivent un bouton « Afficher plus / Réduire ». Mettre 0 pour désactiver.",
|
|
435
|
+
"admin.appearance.soft_breaks_label": "Traiter chaque retour à la ligne comme un saut de ligne",
|
|
436
|
+
"admin.appearance.soft_breaks_hint": "<strong>Décoché (CommonMark, défaut) :</strong> un seul retour à la ligne dans la source est rendu comme un espace — deux lignes adjacentes fusionnent dans un même paragraphe. Pour forcer un saut de ligne sans ligne vide, terminer la ligne précédente par <code>deux espaces</code> puis retour à la ligne, ou utiliser <code><br/></code>.<br/><strong>Coché (GitHub-flavoured) :</strong> chaque retour à la ligne devient un vrai saut de ligne dans le rendu. Pratique pour un style d'écriture « chat », mais vous ne pourrez plus couper un long paragraphe sur plusieurs lignes dans la source sans voir le saut apparaître.",
|
|
437
|
+
|
|
438
|
+
"admin.pattern.label": "Modèle de nom de fichier",
|
|
439
|
+
"admin.pattern.placeholder": "YYYY_MM_DD_HH_mm_[Category]_title",
|
|
440
|
+
"admin.pattern.hint": "Analysé pour extraire la date, la catégorie et le titre.",
|
|
441
|
+
"admin.pattern.preview_title": "Aperçu du modèle",
|
|
442
|
+
"admin.pattern.preview_desc": "Comment votre modèle analyse les noms de fichiers :",
|
|
443
|
+
"admin.pattern.col_date": "Date",
|
|
444
|
+
"admin.pattern.col_category": "Catégorie",
|
|
445
|
+
"admin.pattern.col_title": "Titre",
|
|
446
|
+
"admin.pattern.col_none": "aucune",
|
|
447
|
+
"admin.pattern.col_general": "Général",
|
|
448
|
+
|
|
449
|
+
"admin.extra_files.title": "Général — Fichiers supplémentaires",
|
|
450
|
+
"admin.extra_files.description": "Ajoutez des fichiers Markdown hors du dossier docs dans la section Général.",
|
|
451
|
+
"admin.extra_files.empty": "Aucun fichier supplémentaire ajouté.",
|
|
452
|
+
"admin.extra_files.add_btn": "+ Ajouter",
|
|
453
|
+
"admin.extra_files.added_label": "Ajouté",
|
|
454
|
+
"admin.extra_files.loading": "Chargement…",
|
|
455
|
+
|
|
456
|
+
"admin.files.title": "Pièces jointes",
|
|
457
|
+
"admin.files.description": "Extensions refusées par le endpoint <code>/api/files/upload</code>. Une extension par ligne (ou séparées par des virgules ou des espaces), sans le point.",
|
|
458
|
+
"admin.files.blocked_label": "Extensions bloquées",
|
|
459
|
+
"admin.files.hint": "Par défaut, les formats exécutables courants. Taille maximale : 19 Mo par fichier.",
|
|
460
|
+
|
|
461
|
+
"admin.palette.title": "Palettes de couleurs des diagrammes",
|
|
462
|
+
"admin.palette.description": "Personnalisez les couleurs disponibles dans l'éditeur de diagrammes. Les modifications prennent effet après enregistrement.",
|
|
463
|
+
"admin.palette.shapes_title": "Couleurs des formes",
|
|
464
|
+
"admin.palette.shapes_hint": "Cliquez sur une couleur pour l'afficher ou la masquer dans le panneau. Grisée = masquée.",
|
|
465
|
+
"admin.palette.reset_btn": "Réinitialiser",
|
|
466
|
+
"admin.palette.arrows_title": "Couleurs des flèches",
|
|
467
|
+
"admin.palette.arrows_hint": "Ajoutez ou supprimez des couleurs pour les flèches. Cliquez sur ✕ pour supprimer.",
|
|
468
|
+
"admin.palette.add_color_btn": "Ajouter une couleur",
|
|
469
|
+
"admin.palette.delete_color_title": "Supprimer",
|
|
470
|
+
|
|
471
|
+
"admin.license.title": "Licence AGPL-3.0 — Open Source",
|
|
472
|
+
"admin.license.subtitle": "Libre d'utilisation, de fork et d'extension — les dérivés et services hébergés doivent rester sous AGPL (copyleft + clause SaaS).",
|
|
473
|
+
"admin.license.body": "Ce projet open source vous est gracieusement offert par ses concepteurs <strong>Youssef MEDAGHRI-ALAOUI</strong> & <strong>Claude Code</strong>.",
|
|
474
|
+
"admin.license.linkedin_btn": "Youssef sur LinkedIn",
|
|
475
|
+
"admin.license.npm_btn": "living-ai-documentation sur npm",
|
|
476
|
+
|
|
477
|
+
"admin.msg.saved": "Enregistré !",
|
|
478
|
+
"admin.msg.save_failed": "Échec de l'enregistrement : ",
|
|
479
|
+
"admin.msg.load_failed": "Impossible de charger la configuration.",
|
|
480
|
+
"admin.msg.pattern_no_category": "Le modèle de nom de fichier doit contenir [Category]",
|
|
481
|
+
"admin.msg.pattern_one_category": "Le modèle de nom de fichier doit contenir [Category] exactement une fois",
|
|
482
|
+
"admin.msg.source_root_absolute": "La racine du code source doit être un chemin relatif (ex. \"..\" ou \"../src\"). Les chemins absolus ne sont pas autorisés.",
|
|
483
|
+
|
|
484
|
+
"diagram.back_btn": "← Retour",
|
|
485
|
+
"diagram.diagrams_list_title": "Mes diagrammes",
|
|
486
|
+
"diagram.toolbar.copy_mcp_id": "Copier l'id MCP du diagramme",
|
|
487
|
+
"diagram.toolbar.copy_mcp_id_copied": "Id MCP du diagramme copié",
|
|
488
|
+
"diagram.toolbar.select": "Sélectionner (S)",
|
|
489
|
+
"diagram.toolbar.box": "Rectangle (R)",
|
|
490
|
+
"diagram.toolbar.ellipse": "Ellipse (E)",
|
|
491
|
+
"diagram.toolbar.database": "Base de données (D)",
|
|
492
|
+
"diagram.toolbar.circle": "Cercle (C)",
|
|
493
|
+
"diagram.toolbar.actor": "Acteur (A)",
|
|
494
|
+
"diagram.toolbar.postit": "Post-it (P)",
|
|
495
|
+
"diagram.toolbar.text_free": "Texte libre (T)",
|
|
496
|
+
"diagram.toolbar.image": "Image — double-clic sur le canvas pour choisir un fichier, ou coller (⌘V) depuis le presse-papier",
|
|
497
|
+
"diagram.toolbar.shape_editor": "Éditeur de formes personnalisées",
|
|
498
|
+
"diagram.toolbar.arrow": "Flèche (F)",
|
|
499
|
+
"diagram.toolbar.delete": "Supprimer (Suppr)",
|
|
500
|
+
"diagram.toolbar.align_guides": "Guides d'alignement — indique l'alignement entre formes du même type",
|
|
501
|
+
"diagram.toolbar.grid": "Grille / Magnétisme (G)",
|
|
502
|
+
"diagram.toolbar.edge_style": "Basculer flèches courbes / droites",
|
|
503
|
+
"diagram.toolbar.resize_corner": "Mode redimensionnement : coin fixe (cliquer pour centre fixe)",
|
|
504
|
+
"diagram.toolbar.resize_center": "Mode redimensionnement : centre fixe (cliquer pour coin fixe)",
|
|
505
|
+
"diagram.toolbar.title_placeholder": "Titre du diagramme",
|
|
506
|
+
"diagram.toolbar.zoom_out": "Zoom −",
|
|
507
|
+
"diagram.toolbar.zoom_in": "Zoom +",
|
|
508
|
+
"diagram.toolbar.fit": "Ajuster la vue",
|
|
509
|
+
"diagram.toolbar.debug": "Overlay debug",
|
|
510
|
+
"diagram.toolbar.export_drawio": "Exporter en drawio (.drawio)",
|
|
511
|
+
"diagram.toolbar.save": "Enregistrer",
|
|
512
|
+
|
|
513
|
+
"diagram.sidebar.title": "Diagrammes",
|
|
514
|
+
"diagram.sidebar.new_btn": "+ Nouveau",
|
|
515
|
+
"diagram.sidebar.empty": "Aucun diagramme",
|
|
516
|
+
"diagram.sidebar.delete_title": "Supprimer",
|
|
517
|
+
|
|
518
|
+
"diagram.node_panel.lock": "Verrouiller la sélection",
|
|
519
|
+
"diagram.node_panel.unlock": "Déverrouiller la sélection",
|
|
520
|
+
"diagram.node_panel.edit_label": "Modifier le texte (double-clic)",
|
|
521
|
+
"diagram.node_panel.edit_link": "Ajouter / modifier un lien",
|
|
522
|
+
"diagram.node_panel.bg_opacity": "Opacité du fond",
|
|
523
|
+
"diagram.node_panel.font_decrease": "Réduire la police",
|
|
524
|
+
"diagram.node_panel.font_size_value": "Taille de police actuelle",
|
|
525
|
+
"diagram.node_panel.font_increase": "Agrandir la police",
|
|
526
|
+
"diagram.node_panel.align_left": "Aligner à gauche",
|
|
527
|
+
"diagram.node_panel.align_center": "Centrer horizontalement",
|
|
528
|
+
"diagram.node_panel.align_right": "Aligner à droite",
|
|
529
|
+
"diagram.node_panel.align_top": "Aligner en haut",
|
|
530
|
+
"diagram.node_panel.align_middle": "Centrer verticalement",
|
|
531
|
+
"diagram.node_panel.align_bottom": "Aligner en bas",
|
|
532
|
+
"diagram.node_panel.custom_label_above": "Placer le libellé de cette instance au-dessus",
|
|
533
|
+
"diagram.node_panel.custom_label_below": "Placer le libellé de cette instance dessous",
|
|
534
|
+
"diagram.node_panel.custom_label_left": "Placer le libellé de cette instance à gauche",
|
|
535
|
+
"diagram.node_panel.custom_label_right": "Placer le libellé de cette instance à droite",
|
|
536
|
+
"diagram.node_panel.custom_label_center": "Centrer le libellé dans cette instance",
|
|
537
|
+
"diagram.node_panel.send_back": "Envoyer en arrière",
|
|
538
|
+
"diagram.node_panel.bring_front": "Amener au premier plan",
|
|
539
|
+
"diagram.node_panel.stamp_color": "Tampon couleur — sélectionner les cibles, cliquer ici, puis cliquer la source",
|
|
540
|
+
"diagram.node_panel.stamp_font": "Tampon taille police — sélectionner les cibles, cliquer ici, puis cliquer la source",
|
|
541
|
+
"diagram.node_panel.stamp_size": "Tampon taille forme — sélectionner les cibles, cliquer ici, puis cliquer la source",
|
|
542
|
+
"diagram.node_panel.rotate_ccw": "Rotation anti-horaire 10°",
|
|
543
|
+
"diagram.node_panel.rotate_cw": "Rotation horaire 10°",
|
|
544
|
+
"diagram.node_panel.copy_png": "Copier la sélection en PNG (⌘⇧C)",
|
|
545
|
+
"diagram.node_panel.group": "Grouper la sélection",
|
|
546
|
+
"diagram.node_panel.ungroup": "Dégrouper",
|
|
547
|
+
|
|
548
|
+
"diagram.link_panel.title": "Lien sur cette forme",
|
|
549
|
+
"diagram.link_panel.external": "URL externe",
|
|
550
|
+
"diagram.link_panel.url_placeholder": "https://…",
|
|
551
|
+
"diagram.link_panel.existing_diagram": "Diagramme existant",
|
|
552
|
+
"diagram.link_panel.new_diagram": "Nouveau diagramme",
|
|
553
|
+
"diagram.link_panel.diagram_name_placeholder": "Nom du diagramme…",
|
|
554
|
+
"diagram.link_panel.save_btn": "Enregistrer",
|
|
555
|
+
"diagram.link_panel.remove_btn": "Retirer",
|
|
556
|
+
|
|
557
|
+
"diagram.edge_panel.lock": "Verrouiller la flèche",
|
|
558
|
+
"diagram.edge_panel.unlock": "Déverrouiller la flèche",
|
|
559
|
+
"diagram.edge_panel.no_arrow": "Trait simple",
|
|
560
|
+
"diagram.edge_panel.arrow_from": "Flèche directionnelle inverse",
|
|
561
|
+
"diagram.edge_panel.arrow_to": "Flèche directionnelle",
|
|
562
|
+
"diagram.edge_panel.arrow_both": "Bidirectionnelle",
|
|
563
|
+
"diagram.edge_panel.solid": "Trait plein",
|
|
564
|
+
"diagram.edge_panel.dashed": "Pointillé",
|
|
565
|
+
"diagram.edge_panel.font_decrease": "Réduire la police",
|
|
566
|
+
"diagram.edge_panel.font_increase": "Agrandir la police",
|
|
567
|
+
"diagram.edge_panel.edit_label": "Modifier le libellé de la flèche",
|
|
568
|
+
"diagram.edge_panel.reset_label_width": "Réinitialiser la largeur du libellé (auto)",
|
|
569
|
+
"diagram.edge_panel.rotate_label_ccw": "Rotation libellé sens antihoraire (−15°)",
|
|
570
|
+
"diagram.edge_panel.rotate_label_cw": "Rotation libellé sens horaire (+15°)",
|
|
571
|
+
"diagram.edge_panel.offset_label_left": "Déplacer le libellé vers la gauche",
|
|
572
|
+
"diagram.edge_panel.offset_label_right": "Déplacer le libellé vers la droite",
|
|
573
|
+
"diagram.edge_panel.offset_label_up": "Déplacer le libellé vers le haut",
|
|
574
|
+
"diagram.edge_panel.offset_label_down": "Déplacer le libellé vers le bas",
|
|
575
|
+
"diagram.edge_panel.offset_label_reset": "Réinitialiser la position du libellé",
|
|
576
|
+
"diagram.edge_panel.width_decrease": "Réduire l'épaisseur",
|
|
577
|
+
"diagram.edge_panel.width_increase": "Augmenter l'épaisseur",
|
|
578
|
+
"diagram.edge_panel.clear_ports": "Supprimer les points d'attache",
|
|
579
|
+
|
|
580
|
+
"diagram.toolbar.evidence_mode": "Mode consultation des sources",
|
|
581
|
+
"diagram.evidence.panel_title": "Sources",
|
|
582
|
+
"diagram.evidence.node_title": "Sources du nœud",
|
|
583
|
+
"diagram.evidence.edge_title": "Sources de la relation",
|
|
584
|
+
"diagram.evidence.marker_title": "Voir les sources documentaires",
|
|
585
|
+
"diagram.evidence.close": "Fermer les sources",
|
|
586
|
+
"diagram.evidence.empty": "Aucune source attachée.",
|
|
587
|
+
"diagram.evidence.section_label": "Section",
|
|
588
|
+
|
|
589
|
+
"diagram.label_input.placeholder": "Libellé…",
|
|
590
|
+
"diagram.empty_state": "Sélectionne ou crée un diagramme",
|
|
591
|
+
|
|
592
|
+
"diagram.image_modal.title": "Nom du fichier image",
|
|
593
|
+
"diagram.image_modal.description": "Lettres, chiffres, _ et - uniquement. Laisser vide pour un nom automatique.",
|
|
594
|
+
"diagram.image_modal.placeholder": "nom_image",
|
|
595
|
+
"diagram.image_modal.error_chars": "Caractères autorisés : lettres, chiffres, _ et -",
|
|
596
|
+
"diagram.image_modal.cancel_btn": "Annuler",
|
|
597
|
+
"diagram.image_modal.paste_btn": "Coller",
|
|
598
|
+
|
|
599
|
+
"diagram.selection.rotate_shape": "Rotation forme",
|
|
600
|
+
"diagram.selection.rotate_text": "Rotation texte",
|
|
601
|
+
|
|
602
|
+
"diagram.toast.png_copied": "PNG copié dans le presse-papier",
|
|
603
|
+
"diagram.toast.png_copy_error": "Impossible de copier l'image",
|
|
604
|
+
"diagram.toast.diagram_saved_png": "Diagramme enregistré en tant qu'image",
|
|
605
|
+
"diagram.toast.diagram_save_png_error": "Impossible d'enregistrer l'image",
|
|
606
|
+
"diagram.toast.image_added": "Image ajoutée",
|
|
607
|
+
"diagram.toast.image_import_error": "Impossible d'importer l'image",
|
|
608
|
+
"diagram.toast.diagram_id_copied": "Id du diagramme copié dans le presse-papier",
|
|
609
|
+
"diagram.toast.confirm_delete": "Supprimer ce diagramme ?",
|
|
610
|
+
"diagram.toast.new_diagram_title": "Nouveau diagramme",
|
|
611
|
+
"diagram.toast.untitled": "Sans titre",
|
|
612
|
+
"diagram.toast.drawio_exported": "Diagramme exporté en .drawio",
|
|
613
|
+
"diagram.toast.drawio_export_error": "Échec de l'export drawio",
|
|
614
|
+
"diagram.toast.drawio_label_rotation_dropped": "{count} rotation(s) de label ignorée(s) — drawio ne permet pas de tourner un label indépendamment de sa forme",
|
|
615
|
+
"diagram.toast.diagram_linked": "Diagramme \"{title}\" créé et lié",
|
|
616
|
+
|
|
617
|
+
"shape_editor.show_in_diagram_label": "Afficher dans la palette du diagramme",
|
|
618
|
+
"shape_editor.show_in_diagram_hint": "Si désactivé, les nœuds existants restent rendus mais cette forme est masquée dans la palette du bas.",
|
|
619
|
+
"shape_editor.label_placement.below": "Sous la forme",
|
|
620
|
+
"shape_editor.label_placement.above": "Au-dessus de la forme",
|
|
621
|
+
"shape_editor.label_placement.right": "À droite",
|
|
622
|
+
"shape_editor.label_placement.left": "À gauche",
|
|
623
|
+
"shape_editor.label_placement.center": "Centré dans la forme"
|
|
624
|
+
}
|