feat: vi-style command prompt in the TUI for menu shell commands (issue #26)
This commit is contained in:
@@ -194,7 +194,9 @@ appears in every open shell.
|
||||
### TUI keys
|
||||
|
||||
`↑/↓` 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+t` title, `ctrl+l` language, `ctrl+g` AI suggestions
|
||||
(airplane-mode gated), `esc` back · `ctrl+q` quit.
|
||||
|
||||
196
lib/bds/tui.ex
196
lib/bds/tui.ex
@@ -10,7 +10,9 @@ defmodule BDS.TUI do
|
||||
## Keys
|
||||
|
||||
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,
|
||||
`ctrl+e` word-wrapped preview, `ctrl+t` edit title, `ctrl+l` cycle
|
||||
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.
|
||||
stop_vm_on_exit: Keyword.get(opts, :stop_vm_on_exit, false),
|
||||
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,
|
||||
view: "posts",
|
||||
sidebar: nil,
|
||||
@@ -79,6 +85,10 @@ defmodule BDS.TUI do
|
||||
def handle_event(%ExRatatui.Event.Key{code: "q", modifiers: ["ctrl"]}, 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)
|
||||
when 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: ":"}, 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)
|
||||
when is_binary(project_id) 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}
|
||||
|
||||
# ── 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 ─────────────────────────────────────────────────
|
||||
|
||||
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))}
|
||||
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}
|
||||
|
||||
# ── Render ───────────────────────────────────────────────────────────────
|
||||
@@ -261,7 +337,8 @@ defmodule BDS.TUI do
|
||||
sidebar_widgets(state, sidebar_rect) ++
|
||||
main_widgets(state, main_rect) ++
|
||||
status_widgets(state, status_rect) ++
|
||||
image_widgets(state, body_rect)
|
||||
image_widgets(state, body_rect) ++
|
||||
command_widgets(state, body_rect)
|
||||
end
|
||||
|
||||
defp view_tabs(state, rect) do
|
||||
@@ -390,11 +467,46 @@ defmodule BDS.TUI do
|
||||
]
|
||||
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}),
|
||||
do:
|
||||
dgettext(
|
||||
"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}),
|
||||
@@ -605,6 +717,84 @@ defmodule BDS.TUI do
|
||||
defp editor_title(editor),
|
||||
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 ────────────────────────────────────────────────────────
|
||||
|
||||
defp open_media(state, media_id) do
|
||||
|
||||
@@ -81,11 +81,11 @@ msgstr "KI-Einstellungen"
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:920
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:230
|
||||
#: lib/bds/tui.ex:238
|
||||
#: lib/bds/tui.ex:575
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "KI-Vorschlaege"
|
||||
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr "Unveränderte Diff-Blöcke einklappen"
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
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/script_editor_html/script_editor.html.heex:34
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
|
||||
#: lib/bds/tui.ex:348
|
||||
#: lib/bds/tui.ex:424
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1029,6 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Dateiname"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Fehlende Übersetzungen ergänzen"
|
||||
@@ -1039,6 +1041,7 @@ msgid "Find"
|
||||
msgstr "Suchen"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Doppelte Beiträge finden"
|
||||
@@ -1065,6 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galerie"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
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/sidebar_components.ex:654
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
|
||||
#: lib/bds/tui.ex:489
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: 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:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1475,7 +1480,7 @@ msgstr "Neue Seite"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:115
|
||||
#: lib/bds/tui.ex:130
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Neuer Beitrag"
|
||||
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
|
||||
msgstr "Einstellungen öffnen"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Im Browser öffnen"
|
||||
@@ -1911,8 +1917,8 @@ msgstr "Beitrag gespeichert"
|
||||
#: lib/bds/desktop/menu_bar.ex:233
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:664
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:761
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
|
||||
msgstr "Bereit zum Import:"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "Datenbank neu aufbauen"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Embedding-Index neu aufbauen"
|
||||
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Übersetzung aktualisieren"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Kalender neu erzeugen"
|
||||
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Fehlende Vorschaubilder neu erzeugen"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
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:219
|
||||
#: 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/sidebar.ex:63
|
||||
#: 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:253
|
||||
#: 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:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2554,6 +2564,7 @@ msgstr "Tags"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
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:176
|
||||
#: 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/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
|
||||
msgstr "Aktualisierte URLs"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Website hochladen"
|
||||
@@ -2848,11 +2860,13 @@ msgid "Validate"
|
||||
msgstr "Validieren"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Website validieren"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Übersetzungen validieren"
|
||||
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
|
||||
msgstr "Vorgeschlagene Tags"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
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."
|
||||
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
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
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
|
||||
msgid "Could not load this file."
|
||||
msgstr "Diese Datei konnte nicht geladen werden."
|
||||
|
||||
#: lib/bds/tui.ex:123
|
||||
#: lib/bds/tui.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
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."
|
||||
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:288
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "Keine Vorschläge erhalten."
|
||||
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:808
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Nur Bilder können in der Vorschau angezeigt werden."
|
||||
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:610
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Beitrag nicht gefunden."
|
||||
|
||||
#: lib/bds/tui.ex:303
|
||||
#: lib/bds/tui.ex:379
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
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
|
||||
msgid "Published."
|
||||
msgstr "Veröffentlicht."
|
||||
|
||||
#: lib/bds/tui.ex:562
|
||||
#: lib/bds/tui.ex:673
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Speichern Sie vor dem Sprachwechsel."
|
||||
|
||||
#: lib/bds/tui.ex:547
|
||||
#: lib/bds/tui.ex:658
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Gespeichert."
|
||||
|
||||
#: lib/bds/tui.ex:306
|
||||
#: lib/bds/tui.ex:382
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
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
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Vorschläge übernommen."
|
||||
|
||||
#: lib/bds/tui.ex:318
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Titel (Strg+T zum Bearbeiten)"
|
||||
|
||||
#: lib/bds/tui.ex:317
|
||||
#: lib/bds/tui.ex:393
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Titel (Bearbeitung — Enter zum Bestätigen)"
|
||||
|
||||
#: lib/bds/tui.ex:365
|
||||
#: lib/bds/tui.ex:441
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Wird bearbeitet…"
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#, 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
|
||||
#: lib/bds/tui.ex:462
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
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."
|
||||
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
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Vorschau (ctrl+e zum Bearbeiten)"
|
||||
|
||||
#: lib/bds/tui.ex:401
|
||||
#: lib/bds/tui.ex:512
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "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"
|
||||
|
||||
@@ -81,11 +81,11 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:920
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:230
|
||||
#: lib/bds/tui.ex:238
|
||||
#: lib/bds/tui.ex:575
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr ""
|
||||
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr ""
|
||||
@@ -589,7 +590,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
|
||||
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
|
||||
#: lib/bds/tui.ex:348
|
||||
#: lib/bds/tui.ex:424
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1029,6 +1030,7 @@ msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr ""
|
||||
@@ -1039,6 +1041,7 @@ msgid "Find"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr ""
|
||||
@@ -1065,6 +1068,7 @@ msgid "Gallery"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr ""
|
||||
@@ -1385,9 +1389,9 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:762
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
|
||||
#: lib/bds/tui.ex:489
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: 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:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1475,7 +1480,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:115
|
||||
#: lib/bds/tui.ex:130
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr ""
|
||||
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
@@ -1911,8 +1917,8 @@ msgstr ""
|
||||
#: lib/bds/desktop/menu_bar.ex:233
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:664
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:761
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr ""
|
||||
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr ""
|
||||
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr ""
|
||||
@@ -2294,7 +2304,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:216
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:234
|
||||
#: lib/bds/tui.ex:491
|
||||
#: lib/bds/tui.ex:602
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: 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:253
|
||||
#: 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:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2554,6 +2564,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
@@ -2598,7 +2609,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:171
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:176
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:191
|
||||
#: lib/bds/tui.ex:490
|
||||
#: lib/bds/tui.ex:601
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr ""
|
||||
@@ -2848,11 +2860,13 @@ msgid "Validate"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr ""
|
||||
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr ""
|
||||
@@ -3613,87 +3628,82 @@ msgstr ""
|
||||
msgid "The endpoint returned no models. You can still type a model name manually."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:576
|
||||
#: lib/bds/tui.ex:687
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:811
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Could not load this file."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:123
|
||||
#: lib/bds/tui.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:288
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:808
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:610
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:303
|
||||
#: lib/bds/tui.ex:379
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:546
|
||||
#: lib/bds/tui.ex:657
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Published."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:562
|
||||
#: lib/bds/tui.ex:673
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:547
|
||||
#: lib/bds/tui.ex:658
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Saved."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:306
|
||||
#: lib/bds/tui.ex:382
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:285
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:318
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:317
|
||||
#: lib/bds/tui.ex:393
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:365
|
||||
#: lib/bds/tui.ex:441
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Working…"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:386
|
||||
#: lib/bds/tui.ex:462
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr ""
|
||||
@@ -3730,12 +3740,37 @@ msgstr ""
|
||||
msgid "Use the form user@host or user@host:port."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:337
|
||||
#: lib/bds/tui.ex:413
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:401
|
||||
#: lib/bds/tui.ex:512
|
||||
#, 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"
|
||||
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 ""
|
||||
|
||||
@@ -81,11 +81,11 @@ msgstr "Configuración de IA"
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:920
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:230
|
||||
#: lib/bds/tui.ex:238
|
||||
#: lib/bds/tui.ex:575
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "Sugerencias de IA"
|
||||
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr "Contraer bloques de diff sin cambios"
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
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/script_editor_html/script_editor.html.heex:34
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
|
||||
#: lib/bds/tui.ex:348
|
||||
#: lib/bds/tui.ex:424
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1029,6 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Nombre de archivo"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Completar traducciones faltantes"
|
||||
@@ -1039,6 +1041,7 @@ msgid "Find"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Buscar entradas duplicadas"
|
||||
@@ -1065,6 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galeria"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
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/sidebar_components.ex:654
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
|
||||
#: lib/bds/tui.ex:489
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: 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:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1475,7 +1480,7 @@ msgstr "Nueva página"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:115
|
||||
#: lib/bds/tui.ex:130
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Nueva entrada"
|
||||
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
|
||||
msgstr "Abrir Ajustes"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Abrir en el navegador"
|
||||
@@ -1911,8 +1917,8 @@ msgstr "Artículo guardado"
|
||||
#: lib/bds/desktop/menu_bar.ex:233
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:664
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:761
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
|
||||
msgstr "Listo para importar:"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "Reconstruir base de datos"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Reconstruir índice de embeddings"
|
||||
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Actualizar traducción"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Regenerar calendario"
|
||||
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Regenerar miniaturas faltantes"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
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:219
|
||||
#: 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/sidebar.ex:63
|
||||
#: 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:253
|
||||
#: 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:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2554,6 +2564,7 @@ msgstr "Etiquetas"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
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:176
|
||||
#: 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/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
|
||||
msgstr "URLs actualizadas"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Subir sitio"
|
||||
@@ -2848,11 +2860,13 @@ msgid "Validate"
|
||||
msgstr "Validar"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Validar sitio"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Validar traducciones"
|
||||
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
|
||||
msgstr "Etiquetas sugeridas"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
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."
|
||||
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
|
||||
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."
|
||||
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:811
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr "No se pudo cargar este archivo."
|
||||
|
||||
#: lib/bds/tui.ex:123
|
||||
#: lib/bds/tui.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
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."
|
||||
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:288
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "No se recibieron sugerencias."
|
||||
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:808
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Solo se pueden previsualizar imágenes."
|
||||
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:610
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Entrada no encontrada."
|
||||
|
||||
#: lib/bds/tui.ex:303
|
||||
#: lib/bds/tui.ex:379
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr "Pulsa Intro para previsualizar %{name}."
|
||||
|
||||
#: lib/bds/tui.ex:546
|
||||
#: lib/bds/tui.ex:657
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr "Publicado."
|
||||
|
||||
#: lib/bds/tui.ex:562
|
||||
#: lib/bds/tui.ex:673
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Guarda antes de cambiar de idioma."
|
||||
|
||||
#: lib/bds/tui.ex:547
|
||||
#: lib/bds/tui.ex:658
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Guardado."
|
||||
|
||||
#: lib/bds/tui.ex:306
|
||||
#: lib/bds/tui.ex:382
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr "Selecciona una entrada y pulsa Intro para abrirla."
|
||||
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:285
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Sugerencias aplicadas."
|
||||
|
||||
#: lib/bds/tui.ex:318
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Título (ctrl+t para editar)"
|
||||
|
||||
#: lib/bds/tui.ex:317
|
||||
#: lib/bds/tui.ex:393
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Título (edición — Intro para confirmar)"
|
||||
|
||||
#: lib/bds/tui.ex:365
|
||||
#: lib/bds/tui.ex:441
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Procesando…"
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#, 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
|
||||
#: lib/bds/tui.ex:462
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
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."
|
||||
msgstr "Usa el formato user@host o user@host:port."
|
||||
|
||||
#: lib/bds/tui.ex:337
|
||||
#: lib/bds/tui.ex:413
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Vista previa (ctrl+e para editar)"
|
||||
|
||||
#: lib/bds/tui.ex:401
|
||||
#: lib/bds/tui.ex:512
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "ctrl+s 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"
|
||||
|
||||
@@ -81,11 +81,11 @@ msgstr "Paramètres IA"
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:920
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:230
|
||||
#: lib/bds/tui.ex:238
|
||||
#: lib/bds/tui.ex:575
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "Suggestions IA"
|
||||
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr "Réduire les blocs de diff inchangés"
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
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/script_editor_html/script_editor.html.heex:34
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
|
||||
#: lib/bds/tui.ex:348
|
||||
#: lib/bds/tui.ex:424
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1029,6 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Nom de fichier"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Compléter les traductions manquantes"
|
||||
@@ -1039,6 +1041,7 @@ msgid "Find"
|
||||
msgstr "Rechercher"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Trouver les doublons"
|
||||
@@ -1065,6 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galerie"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr "Générer le site"
|
||||
@@ -1385,9 +1389,9 @@ msgstr "Nombre maximal d’articles par page"
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:762
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
|
||||
#: lib/bds/tui.ex:489
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: 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:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1475,7 +1480,7 @@ msgstr "Nouvelle page"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:115
|
||||
#: lib/bds/tui.ex:130
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Nouvel article"
|
||||
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
|
||||
msgstr "Ouvrir les Réglages"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Ouvrir dans le navigateur"
|
||||
@@ -1911,8 +1917,8 @@ msgstr "Article enregistré"
|
||||
#: lib/bds/desktop/menu_bar.ex:233
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:664
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:761
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
|
||||
msgstr "Prêt à importer :"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "Reconstruire la base de données"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Reconstruire l’index d’embeddings"
|
||||
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Actualiser la traduction"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Régénérer le calendrier"
|
||||
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Régénérer les vignettes manquantes"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr "Réindexer le texte"
|
||||
@@ -2294,7 +2304,7 @@ msgstr "Les capacités de script sont configurées au niveau de l’application
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:216
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:234
|
||||
#: lib/bds/tui.ex:491
|
||||
#: lib/bds/tui.ex:602
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: 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:253
|
||||
#: 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:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2554,6 +2564,7 @@ msgstr "Tags"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
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:176
|
||||
#: 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/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
|
||||
msgstr "URLs mises à jour"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Téléverser le site"
|
||||
@@ -2848,11 +2860,13 @@ msgid "Validate"
|
||||
msgstr "Valider"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Valider le site"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Valider les traductions"
|
||||
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
|
||||
msgstr "Tags suggérés"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render 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."
|
||||
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
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
msgstr "L'IA n'est pas disponible en mode avion sans point de terminaison local."
|
||||
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:811
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr "Impossible de charger ce fichier."
|
||||
|
||||
#: lib/bds/tui.ex:123
|
||||
#: lib/bds/tui.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr "La modification de cet élément n'est pas encore disponible dans l'interface du terminal."
|
||||
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:288
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "Aucune suggestion reçue."
|
||||
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:808
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Seules les images peuvent être prévisualisées."
|
||||
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:610
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Article introuvable."
|
||||
|
||||
#: lib/bds/tui.ex:303
|
||||
#: lib/bds/tui.ex:379
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr "Appuyez sur Entrée pour prévisualiser %{name}."
|
||||
|
||||
#: lib/bds/tui.ex:546
|
||||
#: lib/bds/tui.ex:657
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr "Publié."
|
||||
|
||||
#: lib/bds/tui.ex:562
|
||||
#: lib/bds/tui.ex:673
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Enregistrez avant de changer de langue."
|
||||
|
||||
#: lib/bds/tui.ex:547
|
||||
#: lib/bds/tui.ex:658
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Enregistré."
|
||||
|
||||
#: lib/bds/tui.ex:306
|
||||
#: lib/bds/tui.ex:382
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr "Sélectionnez une entrée et appuyez sur Entrée pour l'ouvrir."
|
||||
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:285
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Suggestions appliquées."
|
||||
|
||||
#: lib/bds/tui.ex:318
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Titre (ctrl+t pour modifier)"
|
||||
|
||||
#: lib/bds/tui.ex:317
|
||||
#: lib/bds/tui.ex:393
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Titre (édition — Entrée pour confirmer)"
|
||||
|
||||
#: lib/bds/tui.ex:365
|
||||
#: lib/bds/tui.ex:441
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Traitement en cours…"
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#, 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
|
||||
#: lib/bds/tui.ex:462
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
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."
|
||||
msgstr "Utilisez le format user@host ou user@host:port."
|
||||
|
||||
#: lib/bds/tui.ex:337
|
||||
#: lib/bds/tui.ex:413
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Aperçu (ctrl+e pour modifier)"
|
||||
|
||||
#: lib/bds/tui.ex:401
|
||||
#: lib/bds/tui.ex:512
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "ctrl+s enregistrer · ctrl+p publier · ctrl+e aperçu · ctrl+t titre · ctrl+l langue · ctrl+g IA · échap retour"
|
||||
|
||||
#: lib/bds/tui.ex:312
|
||||
#, 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"
|
||||
|
||||
@@ -81,11 +81,11 @@ msgstr "Impostazioni IA"
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:920
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:230
|
||||
#: lib/bds/tui.ex:238
|
||||
#: lib/bds/tui.ex:575
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "Suggerimenti IA"
|
||||
@@ -572,6 +572,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr "Comprimi i blocchi diff invariati"
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
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/script_editor_html/script_editor.html.heex:34
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
|
||||
#: lib/bds/tui.ex:348
|
||||
#: lib/bds/tui.ex:424
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1029,6 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Nome file"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Completa traduzioni mancanti"
|
||||
@@ -1039,6 +1041,7 @@ msgid "Find"
|
||||
msgstr "Trova"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Trova post duplicati"
|
||||
@@ -1065,6 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galleria"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
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/sidebar_components.ex:654
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
|
||||
#: lib/bds/tui.ex:489
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: 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:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1475,7 +1480,7 @@ msgstr "Nuova pagina"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:115
|
||||
#: lib/bds/tui.ex:130
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Nuovo post"
|
||||
@@ -1764,6 +1769,7 @@ msgid "Open Settings"
|
||||
msgstr "Apri Impostazioni"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Apri nel browser"
|
||||
@@ -1911,8 +1917,8 @@ msgstr "Articolo salvato"
|
||||
#: lib/bds/desktop/menu_bar.ex:233
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:664
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:761
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2036,12 +2042,14 @@ msgid "Ready to import:"
|
||||
msgstr "Pronto per importare:"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "Ricostruisci database"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Ricostruisci indice embeddings"
|
||||
@@ -2099,6 +2107,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Aggiorna traduzione"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Rigenera calendario"
|
||||
@@ -2109,6 +2118,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Rigenera miniature mancanti"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
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:219
|
||||
#: 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/sidebar.ex:63
|
||||
#: 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:253
|
||||
#: 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:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2554,6 +2564,7 @@ msgstr "Tag"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
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:176
|
||||
#: 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/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2821,6 +2832,7 @@ msgid "Updated URLs"
|
||||
msgstr "URL aggiornati"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Carica sito"
|
||||
@@ -2848,11 +2860,13 @@ msgid "Validate"
|
||||
msgstr "Valida"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Valida sito"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Valida traduzioni"
|
||||
@@ -3517,6 +3531,7 @@ msgid "Suggested tags"
|
||||
msgstr "Tag suggeriti"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
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."
|
||||
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
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
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
|
||||
msgid "Could not load this file."
|
||||
msgstr "Impossibile caricare questo file."
|
||||
|
||||
#: lib/bds/tui.ex:123
|
||||
#: lib/bds/tui.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
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."
|
||||
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:288
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "Nessun suggerimento ricevuto."
|
||||
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:808
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Solo le immagini possono essere visualizzate in anteprima."
|
||||
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:610
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Post non trovato."
|
||||
|
||||
#: lib/bds/tui.ex:303
|
||||
#: lib/bds/tui.ex:379
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr "Premi Invio per l'anteprima di %{name}."
|
||||
|
||||
#: lib/bds/tui.ex:546
|
||||
#: lib/bds/tui.ex:657
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr "Pubblicato."
|
||||
|
||||
#: lib/bds/tui.ex:562
|
||||
#: lib/bds/tui.ex:673
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Salva prima di cambiare lingua."
|
||||
|
||||
#: lib/bds/tui.ex:547
|
||||
#: lib/bds/tui.ex:658
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Salvato."
|
||||
|
||||
#: lib/bds/tui.ex:306
|
||||
#: lib/bds/tui.ex:382
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr "Seleziona una voce e premi Invio per aprirla."
|
||||
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:285
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Suggerimenti applicati."
|
||||
|
||||
#: lib/bds/tui.ex:318
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Titolo (ctrl+t per modificare)"
|
||||
|
||||
#: lib/bds/tui.ex:317
|
||||
#: lib/bds/tui.ex:393
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Titolo (modifica — Invio per confermare)"
|
||||
|
||||
#: lib/bds/tui.ex:365
|
||||
#: lib/bds/tui.ex:441
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Elaborazione…"
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#, 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
|
||||
#: lib/bds/tui.ex:462
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
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."
|
||||
msgstr "Usa il formato user@host o user@host:port."
|
||||
|
||||
#: lib/bds/tui.ex:337
|
||||
#: lib/bds/tui.ex:413
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Anteprima (ctrl+e per modificare)"
|
||||
|
||||
#: lib/bds/tui.ex:401
|
||||
#: lib/bds/tui.ex:512
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "ctrl+s 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"
|
||||
|
||||
@@ -94,11 +94,11 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:920
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:230
|
||||
#: lib/bds/tui.ex:238
|
||||
#: lib/bds/tui.ex:575
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr ""
|
||||
@@ -585,6 +585,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr ""
|
||||
@@ -602,7 +603,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
|
||||
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
|
||||
#: lib/bds/tui.ex:348
|
||||
#: lib/bds/tui.ex:424
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1042,6 +1043,7 @@ msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr ""
|
||||
@@ -1052,6 +1054,7 @@ msgid "Find"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr ""
|
||||
@@ -1078,6 +1081,7 @@ msgid "Gallery"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr ""
|
||||
@@ -1398,9 +1402,9 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:762
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
|
||||
#: lib/bds/tui.ex:489
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: 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:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1488,7 +1493,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:115
|
||||
#: lib/bds/tui.ex:130
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr ""
|
||||
@@ -1777,6 +1782,7 @@ msgid "Open Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
@@ -1924,8 +1930,8 @@ msgstr ""
|
||||
#: lib/bds/desktop/menu_bar.ex:233
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:664
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:761
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2049,12 +2055,14 @@ msgid "Ready to import:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr ""
|
||||
@@ -2112,6 +2120,7 @@ msgid "Refresh Translation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr ""
|
||||
@@ -2122,6 +2131,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr ""
|
||||
@@ -2307,7 +2317,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:216
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/script_editor.ex:234
|
||||
#: lib/bds/tui.ex:491
|
||||
#: lib/bds/tui.ex:602
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: 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:253
|
||||
#: 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:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2567,6 +2577,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
@@ -2611,7 +2622,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:171
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:176
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:191
|
||||
#: lib/bds/tui.ex:490
|
||||
#: lib/bds/tui.ex:601
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2834,6 +2845,7 @@ msgid "Updated URLs"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr ""
|
||||
@@ -2861,11 +2873,13 @@ msgid "Validate"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr ""
|
||||
@@ -3530,6 +3544,7 @@ msgid "Suggested tags"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr ""
|
||||
@@ -3626,87 +3641,82 @@ msgstr ""
|
||||
msgid "The endpoint returned no models. You can still type a model name manually."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:576
|
||||
#: lib/bds/tui.ex:687
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:622
|
||||
#: lib/bds/tui.ex:811
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:123
|
||||
#: lib/bds/tui.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:227
|
||||
#: lib/bds/tui.ex:288
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:619
|
||||
#: lib/bds/tui.ex:808
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:499
|
||||
#: lib/bds/tui.ex:610
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:303
|
||||
#: lib/bds/tui.ex:379
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:546
|
||||
#: lib/bds/tui.ex:657
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:562
|
||||
#: lib/bds/tui.ex:673
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:547
|
||||
#: lib/bds/tui.ex:658
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:306
|
||||
#: lib/bds/tui.ex:382
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:224
|
||||
#: lib/bds/tui.ex:285
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:318
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:317
|
||||
#: lib/bds/tui.ex:393
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:365
|
||||
#: lib/bds/tui.ex:441
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:386
|
||||
#: lib/bds/tui.ex:462
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr ""
|
||||
@@ -3743,12 +3753,37 @@ msgstr ""
|
||||
msgid "Use the form user@host or user@host:port."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:337
|
||||
#: lib/bds/tui.ex:413
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:401
|
||||
#: lib/bds/tui.ex:512
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr ""
|
||||
|
||||
#: 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 ""
|
||||
|
||||
@@ -62,6 +62,19 @@ rule AiQuickAction {
|
||||
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 {
|
||||
when: TuiEventReceived(entity, entity_id, action)
|
||||
-- Domain events refresh the sidebar; a post deleted elsewhere closes
|
||||
|
||||
@@ -164,6 +164,98 @@ defmodule BDS.TUITest do
|
||||
assert {:stop, _state} = BDS.TUI.handle_event(key("q", ["ctrl"]), mount!())
|
||||
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
|
||||
parent = self()
|
||||
state = mount!(stop_vm_on_exit: true, stop_fun: fn -> send(parent, :vm_stopped) end)
|
||||
|
||||
Reference in New Issue
Block a user