feat: TUI report panels with whole-report apply for metadata diff and site validation (issue #26)
This commit is contained in:
@@ -195,7 +195,9 @@ appears in every open shell.
|
||||
|
||||
`↑/↓` or `j/k` navigate · `enter` open · `n` new post · `1-5` switch view
|
||||
(posts/media/templates/scripts/tags) · `:` command prompt (metadata
|
||||
diff, validate site, force render, rebuilds, …) · `?` command help ·
|
||||
diff, validate site, force render, rebuilds, …; `:?` lists all) ·
|
||||
metadata-diff/site-validation reports open as panels — `enter` applies
|
||||
the whole report (repair from files / incremental apply), `esc` cancels ·
|
||||
`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
|
||||
|
||||
269
lib/bds/tui.ex
269
lib/bds/tui.ex
@@ -33,7 +33,7 @@ defmodule BDS.TUI do
|
||||
alias ExRatatui.Layout
|
||||
alias ExRatatui.Layout.Rect
|
||||
alias ExRatatui.Style
|
||||
alias ExRatatui.Widgets.{Block, List, Markdown, Paragraph, Tabs, Textarea}
|
||||
alias ExRatatui.Widgets.{Block, Clear, List, Markdown, Paragraph, Tabs, Textarea}
|
||||
|
||||
@views ~w(posts media templates scripts tags)
|
||||
|
||||
@@ -52,8 +52,11 @@ defmodule BDS.TUI do
|
||||
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),
|
||||
Keyword.get(opts, :command_executor, &BDS.Desktop.ShellCommands.execute/2),
|
||||
task_snapshot_fun: Keyword.get(opts, :task_snapshot_fun, &BDS.Tasks.status_snapshot/0),
|
||||
command: nil,
|
||||
report: nil,
|
||||
handled_task_ids: nil,
|
||||
task_polling: false,
|
||||
project_id: project_id,
|
||||
view: "posts",
|
||||
@@ -68,9 +71,23 @@ defmodule BDS.TUI do
|
||||
status: nil
|
||||
}
|
||||
|
||||
# Tasks completed before this session started must never pop their
|
||||
# report panels here — another client already consumed them.
|
||||
initial_snapshot =
|
||||
Keyword.get_lazy(opts, :initial_task_snapshot, state.task_snapshot_fun)
|
||||
|
||||
state = %{state | handled_task_ids: completed_task_ids(initial_snapshot)}
|
||||
|
||||
{:ok, load_sidebar(state)}
|
||||
end
|
||||
|
||||
defp completed_task_ids(snapshot) do
|
||||
snapshot
|
||||
|> Map.get(:tasks, [])
|
||||
|> Enum.filter(&(&1.status == :completed))
|
||||
|> MapSet.new(& &1.id)
|
||||
end
|
||||
|
||||
@impl true
|
||||
def terminate(_reason, %{stop_vm_on_exit: true, stop_fun: stop_fun}) do
|
||||
stop_fun.()
|
||||
@@ -85,6 +102,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, %{report: report} = state)
|
||||
when report != nil,
|
||||
do: report_key(key, state)
|
||||
|
||||
def handle_event(%ExRatatui.Event.Key{kind: "press"} = key, %{command: command} = state)
|
||||
when command != nil,
|
||||
do: command_key(key, state)
|
||||
@@ -119,9 +140,6 @@ defmodule BDS.TUI do
|
||||
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
|
||||
@@ -147,6 +165,74 @@ defmodule BDS.TUI do
|
||||
|
||||
defp sidebar_key(_key, state), do: {:noreply, state}
|
||||
|
||||
# ── Events: report panels (metadata diff / site validation) ──────────────
|
||||
|
||||
defp report_key(%{code: "esc"}, state), do: {:noreply, %{state | report: nil}}
|
||||
|
||||
defp report_key(%{code: "enter"}, %{report: report} = state),
|
||||
do: {:noreply, apply_report(%{state | report: nil}, report)}
|
||||
|
||||
defp report_key(%{code: code}, %{report: report} = state) when code in ["down", "j"] do
|
||||
max_scroll = max(length(report_lines(report)) - 1, 0)
|
||||
{:noreply, put_in(state.report.scroll, min(report.scroll + 1, max_scroll))}
|
||||
end
|
||||
|
||||
defp report_key(%{code: code}, %{report: report} = state) when code in ["up", "k"],
|
||||
do: {:noreply, put_in(state.report.scroll, max(report.scroll - 1, 0))}
|
||||
|
||||
defp report_key(_key, state), do: {:noreply, state}
|
||||
|
||||
# Whole-report application, mirroring the GUI defaults: metadata diffs are
|
||||
# repaired from the filesystem (file → db, all items, orphans imported);
|
||||
# site validation applies the full report incrementally.
|
||||
defp apply_report(state, %{route: "metadata_diff", payload: payload}) do
|
||||
items = BDS.MapUtils.attr(payload, :diff_reports, [])
|
||||
orphans = BDS.MapUtils.attr(payload, :orphan_reports, [])
|
||||
|
||||
if items == [] and orphans == [] do
|
||||
toast(state, dgettext("ui", "Metadata Diff"), dgettext("ui", "Nothing to repair."))
|
||||
else
|
||||
state =
|
||||
if items == [] do
|
||||
state
|
||||
else
|
||||
execute_action(state, dgettext("ui", "Metadata Diff"), "repair_metadata_diff", %{
|
||||
items: items,
|
||||
direction: "file_to_db"
|
||||
})
|
||||
end
|
||||
|
||||
if orphans == [] do
|
||||
state
|
||||
else
|
||||
execute_action(
|
||||
state,
|
||||
dgettext("ui", "Metadata Diff"),
|
||||
"import_metadata_diff_orphans",
|
||||
%{orphans: orphans}
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
defp apply_report(state, %{route: "site_validation", payload: payload}) do
|
||||
nothing_to_apply? =
|
||||
BDS.MapUtils.attr(payload, :missing_url_paths, []) == [] and
|
||||
BDS.MapUtils.attr(payload, :extra_url_paths, []) == [] and
|
||||
BDS.MapUtils.attr(payload, :updated_post_url_paths, []) == [] and
|
||||
not BDS.MapUtils.attr(payload, :sitemap_changed, false)
|
||||
|
||||
if nothing_to_apply? do
|
||||
toast(state, dgettext("ui", "Site Validation"), dgettext("ui", "Nothing to apply."))
|
||||
else
|
||||
execute_action(state, dgettext("ui", "Site Validation"), "apply_site_validation", %{
|
||||
report: payload
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
defp apply_report(state, _report), do: state
|
||||
|
||||
# ── Events: command prompt (vi-style) ────────────────────────────────────
|
||||
|
||||
defp command_key(%{code: "esc"}, state), do: {:noreply, %{state | command: nil}}
|
||||
@@ -302,7 +388,10 @@ defmodule BDS.TUI do
|
||||
end
|
||||
|
||||
def handle_info(:poll_tasks, %{task_polling: true} = state) do
|
||||
case BDS.Tasks.status_snapshot() do
|
||||
snapshot = state.task_snapshot_fun.()
|
||||
state = open_completed_reports(state, snapshot)
|
||||
|
||||
case snapshot do
|
||||
%{running_task_message: message} when is_binary(message) and message != "" ->
|
||||
Process.send_after(self(), :poll_tasks, 1_000)
|
||||
{:noreply, %{state | status: message}}
|
||||
@@ -317,6 +406,40 @@ defmodule BDS.TUI do
|
||||
|
||||
def handle_info(_message, state), do: {:noreply, state}
|
||||
|
||||
# A finished metadata diff / site validation task carries its report as
|
||||
# the task result; unseen ones open the report panel.
|
||||
defp open_completed_reports(state, snapshot) do
|
||||
completed = Map.get(snapshot, :tasks, []) |> Enum.filter(&(&1.status == :completed))
|
||||
|
||||
report_task =
|
||||
Enum.find(completed, fn task ->
|
||||
is_map(task.result) and
|
||||
Map.get(task.result, :kind) == "open_editor" and
|
||||
Map.get(task.result, :route) in ["metadata_diff", "site_validation"] and
|
||||
not MapSet.member?(state.handled_task_ids, task.id)
|
||||
end)
|
||||
|
||||
state = %{
|
||||
state
|
||||
| handled_task_ids: MapSet.union(state.handled_task_ids, MapSet.new(completed, & &1.id))
|
||||
}
|
||||
|
||||
case report_task do
|
||||
nil ->
|
||||
state
|
||||
|
||||
task ->
|
||||
%{
|
||||
state
|
||||
| report: %{
|
||||
route: task.result.route,
|
||||
payload: Map.get(task.result, :payload, %{}),
|
||||
scroll: 0
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
# ── Render ───────────────────────────────────────────────────────────────
|
||||
|
||||
@impl true
|
||||
@@ -338,6 +461,7 @@ defmodule BDS.TUI do
|
||||
main_widgets(state, main_rect) ++
|
||||
status_widgets(state, status_rect) ++
|
||||
image_widgets(state, body_rect) ++
|
||||
report_widgets(state, body_rect) ++
|
||||
command_widgets(state, body_rect)
|
||||
end
|
||||
|
||||
@@ -461,6 +585,7 @@ defmodule BDS.TUI do
|
||||
[inner] = Layout.split(overlay, :vertical, [{:min, 3}])
|
||||
|
||||
[
|
||||
{%Clear{}, overlay},
|
||||
{%Block{title: title <> " — " <> dgettext("ui", "esc to close"), borders: [:all]}, overlay},
|
||||
{widget,
|
||||
%Rect{x: inner.x + 1, y: inner.y + 1, width: inner.width - 2, height: inner.height - 2}}
|
||||
@@ -493,6 +618,7 @@ defmodule BDS.TUI do
|
||||
end
|
||||
|
||||
[
|
||||
{%Clear{}, overlay},
|
||||
{%List{
|
||||
items: items,
|
||||
selected: if(command.help?, do: nil, else: command.selected),
|
||||
@@ -502,11 +628,119 @@ defmodule BDS.TUI do
|
||||
]
|
||||
end
|
||||
|
||||
defp report_widgets(%{report: nil}, _rect), do: []
|
||||
|
||||
defp report_widgets(%{report: report}, rect) do
|
||||
overlay = %Rect{
|
||||
x: rect.x + 2,
|
||||
y: rect.y + 1,
|
||||
width: max(rect.width - 4, 30),
|
||||
height: max(rect.height - 2, 8)
|
||||
}
|
||||
|
||||
[
|
||||
{%Clear{}, overlay},
|
||||
{%List{
|
||||
items: report_lines(report),
|
||||
selected: report.scroll,
|
||||
scroll_padding: 2,
|
||||
highlight_style: %Style{modifiers: [:bold]},
|
||||
block: %Block{title: report_title(report), borders: [:all]}
|
||||
}, overlay}
|
||||
]
|
||||
end
|
||||
|
||||
defp report_title(%{route: "metadata_diff"}) do
|
||||
dgettext("ui", "Metadata Diff") <>
|
||||
" — " <> dgettext("ui", "enter repair all from files · esc close")
|
||||
end
|
||||
|
||||
defp report_title(%{route: "site_validation"}) do
|
||||
dgettext("ui", "Site Validation") <>
|
||||
" — " <> dgettext("ui", "enter apply changes · esc close")
|
||||
end
|
||||
|
||||
defp report_title(_report), do: ""
|
||||
|
||||
defp report_lines(%{route: "metadata_diff", payload: payload}) do
|
||||
diffs = BDS.MapUtils.attr(payload, :diff_reports, [])
|
||||
orphans = BDS.MapUtils.attr(payload, :orphan_reports, [])
|
||||
|
||||
summary =
|
||||
dgettext("ui", "%{diffs} differences · %{orphans} orphan files",
|
||||
diffs: length(diffs),
|
||||
orphans: length(orphans)
|
||||
)
|
||||
|
||||
diff_lines =
|
||||
Enum.flat_map(diffs, fn item ->
|
||||
entity =
|
||||
"#{BDS.MapUtils.attr(item, :entity_type)} #{BDS.MapUtils.attr(item, :entity_id)}"
|
||||
|
||||
differences =
|
||||
item
|
||||
|> BDS.MapUtils.attr(:differences, [])
|
||||
|> Enum.map(fn diff ->
|
||||
" #{BDS.MapUtils.attr(diff, :name)}: db=#{format_value(BDS.MapUtils.attr(diff, :db_value))} → file=#{format_value(BDS.MapUtils.attr(diff, :file_value))}"
|
||||
end)
|
||||
|
||||
[" " <> entity | differences]
|
||||
end)
|
||||
|
||||
orphan_lines =
|
||||
case orphans do
|
||||
[] -> []
|
||||
_some -> ["", dgettext("ui", "Orphan files (not in database):")] ++
|
||||
Enum.map(orphans, &(" " <> to_string(BDS.MapUtils.attr(&1, :file_path))))
|
||||
end
|
||||
|
||||
[summary, ""] ++ diff_lines ++ orphan_lines
|
||||
end
|
||||
|
||||
defp report_lines(%{route: "site_validation", payload: payload}) do
|
||||
summary =
|
||||
dgettext("ui", "Expected %{expected} · Existing %{existing}",
|
||||
expected: BDS.MapUtils.attr(payload, :expected_url_count, 0),
|
||||
existing: BDS.MapUtils.attr(payload, :existing_html_url_count, 0)
|
||||
)
|
||||
|
||||
sitemap =
|
||||
if BDS.MapUtils.attr(payload, :sitemap_changed, false),
|
||||
do: [dgettext("ui", "Sitemap changed.")],
|
||||
else: []
|
||||
|
||||
[summary, ""] ++
|
||||
sitemap ++
|
||||
path_section(
|
||||
dgettext("ui", "Missing pages (will be rendered):"),
|
||||
BDS.MapUtils.attr(payload, :missing_url_paths, [])
|
||||
) ++
|
||||
path_section(
|
||||
dgettext("ui", "Extra files (will be removed):"),
|
||||
BDS.MapUtils.attr(payload, :extra_url_paths, [])
|
||||
) ++
|
||||
path_section(
|
||||
dgettext("ui", "Updated posts (will be re-rendered):"),
|
||||
BDS.MapUtils.attr(payload, :updated_post_url_paths, [])
|
||||
)
|
||||
end
|
||||
|
||||
defp report_lines(_report), do: []
|
||||
|
||||
defp path_section(_title, []), do: []
|
||||
defp path_section(title, paths), do: [title | Enum.map(paths, &(" " <> to_string(&1)))] ++ [""]
|
||||
|
||||
defp format_value(value) when is_binary(value), do: truncate(value)
|
||||
defp format_value(value), do: truncate(inspect(value))
|
||||
|
||||
defp truncate(text) when byte_size(text) > 40, do: String.slice(text, 0, 40) <> "…"
|
||||
defp truncate(text), do: text
|
||||
|
||||
defp default_status(%{focus: :sidebar}),
|
||||
do:
|
||||
dgettext(
|
||||
"ui",
|
||||
"enter open · n new post · 1-5 views · : commands · ? help · 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}),
|
||||
@@ -721,12 +955,13 @@ defmodule BDS.TUI do
|
||||
|
||||
# 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.
|
||||
# command still runs here, but acting on its report needs the desktop
|
||||
# app. Metadata diff and site validation have TUI report panels with
|
||||
# whole-report apply, so they are not marked.
|
||||
defp commands do
|
||||
[
|
||||
%{action: "metadata_diff", label: dgettext("ui", "Metadata Diff"), gui: true},
|
||||
%{action: "validate_site", label: dgettext("ui", "Validate Site"), gui: true},
|
||||
%{action: "metadata_diff", label: dgettext("ui", "Metadata Diff"), gui: false},
|
||||
%{action: "validate_site", label: dgettext("ui", "Validate Site"), gui: false},
|
||||
%{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},
|
||||
@@ -763,8 +998,10 @@ defmodule BDS.TUI do
|
||||
end)
|
||||
end
|
||||
|
||||
defp run_command(state, entry) do
|
||||
case state.command_executor.(entry.action) do
|
||||
defp run_command(state, entry), do: execute_action(state, entry.label, entry.action, %{})
|
||||
|
||||
defp execute_action(state, label, action, params) do
|
||||
case state.command_executor.(action, params) do
|
||||
{:ok, %{kind: "task_queued", title: title, message: message}} ->
|
||||
state
|
||||
|> toast(title, message)
|
||||
@@ -778,13 +1015,13 @@ defmodule BDS.TUI do
|
||||
toast(state, title, message)
|
||||
|
||||
{:ok, _other} ->
|
||||
toast(state, entry.label, dgettext("ui", "Command completed"))
|
||||
toast(state, label, dgettext("ui", "Command completed"))
|
||||
|
||||
{:error, %{message: message}} ->
|
||||
toast(state, entry.label, message)
|
||||
toast(state, label, message)
|
||||
|
||||
{:error, reason} ->
|
||||
toast(state, entry.label, inspect(reason))
|
||||
toast(state, label, inspect(reason))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -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:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#: lib/bds/tui.ex:373
|
||||
#: lib/bds/tui.ex:376
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:387
|
||||
#: lib/bds/tui.ex:922
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "KI-Vorschlaege"
|
||||
@@ -572,7 +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
|
||||
#: lib/bds/tui.ex:1017
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr "Befehl abgeschlossen"
|
||||
@@ -590,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:424
|
||||
#: lib/bds/tui.ex:550
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1030,7 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Dateiname"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#: lib/bds/tui.ex:981
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Fehlende Übersetzungen ergänzen"
|
||||
@@ -1041,7 +1041,7 @@ msgid "Find"
|
||||
msgstr "Suchen"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#: lib/bds/tui.ex:984
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Doppelte Beiträge finden"
|
||||
@@ -1068,7 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galerie"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#: lib/bds/tui.ex:965
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr "Website generieren"
|
||||
@@ -1389,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:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:836
|
||||
#: lib/bds/tui.ex:1046
|
||||
#: lib/bds/tui.ex:1049
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: lib/bds/ui/sidebar.ex:558
|
||||
@@ -1434,7 +1434,11 @@ msgstr "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/tui.ex:193
|
||||
#: lib/bds/tui.ex:199
|
||||
#: lib/bds/tui.ex:210
|
||||
#: lib/bds/tui.ex:654
|
||||
#: lib/bds/tui.ex:962
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1480,7 +1484,7 @@ msgstr "Neue Seite"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:130
|
||||
#: lib/bds/tui.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Neuer Beitrag"
|
||||
@@ -1769,7 +1773,7 @@ msgid "Open Settings"
|
||||
msgstr "Einstellungen öffnen"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#: lib/bds/tui.ex:986
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Im Browser öffnen"
|
||||
@@ -1917,8 +1921,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:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:835
|
||||
#: lib/bds/tui.ex:846
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2042,14 +2046,14 @@ msgid "Ready to import:"
|
||||
msgstr "Bereit zum Import:"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#: lib/bds/tui.ex:966
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "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
|
||||
#: lib/bds/tui.ex:970
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Embedding-Index neu aufbauen"
|
||||
@@ -2107,7 +2111,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Übersetzung aktualisieren"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#: lib/bds/tui.ex:973
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Kalender neu erzeugen"
|
||||
@@ -2118,7 +2122,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Fehlende Vorschaubilder neu erzeugen"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#: lib/bds/tui.ex:967
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr "Text neu indizieren"
|
||||
@@ -2304,7 +2308,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:602
|
||||
#: lib/bds/tui.ex:838
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: lib/bds/ui/sidebar.ex:115
|
||||
@@ -2432,6 +2436,9 @@ msgid "Site"
|
||||
msgstr "Website"
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:412
|
||||
#: lib/bds/tui.ex:226
|
||||
#: lib/bds/tui.ex:228
|
||||
#: lib/bds/tui.ex:659
|
||||
#: lib/bds/ui/registry.ex:125
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Site Validation"
|
||||
@@ -2552,7 +2559,7 @@ msgstr "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:603
|
||||
#: lib/bds/tui.ex:839
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2564,7 +2571,7 @@ msgstr "Tags"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr "Aufgaben"
|
||||
@@ -2609,7 +2616,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:601
|
||||
#: lib/bds/tui.ex:837
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2832,7 +2839,7 @@ msgid "Updated URLs"
|
||||
msgstr "Aktualisierte URLs"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#: lib/bds/tui.ex:985
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Website hochladen"
|
||||
@@ -2860,13 +2867,13 @@ msgid "Validate"
|
||||
msgstr "Validieren"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#: lib/bds/tui.ex:963
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Website validieren"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#: lib/bds/tui.ex:976
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Übersetzungen validieren"
|
||||
@@ -3531,7 +3538,7 @@ msgid "Suggested tags"
|
||||
msgstr "Vorgeschlagene Tags"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#: lib/bds/tui.ex:964
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr "Website vollständig neu generieren"
|
||||
@@ -3628,82 +3635,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:687
|
||||
#: lib/bds/tui.ex:923
|
||||
#, 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:811
|
||||
#: lib/bds/tui.ex:1049
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr "Diese Datei konnte nicht geladen werden."
|
||||
|
||||
#: lib/bds/tui.ex:138
|
||||
#: lib/bds/tui.ex:158
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr "Die Bearbeitung dieses Eintrags ist in der Terminal-Oberfläche noch nicht verfügbar."
|
||||
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:376
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "Keine Vorschläge erhalten."
|
||||
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:1046
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Nur Bilder können in der Vorschau angezeigt werden."
|
||||
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:846
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Beitrag nicht gefunden."
|
||||
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:505
|
||||
#, 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:657
|
||||
#: lib/bds/tui.ex:893
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr "Veröffentlicht."
|
||||
|
||||
#: lib/bds/tui.ex:673
|
||||
#: lib/bds/tui.ex:909
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Speichern Sie vor dem Sprachwechsel."
|
||||
|
||||
#: lib/bds/tui.ex:658
|
||||
#: lib/bds/tui.ex:894
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Gespeichert."
|
||||
|
||||
#: lib/bds/tui.ex:382
|
||||
#: lib/bds/tui.ex:508
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr "Wählen Sie einen Eintrag aus und öffnen Sie ihn mit Enter."
|
||||
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:373
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Vorschläge übernommen."
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#: lib/bds/tui.ex:520
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Titel (Strg+T zum Bearbeiten)"
|
||||
|
||||
#: lib/bds/tui.ex:393
|
||||
#: lib/bds/tui.ex:519
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Titel (Bearbeitung — Enter zum Bestätigen)"
|
||||
|
||||
#: lib/bds/tui.ex:441
|
||||
#: lib/bds/tui.ex:567
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Wird bearbeitet…"
|
||||
|
||||
#: lib/bds/tui.ex:462
|
||||
#: lib/bds/tui.ex:589
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr "Esc zum Schließen"
|
||||
@@ -3740,37 +3747,92 @@ 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:413
|
||||
#: lib/bds/tui.ex:539
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Vorschau (ctrl+e zum Bearbeiten)"
|
||||
|
||||
#: lib/bds/tui.ex:512
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "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
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All tasks finished."
|
||||
msgstr "Alle Aufgaben abgeschlossen."
|
||||
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:615
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Commands — esc to close"
|
||||
msgstr "Befehle — Esc zum Schließen"
|
||||
|
||||
#: lib/bds/tui.ex:159
|
||||
#: lib/bds/tui.ex:247
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unknown command."
|
||||
msgstr "Unbekannter Befehl."
|
||||
|
||||
#: lib/bds/tui.ex:478
|
||||
#: lib/bds/tui.ex:605
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "[report/apply in GUI]"
|
||||
msgstr "[Bericht/Anwenden in der GUI]"
|
||||
|
||||
#: lib/bds/tui.ex:505
|
||||
#: lib/bds/tui.ex:670
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
|
||||
msgstr "Enter Öffnen · N Neuer Beitrag · 1-5 Ansichten · : Befehle · ? Hilfe · R Aktualisieren · Strg+Q Beenden"
|
||||
msgid "%{diffs} differences · %{orphans} orphan files"
|
||||
msgstr "%{diffs} Unterschiede · %{orphans} verwaiste Dateien"
|
||||
|
||||
#: lib/bds/tui.ex:702
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Expected %{expected} · Existing %{existing}"
|
||||
msgstr "Erwartet %{expected} · Vorhanden %{existing}"
|
||||
|
||||
#: lib/bds/tui.ex:719
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Extra files (will be removed):"
|
||||
msgstr "Überzählige Dateien (werden entfernt):"
|
||||
|
||||
#: lib/bds/tui.ex:715
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Missing pages (will be rendered):"
|
||||
msgstr "Fehlende Seiten (werden gerendert):"
|
||||
|
||||
#: lib/bds/tui.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to apply."
|
||||
msgstr "Nichts anzuwenden."
|
||||
|
||||
#: lib/bds/tui.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to repair."
|
||||
msgstr "Nichts zu reparieren."
|
||||
|
||||
#: lib/bds/tui.ex:693
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Orphan files (not in database):"
|
||||
msgstr "Verwaiste Dateien (nicht in der Datenbank):"
|
||||
|
||||
#: lib/bds/tui.ex:709
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sitemap changed."
|
||||
msgstr "Sitemap geändert."
|
||||
|
||||
#: lib/bds/tui.ex:723
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Updated posts (will be re-rendered):"
|
||||
msgstr "Aktualisierte Beiträge (werden neu gerendert):"
|
||||
|
||||
#: lib/bds/tui.ex:660
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter apply changes · esc close"
|
||||
msgstr "Enter Änderungen anwenden · Esc Schließen"
|
||||
|
||||
#: lib/bds/tui.ex:741
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands (:? help) · r refresh · ctrl+q quit"
|
||||
msgstr "Enter Öffnen · N Neuer Beitrag · 1-5 Ansichten · : Befehle (:? Hilfe) · R Aktualisieren · Strg+Q Beenden"
|
||||
|
||||
#: lib/bds/tui.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter repair all from files · esc close"
|
||||
msgstr "Enter alles aus Dateien reparieren · Esc Schließen"
|
||||
|
||||
@@ -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:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#: lib/bds/tui.ex:373
|
||||
#: lib/bds/tui.ex:376
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:387
|
||||
#: lib/bds/tui.ex:922
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr ""
|
||||
@@ -572,7 +572,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#: lib/bds/tui.ex:1017
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr ""
|
||||
@@ -590,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:424
|
||||
#: lib/bds/tui.ex:550
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1030,7 +1030,7 @@ msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#: lib/bds/tui.ex:981
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr ""
|
||||
@@ -1041,7 +1041,7 @@ msgid "Find"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#: lib/bds/tui.ex:984
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr ""
|
||||
@@ -1068,7 +1068,7 @@ msgid "Gallery"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#: lib/bds/tui.ex:965
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr ""
|
||||
@@ -1389,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:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:836
|
||||
#: lib/bds/tui.ex:1046
|
||||
#: lib/bds/tui.ex:1049
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: lib/bds/ui/sidebar.ex:558
|
||||
@@ -1434,7 +1434,11 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:214
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/tui.ex:193
|
||||
#: lib/bds/tui.ex:199
|
||||
#: lib/bds/tui.ex:210
|
||||
#: lib/bds/tui.ex:654
|
||||
#: lib/bds/tui.ex:962
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1480,7 +1484,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:130
|
||||
#: lib/bds/tui.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr ""
|
||||
@@ -1769,7 +1773,7 @@ msgid "Open Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#: lib/bds/tui.ex:986
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
@@ -1917,8 +1921,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:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:835
|
||||
#: lib/bds/tui.ex:846
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2042,14 +2046,14 @@ msgid "Ready to import:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#: lib/bds/tui.ex:966
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#: lib/bds/tui.ex:970
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr ""
|
||||
@@ -2107,7 +2111,7 @@ msgid "Refresh Translation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#: lib/bds/tui.ex:973
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr ""
|
||||
@@ -2118,7 +2122,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#: lib/bds/tui.ex:967
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr ""
|
||||
@@ -2304,7 +2308,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:602
|
||||
#: lib/bds/tui.ex:838
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: lib/bds/ui/sidebar.ex:115
|
||||
@@ -2432,6 +2436,9 @@ msgid "Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:412
|
||||
#: lib/bds/tui.ex:226
|
||||
#: lib/bds/tui.ex:228
|
||||
#: lib/bds/tui.ex:659
|
||||
#: lib/bds/ui/registry.ex:125
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Site Validation"
|
||||
@@ -2552,7 +2559,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:222
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:253
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/tui.ex:603
|
||||
#: lib/bds/tui.ex:839
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2564,7 +2571,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
@@ -2609,7 +2616,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:601
|
||||
#: lib/bds/tui.ex:837
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2832,7 +2839,7 @@ msgid "Updated URLs"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#: lib/bds/tui.ex:985
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr ""
|
||||
@@ -2860,13 +2867,13 @@ msgid "Validate"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#: lib/bds/tui.ex:963
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#: lib/bds/tui.ex:976
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr ""
|
||||
@@ -3531,7 +3538,7 @@ msgid "Suggested tags"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#: lib/bds/tui.ex:964
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr ""
|
||||
@@ -3628,82 +3635,82 @@ msgstr ""
|
||||
msgid "The endpoint returned no models. You can still type a model name manually."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:687
|
||||
#: lib/bds/tui.ex:923
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:1049
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Could not load this file."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:138
|
||||
#: lib/bds/tui.ex:158
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:376
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:1046
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:846
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:505
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:657
|
||||
#: lib/bds/tui.ex:893
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Published."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:673
|
||||
#: lib/bds/tui.ex:909
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:658
|
||||
#: lib/bds/tui.ex:894
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Saved."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:382
|
||||
#: lib/bds/tui.ex:508
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:373
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#: lib/bds/tui.ex:520
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:393
|
||||
#: lib/bds/tui.ex:519
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:441
|
||||
#: lib/bds/tui.ex:567
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Working…"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:462
|
||||
#: lib/bds/tui.ex:589
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr ""
|
||||
@@ -3740,37 +3747,92 @@ msgstr ""
|
||||
msgid "Use the form user@host or user@host:port."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:413
|
||||
#: lib/bds/tui.ex:539
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:512
|
||||
#: lib/bds/tui.ex:748
|
||||
#, 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
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All tasks finished."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:615
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Commands — esc to close"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:159
|
||||
#: lib/bds/tui.ex:247
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Unknown command."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:478
|
||||
#: lib/bds/tui.ex:605
|
||||
#, 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"
|
||||
#: lib/bds/tui.ex:670
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "%{diffs} differences · %{orphans} orphan files"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:702
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Expected %{expected} · Existing %{existing}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:719
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Extra files (will be removed):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:715
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Missing pages (will be rendered):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:226
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Nothing to apply."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:193
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Nothing to repair."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:693
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Orphan files (not in database):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:709
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sitemap changed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:723
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Updated posts (will be re-rendered):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:660
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter apply changes · esc close"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:741
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "enter open · n new post · 1-5 views · : commands (:? help) · r refresh · ctrl+q quit"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter repair all from files · esc close"
|
||||
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:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#: lib/bds/tui.ex:373
|
||||
#: lib/bds/tui.ex:376
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:387
|
||||
#: lib/bds/tui.ex:922
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "Sugerencias de IA"
|
||||
@@ -572,7 +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
|
||||
#: lib/bds/tui.ex:1017
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr "Comando completado"
|
||||
@@ -590,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:424
|
||||
#: lib/bds/tui.ex:550
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1030,7 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Nombre de archivo"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#: lib/bds/tui.ex:981
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Completar traducciones faltantes"
|
||||
@@ -1041,7 +1041,7 @@ msgid "Find"
|
||||
msgstr "Buscar"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#: lib/bds/tui.ex:984
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Buscar entradas duplicadas"
|
||||
@@ -1068,7 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galeria"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#: lib/bds/tui.ex:965
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr "Generar sitio"
|
||||
@@ -1389,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:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:836
|
||||
#: lib/bds/tui.ex:1046
|
||||
#: lib/bds/tui.ex:1049
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: lib/bds/ui/sidebar.ex:558
|
||||
@@ -1434,7 +1434,11 @@ msgstr "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/tui.ex:193
|
||||
#: lib/bds/tui.ex:199
|
||||
#: lib/bds/tui.ex:210
|
||||
#: lib/bds/tui.ex:654
|
||||
#: lib/bds/tui.ex:962
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1480,7 +1484,7 @@ msgstr "Nueva página"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:130
|
||||
#: lib/bds/tui.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Nueva entrada"
|
||||
@@ -1769,7 +1773,7 @@ msgid "Open Settings"
|
||||
msgstr "Abrir Ajustes"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#: lib/bds/tui.ex:986
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Abrir en el navegador"
|
||||
@@ -1917,8 +1921,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:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:835
|
||||
#: lib/bds/tui.ex:846
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2042,14 +2046,14 @@ msgid "Ready to import:"
|
||||
msgstr "Listo para importar:"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#: lib/bds/tui.ex:966
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "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
|
||||
#: lib/bds/tui.ex:970
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Reconstruir índice de embeddings"
|
||||
@@ -2107,7 +2111,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Actualizar traducción"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#: lib/bds/tui.ex:973
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Regenerar calendario"
|
||||
@@ -2118,7 +2122,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Regenerar miniaturas faltantes"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#: lib/bds/tui.ex:967
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr "Reindexar texto"
|
||||
@@ -2304,7 +2308,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:602
|
||||
#: lib/bds/tui.ex:838
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: lib/bds/ui/sidebar.ex:115
|
||||
@@ -2432,6 +2436,9 @@ msgid "Site"
|
||||
msgstr "Sitio"
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:412
|
||||
#: lib/bds/tui.ex:226
|
||||
#: lib/bds/tui.ex:228
|
||||
#: lib/bds/tui.ex:659
|
||||
#: lib/bds/ui/registry.ex:125
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Site Validation"
|
||||
@@ -2552,7 +2559,7 @@ msgstr "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:603
|
||||
#: lib/bds/tui.ex:839
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2564,7 +2571,7 @@ msgstr "Etiquetas"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr "Tareas"
|
||||
@@ -2609,7 +2616,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:601
|
||||
#: lib/bds/tui.ex:837
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2832,7 +2839,7 @@ msgid "Updated URLs"
|
||||
msgstr "URLs actualizadas"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#: lib/bds/tui.ex:985
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Subir sitio"
|
||||
@@ -2860,13 +2867,13 @@ msgid "Validate"
|
||||
msgstr "Validar"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#: lib/bds/tui.ex:963
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Validar sitio"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#: lib/bds/tui.ex:976
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Validar traducciones"
|
||||
@@ -3531,7 +3538,7 @@ msgid "Suggested tags"
|
||||
msgstr "Etiquetas sugeridas"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#: lib/bds/tui.ex:964
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr "Forzar la regeneración del sitio"
|
||||
@@ -3628,82 +3635,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:687
|
||||
#: lib/bds/tui.ex:923
|
||||
#, 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:811
|
||||
#: lib/bds/tui.ex:1049
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr "No se pudo cargar este archivo."
|
||||
|
||||
#: lib/bds/tui.ex:138
|
||||
#: lib/bds/tui.ex:158
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr "La edición de este elemento aún no está disponible en la interfaz de terminal."
|
||||
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:376
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "No se recibieron sugerencias."
|
||||
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:1046
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Solo se pueden previsualizar imágenes."
|
||||
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:846
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Entrada no encontrada."
|
||||
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:505
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr "Pulsa Intro para previsualizar %{name}."
|
||||
|
||||
#: lib/bds/tui.ex:657
|
||||
#: lib/bds/tui.ex:893
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr "Publicado."
|
||||
|
||||
#: lib/bds/tui.ex:673
|
||||
#: lib/bds/tui.ex:909
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Guarda antes de cambiar de idioma."
|
||||
|
||||
#: lib/bds/tui.ex:658
|
||||
#: lib/bds/tui.ex:894
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Guardado."
|
||||
|
||||
#: lib/bds/tui.ex:382
|
||||
#: lib/bds/tui.ex:508
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr "Selecciona una entrada y pulsa Intro para abrirla."
|
||||
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:373
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Sugerencias aplicadas."
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#: lib/bds/tui.ex:520
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Título (ctrl+t para editar)"
|
||||
|
||||
#: lib/bds/tui.ex:393
|
||||
#: lib/bds/tui.ex:519
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Título (edición — Intro para confirmar)"
|
||||
|
||||
#: lib/bds/tui.ex:441
|
||||
#: lib/bds/tui.ex:567
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Procesando…"
|
||||
|
||||
#: lib/bds/tui.ex:462
|
||||
#: lib/bds/tui.ex:589
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr "esc para cerrar"
|
||||
@@ -3740,37 +3747,92 @@ 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:413
|
||||
#: lib/bds/tui.ex:539
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Vista previa (ctrl+e para editar)"
|
||||
|
||||
#: lib/bds/tui.ex:512
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "ctrl+s 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
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All tasks finished."
|
||||
msgstr "Todas las tareas han terminado."
|
||||
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:615
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Commands — esc to close"
|
||||
msgstr "Comandos — esc para cerrar"
|
||||
|
||||
#: lib/bds/tui.ex:159
|
||||
#: lib/bds/tui.ex:247
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unknown command."
|
||||
msgstr "Comando desconocido."
|
||||
|
||||
#: lib/bds/tui.ex:478
|
||||
#: lib/bds/tui.ex:605
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "[report/apply in GUI]"
|
||||
msgstr "[informe/aplicación en la GUI]"
|
||||
|
||||
#: lib/bds/tui.ex:505
|
||||
#: lib/bds/tui.ex:670
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
|
||||
msgstr "intro abrir · n nueva entrada · 1-5 vistas · : comandos · ? ayuda · r actualizar · ctrl+q salir"
|
||||
msgid "%{diffs} differences · %{orphans} orphan files"
|
||||
msgstr "%{diffs} diferencias · %{orphans} archivos huérfanos"
|
||||
|
||||
#: lib/bds/tui.ex:702
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Expected %{expected} · Existing %{existing}"
|
||||
msgstr "Esperados %{expected} · Existentes %{existing}"
|
||||
|
||||
#: lib/bds/tui.ex:719
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Extra files (will be removed):"
|
||||
msgstr "Archivos sobrantes (se eliminarán):"
|
||||
|
||||
#: lib/bds/tui.ex:715
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Missing pages (will be rendered):"
|
||||
msgstr "Páginas faltantes (se generarán):"
|
||||
|
||||
#: lib/bds/tui.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to apply."
|
||||
msgstr "Nada que aplicar."
|
||||
|
||||
#: lib/bds/tui.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to repair."
|
||||
msgstr "Nada que reparar."
|
||||
|
||||
#: lib/bds/tui.ex:693
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Orphan files (not in database):"
|
||||
msgstr "Archivos huérfanos (no están en la base de datos):"
|
||||
|
||||
#: lib/bds/tui.ex:709
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sitemap changed."
|
||||
msgstr "Sitemap modificado."
|
||||
|
||||
#: lib/bds/tui.ex:723
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Updated posts (will be re-rendered):"
|
||||
msgstr "Entradas actualizadas (se volverán a generar):"
|
||||
|
||||
#: lib/bds/tui.ex:660
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter apply changes · esc close"
|
||||
msgstr "intro aplicar cambios · esc cerrar"
|
||||
|
||||
#: lib/bds/tui.ex:741
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands (:? help) · r refresh · ctrl+q quit"
|
||||
msgstr "intro abrir · n nueva entrada · 1-5 vistas · : comandos (:? ayuda) · r actualizar · ctrl+q salir"
|
||||
|
||||
#: lib/bds/tui.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter repair all from files · esc close"
|
||||
msgstr "intro reparar todo desde archivos · esc cerrar"
|
||||
|
||||
@@ -81,11 +81,11 @@ msgstr "Paramètres IA"
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:920
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#: lib/bds/tui.ex:373
|
||||
#: lib/bds/tui.ex:376
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:387
|
||||
#: lib/bds/tui.ex:922
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "Suggestions IA"
|
||||
@@ -572,7 +572,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr "Réduire les blocs de diff inchangés"
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#: lib/bds/tui.ex:1017
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr "Commande terminée"
|
||||
@@ -590,7 +590,7 @@ msgstr "Confirmer"
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
|
||||
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
|
||||
#: lib/bds/tui.ex:424
|
||||
#: lib/bds/tui.ex:550
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1030,7 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Nom de fichier"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#: lib/bds/tui.ex:981
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Compléter les traductions manquantes"
|
||||
@@ -1041,7 +1041,7 @@ msgid "Find"
|
||||
msgstr "Rechercher"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#: lib/bds/tui.ex:984
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Trouver les doublons"
|
||||
@@ -1068,7 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galerie"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#: lib/bds/tui.ex:965
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr "Générer le site"
|
||||
@@ -1389,9 +1389,9 @@ msgstr "Nombre maximal 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:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:836
|
||||
#: lib/bds/tui.ex:1046
|
||||
#: lib/bds/tui.ex:1049
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: lib/bds/ui/sidebar.ex:558
|
||||
@@ -1434,7 +1434,11 @@ msgstr "Métadonnées"
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:214
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:226
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:448
|
||||
#: lib/bds/tui.ex:726
|
||||
#: lib/bds/tui.ex:193
|
||||
#: lib/bds/tui.ex:199
|
||||
#: lib/bds/tui.ex:210
|
||||
#: lib/bds/tui.ex:654
|
||||
#: lib/bds/tui.ex:962
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1480,7 +1484,7 @@ msgstr "Nouvelle page"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:130
|
||||
#: lib/bds/tui.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Nouvel article"
|
||||
@@ -1769,7 +1773,7 @@ msgid "Open Settings"
|
||||
msgstr "Ouvrir les Réglages"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#: lib/bds/tui.ex:986
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Ouvrir dans le navigateur"
|
||||
@@ -1917,8 +1921,8 @@ msgstr "Article enregistré"
|
||||
#: lib/bds/desktop/menu_bar.ex:233
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:664
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:761
|
||||
#: lib/bds/tui.ex:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:835
|
||||
#: lib/bds/tui.ex:846
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2042,14 +2046,14 @@ msgid "Ready to import:"
|
||||
msgstr "Prêt à importer :"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#: lib/bds/tui.ex:966
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "Reconstruire la base de données"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#: lib/bds/tui.ex:970
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Reconstruire l’index d’embeddings"
|
||||
@@ -2107,7 +2111,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Actualiser la traduction"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#: lib/bds/tui.ex:973
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Régénérer le calendrier"
|
||||
@@ -2118,7 +2122,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Régénérer les vignettes manquantes"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#: lib/bds/tui.ex:967
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr "Réindexer le texte"
|
||||
@@ -2304,7 +2308,7 @@ msgstr "Les capacités de script sont configurées au niveau de 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:602
|
||||
#: lib/bds/tui.ex:838
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: lib/bds/ui/sidebar.ex:115
|
||||
@@ -2432,6 +2436,9 @@ msgid "Site"
|
||||
msgstr "Site"
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:412
|
||||
#: lib/bds/tui.ex:226
|
||||
#: lib/bds/tui.ex:228
|
||||
#: lib/bds/tui.ex:659
|
||||
#: lib/bds/ui/registry.ex:125
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Site Validation"
|
||||
@@ -2552,7 +2559,7 @@ msgstr "Nom du mot-clé"
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:222
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:253
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/tui.ex:603
|
||||
#: lib/bds/tui.ex:839
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2564,7 +2571,7 @@ msgstr "Tags"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr "Tâches"
|
||||
@@ -2609,7 +2616,7 @@ msgstr "La syntaxe du template est valide"
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:171
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:176
|
||||
#: lib/bds/desktop/shell_live/template_editor.ex:191
|
||||
#: lib/bds/tui.ex:601
|
||||
#: lib/bds/tui.ex:837
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2832,7 +2839,7 @@ msgid "Updated URLs"
|
||||
msgstr "URLs mises à jour"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#: lib/bds/tui.ex:985
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Téléverser le site"
|
||||
@@ -2860,13 +2867,13 @@ msgid "Validate"
|
||||
msgstr "Valider"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#: lib/bds/tui.ex:963
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Valider le site"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#: lib/bds/tui.ex:976
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Valider les traductions"
|
||||
@@ -3531,7 +3538,7 @@ msgid "Suggested tags"
|
||||
msgstr "Tags suggérés"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#: lib/bds/tui.ex:964
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr "Forcer la régénération du site"
|
||||
@@ -3628,82 +3635,82 @@ msgstr "OK"
|
||||
msgid "The endpoint returned no models. You can still type a model name manually."
|
||||
msgstr "Le point de terminaison n'a renvoyé aucun modèle. Vous pouvez toujours saisir un nom de modèle manuellement."
|
||||
|
||||
#: lib/bds/tui.ex:687
|
||||
#: lib/bds/tui.ex:923
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
msgstr "L'IA n'est pas disponible en mode avion sans point de terminaison local."
|
||||
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:1049
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr "Impossible de charger ce fichier."
|
||||
|
||||
#: lib/bds/tui.ex:138
|
||||
#: lib/bds/tui.ex:158
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr "La modification de cet élément n'est pas encore disponible dans l'interface du terminal."
|
||||
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:376
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "Aucune suggestion reçue."
|
||||
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:1046
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Seules les images peuvent être prévisualisées."
|
||||
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:846
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Article introuvable."
|
||||
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:505
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr "Appuyez sur Entrée pour prévisualiser %{name}."
|
||||
|
||||
#: lib/bds/tui.ex:657
|
||||
#: lib/bds/tui.ex:893
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr "Publié."
|
||||
|
||||
#: lib/bds/tui.ex:673
|
||||
#: lib/bds/tui.ex:909
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Enregistrez avant de changer de langue."
|
||||
|
||||
#: lib/bds/tui.ex:658
|
||||
#: lib/bds/tui.ex:894
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Enregistré."
|
||||
|
||||
#: lib/bds/tui.ex:382
|
||||
#: lib/bds/tui.ex:508
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr "Sélectionnez une entrée et appuyez sur Entrée pour l'ouvrir."
|
||||
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:373
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Suggestions appliquées."
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#: lib/bds/tui.ex:520
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Titre (ctrl+t pour modifier)"
|
||||
|
||||
#: lib/bds/tui.ex:393
|
||||
#: lib/bds/tui.ex:519
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Titre (édition — Entrée pour confirmer)"
|
||||
|
||||
#: lib/bds/tui.ex:441
|
||||
#: lib/bds/tui.ex:567
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Traitement en cours…"
|
||||
|
||||
#: lib/bds/tui.ex:462
|
||||
#: lib/bds/tui.ex:589
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr "échap pour fermer"
|
||||
@@ -3740,37 +3747,92 @@ msgstr "Adresse du serveur (user@host ou user@host:port), authentification par c
|
||||
msgid "Use the form user@host or user@host:port."
|
||||
msgstr "Utilisez le format user@host ou user@host:port."
|
||||
|
||||
#: lib/bds/tui.ex:413
|
||||
#: lib/bds/tui.ex:539
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Aperçu (ctrl+e pour modifier)"
|
||||
|
||||
#: lib/bds/tui.ex:512
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "ctrl+s enregistrer · ctrl+p publier · ctrl+e aperçu · ctrl+t titre · ctrl+l langue · ctrl+g IA · échap retour"
|
||||
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All tasks finished."
|
||||
msgstr "Toutes les tâches sont terminées."
|
||||
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:615
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Commands — esc to close"
|
||||
msgstr "Commandes — échap pour fermer"
|
||||
|
||||
#: lib/bds/tui.ex:159
|
||||
#: lib/bds/tui.ex:247
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unknown command."
|
||||
msgstr "Commande inconnue."
|
||||
|
||||
#: lib/bds/tui.ex:478
|
||||
#: lib/bds/tui.ex:605
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "[report/apply in GUI]"
|
||||
msgstr "[rapport/application dans la GUI]"
|
||||
|
||||
#: lib/bds/tui.ex:505
|
||||
#: lib/bds/tui.ex:670
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
|
||||
msgstr "entrée ouvrir · n nouvel article · 1-5 vues · : commandes · ? aide · r actualiser · ctrl+q quitter"
|
||||
msgid "%{diffs} differences · %{orphans} orphan files"
|
||||
msgstr "%{diffs} différences · %{orphans} fichiers orphelins"
|
||||
|
||||
#: lib/bds/tui.ex:702
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Expected %{expected} · Existing %{existing}"
|
||||
msgstr "Attendu %{expected} · Existant %{existing}"
|
||||
|
||||
#: lib/bds/tui.ex:719
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Extra files (will be removed):"
|
||||
msgstr "Fichiers en trop (seront supprimés) :"
|
||||
|
||||
#: lib/bds/tui.ex:715
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Missing pages (will be rendered):"
|
||||
msgstr "Pages manquantes (seront rendues) :"
|
||||
|
||||
#: lib/bds/tui.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to apply."
|
||||
msgstr "Rien à appliquer."
|
||||
|
||||
#: lib/bds/tui.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to repair."
|
||||
msgstr "Rien à réparer."
|
||||
|
||||
#: lib/bds/tui.ex:693
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Orphan files (not in database):"
|
||||
msgstr "Fichiers orphelins (absents de la base de données) :"
|
||||
|
||||
#: lib/bds/tui.ex:709
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sitemap changed."
|
||||
msgstr "Sitemap modifié."
|
||||
|
||||
#: lib/bds/tui.ex:723
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Updated posts (will be re-rendered):"
|
||||
msgstr "Articles mis à jour (seront rendus à nouveau) :"
|
||||
|
||||
#: lib/bds/tui.ex:660
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter apply changes · esc close"
|
||||
msgstr "entrée appliquer les modifications · échap fermer"
|
||||
|
||||
#: lib/bds/tui.ex:741
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands (:? help) · r refresh · ctrl+q quit"
|
||||
msgstr "entrée ouvrir · n nouvel article · 1-5 vues · : commandes (:? aide) · r actualiser · ctrl+q quitter"
|
||||
|
||||
#: lib/bds/tui.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter repair all from files · esc close"
|
||||
msgstr "entrée tout réparer depuis les fichiers · échap fermer"
|
||||
|
||||
@@ -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:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#: lib/bds/tui.ex:373
|
||||
#: lib/bds/tui.ex:376
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:387
|
||||
#: lib/bds/tui.ex:922
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr "Suggerimenti IA"
|
||||
@@ -572,7 +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
|
||||
#: lib/bds/tui.ex:1017
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr "Comando completato"
|
||||
@@ -590,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:424
|
||||
#: lib/bds/tui.ex:550
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1030,7 +1030,7 @@ msgid "Filename"
|
||||
msgstr "Nome file"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#: lib/bds/tui.ex:981
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr "Completa traduzioni mancanti"
|
||||
@@ -1041,7 +1041,7 @@ msgid "Find"
|
||||
msgstr "Trova"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#: lib/bds/tui.ex:984
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr "Trova post duplicati"
|
||||
@@ -1068,7 +1068,7 @@ msgid "Gallery"
|
||||
msgstr "Galleria"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#: lib/bds/tui.ex:965
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr "Genera sito"
|
||||
@@ -1389,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:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:836
|
||||
#: lib/bds/tui.ex:1046
|
||||
#: lib/bds/tui.ex:1049
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: lib/bds/ui/sidebar.ex:558
|
||||
@@ -1434,7 +1434,11 @@ msgstr "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/tui.ex:193
|
||||
#: lib/bds/tui.ex:199
|
||||
#: lib/bds/tui.ex:210
|
||||
#: lib/bds/tui.ex:654
|
||||
#: lib/bds/tui.ex:962
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1480,7 +1484,7 @@ msgstr "Nuova pagina"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:130
|
||||
#: lib/bds/tui.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr "Nuovo post"
|
||||
@@ -1769,7 +1773,7 @@ msgid "Open Settings"
|
||||
msgstr "Apri Impostazioni"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#: lib/bds/tui.ex:986
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr "Apri nel browser"
|
||||
@@ -1917,8 +1921,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:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:835
|
||||
#: lib/bds/tui.ex:846
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2042,14 +2046,14 @@ msgid "Ready to import:"
|
||||
msgstr "Pronto per importare:"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#: lib/bds/tui.ex:966
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr "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
|
||||
#: lib/bds/tui.ex:970
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr "Ricostruisci indice embeddings"
|
||||
@@ -2107,7 +2111,7 @@ msgid "Refresh Translation"
|
||||
msgstr "Aggiorna traduzione"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#: lib/bds/tui.ex:973
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr "Rigenera calendario"
|
||||
@@ -2118,7 +2122,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr "Rigenera miniature mancanti"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#: lib/bds/tui.ex:967
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr "Reindicizza testo"
|
||||
@@ -2304,7 +2308,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:602
|
||||
#: lib/bds/tui.ex:838
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: lib/bds/ui/sidebar.ex:115
|
||||
@@ -2432,6 +2436,9 @@ msgid "Site"
|
||||
msgstr "Sito"
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:412
|
||||
#: lib/bds/tui.ex:226
|
||||
#: lib/bds/tui.ex:228
|
||||
#: lib/bds/tui.ex:659
|
||||
#: lib/bds/ui/registry.ex:125
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Site Validation"
|
||||
@@ -2552,7 +2559,7 @@ msgstr "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:603
|
||||
#: lib/bds/tui.ex:839
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2564,7 +2571,7 @@ msgstr "Tag"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr "Attività"
|
||||
@@ -2609,7 +2616,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:601
|
||||
#: lib/bds/tui.ex:837
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2832,7 +2839,7 @@ msgid "Updated URLs"
|
||||
msgstr "URL aggiornati"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#: lib/bds/tui.ex:985
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr "Carica sito"
|
||||
@@ -2860,13 +2867,13 @@ msgid "Validate"
|
||||
msgstr "Valida"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#: lib/bds/tui.ex:963
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr "Valida sito"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#: lib/bds/tui.ex:976
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr "Valida traduzioni"
|
||||
@@ -3531,7 +3538,7 @@ msgid "Suggested tags"
|
||||
msgstr "Tag suggeriti"
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#: lib/bds/tui.ex:964
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr "Forza la rigenerazione del sito"
|
||||
@@ -3628,82 +3635,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:687
|
||||
#: lib/bds/tui.ex:923
|
||||
#, 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:811
|
||||
#: lib/bds/tui.ex:1049
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr "Impossibile caricare questo file."
|
||||
|
||||
#: lib/bds/tui.ex:138
|
||||
#: lib/bds/tui.ex:158
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr "La modifica di questo elemento non è ancora disponibile nell'interfaccia del terminale."
|
||||
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:376
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr "Nessun suggerimento ricevuto."
|
||||
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:1046
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr "Solo le immagini possono essere visualizzate in anteprima."
|
||||
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:846
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr "Post non trovato."
|
||||
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:505
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr "Premi Invio per l'anteprima di %{name}."
|
||||
|
||||
#: lib/bds/tui.ex:657
|
||||
#: lib/bds/tui.ex:893
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr "Pubblicato."
|
||||
|
||||
#: lib/bds/tui.ex:673
|
||||
#: lib/bds/tui.ex:909
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr "Salva prima di cambiare lingua."
|
||||
|
||||
#: lib/bds/tui.ex:658
|
||||
#: lib/bds/tui.ex:894
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr "Salvato."
|
||||
|
||||
#: lib/bds/tui.ex:382
|
||||
#: lib/bds/tui.ex:508
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr "Seleziona una voce e premi Invio per aprirla."
|
||||
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:373
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr "Suggerimenti applicati."
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#: lib/bds/tui.ex:520
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr "Titolo (ctrl+t per modificare)"
|
||||
|
||||
#: lib/bds/tui.ex:393
|
||||
#: lib/bds/tui.ex:519
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr "Titolo (modifica — Invio per confermare)"
|
||||
|
||||
#: lib/bds/tui.ex:441
|
||||
#: lib/bds/tui.ex:567
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr "Elaborazione…"
|
||||
|
||||
#: lib/bds/tui.ex:462
|
||||
#: lib/bds/tui.ex:589
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr "esc per chiudere"
|
||||
@@ -3740,37 +3747,92 @@ 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:413
|
||||
#: lib/bds/tui.ex:539
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr "Anteprima (ctrl+e per modificare)"
|
||||
|
||||
#: lib/bds/tui.ex:512
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr "ctrl+s salva · ctrl+p pubblica · ctrl+e anteprima · ctrl+t titolo · ctrl+l lingua · ctrl+g IA · esc indietro"
|
||||
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All tasks finished."
|
||||
msgstr "Tutte le attività sono terminate."
|
||||
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:615
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Commands — esc to close"
|
||||
msgstr "Comandi — esc per chiudere"
|
||||
|
||||
#: lib/bds/tui.ex:159
|
||||
#: lib/bds/tui.ex:247
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unknown command."
|
||||
msgstr "Comando sconosciuto."
|
||||
|
||||
#: lib/bds/tui.ex:478
|
||||
#: lib/bds/tui.ex:605
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "[report/apply in GUI]"
|
||||
msgstr "[report/applicazione nella GUI]"
|
||||
|
||||
#: lib/bds/tui.ex:505
|
||||
#: lib/bds/tui.ex:670
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
|
||||
msgstr "invio apri · n nuovo post · 1-5 viste · : comandi · ? aiuto · r aggiorna · ctrl+q esci"
|
||||
msgid "%{diffs} differences · %{orphans} orphan files"
|
||||
msgstr "%{diffs} differenze · %{orphans} file orfani"
|
||||
|
||||
#: lib/bds/tui.ex:702
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Expected %{expected} · Existing %{existing}"
|
||||
msgstr "Attesi %{expected} · Esistenti %{existing}"
|
||||
|
||||
#: lib/bds/tui.ex:719
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Extra files (will be removed):"
|
||||
msgstr "File in eccesso (verranno rimossi):"
|
||||
|
||||
#: lib/bds/tui.ex:715
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Missing pages (will be rendered):"
|
||||
msgstr "Pagine mancanti (verranno generate):"
|
||||
|
||||
#: lib/bds/tui.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to apply."
|
||||
msgstr "Niente da applicare."
|
||||
|
||||
#: lib/bds/tui.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to repair."
|
||||
msgstr "Niente da riparare."
|
||||
|
||||
#: lib/bds/tui.ex:693
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Orphan files (not in database):"
|
||||
msgstr "File orfani (non presenti nel database):"
|
||||
|
||||
#: lib/bds/tui.ex:709
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sitemap changed."
|
||||
msgstr "Sitemap modificata."
|
||||
|
||||
#: lib/bds/tui.ex:723
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Updated posts (will be re-rendered):"
|
||||
msgstr "Post aggiornati (verranno rigenerati):"
|
||||
|
||||
#: lib/bds/tui.ex:660
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter apply changes · esc close"
|
||||
msgstr "invio applica le modifiche · esc chiudi"
|
||||
|
||||
#: lib/bds/tui.ex:741
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands (:? help) · r refresh · ctrl+q quit"
|
||||
msgstr "invio apri · n nuovo post · 1-5 viste · : comandi (:? aiuto) · r aggiorna · ctrl+q esci"
|
||||
|
||||
#: lib/bds/tui.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter repair all from files · esc close"
|
||||
msgstr "invio ripara tutto dai file · esc chiudi"
|
||||
|
||||
@@ -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:285
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:291
|
||||
#: lib/bds/tui.ex:299
|
||||
#: lib/bds/tui.ex:686
|
||||
#: lib/bds/tui.ex:373
|
||||
#: lib/bds/tui.ex:376
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:387
|
||||
#: lib/bds/tui.ex:922
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
msgstr ""
|
||||
@@ -585,7 +585,7 @@ msgid "Collapse unchanged diff hunks"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
|
||||
#: lib/bds/tui.ex:779
|
||||
#: lib/bds/tui.ex:1017
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Command completed"
|
||||
msgstr ""
|
||||
@@ -603,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:424
|
||||
#: lib/bds/tui.ex:550
|
||||
#: lib/bds/ui/sidebar.ex:764
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Content"
|
||||
@@ -1043,7 +1043,7 @@ msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:254
|
||||
#: lib/bds/tui.ex:745
|
||||
#: lib/bds/tui.ex:981
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fill Missing Translations"
|
||||
msgstr ""
|
||||
@@ -1054,7 +1054,7 @@ msgid "Find"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:255
|
||||
#: lib/bds/tui.ex:748
|
||||
#: lib/bds/tui.ex:984
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Find Duplicate Posts"
|
||||
msgstr ""
|
||||
@@ -1081,7 +1081,7 @@ msgid "Gallery"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:256
|
||||
#: lib/bds/tui.ex:729
|
||||
#: lib/bds/tui.ex:965
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generate Site"
|
||||
msgstr ""
|
||||
@@ -1402,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:600
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:836
|
||||
#: lib/bds/tui.ex:1046
|
||||
#: lib/bds/tui.ex:1049
|
||||
#: lib/bds/ui/registry.ex:30
|
||||
#: lib/bds/ui/registry.ex:100
|
||||
#: lib/bds/ui/sidebar.ex:558
|
||||
@@ -1447,7 +1447,11 @@ 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/tui.ex:193
|
||||
#: lib/bds/tui.ex:199
|
||||
#: lib/bds/tui.ex:210
|
||||
#: lib/bds/tui.ex:654
|
||||
#: lib/bds/tui.ex:962
|
||||
#: lib/bds/ui/registry.ex:111
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Metadata Diff"
|
||||
@@ -1493,7 +1497,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:214
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
|
||||
#: lib/bds/tui.ex:130
|
||||
#: lib/bds/tui.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Post"
|
||||
msgstr ""
|
||||
@@ -1782,7 +1786,7 @@ msgid "Open Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:217
|
||||
#: lib/bds/tui.ex:750
|
||||
#: lib/bds/tui.ex:986
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open in Browser"
|
||||
msgstr ""
|
||||
@@ -1930,8 +1934,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:599
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:835
|
||||
#: lib/bds/tui.ex:846
|
||||
#: lib/bds/ui/registry.ex:14
|
||||
#: lib/bds/ui/sidebar.ex:271
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2055,14 +2059,14 @@ msgid "Ready to import:"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:248
|
||||
#: lib/bds/tui.ex:730
|
||||
#: lib/bds/tui.ex:966
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Database"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:250
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
|
||||
#: lib/bds/tui.ex:734
|
||||
#: lib/bds/tui.ex:970
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Rebuild Embedding Index"
|
||||
msgstr ""
|
||||
@@ -2120,7 +2124,7 @@ msgid "Refresh Translation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:252
|
||||
#: lib/bds/tui.ex:737
|
||||
#: lib/bds/tui.ex:973
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regenerate Calendar"
|
||||
msgstr ""
|
||||
@@ -2131,7 +2135,7 @@ msgid "Regenerate Missing Thumbnails"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:249
|
||||
#: lib/bds/tui.ex:731
|
||||
#: lib/bds/tui.ex:967
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reindex Text"
|
||||
msgstr ""
|
||||
@@ -2317,7 +2321,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:602
|
||||
#: lib/bds/tui.ex:838
|
||||
#: lib/bds/ui/registry.ex:38
|
||||
#: lib/bds/ui/sidebar.ex:63
|
||||
#: lib/bds/ui/sidebar.ex:115
|
||||
@@ -2445,6 +2449,9 @@ msgid "Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:412
|
||||
#: lib/bds/tui.ex:226
|
||||
#: lib/bds/tui.ex:228
|
||||
#: lib/bds/tui.ex:659
|
||||
#: lib/bds/ui/registry.ex:125
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Site Validation"
|
||||
@@ -2565,7 +2572,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:603
|
||||
#: lib/bds/tui.ex:839
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
#: lib/bds/ui/sidebar.ex:289
|
||||
@@ -2577,7 +2584,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:786
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
msgstr ""
|
||||
@@ -2622,7 +2629,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:601
|
||||
#: lib/bds/tui.ex:837
|
||||
#: lib/bds/ui/registry.ex:46
|
||||
#: lib/bds/ui/sidebar.ex:71
|
||||
#: lib/bds/ui/sidebar.ex:122
|
||||
@@ -2845,7 +2852,7 @@ msgid "Updated URLs"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:259
|
||||
#: lib/bds/tui.ex:749
|
||||
#: lib/bds/tui.ex:985
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Upload Site"
|
||||
msgstr ""
|
||||
@@ -2873,13 +2880,13 @@ msgid "Validate"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:258
|
||||
#: lib/bds/tui.ex:727
|
||||
#: lib/bds/tui.ex:963
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:253
|
||||
#: lib/bds/tui.ex:740
|
||||
#: lib/bds/tui.ex:976
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Validate Translations"
|
||||
msgstr ""
|
||||
@@ -3544,7 +3551,7 @@ msgid "Suggested tags"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/menu_bar.ex:257
|
||||
#: lib/bds/tui.ex:728
|
||||
#: lib/bds/tui.ex:964
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Force Render Site"
|
||||
msgstr ""
|
||||
@@ -3641,82 +3648,82 @@ msgstr ""
|
||||
msgid "The endpoint returned no models. You can still type a model name manually."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:687
|
||||
#: lib/bds/tui.ex:923
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI is unavailable in airplane mode without a local endpoint."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:811
|
||||
#: lib/bds/tui.ex:1049
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Could not load this file."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:138
|
||||
#: lib/bds/tui.ex:158
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Editing this item is not available in the terminal UI yet."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:288
|
||||
#: lib/bds/tui.ex:376
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No suggestions returned."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:808
|
||||
#: lib/bds/tui.ex:1046
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only images can be previewed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:610
|
||||
#: lib/bds/tui.ex:846
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post not found."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:379
|
||||
#: lib/bds/tui.ex:505
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Press enter to preview %{name}."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:657
|
||||
#: lib/bds/tui.ex:893
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Published."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:673
|
||||
#: lib/bds/tui.ex:909
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save before switching languages."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:658
|
||||
#: lib/bds/tui.ex:894
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:382
|
||||
#: lib/bds/tui.ex:508
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select an entry and press enter to open it."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:285
|
||||
#: lib/bds/tui.ex:373
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suggestions applied."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:394
|
||||
#: lib/bds/tui.ex:520
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (ctrl+t to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:393
|
||||
#: lib/bds/tui.ex:519
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Title (editing — enter to confirm)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:441
|
||||
#: lib/bds/tui.ex:567
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Working…"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:462
|
||||
#: lib/bds/tui.ex:589
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "esc to close"
|
||||
msgstr ""
|
||||
@@ -3753,37 +3760,92 @@ msgstr ""
|
||||
msgid "Use the form user@host or user@host:port."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:413
|
||||
#: lib/bds/tui.ex:539
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview (ctrl+e to edit)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:512
|
||||
#: lib/bds/tui.ex:748
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:312
|
||||
#: lib/bds/tui.ex:403
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All tasks finished."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:488
|
||||
#: lib/bds/tui.ex:615
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Commands — esc to close"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:159
|
||||
#: lib/bds/tui.ex:247
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unknown command."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:478
|
||||
#: lib/bds/tui.ex:605
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "[report/apply in GUI]"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:505
|
||||
#: lib/bds/tui.ex:670
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands · ? help · r refresh · ctrl+q quit"
|
||||
msgid "%{diffs} differences · %{orphans} orphan files"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:702
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Expected %{expected} · Existing %{existing}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:719
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Extra files (will be removed):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:715
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Missing pages (will be rendered):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to apply."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:193
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Nothing to repair."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:693
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Orphan files (not in database):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:709
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sitemap changed."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:723
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Updated posts (will be re-rendered):"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:660
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter apply changes · esc close"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:741
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter open · n new post · 1-5 views · : commands (:? help) · r refresh · ctrl+q quit"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/tui.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "enter repair all from files · esc close"
|
||||
msgstr ""
|
||||
|
||||
@@ -20,6 +20,7 @@ surface TuiSurface {
|
||||
TuiKeyPressed(code, modifiers)
|
||||
TuiEventReceived(entity, entity_id, action)
|
||||
TuiSettingsChanged(key)
|
||||
ShellTaskCompleted(route)
|
||||
}
|
||||
|
||||
rule SidebarNavigation {
|
||||
@@ -63,18 +64,32 @@ rule AiQuickAction {
|
||||
}
|
||||
|
||||
rule CommandPrompt {
|
||||
when: TuiKeyPressed(code: ":" | "?")
|
||||
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.
|
||||
-- BDS.Desktop.ShellCommands backend as the GUI menu; typing ":?"
|
||||
-- shows the full list as help. Overlays clear the cells beneath
|
||||
-- them. Commands whose follow-up UI is GUI-only (validate
|
||||
-- translations, find duplicates) are marked. Queued tasks report
|
||||
-- progress in the status line until all tasks finish.
|
||||
ensures: CommandListShownOrExecuted()
|
||||
}
|
||||
|
||||
rule ReportPanels {
|
||||
when: ShellTaskCompleted(route: "metadata_diff" | "site_validation")
|
||||
-- Completed metadata diff and site validation tasks open a
|
||||
-- scrollable report panel showing the differences. Enter applies
|
||||
-- the whole report — metadata diff repairs all items from the
|
||||
-- filesystem (file → db) and imports orphan files; site validation
|
||||
-- applies the full report incrementally (render missing, remove
|
||||
-- extra, re-render updated), matching the GUI defaults. Esc closes
|
||||
-- the report without applying. Reports completed before this
|
||||
-- session started never pop up.
|
||||
ensures: ReportShownThenAppliedOrCancelled()
|
||||
}
|
||||
|
||||
rule MultiClientSync {
|
||||
when: TuiEventReceived(entity, entity_id, action)
|
||||
-- Domain events refresh the sidebar; a post deleted elsewhere closes
|
||||
|
||||
@@ -169,8 +169,8 @@ defmodule BDS.TUITest do
|
||||
parent = self()
|
||||
|
||||
mount!(
|
||||
command_executor: fn action ->
|
||||
send(parent, {:executed, action})
|
||||
command_executor: fn action, params ->
|
||||
send(parent, {:executed, action, params})
|
||||
{:ok, %{kind: "output", title: "T", message: "done"}}
|
||||
end
|
||||
)
|
||||
@@ -185,9 +185,19 @@ defmodule BDS.TUITest do
|
||||
assert text =~ "validate_site"
|
||||
end
|
||||
|
||||
test "'?' opens the command help list with GUI markers" do
|
||||
state = mount_with_executor!() |> press("?")
|
||||
test "the palette clears the background underneath" do
|
||||
state = mount_with_executor!()
|
||||
assert screen_text(state) =~ "Select an entry"
|
||||
|
||||
state = press(state, ":")
|
||||
refute screen_text(state) =~ "Select an entry"
|
||||
end
|
||||
|
||||
test "'?' alone does nothing; ':?' opens the command help with GUI markers" do
|
||||
state = mount_with_executor!() |> press("?")
|
||||
assert state.command == nil
|
||||
|
||||
state = state |> press(":") |> press("?")
|
||||
assert state.command.help?
|
||||
text = screen_text(state)
|
||||
assert text =~ "metadata_diff"
|
||||
@@ -208,7 +218,7 @@ defmodule BDS.TUITest do
|
||||
|> press("a")
|
||||
|> press("enter")
|
||||
|
||||
assert_receive {:executed, "metadata_diff"}
|
||||
assert_receive {:executed, "metadata_diff", %{}}
|
||||
assert state.command == nil
|
||||
assert state.status =~ "done"
|
||||
end
|
||||
@@ -216,7 +226,7 @@ defmodule BDS.TUITest do
|
||||
test "up/down move the selection" do
|
||||
state = mount_with_executor!() |> press(":") |> press("down") |> press("enter")
|
||||
|
||||
assert_receive {:executed, action}
|
||||
assert_receive {:executed, action, %{}}
|
||||
assert is_binary(action)
|
||||
end
|
||||
|
||||
@@ -228,7 +238,7 @@ defmodule BDS.TUITest do
|
||||
|> press("z")
|
||||
|> press("enter")
|
||||
|
||||
refute_receive {:executed, _action}, 50
|
||||
refute_receive {:executed, _action, _params}, 50
|
||||
assert state.command == nil
|
||||
assert state.status != nil
|
||||
end
|
||||
@@ -238,7 +248,7 @@ defmodule BDS.TUITest do
|
||||
|
||||
state =
|
||||
mount!(
|
||||
command_executor: fn action ->
|
||||
command_executor: fn action, _params ->
|
||||
send(parent, {:executed, action})
|
||||
{:ok, %{kind: "task_queued", title: "Rebuild", message: "queued"}}
|
||||
end
|
||||
@@ -256,6 +266,147 @@ defmodule BDS.TUITest do
|
||||
end
|
||||
end
|
||||
|
||||
describe "report panels" do
|
||||
defp diff_snapshot do
|
||||
%{
|
||||
running_task_message: nil,
|
||||
tasks: [
|
||||
%{
|
||||
id: "task-diff",
|
||||
status: :completed,
|
||||
result: %{
|
||||
kind: "open_editor",
|
||||
route: "metadata_diff",
|
||||
title: "Metadata Diff",
|
||||
payload: %{
|
||||
summary: %{diff_count: 1, orphan_count: 1},
|
||||
diff_reports: [
|
||||
%{
|
||||
"entity_type" => "post",
|
||||
"entity_id" => "p1",
|
||||
"differences" => [
|
||||
%{"name" => "title", "db_value" => "Old", "file_value" => "New"}
|
||||
]
|
||||
}
|
||||
],
|
||||
orphan_reports: [%{"file_path" => "posts/2026/07/lost.md"}]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
defp validation_snapshot do
|
||||
%{
|
||||
running_task_message: nil,
|
||||
tasks: [
|
||||
%{
|
||||
id: "task-validate",
|
||||
status: :completed,
|
||||
result: %{
|
||||
kind: "open_editor",
|
||||
route: "site_validation",
|
||||
title: "Site Validation",
|
||||
payload: %{
|
||||
sitemap_path: "sitemap.xml",
|
||||
sitemap_changed: true,
|
||||
summary: %{
|
||||
expected_count: 10,
|
||||
existing_count: 8,
|
||||
missing_count: 2,
|
||||
extra_count: 1,
|
||||
updated_count: 1
|
||||
},
|
||||
missing_url_paths: ["/2026/07/a/", "/2026/07/b/"],
|
||||
extra_url_paths: ["/stale/"],
|
||||
updated_post_url_paths: ["/2026/07/c/"],
|
||||
expected_url_count: 10,
|
||||
existing_html_url_count: 8
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
end
|
||||
|
||||
defp mount_for_report!(snapshot) do
|
||||
parent = self()
|
||||
|
||||
state =
|
||||
mount!(
|
||||
command_executor: fn action, params ->
|
||||
send(parent, {:executed, action, params})
|
||||
{:ok, %{kind: "task_queued", title: "T", message: "queued"}}
|
||||
end,
|
||||
task_snapshot_fun: fn -> snapshot end,
|
||||
# Pre-existing completed tasks must not pop up reports, so the
|
||||
# tests hand the snapshot in only after mount via this switch.
|
||||
initial_task_snapshot: %{running_task_message: nil, tasks: []}
|
||||
)
|
||||
|
||||
{:noreply, state} = BDS.TUI.handle_info(:poll_tasks, %{state | task_polling: true})
|
||||
state
|
||||
end
|
||||
|
||||
test "a completed metadata diff task opens the report panel" do
|
||||
state = mount_for_report!(diff_snapshot())
|
||||
|
||||
assert state.report.route == "metadata_diff"
|
||||
text = screen_text(state)
|
||||
assert text =~ "post p1"
|
||||
assert text =~ "title"
|
||||
assert text =~ "lost.md"
|
||||
end
|
||||
|
||||
test "esc closes the report without applying" do
|
||||
state = mount_for_report!(diff_snapshot()) |> press("esc")
|
||||
|
||||
assert state.report == nil
|
||||
refute_receive {:executed, _action, _params}, 50
|
||||
end
|
||||
|
||||
test "enter repairs all metadata diffs from files and imports orphans" do
|
||||
state = mount_for_report!(diff_snapshot()) |> press("enter")
|
||||
|
||||
assert state.report == nil
|
||||
|
||||
assert_receive {:executed, "repair_metadata_diff", %{items: items, direction: "file_to_db"}}
|
||||
assert [%{"entity_type" => "post", "entity_id" => "p1"} | _] = items
|
||||
|
||||
assert_receive {:executed, "import_metadata_diff_orphans", %{orphans: orphans}}
|
||||
assert [%{"file_path" => "posts/2026/07/lost.md"}] = orphans
|
||||
end
|
||||
|
||||
test "a completed site validation task opens the report and enter applies it" do
|
||||
state = mount_for_report!(validation_snapshot())
|
||||
|
||||
assert state.report.route == "site_validation"
|
||||
text = screen_text(state)
|
||||
assert text =~ "/2026/07/a/"
|
||||
assert text =~ "/stale/"
|
||||
|
||||
state = press(state, "enter")
|
||||
assert state.report == nil
|
||||
|
||||
assert_receive {:executed, "apply_site_validation", %{report: report}}
|
||||
assert report.missing_url_paths == ["/2026/07/a/", "/2026/07/b/"]
|
||||
end
|
||||
|
||||
test "completed tasks from before mount never open a report" do
|
||||
parent = self()
|
||||
|
||||
state =
|
||||
mount!(
|
||||
command_executor: fn action, params -> send(parent, {:executed, action, params}) end,
|
||||
task_snapshot_fun: fn -> diff_snapshot() end
|
||||
)
|
||||
|
||||
{:noreply, state} = BDS.TUI.handle_info(:poll_tasks, %{state | task_polling: true})
|
||||
assert state.report == 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