feat: TUI report panels with whole-report apply for metadata diff and site validation (issue #26)

This commit is contained in:
2026-07-15 20:12:45 +02:00
parent 824313f106
commit 39bb232b57
10 changed files with 1136 additions and 359 deletions

View File

@@ -81,11 +81,11 @@ msgstr "Paramètres IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:285
#: lib/bds/tui.ex:288
#: lib/bds/tui.ex:291
#: lib/bds/tui.ex:299
#: lib/bds/tui.ex:686
#: lib/bds/tui.ex:373
#: lib/bds/tui.ex:376
#: lib/bds/tui.ex:379
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:922
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr "Suggestions IA"
@@ -572,7 +572,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Réduire les blocs de diff inchangés"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:779
#: lib/bds/tui.ex:1017
#, elixir-autogen, elixir-format
msgid "Command completed"
msgstr "Commande terminée"
@@ -590,7 +590,7 @@ msgstr "Confirmer"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:424
#: lib/bds/tui.ex:550
#: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format
msgid "Content"
@@ -1030,7 +1030,7 @@ msgid "Filename"
msgstr "Nom de fichier"
#: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:745
#: lib/bds/tui.ex:981
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr "Compléter les traductions manquantes"
@@ -1041,7 +1041,7 @@ msgid "Find"
msgstr "Rechercher"
#: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:748
#: lib/bds/tui.ex:984
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr "Trouver les doublons"
@@ -1068,7 +1068,7 @@ msgid "Gallery"
msgstr "Galerie"
#: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:729
#: lib/bds/tui.ex:965
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr "Générer le site"
@@ -1389,9 +1389,9 @@ msgstr "Nombre maximal darticles par page"
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:600
#: lib/bds/tui.ex:808
#: lib/bds/tui.ex:811
#: lib/bds/tui.ex:836
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1049
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1434,7 +1434,11 @@ msgstr "Métadonnées"
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:726
#: lib/bds/tui.ex:193
#: lib/bds/tui.ex:199
#: lib/bds/tui.ex:210
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:962
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1480,7 +1484,7 @@ msgstr "Nouvelle page"
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:130
#: lib/bds/tui.ex:150
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nouvel article"
@@ -1769,7 +1773,7 @@ msgid "Open Settings"
msgstr "Ouvrir les Réglages"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:750
#: lib/bds/tui.ex:986
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Ouvrir dans le navigateur"
@@ -1917,8 +1921,8 @@ msgstr "Article enregistré"
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:599
#: lib/bds/tui.ex:610
#: lib/bds/tui.ex:835
#: lib/bds/tui.ex:846
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -2042,14 +2046,14 @@ msgid "Ready to import:"
msgstr "Prêt à importer :"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:730
#: lib/bds/tui.ex:966
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr "Reconstruire la base de données"
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:734
#: lib/bds/tui.ex:970
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Reconstruire lindex dembeddings"
@@ -2107,7 +2111,7 @@ msgid "Refresh Translation"
msgstr "Actualiser la traduction"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:737
#: lib/bds/tui.ex:973
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Régénérer le calendrier"
@@ -2118,7 +2122,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Régénérer les vignettes manquantes"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:731
#: lib/bds/tui.ex:967
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Réindexer le texte"
@@ -2304,7 +2308,7 @@ msgstr "Les capacités de script sont configurées au niveau de lapplication
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:602
#: lib/bds/tui.ex:838
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2432,6 +2436,9 @@ msgid "Site"
msgstr "Site"
#: lib/bds/desktop/shell_live/misc_editor.ex:412
#: lib/bds/tui.ex:226
#: lib/bds/tui.ex:228
#: lib/bds/tui.ex:659
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2552,7 +2559,7 @@ msgstr "Nom du mot-clé"
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:603
#: lib/bds/tui.ex:839
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2564,7 +2571,7 @@ msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:312
#: lib/bds/tui.ex:403
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Tâches"
@@ -2609,7 +2616,7 @@ msgstr "La syntaxe du template est valide"
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:601
#: lib/bds/tui.ex:837
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2832,7 +2839,7 @@ msgid "Updated URLs"
msgstr "URLs mises à jour"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:749
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Téléverser le site"
@@ -2860,13 +2867,13 @@ msgid "Validate"
msgstr "Valider"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:727
#: lib/bds/tui.ex:963
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Valider le site"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:740
#: lib/bds/tui.ex:976
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Valider les traductions"
@@ -3531,7 +3538,7 @@ msgid "Suggested tags"
msgstr "Tags suggérés"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:728
#: lib/bds/tui.ex:964
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Forcer la régénération du site"
@@ -3628,82 +3635,82 @@ msgstr "OK"
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "Le point de terminaison n'a renvoyé aucun modèle. Vous pouvez toujours saisir un nom de modèle manuellement."
#: lib/bds/tui.ex:687
#: lib/bds/tui.ex:923
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "L'IA n'est pas disponible en mode avion sans point de terminaison local."
#: lib/bds/tui.ex:811
#: lib/bds/tui.ex:1049
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "Impossible de charger ce fichier."
#: lib/bds/tui.ex:138
#: lib/bds/tui.ex:158
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr "La modification de cet élément n'est pas encore disponible dans l'interface du terminal."
#: lib/bds/tui.ex:288
#: lib/bds/tui.ex:376
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Aucune suggestion reçue."
#: lib/bds/tui.ex:808
#: lib/bds/tui.ex:1046
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Seules les images peuvent être prévisualisées."
#: lib/bds/tui.ex:610
#: lib/bds/tui.ex:846
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Article introuvable."
#: lib/bds/tui.ex:379
#: lib/bds/tui.ex:505
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Appuyez sur Entrée pour prévisualiser %{name}."
#: lib/bds/tui.ex:657
#: lib/bds/tui.ex:893
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Publié."
#: lib/bds/tui.ex:673
#: lib/bds/tui.ex:909
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Enregistrez avant de changer de langue."
#: lib/bds/tui.ex:658
#: lib/bds/tui.ex:894
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Enregistré."
#: lib/bds/tui.ex:382
#: lib/bds/tui.ex:508
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr "Sélectionnez une entrée et appuyez sur Entrée pour l'ouvrir."
#: lib/bds/tui.ex:285
#: lib/bds/tui.ex:373
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Suggestions appliquées."
#: lib/bds/tui.ex:394
#: lib/bds/tui.ex:520
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titre (ctrl+t pour modifier)"
#: lib/bds/tui.ex:393
#: lib/bds/tui.ex:519
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titre (édition — Entrée pour confirmer)"
#: lib/bds/tui.ex:441
#: lib/bds/tui.ex:567
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Traitement en cours…"
#: lib/bds/tui.ex:462
#: lib/bds/tui.ex:589
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "échap pour fermer"
@@ -3740,37 +3747,92 @@ msgstr "Adresse du serveur (user@host ou user@host:port), authentification par c
msgid "Use the form user@host or user@host:port."
msgstr "Utilisez le format user@host ou user@host:port."
#: lib/bds/tui.ex:413
#: lib/bds/tui.ex:539
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Aperçu (ctrl+e pour modifier)"
#: lib/bds/tui.ex:512
#: lib/bds/tui.ex:748
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "ctrl+s enregistrer · ctrl+p publier · ctrl+e aperçu · ctrl+t titre · ctrl+l langue · ctrl+g IA · échap retour"
#: lib/bds/tui.ex:312
#: lib/bds/tui.ex:403
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Toutes les tâches sont terminées."
#: lib/bds/tui.ex:488
#: lib/bds/tui.ex:615
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Commandes — échap pour fermer"
#: lib/bds/tui.ex:159
#: lib/bds/tui.ex:247
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Commande inconnue."
#: lib/bds/tui.ex:478
#: lib/bds/tui.ex:605
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[rapport/application dans la GUI]"
#: lib/bds/tui.ex:505
#: lib/bds/tui.ex:670
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
msgstr "entrée ouvrir · n nouvel article · 1-5 vues · : commandes · ? aide · r actualiser · ctrl+q quitter"
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} différences · %{orphans} fichiers orphelins"
#: lib/bds/tui.ex:702
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Attendu %{expected} · Existant %{existing}"
#: lib/bds/tui.ex:719
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "Fichiers en trop (seront supprimés) :"
#: lib/bds/tui.ex:715
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Pages manquantes (seront rendues) :"
#: lib/bds/tui.ex:226
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Rien à appliquer."
#: lib/bds/tui.ex:193
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Rien à réparer."
#: lib/bds/tui.ex:693
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr "Fichiers orphelins (absents de la base de données) :"
#: lib/bds/tui.ex:709
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap modifié."
#: lib/bds/tui.ex:723
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Articles mis à jour (seront rendus à nouveau) :"
#: lib/bds/tui.ex:660
#, elixir-autogen, elixir-format
msgid "enter apply changes · esc close"
msgstr "entrée appliquer les modifications · échap fermer"
#: lib/bds/tui.ex:741
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "entrée ouvrir · n nouvel article · 1-5 vues · : commandes (:? aide) · r actualiser · ctrl+q quitter"
#: lib/bds/tui.ex:655
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "entrée tout réparer depuis les fichiers · échap fermer"