feat: vi-style command prompt in the TUI for menu shell commands (issue #26)

This commit is contained in:
2026-07-15 19:54:30 +02:00
parent 01b90e00a0
commit 824313f106
10 changed files with 739 additions and 232 deletions

View File

@@ -194,7 +194,9 @@ appears in every open shell.
### TUI keys ### TUI keys
`↑/↓` or `j/k` navigate · `enter` open · `n` new post · `1-5` switch view `↑/↓` or `j/k` navigate · `enter` open · `n` new post · `1-5` switch view
(posts/media/templates/scripts/tags) · `r` refresh · in the editor: (posts/media/templates/scripts/tags) · `:` command prompt (metadata
diff, validate site, force render, rebuilds, …) · `?` command help ·
`r` refresh · in the editor:
`ctrl+s` save, `ctrl+p` publish, `ctrl+e` word-wrapped preview, `ctrl+s` save, `ctrl+p` publish, `ctrl+e` word-wrapped preview,
`ctrl+t` title, `ctrl+l` language, `ctrl+g` AI suggestions `ctrl+t` title, `ctrl+l` language, `ctrl+g` AI suggestions
(airplane-mode gated), `esc` back · `ctrl+q` quit. (airplane-mode gated), `esc` back · `ctrl+q` quit.

View File

@@ -10,7 +10,9 @@ defmodule BDS.TUI do
## Keys ## Keys
Sidebar focus: `↑/↓`/`j/k` navigate, `enter` open, `n` new post, Sidebar focus: `↑/↓`/`j/k` navigate, `enter` open, `n` new post,
`1..5` switch view (posts/media/templates/scripts/tags), `r` refresh. `1..5` switch view (posts/media/templates/scripts/tags), `r` refresh,
`:` vi-style command prompt over the Blog-menu shell commands, `?`
command help (commands whose report/apply UI is GUI-only are marked).
Editor focus: text keys edit, `ctrl+s` save, `ctrl+p` publish, Editor focus: text keys edit, `ctrl+s` save, `ctrl+p` publish,
`ctrl+e` word-wrapped preview, `ctrl+t` edit title, `ctrl+l` cycle `ctrl+e` word-wrapped preview, `ctrl+t` edit title, `ctrl+l` cycle
language, `ctrl+g` AI suggestions, `esc` back to sidebar. `ctrl+q` language, `ctrl+g` AI suggestions, `esc` back to sidebar. `ctrl+q`
@@ -49,6 +51,10 @@ defmodule BDS.TUI do
# shuts the VM down instead of leaving a headless server behind. # shuts the VM down instead of leaving a headless server behind.
stop_vm_on_exit: Keyword.get(opts, :stop_vm_on_exit, false), stop_vm_on_exit: Keyword.get(opts, :stop_vm_on_exit, false),
stop_fun: Keyword.get(opts, :stop_fun, &System.stop/0), stop_fun: Keyword.get(opts, :stop_fun, &System.stop/0),
command_executor:
Keyword.get(opts, :command_executor, &BDS.Desktop.ShellCommands.execute/1),
command: nil,
task_polling: false,
project_id: project_id, project_id: project_id,
view: "posts", view: "posts",
sidebar: nil, sidebar: nil,
@@ -79,6 +85,10 @@ defmodule BDS.TUI do
def handle_event(%ExRatatui.Event.Key{code: "q", modifiers: ["ctrl"]}, state), def handle_event(%ExRatatui.Event.Key{code: "q", modifiers: ["ctrl"]}, state),
do: {:stop, state} do: {:stop, state}
def handle_event(%ExRatatui.Event.Key{kind: "press"} = key, %{command: command} = state)
when command != nil,
do: command_key(key, state)
def handle_event(%ExRatatui.Event.Key{code: "esc"}, %{image: image} = state) def handle_event(%ExRatatui.Event.Key{code: "esc"}, %{image: image} = state)
when image != nil, when image != nil,
do: {:noreply, %{state | image: nil}} do: {:noreply, %{state | image: nil}}
@@ -106,6 +116,12 @@ defmodule BDS.TUI do
defp sidebar_key(%{code: "r"}, state), do: {:noreply, load_sidebar(state)} defp sidebar_key(%{code: "r"}, state), do: {:noreply, load_sidebar(state)}
defp sidebar_key(%{code: ":"}, state),
do: {:noreply, %{state | command: %{input: "", selected: 0, help?: false}}}
defp sidebar_key(%{code: "?"}, state),
do: {:noreply, %{state | command: %{input: "", selected: 0, help?: true}}}
defp sidebar_key(%{code: "n"}, %{project_id: project_id} = state) defp sidebar_key(%{code: "n"}, %{project_id: project_id} = state)
when is_binary(project_id) do when is_binary(project_id) do
case Posts.create_post(%{project_id: project_id, title: "", content: ""}) do case Posts.create_post(%{project_id: project_id, title: "", content: ""}) do
@@ -131,6 +147,52 @@ defmodule BDS.TUI do
defp sidebar_key(_key, state), do: {:noreply, state} defp sidebar_key(_key, state), do: {:noreply, state}
# ── Events: command prompt (vi-style) ────────────────────────────────────
defp command_key(%{code: "esc"}, state), do: {:noreply, %{state | command: nil}}
defp command_key(_key, %{command: %{help?: true}} = state),
do: {:noreply, %{state | command: nil}}
defp command_key(%{code: "enter"}, %{command: command} = state) do
case Enum.at(filtered_commands(command.input), command.selected) do
nil ->
{:noreply,
toast(%{state | command: nil}, ":" <> command.input, dgettext("ui", "Unknown command."))}
entry ->
{:noreply, run_command(%{state | command: nil}, entry)}
end
end
defp command_key(%{code: "down"}, %{command: command} = state) do
count = length(filtered_commands(command.input))
{:noreply, put_in(state.command.selected, min(command.selected + 1, max(count - 1, 0)))}
end
defp command_key(%{code: "up"}, %{command: command} = state),
do: {:noreply, put_in(state.command.selected, max(command.selected - 1, 0))}
defp command_key(%{code: "backspace"}, %{command: command} = state) do
{:noreply,
%{state | command: %{command | input: String.slice(command.input, 0..-2//1), selected: 0}}}
end
# `:?` — the vi way to reach help from the prompt.
defp command_key(%{code: "?"}, %{command: %{input: ""}} = state),
do: {:noreply, put_in(state.command.help?, true)}
defp command_key(%{code: code, modifiers: []}, %{command: command} = state)
when byte_size(code) >= 1 do
if String.length(code) == 1 do
{:noreply, %{state | command: %{command | input: command.input <> code, selected: 0}}}
else
{:noreply, state}
end
end
defp command_key(_key, state), do: {:noreply, state}
# ── Events: editor focus ───────────────────────────────────────────────── # ── Events: editor focus ─────────────────────────────────────────────────
defp editor_key(%{code: "esc"}, %{editor: %{editing_title?: true}} = state), defp editor_key(%{code: "esc"}, %{editor: %{editing_title?: true}} = state),
@@ -239,6 +301,20 @@ defmodule BDS.TUI do
{:noreply, toast(%{state | busy: false}, dgettext("ui", "AI Suggestions"), inspect(reason))} {:noreply, toast(%{state | busy: false}, dgettext("ui", "AI Suggestions"), inspect(reason))}
end end
def handle_info(:poll_tasks, %{task_polling: true} = state) do
case BDS.Tasks.status_snapshot() do
%{running_task_message: message} when is_binary(message) and message != "" ->
Process.send_after(self(), :poll_tasks, 1_000)
{:noreply, %{state | status: message}}
_idle ->
{:noreply,
%{state | task_polling: false}
|> load_sidebar()
|> toast(dgettext("ui", "Tasks"), dgettext("ui", "All tasks finished."))}
end
end
def handle_info(_message, state), do: {:noreply, state} def handle_info(_message, state), do: {:noreply, state}
# ── Render ─────────────────────────────────────────────────────────────── # ── Render ───────────────────────────────────────────────────────────────
@@ -261,7 +337,8 @@ defmodule BDS.TUI do
sidebar_widgets(state, sidebar_rect) ++ sidebar_widgets(state, sidebar_rect) ++
main_widgets(state, main_rect) ++ main_widgets(state, main_rect) ++
status_widgets(state, status_rect) ++ status_widgets(state, status_rect) ++
image_widgets(state, body_rect) image_widgets(state, body_rect) ++
command_widgets(state, body_rect)
end end
defp view_tabs(state, rect) do defp view_tabs(state, rect) do
@@ -390,11 +467,46 @@ defmodule BDS.TUI do
] ]
end end
defp command_widgets(%{command: nil}, _rect), do: []
defp command_widgets(%{command: command}, rect) do
overlay = %Rect{
x: rect.x + 4,
y: rect.y + 1,
width: max(rect.width - 8, 20),
height: max(rect.height - 2, 6)
}
gui_marker = dgettext("ui", "[report/apply in GUI]")
items =
Enum.map(filtered_commands(command.input), fn entry ->
marker = if entry.gui, do: " " <> gui_marker, else: ""
"#{entry.action}#{entry.label}#{marker}"
end)
title =
if command.help? do
dgettext("ui", "Commands — esc to close")
else
":" <> command.input
end
[
{%List{
items: items,
selected: if(command.help?, do: nil, else: command.selected),
highlight_style: %Style{fg: :black, bg: :cyan},
block: %Block{title: title, borders: [:all]}
}, overlay}
]
end
defp default_status(%{focus: :sidebar}), defp default_status(%{focus: :sidebar}),
do: do:
dgettext( dgettext(
"ui", "ui",
"enter open · n new post · 1-5 views · r refresh · ctrl+q quit" "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
) )
defp default_status(%{focus: :editor}), defp default_status(%{focus: :editor}),
@@ -605,6 +717,84 @@ defmodule BDS.TUI do
defp editor_title(editor), defp editor_title(editor),
do: Metadata.display_title(editor.title, editor.post.slug, editor.post.id) do: Metadata.display_title(editor.title, editor.post.slug, editor.post.id)
# ── Shell commands (main-menu functionality) ─────────────────────────────
# The parameterless Blog-menu commands. `gui: true` marks commands whose
# report/apply follow-up UI exists only in the GUI shell for now — the
# command still runs here, but reviewing and applying its report (repair,
# orphan import, validation apply) needs the desktop app.
defp commands do
[
%{action: "metadata_diff", label: dgettext("ui", "Metadata Diff"), gui: true},
%{action: "validate_site", label: dgettext("ui", "Validate Site"), gui: true},
%{action: "force_render_site", label: dgettext("ui", "Force Render Site"), gui: false},
%{action: "generate_sitemap", label: dgettext("ui", "Generate Site"), gui: false},
%{action: "rebuild_database", label: dgettext("ui", "Rebuild Database"), gui: false},
%{action: "reindex_text", label: dgettext("ui", "Reindex Text"), gui: false},
%{
action: "rebuild_embedding_index",
label: dgettext("ui", "Rebuild Embedding Index"),
gui: false
},
%{action: "regenerate_calendar", label: dgettext("ui", "Regenerate Calendar"), gui: false},
%{
action: "validate_translations",
label: dgettext("ui", "Validate Translations"),
gui: true
},
%{
action: "fill_missing_translations",
label: dgettext("ui", "Fill Missing Translations"),
gui: false
},
%{action: "find_duplicates", label: dgettext("ui", "Find Duplicate Posts"), gui: true},
%{action: "upload_site", label: dgettext("ui", "Upload Site"), gui: false},
%{action: "open_in_browser", label: dgettext("ui", "Open in Browser"), gui: false}
]
end
defp filtered_commands(""), do: commands()
defp filtered_commands(input) do
needle = String.downcase(input)
Enum.filter(commands(), fn entry ->
String.contains?(entry.action, needle) or String.contains?(String.downcase(entry.label), needle)
end)
end
defp run_command(state, entry) do
case state.command_executor.(entry.action) do
{:ok, %{kind: "task_queued", title: title, message: message}} ->
state
|> toast(title, message)
|> start_task_polling()
{:ok, %{kind: "open_url", title: title, url: url}} ->
toast(state, title, url)
{:ok, %{kind: kind, title: title, message: message}}
when kind in ["output", "open_editor"] ->
toast(state, title, message)
{:ok, _other} ->
toast(state, entry.label, dgettext("ui", "Command completed"))
{:error, %{message: message}} ->
toast(state, entry.label, message)
{:error, reason} ->
toast(state, entry.label, inspect(reason))
end
end
defp start_task_polling(%{task_polling: true} = state), do: state
defp start_task_polling(state) do
Process.send_after(self(), :poll_tasks, 1_000)
%{state | task_polling: true}
end
# ── Media preview ──────────────────────────────────────────────────────── # ── Media preview ────────────────────────────────────────────────────────
defp open_media(state, media_id) do defp open_media(state, media_id) do

View File

@@ -81,11 +81,11 @@ msgstr "KI-Einstellungen"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72 #: 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.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#: lib/bds/tui.ex:230 #: lib/bds/tui.ex:291
#: lib/bds/tui.ex:238 #: lib/bds/tui.ex:299
#: lib/bds/tui.ex:575 #: lib/bds/tui.ex:686
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI Suggestions" msgid "AI Suggestions"
msgstr "KI-Vorschlaege" msgstr "KI-Vorschlaege"
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Unveränderte Diff-Blöcke einklappen" msgstr "Unveränderte Diff-Blöcke einklappen"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422 #: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Command completed" msgid "Command completed"
msgstr "Befehl abgeschlossen" msgstr "Befehl abgeschlossen"
@@ -589,7 +590,7 @@ msgstr "Bestaetigen"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375 #: 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/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32 #: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:348 #: lib/bds/tui.ex:424
#: lib/bds/ui/sidebar.ex:764 #: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Content" msgid "Content"
@@ -1029,6 +1030,7 @@ msgid "Filename"
msgstr "Dateiname" msgstr "Dateiname"
#: lib/bds/desktop/menu_bar.ex:254 #: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:745
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Fill Missing Translations" msgid "Fill Missing Translations"
msgstr "Fehlende Übersetzungen ergänzen" msgstr "Fehlende Übersetzungen ergänzen"
@@ -1039,6 +1041,7 @@ msgid "Find"
msgstr "Suchen" msgstr "Suchen"
#: lib/bds/desktop/menu_bar.ex:255 #: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:748
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Find Duplicate Posts" msgid "Find Duplicate Posts"
msgstr "Doppelte Beiträge finden" msgstr "Doppelte Beiträge finden"
@@ -1065,6 +1068,7 @@ msgid "Gallery"
msgstr "Galerie" msgstr "Galerie"
#: lib/bds/desktop/menu_bar.ex:256 #: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:729
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Generate Site" msgid "Generate Site"
msgstr "Website generieren" msgstr "Website generieren"
@@ -1385,9 +1389,9 @@ msgstr "Maximale Beiträge pro Seite"
#: lib/bds/desktop/shell_live/misc_editor.ex:762 #: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654 #: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175 #: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:489 #: lib/bds/tui.ex:600
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#: lib/bds/ui/registry.ex:30 #: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100 #: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558 #: lib/bds/ui/sidebar.ex:558
@@ -1430,6 +1434,7 @@ msgstr "Metadaten"
#: lib/bds/desktop/shell_live/misc_editor.ex:214 #: 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:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448 #: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:726
#: lib/bds/ui/registry.ex:111 #: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Metadata Diff" msgid "Metadata Diff"
@@ -1475,7 +1480,7 @@ msgstr "Neue Seite"
#: lib/bds/desktop/menu_bar.ex:214 #: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41 #: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:115 #: lib/bds/tui.ex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Post" msgid "New Post"
msgstr "Neuer Beitrag" msgstr "Neuer Beitrag"
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
msgstr "Einstellungen öffnen" msgstr "Einstellungen öffnen"
#: lib/bds/desktop/menu_bar.ex:217 #: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:750
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Open in Browser" msgid "Open in Browser"
msgstr "Im Browser öffnen" msgstr "Im Browser öffnen"
@@ -1911,8 +1917,8 @@ msgstr "Beitrag gespeichert"
#: lib/bds/desktop/menu_bar.ex:233 #: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664 #: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:488 #: lib/bds/tui.ex:599
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#: lib/bds/ui/registry.ex:14 #: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271 #: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
msgstr "Bereit zum Import:" msgstr "Bereit zum Import:"
#: lib/bds/desktop/menu_bar.ex:248 #: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:730
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Database" msgid "Rebuild Database"
msgstr "Datenbank neu aufbauen" msgstr "Datenbank neu aufbauen"
#: lib/bds/desktop/menu_bar.ex:250 #: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:734
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index" msgid "Rebuild Embedding Index"
msgstr "Embedding-Index neu aufbauen" msgstr "Embedding-Index neu aufbauen"
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
msgstr "Übersetzung aktualisieren" msgstr "Übersetzung aktualisieren"
#: lib/bds/desktop/menu_bar.ex:252 #: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:737
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Regenerate Calendar" msgid "Regenerate Calendar"
msgstr "Kalender neu erzeugen" msgstr "Kalender neu erzeugen"
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Fehlende Vorschaubilder neu erzeugen" msgstr "Fehlende Vorschaubilder neu erzeugen"
#: lib/bds/desktop/menu_bar.ex:249 #: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:731
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reindex Text" msgid "Reindex Text"
msgstr "Text neu indizieren" msgstr "Text neu indizieren"
@@ -2294,7 +2304,7 @@ msgstr "Scripting-Funktionen werden in der Neufassung auf Anwendungsebene konfig
#: lib/bds/desktop/shell_live/script_editor.ex:216 #: 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:219
#: lib/bds/desktop/shell_live/script_editor.ex:234 #: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:491 #: lib/bds/tui.ex:602
#: lib/bds/ui/registry.ex:38 #: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63 #: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115 #: lib/bds/ui/sidebar.ex:115
@@ -2542,7 +2552,7 @@ msgstr "Schlagwortname"
#: lib/bds/desktop/shell_live/tags_editor.ex:222 #: 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.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11 #: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:492 #: lib/bds/tui.ex:603
#: lib/bds/ui/registry.ex:54 #: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103 #: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289 #: lib/bds/ui/sidebar.ex:289
@@ -2554,6 +2564,7 @@ msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:786 #: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54 #: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tasks" msgid "Tasks"
msgstr "Aufgaben" msgstr "Aufgaben"
@@ -2598,7 +2609,7 @@ msgstr "Template-Syntax ist gültig"
#: lib/bds/desktop/shell_live/template_editor.ex:171 #: 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:176
#: lib/bds/desktop/shell_live/template_editor.ex:191 #: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:490 #: lib/bds/tui.ex:601
#: lib/bds/ui/registry.ex:46 #: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71 #: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122 #: lib/bds/ui/sidebar.ex:122
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
msgstr "Aktualisierte URLs" msgstr "Aktualisierte URLs"
#: lib/bds/desktop/menu_bar.ex:259 #: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:749
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Upload Site" msgid "Upload Site"
msgstr "Website hochladen" msgstr "Website hochladen"
@@ -2848,11 +2860,13 @@ msgid "Validate"
msgstr "Validieren" msgstr "Validieren"
#: lib/bds/desktop/menu_bar.ex:258 #: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:727
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Site" msgid "Validate Site"
msgstr "Website validieren" msgstr "Website validieren"
#: lib/bds/desktop/menu_bar.ex:253 #: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Translations" msgid "Validate Translations"
msgstr "Übersetzungen validieren" msgstr "Übersetzungen validieren"
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
msgstr "Vorgeschlagene Tags" msgstr "Vorgeschlagene Tags"
#: lib/bds/desktop/menu_bar.ex:257 #: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:728
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Force Render Site" msgid "Force Render Site"
msgstr "Website vollständig neu generieren" msgstr "Website vollständig neu generieren"
@@ -3613,87 +3628,82 @@ msgstr "OK"
msgid "The endpoint returned no models. You can still type a model name manually." msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "Der Endpunkt hat keine Modelle zurückgegeben. Sie können einen Modellnamen weiterhin manuell eingeben." msgstr "Der Endpunkt hat keine Modelle zurückgegeben. Sie können einen Modellnamen weiterhin manuell eingeben."
#: lib/bds/tui.ex:576 #: lib/bds/tui.ex:687
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint." msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "KI ist im Flugmodus ohne lokalen Endpunkt nicht verfügbar." msgstr "KI ist im Flugmodus ohne lokalen Endpunkt nicht verfügbar."
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not load this file." msgid "Could not load this file."
msgstr "Diese Datei konnte nicht geladen werden." msgstr "Diese Datei konnte nicht geladen werden."
#: lib/bds/tui.ex:123 #: lib/bds/tui.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet." msgid "Editing this item is not available in the terminal UI yet."
msgstr "Die Bearbeitung dieses Eintrags ist in der Terminal-Oberfläche noch nicht verfügbar." msgstr "Die Bearbeitung dieses Eintrags ist in der Terminal-Oberfläche noch nicht verfügbar."
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No suggestions returned." msgid "No suggestions returned."
msgstr "Keine Vorschläge erhalten." msgstr "Keine Vorschläge erhalten."
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Only images can be previewed." msgid "Only images can be previewed."
msgstr "Nur Bilder können in der Vorschau angezeigt werden." msgstr "Nur Bilder können in der Vorschau angezeigt werden."
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Post not found." msgid "Post not found."
msgstr "Beitrag nicht gefunden." msgstr "Beitrag nicht gefunden."
#: lib/bds/tui.ex:303 #: lib/bds/tui.ex:379
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}." msgid "Press enter to preview %{name}."
msgstr "Drücken Sie Enter, um %{name} in der Vorschau anzuzeigen." msgstr "Drücken Sie Enter, um %{name} in der Vorschau anzuzeigen."
#: lib/bds/tui.ex:546 #: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Published." msgid "Published."
msgstr "Veröffentlicht." msgstr "Veröffentlicht."
#: lib/bds/tui.ex:562 #: lib/bds/tui.ex:673
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Save before switching languages." msgid "Save before switching languages."
msgstr "Speichern Sie vor dem Sprachwechsel." msgstr "Speichern Sie vor dem Sprachwechsel."
#: lib/bds/tui.ex:547 #: lib/bds/tui.ex:658
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Saved." msgid "Saved."
msgstr "Gespeichert." msgstr "Gespeichert."
#: lib/bds/tui.ex:306 #: lib/bds/tui.ex:382
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it." msgid "Select an entry and press enter to open it."
msgstr "Wählen Sie einen Eintrag aus und öffnen Sie ihn mit Enter." msgstr "Wählen Sie einen Eintrag aus und öffnen Sie ihn mit Enter."
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Suggestions applied." msgid "Suggestions applied."
msgstr "Vorschläge übernommen." msgstr "Vorschläge übernommen."
#: lib/bds/tui.ex:318 #: lib/bds/tui.ex:394
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)" msgid "Title (ctrl+t to edit)"
msgstr "Titel (Strg+T zum Bearbeiten)" msgstr "Titel (Strg+T zum Bearbeiten)"
#: lib/bds/tui.ex:317 #: lib/bds/tui.ex:393
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)" msgid "Title (editing — enter to confirm)"
msgstr "Titel (Bearbeitung — Enter zum Bestätigen)" msgstr "Titel (Bearbeitung — Enter zum Bestätigen)"
#: lib/bds/tui.ex:365 #: lib/bds/tui.ex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Working…" msgid "Working…"
msgstr "Wird bearbeitet…" msgstr "Wird bearbeitet…"
#: lib/bds/tui.ex:394 #: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr "Enter Öffnen · N Neuer Beitrag · 1-5 Ansichten · R Aktualisieren · Strg+Q Beenden"
#: lib/bds/tui.ex:386
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "esc to close" msgid "esc to close"
msgstr "Esc zum Schließen" msgstr "Esc zum Schließen"
@@ -3730,12 +3740,37 @@ msgstr "Serveradresse (user@host oder user@host:port), Public-Key-Authentifizier
msgid "Use the form user@host or user@host:port." msgid "Use the form user@host or user@host:port."
msgstr "Verwenden Sie das Format user@host oder user@host:port." msgstr "Verwenden Sie das Format user@host oder user@host:port."
#: lib/bds/tui.ex:337 #: lib/bds/tui.ex:413
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)" msgid "Preview (ctrl+e to edit)"
msgstr "Vorschau (ctrl+e zum Bearbeiten)" msgstr "Vorschau (ctrl+e zum Bearbeiten)"
#: lib/bds/tui.ex:401 #: lib/bds/tui.ex:512
#, elixir-autogen, elixir-format #, 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" msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "Strg+S Speichern · Strg+P Veröffentlichen · Strg+E Vorschau · Strg+T Titel · Strg+L Sprache · Strg+G KI · Esc Zurück" msgstr "Strg+S Speichern · Strg+P Veröffentlichen · Strg+E Vorschau · Strg+T Titel · Strg+L Sprache · Strg+G KI · Esc Zurück"
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Alle Aufgaben abgeschlossen."
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Befehle — Esc zum Schließen"
#: lib/bds/tui.ex:159
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Unbekannter Befehl."
#: lib/bds/tui.ex:478
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[Bericht/Anwenden in der GUI]"
#: lib/bds/tui.ex:505
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
msgstr "Enter Öffnen · N Neuer Beitrag · 1-5 Ansichten · : Befehle · ? Hilfe · R Aktualisieren · Strg+Q Beenden"

View File

@@ -81,11 +81,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72 #: 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.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#: lib/bds/tui.ex:230 #: lib/bds/tui.ex:291
#: lib/bds/tui.ex:238 #: lib/bds/tui.ex:299
#: lib/bds/tui.ex:575 #: lib/bds/tui.ex:686
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI Suggestions" msgid "AI Suggestions"
msgstr "" msgstr ""
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "" msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:422 #: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Command completed" msgid "Command completed"
msgstr "" msgstr ""
@@ -589,7 +590,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375 #: 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/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32 #: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:348 #: lib/bds/tui.ex:424
#: lib/bds/ui/sidebar.ex:764 #: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Content" msgid "Content"
@@ -1029,6 +1030,7 @@ msgid "Filename"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:254 #: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:745
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Fill Missing Translations" msgid "Fill Missing Translations"
msgstr "" msgstr ""
@@ -1039,6 +1041,7 @@ msgid "Find"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:255 #: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:748
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Find Duplicate Posts" msgid "Find Duplicate Posts"
msgstr "" msgstr ""
@@ -1065,6 +1068,7 @@ msgid "Gallery"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:256 #: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:729
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Generate Site" msgid "Generate Site"
msgstr "" msgstr ""
@@ -1385,9 +1389,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:762 #: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654 #: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175 #: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:489 #: lib/bds/tui.ex:600
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#: lib/bds/ui/registry.ex:30 #: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100 #: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558 #: lib/bds/ui/sidebar.ex:558
@@ -1430,6 +1434,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:214 #: 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:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448 #: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:726
#: lib/bds/ui/registry.ex:111 #: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Metadata Diff" msgid "Metadata Diff"
@@ -1475,7 +1480,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:214 #: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41 #: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:115 #: lib/bds/tui.ex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Post" msgid "New Post"
msgstr "" msgstr ""
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:217 #: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:750
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Open in Browser" msgid "Open in Browser"
msgstr "" msgstr ""
@@ -1911,8 +1917,8 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:233 #: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664 #: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:488 #: lib/bds/tui.ex:599
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#: lib/bds/ui/registry.ex:14 #: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271 #: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:248 #: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:730
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Database" msgid "Rebuild Database"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:250 #: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:734
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index" msgid "Rebuild Embedding Index"
msgstr "" msgstr ""
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:252 #: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:737
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Regenerate Calendar" msgid "Regenerate Calendar"
msgstr "" msgstr ""
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:249 #: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:731
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reindex Text" msgid "Reindex Text"
msgstr "" msgstr ""
@@ -2294,7 +2304,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor.ex:216 #: 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:219
#: lib/bds/desktop/shell_live/script_editor.ex:234 #: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:491 #: lib/bds/tui.ex:602
#: lib/bds/ui/registry.ex:38 #: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63 #: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115 #: lib/bds/ui/sidebar.ex:115
@@ -2542,7 +2552,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/tags_editor.ex:222 #: 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.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11 #: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:492 #: lib/bds/tui.ex:603
#: lib/bds/ui/registry.ex:54 #: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103 #: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289 #: lib/bds/ui/sidebar.ex:289
@@ -2554,6 +2564,7 @@ msgstr ""
#: lib/bds/desktop/shell_live.ex:786 #: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54 #: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tasks" msgid "Tasks"
msgstr "" msgstr ""
@@ -2598,7 +2609,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/template_editor.ex:171 #: 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:176
#: lib/bds/desktop/shell_live/template_editor.ex:191 #: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:490 #: lib/bds/tui.ex:601
#: lib/bds/ui/registry.ex:46 #: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71 #: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122 #: lib/bds/ui/sidebar.ex:122
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:259 #: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:749
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Upload Site" msgid "Upload Site"
msgstr "" msgstr ""
@@ -2848,11 +2860,13 @@ msgid "Validate"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:258 #: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:727
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Site" msgid "Validate Site"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:253 #: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Translations" msgid "Validate Translations"
msgstr "" msgstr ""
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:257 #: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:728
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Force Render Site" msgid "Force Render Site"
msgstr "" msgstr ""
@@ -3613,87 +3628,82 @@ msgstr ""
msgid "The endpoint returned no models. You can still type a model name manually." msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "" msgstr ""
#: lib/bds/tui.ex:576 #: lib/bds/tui.ex:687
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint." msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "" msgstr ""
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Could not load this file." msgid "Could not load this file."
msgstr "" msgstr ""
#: lib/bds/tui.ex:123 #: lib/bds/tui.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet." msgid "Editing this item is not available in the terminal UI yet."
msgstr "" msgstr ""
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No suggestions returned." msgid "No suggestions returned."
msgstr "" msgstr ""
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Only images can be previewed." msgid "Only images can be previewed."
msgstr "" msgstr ""
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Post not found." msgid "Post not found."
msgstr "" msgstr ""
#: lib/bds/tui.ex:303 #: lib/bds/tui.ex:379
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}." msgid "Press enter to preview %{name}."
msgstr "" msgstr ""
#: lib/bds/tui.ex:546 #: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Published." msgid "Published."
msgstr "" msgstr ""
#: lib/bds/tui.ex:562 #: lib/bds/tui.ex:673
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Save before switching languages." msgid "Save before switching languages."
msgstr "" msgstr ""
#: lib/bds/tui.ex:547 #: lib/bds/tui.ex:658
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Saved." msgid "Saved."
msgstr "" msgstr ""
#: lib/bds/tui.ex:306 #: lib/bds/tui.ex:382
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it." msgid "Select an entry and press enter to open it."
msgstr "" msgstr ""
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Suggestions applied." msgid "Suggestions applied."
msgstr "" msgstr ""
#: lib/bds/tui.ex:318 #: lib/bds/tui.ex:394
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)" msgid "Title (ctrl+t to edit)"
msgstr "" msgstr ""
#: lib/bds/tui.ex:317 #: lib/bds/tui.ex:393
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)" msgid "Title (editing — enter to confirm)"
msgstr "" msgstr ""
#: lib/bds/tui.ex:365 #: lib/bds/tui.ex:441
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Working…" msgid "Working…"
msgstr "" msgstr ""
#: lib/bds/tui.ex:394 #: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:386
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "esc to close" msgid "esc to close"
msgstr "" msgstr ""
@@ -3730,12 +3740,37 @@ msgstr ""
msgid "Use the form user@host or user@host:port." msgid "Use the form user@host or user@host:port."
msgstr "" msgstr ""
#: lib/bds/tui.ex:337 #: lib/bds/tui.ex:413
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)" msgid "Preview (ctrl+e to edit)"
msgstr "" msgstr ""
#: lib/bds/tui.ex:401 #: lib/bds/tui.ex:512
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back" msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "" msgstr ""
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr ""
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr ""
#: lib/bds/tui.ex:159
#, elixir-autogen, elixir-format, fuzzy
msgid "Unknown command."
msgstr ""
#: lib/bds/tui.ex:478
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr ""
#: lib/bds/tui.ex:505
#, elixir-autogen, elixir-format, fuzzy
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
msgstr ""

View File

@@ -81,11 +81,11 @@ msgstr "Configuración de IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72 #: 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.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#: lib/bds/tui.ex:230 #: lib/bds/tui.ex:291
#: lib/bds/tui.ex:238 #: lib/bds/tui.ex:299
#: lib/bds/tui.ex:575 #: lib/bds/tui.ex:686
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI Suggestions" msgid "AI Suggestions"
msgstr "Sugerencias de IA" msgstr "Sugerencias de IA"
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Contraer bloques de diff sin cambios" msgstr "Contraer bloques de diff sin cambios"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422 #: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Command completed" msgid "Command completed"
msgstr "Comando completado" msgstr "Comando completado"
@@ -589,7 +590,7 @@ msgstr "Confirmar"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375 #: 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/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32 #: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:348 #: lib/bds/tui.ex:424
#: lib/bds/ui/sidebar.ex:764 #: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Content" msgid "Content"
@@ -1029,6 +1030,7 @@ msgid "Filename"
msgstr "Nombre de archivo" msgstr "Nombre de archivo"
#: lib/bds/desktop/menu_bar.ex:254 #: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:745
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Fill Missing Translations" msgid "Fill Missing Translations"
msgstr "Completar traducciones faltantes" msgstr "Completar traducciones faltantes"
@@ -1039,6 +1041,7 @@ msgid "Find"
msgstr "Buscar" msgstr "Buscar"
#: lib/bds/desktop/menu_bar.ex:255 #: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:748
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Find Duplicate Posts" msgid "Find Duplicate Posts"
msgstr "Buscar entradas duplicadas" msgstr "Buscar entradas duplicadas"
@@ -1065,6 +1068,7 @@ msgid "Gallery"
msgstr "Galeria" msgstr "Galeria"
#: lib/bds/desktop/menu_bar.ex:256 #: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:729
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Generate Site" msgid "Generate Site"
msgstr "Generar sitio" msgstr "Generar sitio"
@@ -1385,9 +1389,9 @@ msgstr "Máximo de publicaciones por página"
#: lib/bds/desktop/shell_live/misc_editor.ex:762 #: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654 #: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175 #: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:489 #: lib/bds/tui.ex:600
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#: lib/bds/ui/registry.ex:30 #: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100 #: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558 #: lib/bds/ui/sidebar.ex:558
@@ -1430,6 +1434,7 @@ msgstr "Metadatos"
#: lib/bds/desktop/shell_live/misc_editor.ex:214 #: 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:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448 #: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:726
#: lib/bds/ui/registry.ex:111 #: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Metadata Diff" msgid "Metadata Diff"
@@ -1475,7 +1480,7 @@ msgstr "Nueva página"
#: lib/bds/desktop/menu_bar.ex:214 #: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41 #: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:115 #: lib/bds/tui.ex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Post" msgid "New Post"
msgstr "Nueva entrada" msgstr "Nueva entrada"
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
msgstr "Abrir Ajustes" msgstr "Abrir Ajustes"
#: lib/bds/desktop/menu_bar.ex:217 #: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:750
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Open in Browser" msgid "Open in Browser"
msgstr "Abrir en el navegador" msgstr "Abrir en el navegador"
@@ -1911,8 +1917,8 @@ msgstr "Artículo guardado"
#: lib/bds/desktop/menu_bar.ex:233 #: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664 #: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:488 #: lib/bds/tui.ex:599
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#: lib/bds/ui/registry.ex:14 #: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271 #: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
msgstr "Listo para importar:" msgstr "Listo para importar:"
#: lib/bds/desktop/menu_bar.ex:248 #: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:730
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Database" msgid "Rebuild Database"
msgstr "Reconstruir base de datos" msgstr "Reconstruir base de datos"
#: lib/bds/desktop/menu_bar.ex:250 #: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:734
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index" msgid "Rebuild Embedding Index"
msgstr "Reconstruir índice de embeddings" msgstr "Reconstruir índice de embeddings"
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
msgstr "Actualizar traducción" msgstr "Actualizar traducción"
#: lib/bds/desktop/menu_bar.ex:252 #: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:737
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Regenerate Calendar" msgid "Regenerate Calendar"
msgstr "Regenerar calendario" msgstr "Regenerar calendario"
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Regenerar miniaturas faltantes" msgstr "Regenerar miniaturas faltantes"
#: lib/bds/desktop/menu_bar.ex:249 #: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:731
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reindex Text" msgid "Reindex Text"
msgstr "Reindexar texto" msgstr "Reindexar texto"
@@ -2294,7 +2304,7 @@ msgstr "Las capacidades de scripts se configuran en la capa de aplicación en la
#: lib/bds/desktop/shell_live/script_editor.ex:216 #: 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:219
#: lib/bds/desktop/shell_live/script_editor.ex:234 #: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:491 #: lib/bds/tui.ex:602
#: lib/bds/ui/registry.ex:38 #: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63 #: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115 #: lib/bds/ui/sidebar.ex:115
@@ -2542,7 +2552,7 @@ msgstr "Nombre de la etiqueta"
#: lib/bds/desktop/shell_live/tags_editor.ex:222 #: 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.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11 #: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:492 #: lib/bds/tui.ex:603
#: lib/bds/ui/registry.ex:54 #: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103 #: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289 #: lib/bds/ui/sidebar.ex:289
@@ -2554,6 +2564,7 @@ msgstr "Etiquetas"
#: lib/bds/desktop/shell_live.ex:786 #: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54 #: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tasks" msgid "Tasks"
msgstr "Tareas" msgstr "Tareas"
@@ -2598,7 +2609,7 @@ msgstr "La sintaxis de la plantilla es válida"
#: lib/bds/desktop/shell_live/template_editor.ex:171 #: 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:176
#: lib/bds/desktop/shell_live/template_editor.ex:191 #: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:490 #: lib/bds/tui.ex:601
#: lib/bds/ui/registry.ex:46 #: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71 #: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122 #: lib/bds/ui/sidebar.ex:122
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
msgstr "URLs actualizadas" msgstr "URLs actualizadas"
#: lib/bds/desktop/menu_bar.ex:259 #: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:749
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Upload Site" msgid "Upload Site"
msgstr "Subir sitio" msgstr "Subir sitio"
@@ -2848,11 +2860,13 @@ msgid "Validate"
msgstr "Validar" msgstr "Validar"
#: lib/bds/desktop/menu_bar.ex:258 #: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:727
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Site" msgid "Validate Site"
msgstr "Validar sitio" msgstr "Validar sitio"
#: lib/bds/desktop/menu_bar.ex:253 #: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Translations" msgid "Validate Translations"
msgstr "Validar traducciones" msgstr "Validar traducciones"
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
msgstr "Etiquetas sugeridas" msgstr "Etiquetas sugeridas"
#: lib/bds/desktop/menu_bar.ex:257 #: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:728
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Force Render Site" msgid "Force Render Site"
msgstr "Forzar la regeneración del sitio" msgstr "Forzar la regeneración del sitio"
@@ -3613,87 +3628,82 @@ msgstr "OK"
msgid "The endpoint returned no models. You can still type a model name manually." msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "El endpoint no devolvió ningún modelo. Aún puedes escribir el nombre de un modelo manualmente." msgstr "El endpoint no devolvió ningún modelo. Aún puedes escribir el nombre de un modelo manualmente."
#: lib/bds/tui.ex:576 #: lib/bds/tui.ex:687
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint." msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "La IA no está disponible en modo avión sin un punto de conexión local." msgstr "La IA no está disponible en modo avión sin un punto de conexión local."
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not load this file." msgid "Could not load this file."
msgstr "No se pudo cargar este archivo." msgstr "No se pudo cargar este archivo."
#: lib/bds/tui.ex:123 #: lib/bds/tui.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet." msgid "Editing this item is not available in the terminal UI yet."
msgstr "La edición de este elemento aún no está disponible en la interfaz de terminal." msgstr "La edición de este elemento aún no está disponible en la interfaz de terminal."
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No suggestions returned." msgid "No suggestions returned."
msgstr "No se recibieron sugerencias." msgstr "No se recibieron sugerencias."
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Only images can be previewed." msgid "Only images can be previewed."
msgstr "Solo se pueden previsualizar imágenes." msgstr "Solo se pueden previsualizar imágenes."
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Post not found." msgid "Post not found."
msgstr "Entrada no encontrada." msgstr "Entrada no encontrada."
#: lib/bds/tui.ex:303 #: lib/bds/tui.ex:379
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}." msgid "Press enter to preview %{name}."
msgstr "Pulsa Intro para previsualizar %{name}." msgstr "Pulsa Intro para previsualizar %{name}."
#: lib/bds/tui.ex:546 #: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Published." msgid "Published."
msgstr "Publicado." msgstr "Publicado."
#: lib/bds/tui.ex:562 #: lib/bds/tui.ex:673
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Save before switching languages." msgid "Save before switching languages."
msgstr "Guarda antes de cambiar de idioma." msgstr "Guarda antes de cambiar de idioma."
#: lib/bds/tui.ex:547 #: lib/bds/tui.ex:658
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Saved." msgid "Saved."
msgstr "Guardado." msgstr "Guardado."
#: lib/bds/tui.ex:306 #: lib/bds/tui.ex:382
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it." msgid "Select an entry and press enter to open it."
msgstr "Selecciona una entrada y pulsa Intro para abrirla." msgstr "Selecciona una entrada y pulsa Intro para abrirla."
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Suggestions applied." msgid "Suggestions applied."
msgstr "Sugerencias aplicadas." msgstr "Sugerencias aplicadas."
#: lib/bds/tui.ex:318 #: lib/bds/tui.ex:394
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)" msgid "Title (ctrl+t to edit)"
msgstr "Título (ctrl+t para editar)" msgstr "Título (ctrl+t para editar)"
#: lib/bds/tui.ex:317 #: lib/bds/tui.ex:393
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)" msgid "Title (editing — enter to confirm)"
msgstr "Título (edición — Intro para confirmar)" msgstr "Título (edición — Intro para confirmar)"
#: lib/bds/tui.ex:365 #: lib/bds/tui.ex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Working…" msgid "Working…"
msgstr "Procesando…" msgstr "Procesando…"
#: lib/bds/tui.ex:394 #: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr "intro abrir · n nueva entrada · 1-5 vistas · r actualizar · ctrl+q salir"
#: lib/bds/tui.ex:386
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "esc to close" msgid "esc to close"
msgstr "esc para cerrar" msgstr "esc para cerrar"
@@ -3730,12 +3740,37 @@ msgstr "Dirección del servidor (user@host o user@host:port), autenticación de
msgid "Use the form user@host or user@host:port." msgid "Use the form user@host or user@host:port."
msgstr "Usa el formato user@host o user@host:port." msgstr "Usa el formato user@host o user@host:port."
#: lib/bds/tui.ex:337 #: lib/bds/tui.ex:413
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)" msgid "Preview (ctrl+e to edit)"
msgstr "Vista previa (ctrl+e para editar)" msgstr "Vista previa (ctrl+e para editar)"
#: lib/bds/tui.ex:401 #: lib/bds/tui.ex:512
#, elixir-autogen, elixir-format #, 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" msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "ctrl+s guardar · ctrl+p publicar · ctrl+e vista previa · ctrl+t título · ctrl+l idioma · ctrl+g IA · esc volver" msgstr "ctrl+s guardar · ctrl+p publicar · ctrl+e vista previa · ctrl+t título · ctrl+l idioma · ctrl+g IA · esc volver"
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Todas las tareas han terminado."
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Comandos — esc para cerrar"
#: lib/bds/tui.ex:159
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Comando desconocido."
#: lib/bds/tui.ex:478
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[informe/aplicación en la GUI]"
#: lib/bds/tui.ex:505
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
msgstr "intro abrir · n nueva entrada · 1-5 vistas · : comandos · ? ayuda · r actualizar · ctrl+q salir"

View File

@@ -81,11 +81,11 @@ msgstr "Paramètres IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72 #: 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.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#: lib/bds/tui.ex:230 #: lib/bds/tui.ex:291
#: lib/bds/tui.ex:238 #: lib/bds/tui.ex:299
#: lib/bds/tui.ex:575 #: lib/bds/tui.ex:686
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI Suggestions" msgid "AI Suggestions"
msgstr "Suggestions IA" msgstr "Suggestions IA"
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Réduire les blocs de diff inchangés" msgstr "Réduire les blocs de diff inchangés"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422 #: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Command completed" msgid "Command completed"
msgstr "Commande terminée" msgstr "Commande terminée"
@@ -589,7 +590,7 @@ msgstr "Confirmer"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375 #: 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/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32 #: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:348 #: lib/bds/tui.ex:424
#: lib/bds/ui/sidebar.ex:764 #: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Content" msgid "Content"
@@ -1029,6 +1030,7 @@ msgid "Filename"
msgstr "Nom de fichier" msgstr "Nom de fichier"
#: lib/bds/desktop/menu_bar.ex:254 #: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:745
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Fill Missing Translations" msgid "Fill Missing Translations"
msgstr "Compléter les traductions manquantes" msgstr "Compléter les traductions manquantes"
@@ -1039,6 +1041,7 @@ msgid "Find"
msgstr "Rechercher" msgstr "Rechercher"
#: lib/bds/desktop/menu_bar.ex:255 #: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:748
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Find Duplicate Posts" msgid "Find Duplicate Posts"
msgstr "Trouver les doublons" msgstr "Trouver les doublons"
@@ -1065,6 +1068,7 @@ msgid "Gallery"
msgstr "Galerie" msgstr "Galerie"
#: lib/bds/desktop/menu_bar.ex:256 #: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:729
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Generate Site" msgid "Generate Site"
msgstr "Générer le site" msgstr "Générer le site"
@@ -1385,9 +1389,9 @@ msgstr "Nombre maximal darticles par page"
#: lib/bds/desktop/shell_live/misc_editor.ex:762 #: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654 #: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175 #: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:489 #: lib/bds/tui.ex:600
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#: lib/bds/ui/registry.ex:30 #: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100 #: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558 #: lib/bds/ui/sidebar.ex:558
@@ -1430,6 +1434,7 @@ msgstr "Métadonnées"
#: lib/bds/desktop/shell_live/misc_editor.ex:214 #: 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:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448 #: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:726
#: lib/bds/ui/registry.ex:111 #: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Metadata Diff" msgid "Metadata Diff"
@@ -1475,7 +1480,7 @@ msgstr "Nouvelle page"
#: lib/bds/desktop/menu_bar.ex:214 #: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41 #: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:115 #: lib/bds/tui.ex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Post" msgid "New Post"
msgstr "Nouvel article" msgstr "Nouvel article"
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
msgstr "Ouvrir les Réglages" msgstr "Ouvrir les Réglages"
#: lib/bds/desktop/menu_bar.ex:217 #: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:750
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Open in Browser" msgid "Open in Browser"
msgstr "Ouvrir dans le navigateur" msgstr "Ouvrir dans le navigateur"
@@ -1911,8 +1917,8 @@ msgstr "Article enregistré"
#: lib/bds/desktop/menu_bar.ex:233 #: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664 #: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:488 #: lib/bds/tui.ex:599
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#: lib/bds/ui/registry.ex:14 #: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271 #: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
msgstr "Prêt à importer :" msgstr "Prêt à importer :"
#: lib/bds/desktop/menu_bar.ex:248 #: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:730
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Database" msgid "Rebuild Database"
msgstr "Reconstruire la base de données" msgstr "Reconstruire la base de données"
#: lib/bds/desktop/menu_bar.ex:250 #: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:734
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index" msgid "Rebuild Embedding Index"
msgstr "Reconstruire lindex dembeddings" msgstr "Reconstruire lindex dembeddings"
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
msgstr "Actualiser la traduction" msgstr "Actualiser la traduction"
#: lib/bds/desktop/menu_bar.ex:252 #: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:737
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Regenerate Calendar" msgid "Regenerate Calendar"
msgstr "Régénérer le calendrier" msgstr "Régénérer le calendrier"
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Régénérer les vignettes manquantes" msgstr "Régénérer les vignettes manquantes"
#: lib/bds/desktop/menu_bar.ex:249 #: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:731
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reindex Text" msgid "Reindex Text"
msgstr "Réindexer le texte" msgstr "Réindexer le texte"
@@ -2294,7 +2304,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:216
#: lib/bds/desktop/shell_live/script_editor.ex:219 #: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234 #: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:491 #: lib/bds/tui.ex:602
#: lib/bds/ui/registry.ex:38 #: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63 #: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115 #: lib/bds/ui/sidebar.ex:115
@@ -2542,7 +2552,7 @@ msgstr "Nom du mot-clé"
#: lib/bds/desktop/shell_live/tags_editor.ex:222 #: 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.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11 #: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:492 #: lib/bds/tui.ex:603
#: lib/bds/ui/registry.ex:54 #: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103 #: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289 #: lib/bds/ui/sidebar.ex:289
@@ -2554,6 +2564,7 @@ msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:786 #: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54 #: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tasks" msgid "Tasks"
msgstr "Tâches" msgstr "Tâches"
@@ -2598,7 +2609,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:171
#: lib/bds/desktop/shell_live/template_editor.ex:176 #: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191 #: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:490 #: lib/bds/tui.ex:601
#: lib/bds/ui/registry.ex:46 #: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71 #: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122 #: lib/bds/ui/sidebar.ex:122
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
msgstr "URLs mises à jour" msgstr "URLs mises à jour"
#: lib/bds/desktop/menu_bar.ex:259 #: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:749
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Upload Site" msgid "Upload Site"
msgstr "Téléverser le site" msgstr "Téléverser le site"
@@ -2848,11 +2860,13 @@ msgid "Validate"
msgstr "Valider" msgstr "Valider"
#: lib/bds/desktop/menu_bar.ex:258 #: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:727
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Site" msgid "Validate Site"
msgstr "Valider le site" msgstr "Valider le site"
#: lib/bds/desktop/menu_bar.ex:253 #: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Translations" msgid "Validate Translations"
msgstr "Valider les traductions" msgstr "Valider les traductions"
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
msgstr "Tags suggérés" msgstr "Tags suggérés"
#: lib/bds/desktop/menu_bar.ex:257 #: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:728
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Force Render Site" msgid "Force Render Site"
msgstr "Forcer la régénération du site" msgstr "Forcer la régénération du site"
@@ -3613,87 +3628,82 @@ msgstr "OK"
msgid "The endpoint returned no models. You can still type a model name manually." 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." 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:576 #: lib/bds/tui.ex:687
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint." 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." msgstr "L'IA n'est pas disponible en mode avion sans point de terminaison local."
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not load this file." msgid "Could not load this file."
msgstr "Impossible de charger ce fichier." msgstr "Impossible de charger ce fichier."
#: lib/bds/tui.ex:123 #: lib/bds/tui.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet." 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." msgstr "La modification de cet élément n'est pas encore disponible dans l'interface du terminal."
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No suggestions returned." msgid "No suggestions returned."
msgstr "Aucune suggestion reçue." msgstr "Aucune suggestion reçue."
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Only images can be previewed." msgid "Only images can be previewed."
msgstr "Seules les images peuvent être prévisualisées." msgstr "Seules les images peuvent être prévisualisées."
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Post not found." msgid "Post not found."
msgstr "Article introuvable." msgstr "Article introuvable."
#: lib/bds/tui.ex:303 #: lib/bds/tui.ex:379
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}." msgid "Press enter to preview %{name}."
msgstr "Appuyez sur Entrée pour prévisualiser %{name}." msgstr "Appuyez sur Entrée pour prévisualiser %{name}."
#: lib/bds/tui.ex:546 #: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Published." msgid "Published."
msgstr "Publié." msgstr "Publié."
#: lib/bds/tui.ex:562 #: lib/bds/tui.ex:673
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Save before switching languages." msgid "Save before switching languages."
msgstr "Enregistrez avant de changer de langue." msgstr "Enregistrez avant de changer de langue."
#: lib/bds/tui.ex:547 #: lib/bds/tui.ex:658
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Saved." msgid "Saved."
msgstr "Enregistré." msgstr "Enregistré."
#: lib/bds/tui.ex:306 #: lib/bds/tui.ex:382
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it." msgid "Select an entry and press enter to open it."
msgstr "Sélectionnez une entrée et appuyez sur Entrée pour l'ouvrir." msgstr "Sélectionnez une entrée et appuyez sur Entrée pour l'ouvrir."
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Suggestions applied." msgid "Suggestions applied."
msgstr "Suggestions appliquées." msgstr "Suggestions appliquées."
#: lib/bds/tui.ex:318 #: lib/bds/tui.ex:394
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)" msgid "Title (ctrl+t to edit)"
msgstr "Titre (ctrl+t pour modifier)" msgstr "Titre (ctrl+t pour modifier)"
#: lib/bds/tui.ex:317 #: lib/bds/tui.ex:393
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)" msgid "Title (editing — enter to confirm)"
msgstr "Titre (édition — Entrée pour confirmer)" msgstr "Titre (édition — Entrée pour confirmer)"
#: lib/bds/tui.ex:365 #: lib/bds/tui.ex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Working…" msgid "Working…"
msgstr "Traitement en cours…" msgstr "Traitement en cours…"
#: lib/bds/tui.ex:394 #: lib/bds/tui.ex:462
#, 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:386
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "esc to close" msgid "esc to close"
msgstr "échap pour fermer" msgstr "échap pour fermer"
@@ -3730,12 +3740,37 @@ msgstr "Adresse du serveur (user@host ou user@host:port), authentification par c
msgid "Use the form user@host or user@host:port." msgid "Use the form user@host or user@host:port."
msgstr "Utilisez le format user@host ou user@host:port." msgstr "Utilisez le format user@host ou user@host:port."
#: lib/bds/tui.ex:337 #: lib/bds/tui.ex:413
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)" msgid "Preview (ctrl+e to edit)"
msgstr "Aperçu (ctrl+e pour modifier)" msgstr "Aperçu (ctrl+e pour modifier)"
#: lib/bds/tui.ex:401 #: lib/bds/tui.ex:512
#, elixir-autogen, elixir-format #, 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" 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" 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
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Toutes les tâches sont terminées."
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Commandes — échap pour fermer"
#: lib/bds/tui.ex:159
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Commande inconnue."
#: lib/bds/tui.ex:478
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[rapport/application dans la GUI]"
#: lib/bds/tui.ex:505
#, 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"

View File

@@ -81,11 +81,11 @@ msgstr "Impostazioni IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72 #: 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.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#: lib/bds/tui.ex:230 #: lib/bds/tui.ex:291
#: lib/bds/tui.ex:238 #: lib/bds/tui.ex:299
#: lib/bds/tui.ex:575 #: lib/bds/tui.ex:686
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI Suggestions" msgid "AI Suggestions"
msgstr "Suggerimenti IA" msgstr "Suggerimenti IA"
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Comprimi i blocchi diff invariati" msgstr "Comprimi i blocchi diff invariati"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422 #: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Command completed" msgid "Command completed"
msgstr "Comando completato" msgstr "Comando completato"
@@ -589,7 +590,7 @@ msgstr "Conferma"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375 #: 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/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32 #: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:348 #: lib/bds/tui.ex:424
#: lib/bds/ui/sidebar.ex:764 #: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Content" msgid "Content"
@@ -1029,6 +1030,7 @@ msgid "Filename"
msgstr "Nome file" msgstr "Nome file"
#: lib/bds/desktop/menu_bar.ex:254 #: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:745
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Fill Missing Translations" msgid "Fill Missing Translations"
msgstr "Completa traduzioni mancanti" msgstr "Completa traduzioni mancanti"
@@ -1039,6 +1041,7 @@ msgid "Find"
msgstr "Trova" msgstr "Trova"
#: lib/bds/desktop/menu_bar.ex:255 #: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:748
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Find Duplicate Posts" msgid "Find Duplicate Posts"
msgstr "Trova post duplicati" msgstr "Trova post duplicati"
@@ -1065,6 +1068,7 @@ msgid "Gallery"
msgstr "Galleria" msgstr "Galleria"
#: lib/bds/desktop/menu_bar.ex:256 #: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:729
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Generate Site" msgid "Generate Site"
msgstr "Genera sito" msgstr "Genera sito"
@@ -1385,9 +1389,9 @@ msgstr "Numero massimo di post per pagina"
#: lib/bds/desktop/shell_live/misc_editor.ex:762 #: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654 #: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175 #: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:489 #: lib/bds/tui.ex:600
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#: lib/bds/ui/registry.ex:30 #: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100 #: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558 #: lib/bds/ui/sidebar.ex:558
@@ -1430,6 +1434,7 @@ msgstr "Metadati"
#: lib/bds/desktop/shell_live/misc_editor.ex:214 #: 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:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448 #: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:726
#: lib/bds/ui/registry.ex:111 #: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Metadata Diff" msgid "Metadata Diff"
@@ -1475,7 +1480,7 @@ msgstr "Nuova pagina"
#: lib/bds/desktop/menu_bar.ex:214 #: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41 #: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:115 #: lib/bds/tui.ex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Post" msgid "New Post"
msgstr "Nuovo post" msgstr "Nuovo post"
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
msgstr "Apri Impostazioni" msgstr "Apri Impostazioni"
#: lib/bds/desktop/menu_bar.ex:217 #: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:750
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Open in Browser" msgid "Open in Browser"
msgstr "Apri nel browser" msgstr "Apri nel browser"
@@ -1911,8 +1917,8 @@ msgstr "Articolo salvato"
#: lib/bds/desktop/menu_bar.ex:233 #: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664 #: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:488 #: lib/bds/tui.ex:599
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#: lib/bds/ui/registry.ex:14 #: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271 #: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
msgstr "Pronto per importare:" msgstr "Pronto per importare:"
#: lib/bds/desktop/menu_bar.ex:248 #: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:730
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Database" msgid "Rebuild Database"
msgstr "Ricostruisci database" msgstr "Ricostruisci database"
#: lib/bds/desktop/menu_bar.ex:250 #: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:734
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index" msgid "Rebuild Embedding Index"
msgstr "Ricostruisci indice embeddings" msgstr "Ricostruisci indice embeddings"
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
msgstr "Aggiorna traduzione" msgstr "Aggiorna traduzione"
#: lib/bds/desktop/menu_bar.ex:252 #: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:737
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Regenerate Calendar" msgid "Regenerate Calendar"
msgstr "Rigenera calendario" msgstr "Rigenera calendario"
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Rigenera miniature mancanti" msgstr "Rigenera miniature mancanti"
#: lib/bds/desktop/menu_bar.ex:249 #: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:731
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reindex Text" msgid "Reindex Text"
msgstr "Reindicizza testo" msgstr "Reindicizza testo"
@@ -2294,7 +2304,7 @@ msgstr "Le capacità di scripting sono configurate a livello applicativo nella r
#: lib/bds/desktop/shell_live/script_editor.ex:216 #: 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:219
#: lib/bds/desktop/shell_live/script_editor.ex:234 #: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:491 #: lib/bds/tui.ex:602
#: lib/bds/ui/registry.ex:38 #: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63 #: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115 #: lib/bds/ui/sidebar.ex:115
@@ -2542,7 +2552,7 @@ msgstr "Nome del tag"
#: lib/bds/desktop/shell_live/tags_editor.ex:222 #: 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.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11 #: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:492 #: lib/bds/tui.ex:603
#: lib/bds/ui/registry.ex:54 #: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103 #: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289 #: lib/bds/ui/sidebar.ex:289
@@ -2554,6 +2564,7 @@ msgstr "Tag"
#: lib/bds/desktop/shell_live.ex:786 #: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54 #: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tasks" msgid "Tasks"
msgstr "Attività" msgstr "Attività"
@@ -2598,7 +2609,7 @@ msgstr "La sintassi del template è valida"
#: lib/bds/desktop/shell_live/template_editor.ex:171 #: 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:176
#: lib/bds/desktop/shell_live/template_editor.ex:191 #: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:490 #: lib/bds/tui.ex:601
#: lib/bds/ui/registry.ex:46 #: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71 #: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122 #: lib/bds/ui/sidebar.ex:122
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
msgstr "URL aggiornati" msgstr "URL aggiornati"
#: lib/bds/desktop/menu_bar.ex:259 #: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:749
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Upload Site" msgid "Upload Site"
msgstr "Carica sito" msgstr "Carica sito"
@@ -2848,11 +2860,13 @@ msgid "Validate"
msgstr "Valida" msgstr "Valida"
#: lib/bds/desktop/menu_bar.ex:258 #: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:727
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Site" msgid "Validate Site"
msgstr "Valida sito" msgstr "Valida sito"
#: lib/bds/desktop/menu_bar.ex:253 #: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Translations" msgid "Validate Translations"
msgstr "Valida traduzioni" msgstr "Valida traduzioni"
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
msgstr "Tag suggeriti" msgstr "Tag suggeriti"
#: lib/bds/desktop/menu_bar.ex:257 #: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:728
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Force Render Site" msgid "Force Render Site"
msgstr "Forza la rigenerazione del sito" msgstr "Forza la rigenerazione del sito"
@@ -3613,87 +3628,82 @@ msgstr "OK"
msgid "The endpoint returned no models. You can still type a model name manually." msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "L'endpoint non ha restituito alcun modello. Puoi comunque digitare manualmente il nome di un modello." msgstr "L'endpoint non ha restituito alcun modello. Puoi comunque digitare manualmente il nome di un modello."
#: lib/bds/tui.ex:576 #: lib/bds/tui.ex:687
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint." msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "L'IA non è disponibile in modalità aereo senza un endpoint locale." msgstr "L'IA non è disponibile in modalità aereo senza un endpoint locale."
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not load this file." msgid "Could not load this file."
msgstr "Impossibile caricare questo file." msgstr "Impossibile caricare questo file."
#: lib/bds/tui.ex:123 #: lib/bds/tui.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet." msgid "Editing this item is not available in the terminal UI yet."
msgstr "La modifica di questo elemento non è ancora disponibile nell'interfaccia del terminale." msgstr "La modifica di questo elemento non è ancora disponibile nell'interfaccia del terminale."
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No suggestions returned." msgid "No suggestions returned."
msgstr "Nessun suggerimento ricevuto." msgstr "Nessun suggerimento ricevuto."
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Only images can be previewed." msgid "Only images can be previewed."
msgstr "Solo le immagini possono essere visualizzate in anteprima." msgstr "Solo le immagini possono essere visualizzate in anteprima."
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Post not found." msgid "Post not found."
msgstr "Post non trovato." msgstr "Post non trovato."
#: lib/bds/tui.ex:303 #: lib/bds/tui.ex:379
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}." msgid "Press enter to preview %{name}."
msgstr "Premi Invio per l'anteprima di %{name}." msgstr "Premi Invio per l'anteprima di %{name}."
#: lib/bds/tui.ex:546 #: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Published." msgid "Published."
msgstr "Pubblicato." msgstr "Pubblicato."
#: lib/bds/tui.ex:562 #: lib/bds/tui.ex:673
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Save before switching languages." msgid "Save before switching languages."
msgstr "Salva prima di cambiare lingua." msgstr "Salva prima di cambiare lingua."
#: lib/bds/tui.ex:547 #: lib/bds/tui.ex:658
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Saved." msgid "Saved."
msgstr "Salvato." msgstr "Salvato."
#: lib/bds/tui.ex:306 #: lib/bds/tui.ex:382
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it." msgid "Select an entry and press enter to open it."
msgstr "Seleziona una voce e premi Invio per aprirla." msgstr "Seleziona una voce e premi Invio per aprirla."
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Suggestions applied." msgid "Suggestions applied."
msgstr "Suggerimenti applicati." msgstr "Suggerimenti applicati."
#: lib/bds/tui.ex:318 #: lib/bds/tui.ex:394
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)" msgid "Title (ctrl+t to edit)"
msgstr "Titolo (ctrl+t per modificare)" msgstr "Titolo (ctrl+t per modificare)"
#: lib/bds/tui.ex:317 #: lib/bds/tui.ex:393
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)" msgid "Title (editing — enter to confirm)"
msgstr "Titolo (modifica — Invio per confermare)" msgstr "Titolo (modifica — Invio per confermare)"
#: lib/bds/tui.ex:365 #: lib/bds/tui.ex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Working…" msgid "Working…"
msgstr "Elaborazione…" msgstr "Elaborazione…"
#: lib/bds/tui.ex:394 #: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr "invio apri · n nuovo post · 1-5 viste · r aggiorna · ctrl+q esci"
#: lib/bds/tui.ex:386
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "esc to close" msgid "esc to close"
msgstr "esc per chiudere" msgstr "esc per chiudere"
@@ -3730,12 +3740,37 @@ msgstr "Indirizzo del server (user@host o user@host:port), autenticazione a chia
msgid "Use the form user@host or user@host:port." msgid "Use the form user@host or user@host:port."
msgstr "Usa il formato user@host o user@host:port." msgstr "Usa il formato user@host o user@host:port."
#: lib/bds/tui.ex:337 #: lib/bds/tui.ex:413
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)" msgid "Preview (ctrl+e to edit)"
msgstr "Anteprima (ctrl+e per modificare)" msgstr "Anteprima (ctrl+e per modificare)"
#: lib/bds/tui.ex:401 #: lib/bds/tui.ex:512
#, elixir-autogen, elixir-format #, 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" msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "ctrl+s salva · ctrl+p pubblica · ctrl+e anteprima · ctrl+t titolo · ctrl+l lingua · ctrl+g IA · esc indietro" msgstr "ctrl+s salva · ctrl+p pubblica · ctrl+e anteprima · ctrl+t titolo · ctrl+l lingua · ctrl+g IA · esc indietro"
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Tutte le attività sono terminate."
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Comandi — esc per chiudere"
#: lib/bds/tui.ex:159
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Comando sconosciuto."
#: lib/bds/tui.ex:478
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[report/applicazione nella GUI]"
#: lib/bds/tui.ex:505
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
msgstr "invio apri · n nuovo post · 1-5 viste · : comandi · ? aiuto · r aggiorna · ctrl+q esci"

View File

@@ -94,11 +94,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72 #: 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.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#: lib/bds/tui.ex:230 #: lib/bds/tui.ex:291
#: lib/bds/tui.ex:238 #: lib/bds/tui.ex:299
#: lib/bds/tui.ex:575 #: lib/bds/tui.ex:686
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI Suggestions" msgid "AI Suggestions"
msgstr "" msgstr ""
@@ -585,6 +585,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "" msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:422 #: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Command completed" msgid "Command completed"
msgstr "" msgstr ""
@@ -602,7 +603,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375 #: 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/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32 #: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:348 #: lib/bds/tui.ex:424
#: lib/bds/ui/sidebar.ex:764 #: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Content" msgid "Content"
@@ -1042,6 +1043,7 @@ msgid "Filename"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:254 #: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:745
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Fill Missing Translations" msgid "Fill Missing Translations"
msgstr "" msgstr ""
@@ -1052,6 +1054,7 @@ msgid "Find"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:255 #: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:748
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Find Duplicate Posts" msgid "Find Duplicate Posts"
msgstr "" msgstr ""
@@ -1078,6 +1081,7 @@ msgid "Gallery"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:256 #: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:729
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Generate Site" msgid "Generate Site"
msgstr "" msgstr ""
@@ -1398,9 +1402,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:762 #: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654 #: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175 #: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:489 #: lib/bds/tui.ex:600
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#: lib/bds/ui/registry.ex:30 #: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100 #: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558 #: lib/bds/ui/sidebar.ex:558
@@ -1443,6 +1447,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:214 #: 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:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448 #: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:726
#: lib/bds/ui/registry.ex:111 #: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Metadata Diff" msgid "Metadata Diff"
@@ -1488,7 +1493,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:214 #: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41 #: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:115 #: lib/bds/tui.ex:130
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Post" msgid "New Post"
msgstr "" msgstr ""
@@ -1777,6 +1782,7 @@ msgid "Open Settings"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:217 #: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:750
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Open in Browser" msgid "Open in Browser"
msgstr "" msgstr ""
@@ -1924,8 +1930,8 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:233 #: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664 #: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:488 #: lib/bds/tui.ex:599
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#: lib/bds/ui/registry.ex:14 #: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271 #: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@@ -2049,12 +2055,14 @@ msgid "Ready to import:"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:248 #: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:730
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Database" msgid "Rebuild Database"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:250 #: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:734
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index" msgid "Rebuild Embedding Index"
msgstr "" msgstr ""
@@ -2112,6 +2120,7 @@ msgid "Refresh Translation"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:252 #: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:737
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Regenerate Calendar" msgid "Regenerate Calendar"
msgstr "" msgstr ""
@@ -2122,6 +2131,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:249 #: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:731
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Reindex Text" msgid "Reindex Text"
msgstr "" msgstr ""
@@ -2307,7 +2317,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor.ex:216 #: 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:219
#: lib/bds/desktop/shell_live/script_editor.ex:234 #: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:491 #: lib/bds/tui.ex:602
#: lib/bds/ui/registry.ex:38 #: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63 #: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115 #: lib/bds/ui/sidebar.ex:115
@@ -2555,7 +2565,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/tags_editor.ex:222 #: 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.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11 #: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:492 #: lib/bds/tui.ex:603
#: lib/bds/ui/registry.ex:54 #: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103 #: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289 #: lib/bds/ui/sidebar.ex:289
@@ -2567,6 +2577,7 @@ msgstr ""
#: lib/bds/desktop/shell_live.ex:786 #: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54 #: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tasks" msgid "Tasks"
msgstr "" msgstr ""
@@ -2611,7 +2622,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/template_editor.ex:171 #: 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:176
#: lib/bds/desktop/shell_live/template_editor.ex:191 #: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:490 #: lib/bds/tui.ex:601
#: lib/bds/ui/registry.ex:46 #: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71 #: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122 #: lib/bds/ui/sidebar.ex:122
@@ -2834,6 +2845,7 @@ msgid "Updated URLs"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:259 #: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:749
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Upload Site" msgid "Upload Site"
msgstr "" msgstr ""
@@ -2861,11 +2873,13 @@ msgid "Validate"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:258 #: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:727
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Site" msgid "Validate Site"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:253 #: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:740
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Validate Translations" msgid "Validate Translations"
msgstr "" msgstr ""
@@ -3530,6 +3544,7 @@ msgid "Suggested tags"
msgstr "" msgstr ""
#: lib/bds/desktop/menu_bar.ex:257 #: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:728
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Force Render Site" msgid "Force Render Site"
msgstr "" msgstr ""
@@ -3626,87 +3641,82 @@ msgstr ""
msgid "The endpoint returned no models. You can still type a model name manually." msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "" msgstr ""
#: lib/bds/tui.ex:576 #: lib/bds/tui.ex:687
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint." msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "" msgstr ""
#: lib/bds/tui.ex:622 #: lib/bds/tui.ex:811
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not load this file." msgid "Could not load this file."
msgstr "" msgstr ""
#: lib/bds/tui.ex:123 #: lib/bds/tui.ex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet." msgid "Editing this item is not available in the terminal UI yet."
msgstr "" msgstr ""
#: lib/bds/tui.ex:227 #: lib/bds/tui.ex:288
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No suggestions returned." msgid "No suggestions returned."
msgstr "" msgstr ""
#: lib/bds/tui.ex:619 #: lib/bds/tui.ex:808
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Only images can be previewed." msgid "Only images can be previewed."
msgstr "" msgstr ""
#: lib/bds/tui.ex:499 #: lib/bds/tui.ex:610
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Post not found." msgid "Post not found."
msgstr "" msgstr ""
#: lib/bds/tui.ex:303 #: lib/bds/tui.ex:379
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}." msgid "Press enter to preview %{name}."
msgstr "" msgstr ""
#: lib/bds/tui.ex:546 #: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Published." msgid "Published."
msgstr "" msgstr ""
#: lib/bds/tui.ex:562 #: lib/bds/tui.ex:673
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Save before switching languages." msgid "Save before switching languages."
msgstr "" msgstr ""
#: lib/bds/tui.ex:547 #: lib/bds/tui.ex:658
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Saved." msgid "Saved."
msgstr "" msgstr ""
#: lib/bds/tui.ex:306 #: lib/bds/tui.ex:382
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it." msgid "Select an entry and press enter to open it."
msgstr "" msgstr ""
#: lib/bds/tui.ex:224 #: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Suggestions applied." msgid "Suggestions applied."
msgstr "" msgstr ""
#: lib/bds/tui.ex:318 #: lib/bds/tui.ex:394
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)" msgid "Title (ctrl+t to edit)"
msgstr "" msgstr ""
#: lib/bds/tui.ex:317 #: lib/bds/tui.ex:393
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)" msgid "Title (editing — enter to confirm)"
msgstr "" msgstr ""
#: lib/bds/tui.ex:365 #: lib/bds/tui.ex:441
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Working…" msgid "Working…"
msgstr "" msgstr ""
#: lib/bds/tui.ex:394 #: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:386
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "esc to close" msgid "esc to close"
msgstr "" msgstr ""
@@ -3743,12 +3753,37 @@ msgstr ""
msgid "Use the form user@host or user@host:port." msgid "Use the form user@host or user@host:port."
msgstr "" msgstr ""
#: lib/bds/tui.ex:337 #: lib/bds/tui.ex:413
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)" msgid "Preview (ctrl+e to edit)"
msgstr "" msgstr ""
#: lib/bds/tui.ex:401 #: lib/bds/tui.ex:512
#, elixir-autogen, elixir-format #, 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" msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "" msgstr ""
#: lib/bds/tui.ex:312
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr ""
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr ""
#: lib/bds/tui.ex:159
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr ""
#: lib/bds/tui.ex:478
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr ""
#: lib/bds/tui.ex:505
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
msgstr ""

View File

@@ -62,6 +62,19 @@ rule AiQuickAction {
ensures: AiSuggestionsRequestedOrRefused() ensures: AiSuggestionsRequestedOrRefused()
} }
rule CommandPrompt {
when: TuiKeyPressed(code: ":" | "?")
-- Vi-style prompt: ":" opens a filterable list of the parameterless
-- Blog-menu shell commands (metadata diff, validate site, force
-- render, rebuilds, reindex, translations, duplicates, upload,
-- browser preview URL) and runs the selection through the same
-- BDS.Desktop.ShellCommands backend as the GUI menu; "?" (or ":?")
-- shows the same list as help. Commands whose report/apply follow-up
-- UI exists only in the GUI are marked so the user knows. Queued
-- tasks report progress in the status line until all tasks finish.
ensures: CommandListShownOrExecuted()
}
rule MultiClientSync { rule MultiClientSync {
when: TuiEventReceived(entity, entity_id, action) when: TuiEventReceived(entity, entity_id, action)
-- Domain events refresh the sidebar; a post deleted elsewhere closes -- Domain events refresh the sidebar; a post deleted elsewhere closes

View File

@@ -164,6 +164,98 @@ defmodule BDS.TUITest do
assert {:stop, _state} = BDS.TUI.handle_event(key("q", ["ctrl"]), mount!()) assert {:stop, _state} = BDS.TUI.handle_event(key("q", ["ctrl"]), mount!())
end end
describe "command prompt" do
defp mount_with_executor! do
parent = self()
mount!(
command_executor: fn action ->
send(parent, {:executed, action})
{:ok, %{kind: "output", title: "T", message: "done"}}
end
)
end
test "':' opens the prompt and lists commands" do
state = mount_with_executor!() |> press(":")
assert state.command != nil
text = screen_text(state)
assert text =~ "metadata_diff"
assert text =~ "validate_site"
end
test "'?' opens the command help list with GUI markers" do
state = mount_with_executor!() |> press("?")
assert state.command.help?
text = screen_text(state)
assert text =~ "metadata_diff"
# Commands whose report/apply UI lives in the GUI are marked.
assert text =~ "GUI"
state = press(state, "esc")
assert state.command == nil
end
test "typing filters and enter runs the selected command" do
state =
mount_with_executor!()
|> press(":")
|> press("m")
|> press("e")
|> press("t")
|> press("a")
|> press("enter")
assert_receive {:executed, "metadata_diff"}
assert state.command == nil
assert state.status =~ "done"
end
test "up/down move the selection" do
state = mount_with_executor!() |> press(":") |> press("down") |> press("enter")
assert_receive {:executed, action}
assert is_binary(action)
end
test "no match reports an unknown command" do
state =
mount_with_executor!()
|> press(":")
|> press("z")
|> press("z")
|> press("enter")
refute_receive {:executed, _action}, 50
assert state.command == nil
assert state.status != nil
end
test "a queued task starts status polling and finishes with a toast" do
parent = self()
state =
mount!(
command_executor: fn action ->
send(parent, {:executed, action})
{:ok, %{kind: "task_queued", title: "Rebuild", message: "queued"}}
end
)
|> press(":")
|> press("enter")
assert_receive {:executed, _action}
assert state.task_polling
# No tasks are actually running in this test, so the first poll ends it.
{:noreply, state} = BDS.TUI.handle_info(:poll_tasks, state)
refute state.task_polling
assert state.status != nil
end
end
test "local tui mode stops the VM when the app exits" do test "local tui mode stops the VM when the app exits" do
parent = self() parent = self()
state = mount!(stop_vm_on_exit: true, stop_fun: fn -> send(parent, :vm_stopped) end) state = mount!(stop_vm_on_exit: true, stop_fun: fn -> send(parent, :vm_stopped) end)