feat: terminal UI over the shared workbench core (issue #26, phase 4)

This commit is contained in:
2026-07-14 20:33:30 +02:00
parent 3a8fafd2fd
commit a3ca44640c
14 changed files with 1701 additions and 295 deletions

View File

@@ -10,7 +10,7 @@ msgstr "%{canonical} = %{translation}"
msgid "%{count} mapped"
msgstr "%{count} mappé(s)"
#: lib/bds/desktop/shell_data.ex:171
#: lib/bds/desktop/shell_data.ex:173
#, elixir-autogen, elixir-format
msgid "%{count} post"
msgid_plural "%{count} posts"
@@ -81,6 +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:203
#: lib/bds/tui.ex:206
#: lib/bds/tui.ex:209
#: lib/bds/tui.ex:217
#: lib/bds/tui.ex:537
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr "Suggestions IA"
@@ -301,7 +306,7 @@ msgstr "Archives de tags rendues"
msgid "Validation apply prepared"
msgstr "Application de la validation préparée"
#: lib/bds/desktop/shell_data.ex:164
#: lib/bds/desktop/shell_data.ex:166
#: lib/bds/ui/sidebar.ex:331
#, elixir-autogen, elixir-format
msgid "Archived"
@@ -336,7 +341,7 @@ msgstr "Auteur"
msgid "Auto"
msgstr "Automatique"
#: lib/bds/desktop/shell_live.ex:442
#: lib/bds/desktop/shell_live.ex:443
#: lib/bds/desktop/shell_live/chat_editor.ex:234
#: lib/bds/desktop/shell_live/media_editor.ex:171
#: lib/bds/desktop/shell_live/media_editor.ex:364
@@ -486,7 +491,7 @@ msgstr "Valeurs par défaut des catégories, options de rendu et liaison des mod
msgid "Category name is required"
msgstr "Le nom de la catégorie est requis"
#: lib/bds/desktop/shell_live.ex:780
#: lib/bds/desktop/shell_live.ex:789
#: lib/bds/desktop/shell_live/chat_editor.ex:87
#: lib/bds/desktop/shell_live/chat_editor.ex:233
#: lib/bds/desktop/shell_live/chat_editor.ex:323
@@ -584,6 +589,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:308
#: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format
msgid "Content"
@@ -753,7 +759,7 @@ msgstr "Supprimer la traduction"
msgid "Delete conversation"
msgstr "Supprimer la conversation"
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:65
#: lib/bds/ui/post_editor/persistence.ex:69
#, elixir-autogen, elixir-format
msgid "Delete this unpublished draft"
msgstr "Supprimer ce brouillon non publié"
@@ -810,17 +816,17 @@ msgstr "Désactiver la sortie de raisonnement pour le modèle de chat hors ligne
msgid "Disable reasoning output for the online chat model"
msgstr "Désactiver la sortie de raisonnement pour le modèle de chat en ligne"
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:57
#: lib/bds/ui/post_editor/persistence.ex:61
#, elixir-autogen, elixir-format
msgid "Discard Changes"
msgstr "Annuler les modifications"
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:58
#: lib/bds/ui/post_editor/persistence.ex:62
#, elixir-autogen, elixir-format
msgid "Discard Draft"
msgstr "Supprimer le brouillon"
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:64
#: lib/bds/ui/post_editor/persistence.ex:68
#, elixir-autogen, elixir-format
msgid "Discard changes and restore the published version"
msgstr "Annuler les modifications et restaurer la version publiée"
@@ -863,7 +869,7 @@ msgstr "Ne pas traduire"
msgid "Documentation"
msgstr "Documentation"
#: lib/bds/desktop/shell_data.ex:162
#: lib/bds/desktop/shell_data.ex:164
#, elixir-autogen, elixir-format
msgid "Draft"
msgstr "Brouillon"
@@ -1063,7 +1069,7 @@ msgstr "Galerie"
msgid "Generate Site"
msgstr "Générer le site"
#: lib/bds/desktop/shell_live.ex:781
#: lib/bds/desktop/shell_live.ex:790
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/ui/sidebar.ex:789
#, elixir-autogen, elixir-format
@@ -1076,8 +1082,8 @@ msgstr "Git"
msgid "Git Diff"
msgstr "Diff Git"
#: lib/bds/desktop/shell_data.ex:226
#: lib/bds/desktop/shell_live.ex:777
#: lib/bds/desktop/shell_data.ex:228
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
#, elixir-autogen, elixir-format
msgid "Git Log"
@@ -1103,7 +1109,7 @@ msgstr "Accueil"
msgid "Host"
msgstr "Hôte"
#: lib/bds/desktop/shell_data.ex:98
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_live/index.html.heex:657
#: lib/bds/desktop/shell_live/media_editor.ex:731
#: lib/bds/desktop/shell_live/post_editor.ex:1038
@@ -1200,9 +1206,9 @@ msgstr "Définitions dimport"
msgid "Import failed: %{error}"
msgstr "Échec de limport : %{error}"
#: lib/bds/desktop/shell_live.ex:605
#: lib/bds/desktop/shell_live.ex:893
#: lib/bds/desktop/shell_live.ex:899
#: lib/bds/desktop/shell_live.ex:606
#: lib/bds/desktop/shell_live.ex:902
#: lib/bds/desktop/shell_live.ex:908
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
#, elixir-autogen, elixir-format
msgid "Import media"
@@ -1337,7 +1343,7 @@ msgstr "Type MIME"
msgid "Macros (%{count})"
msgstr "Macros (%{count})"
#: lib/bds/desktop/shell_data.ex:101
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#, elixir-autogen, elixir-format
msgid "Main Language"
@@ -1379,6 +1385,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:452
#: lib/bds/tui.ex:581
#: lib/bds/tui.ex:584
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1431,7 +1440,7 @@ msgstr "Diff des métadonnées"
msgid "Missing URLs"
msgstr "URLs manquantes"
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_data.ex:102
#, elixir-autogen, elixir-format
msgid "Mode"
msgstr "Mode"
@@ -1466,6 +1475,7 @@ msgstr "Nouvelle page"
#: lib/bds/desktop/menu_bar.ex:185
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:103
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nouvel article"
@@ -1644,7 +1654,7 @@ msgstr "Pas encore pris en charge dans la réécriture"
msgid "Nothing to Import"
msgstr "Rien à importer"
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_data.ex:102
#: lib/bds/desktop/shell_live/index.html.heex:503
#, elixir-autogen, elixir-format
msgid "Offline"
@@ -1784,7 +1794,7 @@ msgstr "Autre"
msgid "Other (%{count})"
msgstr "Autres (%{count})"
#: lib/bds/desktop/shell_live.ex:776
#: lib/bds/desktop/shell_live.ex:785
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
#, elixir-autogen, elixir-format
msgid "Output"
@@ -1866,7 +1876,7 @@ msgstr "Enregistrer la langue détectée pour ce média"
msgid "Post"
msgstr "Article"
#: lib/bds/desktop/shell_data.ex:229
#: lib/bds/desktop/shell_data.ex:231
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
@@ -1901,6 +1911,8 @@ msgstr "Article enregistré"
#: lib/bds/desktop/menu_bar.ex:202
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:451
#: lib/bds/tui.ex:462
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1985,7 +1997,7 @@ msgstr "Publier"
msgid "Publish Selected"
msgstr "Publier la sélection"
#: lib/bds/desktop/shell_data.ex:163
#: lib/bds/desktop/shell_data.ex:165
#: lib/bds/desktop/shell_live/post_editor.ex:1036
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
@@ -2282,6 +2294,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:454
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2456,7 +2469,7 @@ msgstr "Démarrer la conversation"
msgid "Starting..."
msgstr "Démarrage..."
#: lib/bds/desktop/shell_data.ex:97
#: lib/bds/desktop/shell_data.ex:99
#: lib/bds/desktop/shell_live/import_editor.ex:1182
#: lib/bds/desktop/shell_live/import_editor.ex:1233
#, elixir-autogen, elixir-format
@@ -2529,6 +2542,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:455
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2538,7 +2552,7 @@ msgstr "Nom du mot-clé"
msgid "Tags"
msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:775
#: lib/bds/desktop/shell_live.ex:784
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#, elixir-autogen, elixir-format
msgid "Tasks"
@@ -2584,6 +2598,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:453
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2780,7 +2795,7 @@ msgid "Unsaved"
msgstr "Non enregistré"
#: lib/bds/desktop/shell_live/import_editor.ex:871
#: lib/bds/desktop/shell_live/post_editor/post_metadata.ex:166
#: lib/bds/ui/post_editor/metadata.ex:166
#: lib/bds/ui/sidebar.ex:1108
#, elixir-autogen, elixir-format
msgid "Untitled"
@@ -3161,9 +3176,9 @@ msgid "I can help you manage your blog with rich visualizations. Try asking me t
msgstr "Je peux vous aider à gérer votre blog avec des visualisations riches. Essayez par exemple :"
#: lib/bds/desktop/shell_live/index.html.heex:289
#, elixir-autogen, elixir-format, fuzzy
#, elixir-autogen, elixir-format
msgid "Media Files"
msgstr "Médias"
msgstr "Fichiers multimédias"
#: lib/bds/desktop/shell_live/chat_editor_html/chat_editor.html.heex:21
#, elixir-autogen, elixir-format
@@ -3218,12 +3233,12 @@ msgstr "Bienvenue dans lassistant IA"
msgid "Comparing database and filesystem metadata"
msgstr "Comparaison des métadonnées entre la base et le système de fichiers"
#: lib/bds/desktop/shell_live.ex:681
#: lib/bds/desktop/shell_live.ex:682
#, elixir-autogen, elixir-format
msgid "Added %{count} images to post"
msgstr "%{count} images ajoutées à l'article"
#: lib/bds/desktop/shell_live.ex:649
#: lib/bds/desktop/shell_live.ex:650
#, elixir-autogen, elixir-format
msgid "Added %{title}"
msgstr "%{title} ajouté"
@@ -3243,18 +3258,18 @@ msgstr "Guide utilisateur pour les flux éditoriaux, médias, modèles, traducti
msgid "Image Import Concurrency"
msgstr "Importation simultanée d'images"
#: lib/bds/desktop/shell_live.ex:441
#: lib/bds/desktop/shell_live.ex:454
#: lib/bds/desktop/shell_live.ex:648
#: lib/bds/desktop/shell_live.ex:680
#: lib/bds/desktop/shell_live.ex:691
#: lib/bds/desktop/shell_live.ex:702
#: lib/bds/desktop/shell_live.ex:442
#: lib/bds/desktop/shell_live.ex:455
#: lib/bds/desktop/shell_live.ex:649
#: lib/bds/desktop/shell_live.ex:681
#: lib/bds/desktop/shell_live.ex:692
#: lib/bds/desktop/shell_live.ex:703
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr "Ajouter des images à la galerie"
#: lib/bds/desktop/shell_live.ex:703
#: lib/bds/desktop/shell_live.ex:704
#, elixir-autogen, elixir-format
msgid "Failed to process %{path}: %{reason}"
msgstr "Impossible de traiter %{path} : %{reason}"
@@ -3445,12 +3460,12 @@ msgstr "renommé"
msgid "untracked"
msgstr "non suivi"
#: lib/bds/desktop/shell_live.ex:801
#: lib/bds/desktop/shell_live.ex:810
#, elixir-autogen, elixir-format
msgid "Blogmark"
msgstr "Blogmark"
#: lib/bds/desktop/shell_live.ex:844
#: lib/bds/desktop/shell_live.ex:853
#, elixir-autogen, elixir-format
msgid "Open a project before importing a blogmark."
msgstr "Ouvrez un projet avant dimporter un blogmark."
@@ -3482,16 +3497,16 @@ msgid "Copy Bookmarklet to Clipboard"
msgstr "Copier le bookmarklet dans le presse-papiers"
#: lib/bds/desktop/shell_live/overlay_manager.ex:300
#, elixir-autogen, elixir-format, fuzzy
#, elixir-autogen, elixir-format
msgid "Delete Tag"
msgstr "Supprimer"
msgstr "Supprimer le tag"
#: lib/bds/desktop/shell_live/settings_editor.ex:66
#, elixir-autogen, elixir-format
msgid "Failed to copy bookmarklet to clipboard"
msgstr "Échec de la copie du bookmarklet dans le presse-papiers"
#: lib/bds/desktop/shell_live.ex:813
#: lib/bds/desktop/shell_live.ex:822
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr "Le projet ciblé par ce blogmark n'existe pas ici."
@@ -3598,12 +3613,92 @@ 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:28
#: lib/bds/tui.ex:538
#, elixir-autogen, elixir-format
msgid "Blogging Desktop Server"
msgstr "Blogging Desktop Server"
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:30
#: lib/bds/tui.ex:584
#, elixir-autogen, elixir-format
msgid "Press q to quit."
msgstr "Appuyez sur q pour quitter."
msgid "Could not load this file."
msgstr "Impossible de charger ce fichier."
#: lib/bds/tui.ex:111
#, 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:206
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Aucune suggestion reçue."
#: lib/bds/tui.ex:581
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Seules les images peuvent être prévisualisées."
#: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Article introuvable."
#: lib/bds/tui.ex:282
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Appuyez sur Entrée pour prévisualiser %{name}."
#: lib/bds/tui.ex:508
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Publié."
#: lib/bds/tui.ex:524
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Enregistrez avant de changer de langue."
#: lib/bds/tui.ex:509
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Enregistré."
#: lib/bds/tui.ex:285
#, 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:203
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Suggestions appliquées."
#: lib/bds/tui.ex:297
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titre (ctrl+t pour modifier)"
#: lib/bds/tui.ex:296
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titre (édition — Entrée pour confirmer)"
#: lib/bds/tui.ex:328
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Traitement en cours…"
#: lib/bds/tui.ex:364
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "ctrl+s enregistrer · ctrl+p publier · ctrl+t titre · ctrl+l langue · ctrl+g IA · échap retour"
#: lib/bds/tui.ex:357
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr "entrée ouvrir · n nouvel article · 1-5 vues · r actualiser · ctrl+q quitter"
#: lib/bds/tui.ex:349
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "échap pour fermer"