feat: TUI projects overlay to switch projects and open existing blog folders with automatic database rebuild (issue #28)

This commit is contained in:
2026-07-16 17:26:19 +02:00
parent a8ca3b643b
commit 5801e49dc1
9 changed files with 921 additions and 454 deletions

View File

@@ -11,6 +11,8 @@ defmodule BDS.TUI do
Sidebar focus: `↑/↓`/`j/k` navigate, `enter` open, `n` new post,
`1..5` switch view (posts/media/templates/scripts/tags), `r` refresh,
`p` projects overlay (switch the active project or open an existing
blog folder by path — opening one queues a full database rebuild),
`:` vi-style command prompt over the Blog-menu shell commands, `?`
command help (commands whose report/apply UI is GUI-only are marked).
Editor focus: text keys edit, `ctrl+s` save, `ctrl+p` publish,
@@ -55,6 +57,7 @@ defmodule BDS.TUI do
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,
projects: nil,
report: nil,
handled_task_ids: nil,
task_polling: false,
@@ -110,6 +113,10 @@ defmodule BDS.TUI do
when command != nil,
do: command_key(key, state)
def handle_event(%ExRatatui.Event.Key{kind: "press"} = key, %{projects: projects} = state)
when projects != nil,
do: projects_key(key, state)
def handle_event(%ExRatatui.Event.Key{code: "esc"}, %{image: image} = state)
when image != nil,
do: {:noreply, %{state | image: nil}}
@@ -140,6 +147,14 @@ defmodule BDS.TUI do
defp sidebar_key(%{code: ":"}, state),
do: {:noreply, %{state | command: %{input: "", selected: 0, help?: false}}}
defp sidebar_key(%{code: "p"}, state) do
snapshot = Projects.shell_snapshot()
selected = Enum.find_index(snapshot.projects, & &1.is_active) || 0
{:noreply,
%{state | projects: %{mode: :list, projects: snapshot.projects, selected: selected, input: ""}}}
end
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
@@ -233,6 +248,103 @@ defmodule BDS.TUI do
defp apply_report(state, _report), do: state
# ── Events: projects overlay (switch / open existing) ────────────────────
defp projects_key(%{code: "esc"}, %{projects: %{mode: :open} = projects} = state),
do: {:noreply, %{state | projects: %{projects | mode: :list, input: ""}}}
defp projects_key(%{code: "esc"}, state), do: {:noreply, %{state | projects: nil}}
defp projects_key(%{code: "enter"}, %{projects: %{mode: :open, input: input}} = state),
do: {:noreply, open_existing_project(state, input)}
defp projects_key(%{code: "backspace"}, %{projects: %{mode: :open} = projects} = state),
do: {:noreply, %{state | projects: %{projects | input: String.slice(projects.input, 0..-2//1)}}}
defp projects_key(%{code: code, modifiers: []}, %{projects: %{mode: :open} = projects} = state)
when byte_size(code) >= 1 do
if String.length(code) == 1 do
{:noreply, %{state | projects: %{projects | input: projects.input <> code}}}
else
{:noreply, state}
end
end
defp projects_key(%{code: "o"}, %{projects: projects} = state),
do: {:noreply, %{state | projects: %{projects | mode: :open}}}
defp projects_key(%{code: code}, %{projects: projects} = state) when code in ["down", "j"] do
count = length(projects.projects)
{:noreply, put_in(state.projects.selected, min(projects.selected + 1, max(count - 1, 0)))}
end
defp projects_key(%{code: code}, %{projects: projects} = state) when code in ["up", "k"],
do: {:noreply, put_in(state.projects.selected, max(projects.selected - 1, 0))}
defp projects_key(%{code: "enter"}, %{projects: projects} = state) do
case Enum.at(projects.projects, projects.selected) do
nil -> {:noreply, %{state | projects: nil}}
summary -> {:noreply, switch_project(%{state | projects: nil}, summary.id)}
end
end
defp projects_key(_key, state), do: {:noreply, state}
defp switch_project(%{project_id: project_id} = state, project_id), do: state
defp switch_project(state, project_id) do
case Projects.set_active_project(project_id) do
{:ok, project} ->
%{
state
| project_id: project.id,
view: "posts",
selected: 0,
focus: :sidebar,
editor: nil,
image: nil
}
|> load_sidebar()
|> toast(
dgettext("ui", "Projects"),
dgettext("ui", "Switched to %{name}.", name: project.name)
)
{:error, reason} ->
toast(state, dgettext("ui", "Projects"), inspect(reason))
end
end
defp open_existing_project(state, input) do
path = input |> String.trim() |> Path.expand()
if File.dir?(path) do
name =
case Path.basename(path) do
"" -> dgettext("ui", "Imported Blog")
value -> value
end
case Projects.create_project(%{name: name, data_path: path}) do
{:ok, project} ->
# The folder's content only exists on disk at this point: activate
# the project, then queue the full database rebuild automatically.
%{state | projects: nil}
|> switch_project(project.id)
|> execute_action(dgettext("ui", "Rebuild Database"), "rebuild_database", %{})
{:error, reason} ->
toast(%{state | projects: nil}, dgettext("ui", "Open Existing Blog"), inspect(reason))
end
else
toast(
state,
dgettext("ui", "Open Existing Blog"),
dgettext("ui", "Not a folder: %{path}", path: path)
)
end
end
# ── Events: command prompt (vi-style) ────────────────────────────────────
defp command_key(%{code: "esc"}, state), do: {:noreply, %{state | command: nil}}
@@ -462,7 +574,8 @@ defmodule BDS.TUI do
status_widgets(state, status_rect) ++
image_widgets(state, body_rect) ++
report_widgets(state, body_rect) ++
command_widgets(state, body_rect)
command_widgets(state, body_rect) ++
projects_widgets(state, body_rect)
end
defp view_tabs(state, rect) do
@@ -633,6 +746,57 @@ defmodule BDS.TUI do
]
end
defp projects_widgets(%{projects: nil}, _rect), do: []
defp projects_widgets(%{projects: %{mode: :open} = projects}, rect) do
overlay = %Rect{
x: rect.x + 4,
y: rect.y + 2,
width: max(rect.width - 8, 20),
height: 3
}
[
{%Clear{}, overlay},
{%Paragraph{
text: projects.input,
block: %Block{
title: dgettext("ui", "Open Existing Blog — type a folder path · enter open · esc back"),
borders: [:all]
}
}, overlay}
]
end
defp projects_widgets(%{projects: projects}, rect) do
overlay = %Rect{
x: rect.x + 4,
y: rect.y + 1,
width: max(rect.width - 8, 20),
height: max(rect.height - 2, 6)
}
items =
Enum.map(projects.projects, fn summary ->
marker = if summary.is_active, do: "", else: " "
path = summary.data_path || ""
marker <> summary.name <> if(path == "", do: "", else: "" <> path)
end)
[
{%Clear{}, overlay},
{%List{
items: items,
selected: list_selected(items, projects.selected),
highlight_style: %Style{fg: :black, bg: :cyan},
block: %Block{
title: dgettext("ui", "Projects — enter switch · o open existing · esc close"),
borders: [:all]
}
}, overlay}
]
end
defp report_widgets(%{report: nil}, _rect), do: []
defp report_widgets(%{report: report}, rect) do
@@ -745,7 +909,7 @@ defmodule BDS.TUI do
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 · p projects · : commands (:? help) · r refresh · ctrl+q quit"
)
defp default_status(%{focus: :editor}),

View File

@@ -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:373
#: lib/bds/tui.ex:376
#: lib/bds/tui.ex:379
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:922
#: lib/bds/tui.ex:485
#: lib/bds/tui.ex:488
#: lib/bds/tui.ex:491
#: lib/bds/tui.ex:499
#: lib/bds/tui.ex:1091
#, 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:1017
#: lib/bds/tui.ex:1187
#, 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:550
#: lib/bds/tui.ex:668
#: 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:981
#: lib/bds/tui.ex:1151
#, 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:984
#: lib/bds/tui.ex:1154
#, 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:965
#: lib/bds/tui.ex:1135
#, 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:836
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1005
#: lib/bds/tui.ex:1216
#: lib/bds/tui.ex:1219
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1434,11 +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:193
#: lib/bds/tui.ex:199
#: lib/bds/tui.ex:210
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:962
#: lib/bds/tui.ex:208
#: lib/bds/tui.ex:214
#: lib/bds/tui.ex:225
#: lib/bds/tui.ex:823
#: lib/bds/tui.ex:1132
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1484,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:150
#: lib/bds/tui.ex:165
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Neuer Beitrag"
@@ -1762,6 +1762,8 @@ msgid "Open Data Folder"
msgstr "Datenordner öffnen"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:337
#: lib/bds/tui.ex:342
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Bestehenden Blog öffnen"
@@ -1773,7 +1775,7 @@ msgid "Open Settings"
msgstr "Einstellungen öffnen"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:986
#: lib/bds/tui.ex:1156
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Im Browser öffnen"
@@ -1921,8 +1923,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:835
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1004
#: lib/bds/tui.ex:1015
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1981,6 +1983,8 @@ msgstr "Projekt und Veröffentlichung"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:309
#: lib/bds/tui.ex:314
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Projekte"
@@ -2046,14 +2050,15 @@ msgid "Ready to import:"
msgstr "Bereit zum Import:"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:966
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:1136
#, 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:970
#: lib/bds/tui.ex:1140
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Embedding-Index neu aufbauen"
@@ -2111,7 +2116,7 @@ msgid "Refresh Translation"
msgstr "Übersetzung aktualisieren"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:973
#: lib/bds/tui.ex:1143
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Kalender neu erzeugen"
@@ -2122,7 +2127,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Fehlende Vorschaubilder neu erzeugen"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:967
#: lib/bds/tui.ex:1137
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Text neu indizieren"
@@ -2308,7 +2313,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:838
#: lib/bds/tui.ex:1007
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2436,9 +2441,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/tui.ex:241
#: lib/bds/tui.ex:243
#: lib/bds/tui.ex:828
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2559,7 +2564,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:839
#: lib/bds/tui.ex:1008
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2571,7 +2576,7 @@ msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Aufgaben"
@@ -2616,7 +2621,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:837
#: lib/bds/tui.ex:1006
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2839,7 +2844,7 @@ msgid "Updated URLs"
msgstr "Aktualisierte URLs"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:985
#: lib/bds/tui.ex:1155
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Website hochladen"
@@ -2867,13 +2872,13 @@ msgid "Validate"
msgstr "Validieren"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:963
#: lib/bds/tui.ex:1133
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Website validieren"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:976
#: lib/bds/tui.ex:1146
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Übersetzungen validieren"
@@ -3538,7 +3543,7 @@ msgid "Suggested tags"
msgstr "Vorgeschlagene Tags"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:964
#: lib/bds/tui.ex:1134
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Website vollständig neu generieren"
@@ -3635,82 +3640,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:923
#: lib/bds/tui.ex:1092
#, 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:1049
#: lib/bds/tui.ex:1219
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "Diese Datei konnte nicht geladen werden."
#: lib/bds/tui.ex:158
#: lib/bds/tui.ex:173
#, 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:376
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Keine Vorschläge erhalten."
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1216
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Nur Bilder können in der Vorschau angezeigt werden."
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1015
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Beitrag nicht gefunden."
#: lib/bds/tui.ex:505
#: lib/bds/tui.ex:623
#, 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:893
#: lib/bds/tui.ex:1062
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Veröffentlicht."
#: lib/bds/tui.ex:909
#: lib/bds/tui.ex:1078
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Speichern Sie vor dem Sprachwechsel."
#: lib/bds/tui.ex:894
#: lib/bds/tui.ex:1063
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Gespeichert."
#: lib/bds/tui.ex:508
#: lib/bds/tui.ex:626
#, 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:373
#: lib/bds/tui.ex:485
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Vorschläge übernommen."
#: lib/bds/tui.ex:520
#: lib/bds/tui.ex:638
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titel (Strg+T zum Bearbeiten)"
#: lib/bds/tui.ex:519
#: lib/bds/tui.ex:637
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titel (Bearbeitung — Enter zum Bestätigen)"
#: lib/bds/tui.ex:567
#: lib/bds/tui.ex:685
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Wird bearbeitet…"
#: lib/bds/tui.ex:589
#: lib/bds/tui.ex:707
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "Esc zum Schließen"
@@ -3747,92 +3752,117 @@ 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:539
#: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Vorschau (ctrl+e zum Bearbeiten)"
#: lib/bds/tui.ex:748
#: lib/bds/tui.ex:917
#, 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:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Alle Aufgaben abgeschlossen."
#: lib/bds/tui.ex:615
#: lib/bds/tui.ex:733
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Befehle — Esc zum Schließen"
#: lib/bds/tui.ex:247
#: lib/bds/tui.ex:359
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Unbekannter Befehl."
#: lib/bds/tui.ex:605
#: lib/bds/tui.ex:723
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[Bericht/Anwenden in der GUI]"
#: lib/bds/tui.ex:670
#: lib/bds/tui.ex:839
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} Unterschiede · %{orphans} verwaiste Dateien"
#: lib/bds/tui.ex:702
#: lib/bds/tui.ex:871
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Erwartet %{expected} · Vorhanden %{existing}"
#: lib/bds/tui.ex:719
#: lib/bds/tui.ex:888
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "Überzählige Dateien (werden entfernt):"
#: lib/bds/tui.ex:715
#: lib/bds/tui.ex:884
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Fehlende Seiten (werden gerendert):"
#: lib/bds/tui.ex:226
#: lib/bds/tui.ex:241
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Nichts anzuwenden."
#: lib/bds/tui.ex:193
#: lib/bds/tui.ex:208
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Nichts zu reparieren."
#: lib/bds/tui.ex:693
#: lib/bds/tui.ex:862
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr "Verwaiste Dateien (nicht in der Datenbank):"
#: lib/bds/tui.ex:709
#: lib/bds/tui.ex:878
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap geändert."
#: lib/bds/tui.ex:723
#: lib/bds/tui.ex:892
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Aktualisierte Beiträge (werden neu gerendert):"
#: lib/bds/tui.ex:660
#: lib/bds/tui.ex:829
#, 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
#: lib/bds/tui.ex:824
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "Enter alles aus Dateien reparieren · Esc Schließen"
#: lib/bds/tui.ex:324
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Importierter Blog"
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "Kein Ordner: %{path}"
#: lib/bds/tui.ex:764
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · enter open · esc back"
msgstr "Bestehenden Blog öffnen — Ordnerpfad eingeben · Enter Öffnen · Esc Zurück"
#: lib/bds/tui.ex:793
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Projekte — Enter Wechseln · O Bestehenden öffnen · Esc Schließen"
#: lib/bds/tui.ex:310
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Zu %{name} gewechselt."
#: lib/bds/tui.ex:910
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "Enter Öffnen · N Neuer Beitrag · 1-5 Ansichten · P Projekte · : Befehle (:? Hilfe) · R Aktualisieren · Strg+Q Beenden"

View File

@@ -81,11 +81,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: 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
#: lib/bds/tui.ex:485
#: lib/bds/tui.ex:488
#: lib/bds/tui.ex:491
#: lib/bds/tui.ex:499
#: lib/bds/tui.ex:1091
#, 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:1017
#: lib/bds/tui.ex:1187
#, 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:550
#: lib/bds/tui.ex:668
#: 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:981
#: lib/bds/tui.ex:1151
#, 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:984
#: lib/bds/tui.ex:1154
#, 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:965
#: lib/bds/tui.ex:1135
#, 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:836
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1005
#: lib/bds/tui.ex:1216
#: lib/bds/tui.ex:1219
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1434,11 +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:193
#: lib/bds/tui.ex:199
#: lib/bds/tui.ex:210
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:962
#: lib/bds/tui.ex:208
#: lib/bds/tui.ex:214
#: lib/bds/tui.ex:225
#: lib/bds/tui.ex:823
#: lib/bds/tui.ex:1132
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1484,7 +1484,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:150
#: lib/bds/tui.ex:165
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr ""
@@ -1762,6 +1762,8 @@ msgid "Open Data Folder"
msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:337
#: lib/bds/tui.ex:342
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr ""
@@ -1773,7 +1775,7 @@ msgid "Open Settings"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:986
#: lib/bds/tui.ex:1156
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr ""
@@ -1921,8 +1923,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:835
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1004
#: lib/bds/tui.ex:1015
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1981,6 +1983,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:309
#: lib/bds/tui.ex:314
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr ""
@@ -2046,14 +2050,15 @@ msgid "Ready to import:"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:966
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:1136
#, 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:970
#: lib/bds/tui.ex:1140
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr ""
@@ -2111,7 +2116,7 @@ msgid "Refresh Translation"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:973
#: lib/bds/tui.ex:1143
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr ""
@@ -2122,7 +2127,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:967
#: lib/bds/tui.ex:1137
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr ""
@@ -2308,7 +2313,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:838
#: lib/bds/tui.ex:1007
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2436,9 +2441,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/tui.ex:241
#: lib/bds/tui.ex:243
#: lib/bds/tui.ex:828
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2559,7 +2564,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:839
#: lib/bds/tui.ex:1008
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2571,7 +2576,7 @@ msgstr ""
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr ""
@@ -2616,7 +2621,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:837
#: lib/bds/tui.ex:1006
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2839,7 +2844,7 @@ msgid "Updated URLs"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:985
#: lib/bds/tui.ex:1155
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr ""
@@ -2867,13 +2872,13 @@ msgid "Validate"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:963
#: lib/bds/tui.ex:1133
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:976
#: lib/bds/tui.ex:1146
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr ""
@@ -3538,7 +3543,7 @@ msgid "Suggested tags"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:964
#: lib/bds/tui.ex:1134
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr ""
@@ -3635,82 +3640,82 @@ msgstr ""
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr ""
#: lib/bds/tui.ex:923
#: lib/bds/tui.ex:1092
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr ""
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1219
#, elixir-autogen, elixir-format, fuzzy
msgid "Could not load this file."
msgstr ""
#: lib/bds/tui.ex:158
#: lib/bds/tui.ex:173
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr ""
#: lib/bds/tui.ex:376
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr ""
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1216
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr ""
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1015
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr ""
#: lib/bds/tui.ex:505
#: lib/bds/tui.ex:623
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr ""
#: lib/bds/tui.ex:893
#: lib/bds/tui.ex:1062
#, elixir-autogen, elixir-format, fuzzy
msgid "Published."
msgstr ""
#: lib/bds/tui.ex:909
#: lib/bds/tui.ex:1078
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr ""
#: lib/bds/tui.ex:894
#: lib/bds/tui.ex:1063
#, elixir-autogen, elixir-format, fuzzy
msgid "Saved."
msgstr ""
#: lib/bds/tui.ex:508
#: lib/bds/tui.ex:626
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr ""
#: lib/bds/tui.ex:373
#: lib/bds/tui.ex:485
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr ""
#: lib/bds/tui.ex:520
#: lib/bds/tui.ex:638
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr ""
#: lib/bds/tui.ex:519
#: lib/bds/tui.ex:637
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr ""
#: lib/bds/tui.ex:567
#: lib/bds/tui.ex:685
#, elixir-autogen, elixir-format, fuzzy
msgid "Working…"
msgstr ""
#: lib/bds/tui.ex:589
#: lib/bds/tui.ex:707
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr ""
@@ -3747,92 +3752,117 @@ msgstr ""
msgid "Use the form user@host or user@host:port."
msgstr ""
#: lib/bds/tui.ex:539
#: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr ""
#: lib/bds/tui.ex:748
#: lib/bds/tui.ex:917
#, 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:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr ""
#: lib/bds/tui.ex:615
#: lib/bds/tui.ex:733
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr ""
#: lib/bds/tui.ex:247
#: lib/bds/tui.ex:359
#, elixir-autogen, elixir-format, fuzzy
msgid "Unknown command."
msgstr ""
#: lib/bds/tui.ex:605
#: lib/bds/tui.ex:723
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr ""
#: lib/bds/tui.ex:670
#: lib/bds/tui.ex:839
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr ""
#: lib/bds/tui.ex:702
#: lib/bds/tui.ex:871
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr ""
#: lib/bds/tui.ex:719
#: lib/bds/tui.ex:888
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr ""
#: lib/bds/tui.ex:715
#: lib/bds/tui.ex:884
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr ""
#: lib/bds/tui.ex:226
#: lib/bds/tui.ex:241
#, elixir-autogen, elixir-format, fuzzy
msgid "Nothing to apply."
msgstr ""
#: lib/bds/tui.ex:193
#: lib/bds/tui.ex:208
#, elixir-autogen, elixir-format, fuzzy
msgid "Nothing to repair."
msgstr ""
#: lib/bds/tui.ex:693
#: lib/bds/tui.ex:862
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr ""
#: lib/bds/tui.ex:709
#: lib/bds/tui.ex:878
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr ""
#: lib/bds/tui.ex:723
#: lib/bds/tui.ex:892
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr ""
#: lib/bds/tui.ex:660
#: lib/bds/tui.ex:829
#, 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
#: lib/bds/tui.ex:824
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr ""
#: lib/bds/tui.ex:324
#, elixir-autogen, elixir-format, fuzzy
msgid "Imported Blog"
msgstr ""
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr ""
#: lib/bds/tui.ex:764
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · enter open · esc back"
msgstr ""
#: lib/bds/tui.ex:793
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr ""
#: lib/bds/tui.ex:310
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr ""
#: lib/bds/tui.ex:910
#, elixir-autogen, elixir-format, fuzzy
msgid "enter open · n new post · 1-5 views · p projects · : commands (:? help) · r refresh · ctrl+q quit"
msgstr ""

View File

@@ -81,11 +81,11 @@ msgstr "Configuración de IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: 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
#: lib/bds/tui.ex:485
#: lib/bds/tui.ex:488
#: lib/bds/tui.ex:491
#: lib/bds/tui.ex:499
#: lib/bds/tui.ex:1091
#, 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:1017
#: lib/bds/tui.ex:1187
#, 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:550
#: lib/bds/tui.ex:668
#: 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:981
#: lib/bds/tui.ex:1151
#, 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:984
#: lib/bds/tui.ex:1154
#, 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:965
#: lib/bds/tui.ex:1135
#, 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:836
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1005
#: lib/bds/tui.ex:1216
#: lib/bds/tui.ex:1219
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1434,11 +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:193
#: lib/bds/tui.ex:199
#: lib/bds/tui.ex:210
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:962
#: lib/bds/tui.ex:208
#: lib/bds/tui.ex:214
#: lib/bds/tui.ex:225
#: lib/bds/tui.ex:823
#: lib/bds/tui.ex:1132
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1484,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:150
#: lib/bds/tui.ex:165
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nueva entrada"
@@ -1762,6 +1762,8 @@ msgid "Open Data Folder"
msgstr "Abrir carpeta de datos"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:337
#: lib/bds/tui.ex:342
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Abrir blog existente"
@@ -1773,7 +1775,7 @@ msgid "Open Settings"
msgstr "Abrir Ajustes"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:986
#: lib/bds/tui.ex:1156
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Abrir en el navegador"
@@ -1921,8 +1923,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:835
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1004
#: lib/bds/tui.ex:1015
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1981,6 +1983,8 @@ msgstr "Proyecto y publicación"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:309
#: lib/bds/tui.ex:314
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Proyectos"
@@ -2046,14 +2050,15 @@ msgid "Ready to import:"
msgstr "Listo para importar:"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:966
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:1136
#, 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:970
#: lib/bds/tui.ex:1140
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Reconstruir índice de embeddings"
@@ -2111,7 +2116,7 @@ msgid "Refresh Translation"
msgstr "Actualizar traducción"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:973
#: lib/bds/tui.ex:1143
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Regenerar calendario"
@@ -2122,7 +2127,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Regenerar miniaturas faltantes"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:967
#: lib/bds/tui.ex:1137
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Reindexar texto"
@@ -2308,7 +2313,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:838
#: lib/bds/tui.ex:1007
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2436,9 +2441,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/tui.ex:241
#: lib/bds/tui.ex:243
#: lib/bds/tui.ex:828
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2559,7 +2564,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:839
#: lib/bds/tui.ex:1008
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2571,7 +2576,7 @@ msgstr "Etiquetas"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Tareas"
@@ -2616,7 +2621,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:837
#: lib/bds/tui.ex:1006
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2839,7 +2844,7 @@ msgid "Updated URLs"
msgstr "URLs actualizadas"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:985
#: lib/bds/tui.ex:1155
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Subir sitio"
@@ -2867,13 +2872,13 @@ msgid "Validate"
msgstr "Validar"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:963
#: lib/bds/tui.ex:1133
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Validar sitio"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:976
#: lib/bds/tui.ex:1146
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Validar traducciones"
@@ -3538,7 +3543,7 @@ msgid "Suggested tags"
msgstr "Etiquetas sugeridas"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:964
#: lib/bds/tui.ex:1134
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Forzar la regeneración del sitio"
@@ -3635,82 +3640,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:923
#: lib/bds/tui.ex:1092
#, 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:1049
#: lib/bds/tui.ex:1219
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "No se pudo cargar este archivo."
#: lib/bds/tui.ex:158
#: lib/bds/tui.ex:173
#, 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:376
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "No se recibieron sugerencias."
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1216
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Solo se pueden previsualizar imágenes."
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1015
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Entrada no encontrada."
#: lib/bds/tui.ex:505
#: lib/bds/tui.ex:623
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Pulsa Intro para previsualizar %{name}."
#: lib/bds/tui.ex:893
#: lib/bds/tui.ex:1062
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Publicado."
#: lib/bds/tui.ex:909
#: lib/bds/tui.ex:1078
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Guarda antes de cambiar de idioma."
#: lib/bds/tui.ex:894
#: lib/bds/tui.ex:1063
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Guardado."
#: lib/bds/tui.ex:508
#: lib/bds/tui.ex:626
#, 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:373
#: lib/bds/tui.ex:485
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Sugerencias aplicadas."
#: lib/bds/tui.ex:520
#: lib/bds/tui.ex:638
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Título (ctrl+t para editar)"
#: lib/bds/tui.ex:519
#: lib/bds/tui.ex:637
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Título (edición — Intro para confirmar)"
#: lib/bds/tui.ex:567
#: lib/bds/tui.ex:685
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Procesando…"
#: lib/bds/tui.ex:589
#: lib/bds/tui.ex:707
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "esc para cerrar"
@@ -3747,92 +3752,117 @@ 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:539
#: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Vista previa (ctrl+e para editar)"
#: lib/bds/tui.ex:748
#: lib/bds/tui.ex:917
#, 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:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Todas las tareas han terminado."
#: lib/bds/tui.ex:615
#: lib/bds/tui.ex:733
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Comandos — esc para cerrar"
#: lib/bds/tui.ex:247
#: lib/bds/tui.ex:359
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Comando desconocido."
#: lib/bds/tui.ex:605
#: lib/bds/tui.ex:723
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[informe/aplicación en la GUI]"
#: lib/bds/tui.ex:670
#: lib/bds/tui.ex:839
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} diferencias · %{orphans} archivos huérfanos"
#: lib/bds/tui.ex:702
#: lib/bds/tui.ex:871
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Esperados %{expected} · Existentes %{existing}"
#: lib/bds/tui.ex:719
#: lib/bds/tui.ex:888
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "Archivos sobrantes (se eliminarán):"
#: lib/bds/tui.ex:715
#: lib/bds/tui.ex:884
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Páginas faltantes (se generarán):"
#: lib/bds/tui.ex:226
#: lib/bds/tui.ex:241
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Nada que aplicar."
#: lib/bds/tui.ex:193
#: lib/bds/tui.ex:208
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Nada que reparar."
#: lib/bds/tui.ex:693
#: lib/bds/tui.ex:862
#, 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
#: lib/bds/tui.ex:878
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap modificado."
#: lib/bds/tui.ex:723
#: lib/bds/tui.ex:892
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Entradas actualizadas (se volverán a generar):"
#: lib/bds/tui.ex:660
#: lib/bds/tui.ex:829
#, 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
#: lib/bds/tui.ex:824
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "intro reparar todo desde archivos · esc cerrar"
#: lib/bds/tui.ex:324
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Blog importado"
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "No es una carpeta: %{path}"
#: lib/bds/tui.ex:764
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · enter open · esc back"
msgstr "Abrir blog existente — escribe la ruta de una carpeta · intro abrir · esc volver"
#: lib/bds/tui.ex:793
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Proyectos — intro cambiar · o abrir existente · esc cerrar"
#: lib/bds/tui.ex:310
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Cambiado a %{name}."
#: lib/bds/tui.ex:910
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "intro abrir · n nueva entrada · 1-5 vistas · p proyectos · : comandos (:? ayuda) · r actualizar · ctrl+q salir"

View File

@@ -81,11 +81,11 @@ msgstr "Paramètres IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: 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
#: lib/bds/tui.ex:485
#: lib/bds/tui.ex:488
#: lib/bds/tui.ex:491
#: lib/bds/tui.ex:499
#: lib/bds/tui.ex:1091
#, 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:1017
#: lib/bds/tui.ex:1187
#, 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:550
#: lib/bds/tui.ex:668
#: 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:981
#: lib/bds/tui.ex:1151
#, 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:984
#: lib/bds/tui.ex:1154
#, 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:965
#: lib/bds/tui.ex:1135
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr "Générer le site"
@@ -1389,9 +1389,9 @@ msgstr "Nombre maximal darticles par page"
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:836
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1005
#: lib/bds/tui.ex:1216
#: lib/bds/tui.ex:1219
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1434,11 +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:193
#: lib/bds/tui.ex:199
#: lib/bds/tui.ex:210
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:962
#: lib/bds/tui.ex:208
#: lib/bds/tui.ex:214
#: lib/bds/tui.ex:225
#: lib/bds/tui.ex:823
#: lib/bds/tui.ex:1132
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1484,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:150
#: lib/bds/tui.ex:165
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nouvel article"
@@ -1762,6 +1762,8 @@ msgid "Open Data Folder"
msgstr "Ouvrir le dossier de données"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:337
#: lib/bds/tui.ex:342
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Ouvrir un blog existant"
@@ -1773,7 +1775,7 @@ msgid "Open Settings"
msgstr "Ouvrir les Réglages"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:986
#: lib/bds/tui.ex:1156
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Ouvrir dans le navigateur"
@@ -1921,8 +1923,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:835
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1004
#: lib/bds/tui.ex:1015
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1981,6 +1983,8 @@ msgstr "Projet et publication"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:309
#: lib/bds/tui.ex:314
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Projets"
@@ -2046,14 +2050,15 @@ msgid "Ready to import:"
msgstr "Prêt à importer :"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:966
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:1136
#, 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:970
#: lib/bds/tui.ex:1140
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Reconstruire lindex dembeddings"
@@ -2111,7 +2116,7 @@ msgid "Refresh Translation"
msgstr "Actualiser la traduction"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:973
#: lib/bds/tui.ex:1143
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Régénérer le calendrier"
@@ -2122,7 +2127,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Régénérer les vignettes manquantes"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:967
#: lib/bds/tui.ex:1137
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Réindexer le texte"
@@ -2308,7 +2313,7 @@ msgstr "Les capacités de script sont configurées au niveau de lapplication
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:838
#: lib/bds/tui.ex:1007
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2436,9 +2441,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/tui.ex:241
#: lib/bds/tui.ex:243
#: lib/bds/tui.ex:828
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2559,7 +2564,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:839
#: lib/bds/tui.ex:1008
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2571,7 +2576,7 @@ msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Tâches"
@@ -2616,7 +2621,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:837
#: lib/bds/tui.ex:1006
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2839,7 +2844,7 @@ msgid "Updated URLs"
msgstr "URLs mises à jour"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:985
#: lib/bds/tui.ex:1155
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Téléverser le site"
@@ -2867,13 +2872,13 @@ msgid "Validate"
msgstr "Valider"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:963
#: lib/bds/tui.ex:1133
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Valider le site"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:976
#: lib/bds/tui.ex:1146
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Valider les traductions"
@@ -3538,7 +3543,7 @@ msgid "Suggested tags"
msgstr "Tags suggérés"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:964
#: lib/bds/tui.ex:1134
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Forcer la régénération du site"
@@ -3635,82 +3640,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:923
#: lib/bds/tui.ex:1092
#, 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:1049
#: lib/bds/tui.ex:1219
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "Impossible de charger ce fichier."
#: lib/bds/tui.ex:158
#: lib/bds/tui.ex:173
#, 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:376
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Aucune suggestion reçue."
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1216
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Seules les images peuvent être prévisualisées."
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1015
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Article introuvable."
#: lib/bds/tui.ex:505
#: lib/bds/tui.ex:623
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Appuyez sur Entrée pour prévisualiser %{name}."
#: lib/bds/tui.ex:893
#: lib/bds/tui.ex:1062
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Publié."
#: lib/bds/tui.ex:909
#: lib/bds/tui.ex:1078
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Enregistrez avant de changer de langue."
#: lib/bds/tui.ex:894
#: lib/bds/tui.ex:1063
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Enregistré."
#: lib/bds/tui.ex:508
#: lib/bds/tui.ex:626
#, 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:373
#: lib/bds/tui.ex:485
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Suggestions appliquées."
#: lib/bds/tui.ex:520
#: lib/bds/tui.ex:638
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titre (ctrl+t pour modifier)"
#: lib/bds/tui.ex:519
#: lib/bds/tui.ex:637
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titre (édition — Entrée pour confirmer)"
#: lib/bds/tui.ex:567
#: lib/bds/tui.ex:685
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Traitement en cours…"
#: lib/bds/tui.ex:589
#: lib/bds/tui.ex:707
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "échap pour fermer"
@@ -3747,92 +3752,117 @@ 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:539
#: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Aperçu (ctrl+e pour modifier)"
#: lib/bds/tui.ex:748
#: lib/bds/tui.ex:917
#, 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:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Toutes les tâches sont terminées."
#: lib/bds/tui.ex:615
#: lib/bds/tui.ex:733
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Commandes — échap pour fermer"
#: lib/bds/tui.ex:247
#: lib/bds/tui.ex:359
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Commande inconnue."
#: lib/bds/tui.ex:605
#: lib/bds/tui.ex:723
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[rapport/application dans la GUI]"
#: lib/bds/tui.ex:670
#: lib/bds/tui.ex:839
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} différences · %{orphans} fichiers orphelins"
#: lib/bds/tui.ex:702
#: lib/bds/tui.ex:871
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Attendu %{expected} · Existant %{existing}"
#: lib/bds/tui.ex:719
#: lib/bds/tui.ex:888
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "Fichiers en trop (seront supprimés) :"
#: lib/bds/tui.ex:715
#: lib/bds/tui.ex:884
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Pages manquantes (seront rendues) :"
#: lib/bds/tui.ex:226
#: lib/bds/tui.ex:241
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Rien à appliquer."
#: lib/bds/tui.ex:193
#: lib/bds/tui.ex:208
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Rien à réparer."
#: lib/bds/tui.ex:693
#: lib/bds/tui.ex:862
#, 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
#: lib/bds/tui.ex:878
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap modifié."
#: lib/bds/tui.ex:723
#: lib/bds/tui.ex:892
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Articles mis à jour (seront rendus à nouveau) :"
#: lib/bds/tui.ex:660
#: lib/bds/tui.ex:829
#, 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
#: lib/bds/tui.ex:824
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "entrée tout réparer depuis les fichiers · échap fermer"
#: lib/bds/tui.ex:324
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Blog importé"
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "Pas un dossier : %{path}"
#: lib/bds/tui.ex:764
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · enter open · esc back"
msgstr "Ouvrir un blog existant — saisir le chemin d'un dossier · entrée ouvrir · échap retour"
#: lib/bds/tui.ex:793
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Projets — entrée changer · o ouvrir existant · échap fermer"
#: lib/bds/tui.ex:310
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Passage à %{name}."
#: lib/bds/tui.ex:910
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "entrée ouvrir · n nouvel article · 1-5 vues · p projets · : commandes (:? aide) · r actualiser · ctrl+q quitter"

View File

@@ -81,11 +81,11 @@ msgstr "Impostazioni IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: 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
#: lib/bds/tui.ex:485
#: lib/bds/tui.ex:488
#: lib/bds/tui.ex:491
#: lib/bds/tui.ex:499
#: lib/bds/tui.ex:1091
#, 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:1017
#: lib/bds/tui.ex:1187
#, 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:550
#: lib/bds/tui.ex:668
#: 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:981
#: lib/bds/tui.ex:1151
#, 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:984
#: lib/bds/tui.ex:1154
#, 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:965
#: lib/bds/tui.ex:1135
#, 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:836
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1005
#: lib/bds/tui.ex:1216
#: lib/bds/tui.ex:1219
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1434,11 +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:193
#: lib/bds/tui.ex:199
#: lib/bds/tui.ex:210
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:962
#: lib/bds/tui.ex:208
#: lib/bds/tui.ex:214
#: lib/bds/tui.ex:225
#: lib/bds/tui.ex:823
#: lib/bds/tui.ex:1132
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1484,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:150
#: lib/bds/tui.ex:165
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nuovo post"
@@ -1762,6 +1762,8 @@ msgid "Open Data Folder"
msgstr "Apri cartella dati"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:337
#: lib/bds/tui.ex:342
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Apri blog esistente"
@@ -1773,7 +1775,7 @@ msgid "Open Settings"
msgstr "Apri Impostazioni"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:986
#: lib/bds/tui.ex:1156
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Apri nel browser"
@@ -1921,8 +1923,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:835
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1004
#: lib/bds/tui.ex:1015
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1981,6 +1983,8 @@ msgstr "Progetto e pubblicazione"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:309
#: lib/bds/tui.ex:314
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Progetti"
@@ -2046,14 +2050,15 @@ msgid "Ready to import:"
msgstr "Pronto per importare:"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:966
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:1136
#, 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:970
#: lib/bds/tui.ex:1140
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Ricostruisci indice embeddings"
@@ -2111,7 +2116,7 @@ msgid "Refresh Translation"
msgstr "Aggiorna traduzione"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:973
#: lib/bds/tui.ex:1143
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Rigenera calendario"
@@ -2122,7 +2127,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Rigenera miniature mancanti"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:967
#: lib/bds/tui.ex:1137
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Reindicizza testo"
@@ -2308,7 +2313,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:838
#: lib/bds/tui.ex:1007
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2436,9 +2441,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/tui.ex:241
#: lib/bds/tui.ex:243
#: lib/bds/tui.ex:828
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2559,7 +2564,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:839
#: lib/bds/tui.ex:1008
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2571,7 +2576,7 @@ msgstr "Tag"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Attività"
@@ -2616,7 +2621,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:837
#: lib/bds/tui.ex:1006
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2839,7 +2844,7 @@ msgid "Updated URLs"
msgstr "URL aggiornati"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:985
#: lib/bds/tui.ex:1155
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Carica sito"
@@ -2867,13 +2872,13 @@ msgid "Validate"
msgstr "Valida"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:963
#: lib/bds/tui.ex:1133
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Valida sito"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:976
#: lib/bds/tui.ex:1146
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Valida traduzioni"
@@ -3538,7 +3543,7 @@ msgid "Suggested tags"
msgstr "Tag suggeriti"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:964
#: lib/bds/tui.ex:1134
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Forza la rigenerazione del sito"
@@ -3635,82 +3640,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:923
#: lib/bds/tui.ex:1092
#, 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:1049
#: lib/bds/tui.ex:1219
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "Impossibile caricare questo file."
#: lib/bds/tui.ex:158
#: lib/bds/tui.ex:173
#, 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:376
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Nessun suggerimento ricevuto."
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1216
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Solo le immagini possono essere visualizzate in anteprima."
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1015
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Post non trovato."
#: lib/bds/tui.ex:505
#: lib/bds/tui.ex:623
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Premi Invio per l'anteprima di %{name}."
#: lib/bds/tui.ex:893
#: lib/bds/tui.ex:1062
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Pubblicato."
#: lib/bds/tui.ex:909
#: lib/bds/tui.ex:1078
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Salva prima di cambiare lingua."
#: lib/bds/tui.ex:894
#: lib/bds/tui.ex:1063
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Salvato."
#: lib/bds/tui.ex:508
#: lib/bds/tui.ex:626
#, 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:373
#: lib/bds/tui.ex:485
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Suggerimenti applicati."
#: lib/bds/tui.ex:520
#: lib/bds/tui.ex:638
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titolo (ctrl+t per modificare)"
#: lib/bds/tui.ex:519
#: lib/bds/tui.ex:637
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titolo (modifica — Invio per confermare)"
#: lib/bds/tui.ex:567
#: lib/bds/tui.ex:685
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Elaborazione…"
#: lib/bds/tui.ex:589
#: lib/bds/tui.ex:707
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "esc per chiudere"
@@ -3747,92 +3752,117 @@ 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:539
#: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Anteprima (ctrl+e per modificare)"
#: lib/bds/tui.ex:748
#: lib/bds/tui.ex:917
#, 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:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Tutte le attività sono terminate."
#: lib/bds/tui.ex:615
#: lib/bds/tui.ex:733
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Comandi — esc per chiudere"
#: lib/bds/tui.ex:247
#: lib/bds/tui.ex:359
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Comando sconosciuto."
#: lib/bds/tui.ex:605
#: lib/bds/tui.ex:723
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[report/applicazione nella GUI]"
#: lib/bds/tui.ex:670
#: lib/bds/tui.ex:839
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} differenze · %{orphans} file orfani"
#: lib/bds/tui.ex:702
#: lib/bds/tui.ex:871
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Attesi %{expected} · Esistenti %{existing}"
#: lib/bds/tui.ex:719
#: lib/bds/tui.ex:888
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "File in eccesso (verranno rimossi):"
#: lib/bds/tui.ex:715
#: lib/bds/tui.ex:884
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Pagine mancanti (verranno generate):"
#: lib/bds/tui.ex:226
#: lib/bds/tui.ex:241
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Niente da applicare."
#: lib/bds/tui.ex:193
#: lib/bds/tui.ex:208
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Niente da riparare."
#: lib/bds/tui.ex:693
#: lib/bds/tui.ex:862
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr "File orfani (non presenti nel database):"
#: lib/bds/tui.ex:709
#: lib/bds/tui.ex:878
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap modificata."
#: lib/bds/tui.ex:723
#: lib/bds/tui.ex:892
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Post aggiornati (verranno rigenerati):"
#: lib/bds/tui.ex:660
#: lib/bds/tui.ex:829
#, 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
#: lib/bds/tui.ex:824
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "invio ripara tutto dai file · esc chiudi"
#: lib/bds/tui.ex:324
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Blog importato"
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "Non è una cartella: %{path}"
#: lib/bds/tui.ex:764
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · enter open · esc back"
msgstr "Apri blog esistente — digita il percorso di una cartella · invio apri · esc indietro"
#: lib/bds/tui.ex:793
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Progetti — invio cambia · o apri esistente · esc chiudi"
#: lib/bds/tui.ex:310
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Passato a %{name}."
#: lib/bds/tui.ex:910
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "invio apri · n nuovo post · 1-5 viste · p progetti · : comandi (:? aiuto) · r aggiorna · ctrl+q esci"

View File

@@ -94,11 +94,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: 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
#: lib/bds/tui.ex:485
#: lib/bds/tui.ex:488
#: lib/bds/tui.ex:491
#: lib/bds/tui.ex:499
#: lib/bds/tui.ex:1091
#, 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:1017
#: lib/bds/tui.ex:1187
#, 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:550
#: lib/bds/tui.ex:668
#: 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:981
#: lib/bds/tui.ex:1151
#, 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:984
#: lib/bds/tui.ex:1154
#, 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:965
#: lib/bds/tui.ex:1135
#, 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:836
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1005
#: lib/bds/tui.ex:1216
#: lib/bds/tui.ex:1219
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1447,11 +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:193
#: lib/bds/tui.ex:199
#: lib/bds/tui.ex:210
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:962
#: lib/bds/tui.ex:208
#: lib/bds/tui.ex:214
#: lib/bds/tui.ex:225
#: lib/bds/tui.ex:823
#: lib/bds/tui.ex:1132
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1497,7 +1497,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:150
#: lib/bds/tui.ex:165
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr ""
@@ -1775,6 +1775,8 @@ msgid "Open Data Folder"
msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:337
#: lib/bds/tui.ex:342
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr ""
@@ -1786,7 +1788,7 @@ msgid "Open Settings"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:986
#: lib/bds/tui.ex:1156
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr ""
@@ -1934,8 +1936,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:835
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1004
#: lib/bds/tui.ex:1015
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1994,6 +1996,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:309
#: lib/bds/tui.ex:314
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr ""
@@ -2059,14 +2063,15 @@ msgid "Ready to import:"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:966
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:1136
#, 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:970
#: lib/bds/tui.ex:1140
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr ""
@@ -2124,7 +2129,7 @@ msgid "Refresh Translation"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:973
#: lib/bds/tui.ex:1143
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr ""
@@ -2135,7 +2140,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:967
#: lib/bds/tui.ex:1137
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr ""
@@ -2321,7 +2326,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:838
#: lib/bds/tui.ex:1007
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2449,9 +2454,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/tui.ex:241
#: lib/bds/tui.ex:243
#: lib/bds/tui.ex:828
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2572,7 +2577,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:839
#: lib/bds/tui.ex:1008
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2584,7 +2589,7 @@ msgstr ""
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr ""
@@ -2629,7 +2634,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:837
#: lib/bds/tui.ex:1006
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2852,7 +2857,7 @@ msgid "Updated URLs"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:985
#: lib/bds/tui.ex:1155
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr ""
@@ -2880,13 +2885,13 @@ msgid "Validate"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:963
#: lib/bds/tui.ex:1133
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:976
#: lib/bds/tui.ex:1146
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr ""
@@ -3551,7 +3556,7 @@ msgid "Suggested tags"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:964
#: lib/bds/tui.ex:1134
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr ""
@@ -3648,82 +3653,82 @@ msgstr ""
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr ""
#: lib/bds/tui.ex:923
#: lib/bds/tui.ex:1092
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr ""
#: lib/bds/tui.ex:1049
#: lib/bds/tui.ex:1219
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr ""
#: lib/bds/tui.ex:158
#: lib/bds/tui.ex:173
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr ""
#: lib/bds/tui.ex:376
#: lib/bds/tui.ex:488
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr ""
#: lib/bds/tui.ex:1046
#: lib/bds/tui.ex:1216
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr ""
#: lib/bds/tui.ex:846
#: lib/bds/tui.ex:1015
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr ""
#: lib/bds/tui.ex:505
#: lib/bds/tui.ex:623
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr ""
#: lib/bds/tui.ex:893
#: lib/bds/tui.ex:1062
#, elixir-autogen, elixir-format
msgid "Published."
msgstr ""
#: lib/bds/tui.ex:909
#: lib/bds/tui.ex:1078
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr ""
#: lib/bds/tui.ex:894
#: lib/bds/tui.ex:1063
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr ""
#: lib/bds/tui.ex:508
#: lib/bds/tui.ex:626
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr ""
#: lib/bds/tui.ex:373
#: lib/bds/tui.ex:485
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr ""
#: lib/bds/tui.ex:520
#: lib/bds/tui.ex:638
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr ""
#: lib/bds/tui.ex:519
#: lib/bds/tui.ex:637
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr ""
#: lib/bds/tui.ex:567
#: lib/bds/tui.ex:685
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr ""
#: lib/bds/tui.ex:589
#: lib/bds/tui.ex:707
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr ""
@@ -3760,92 +3765,117 @@ msgstr ""
msgid "Use the form user@host or user@host:port."
msgstr ""
#: lib/bds/tui.ex:539
#: lib/bds/tui.ex:657
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr ""
#: lib/bds/tui.ex:748
#: lib/bds/tui.ex:917
#, 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:403
#: lib/bds/tui.ex:515
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr ""
#: lib/bds/tui.ex:615
#: lib/bds/tui.ex:733
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr ""
#: lib/bds/tui.ex:247
#: lib/bds/tui.ex:359
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr ""
#: lib/bds/tui.ex:605
#: lib/bds/tui.ex:723
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr ""
#: lib/bds/tui.ex:670
#: lib/bds/tui.ex:839
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr ""
#: lib/bds/tui.ex:702
#: lib/bds/tui.ex:871
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr ""
#: lib/bds/tui.ex:719
#: lib/bds/tui.ex:888
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr ""
#: lib/bds/tui.ex:715
#: lib/bds/tui.ex:884
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr ""
#: lib/bds/tui.ex:226
#: lib/bds/tui.ex:241
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr ""
#: lib/bds/tui.ex:193
#: lib/bds/tui.ex:208
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr ""
#: lib/bds/tui.ex:693
#: lib/bds/tui.ex:862
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr ""
#: lib/bds/tui.ex:709
#: lib/bds/tui.ex:878
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr ""
#: lib/bds/tui.ex:723
#: lib/bds/tui.ex:892
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr ""
#: lib/bds/tui.ex:660
#: lib/bds/tui.ex:829
#, 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
#: lib/bds/tui.ex:824
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr ""
#: lib/bds/tui.ex:324
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr ""
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr ""
#: lib/bds/tui.ex:764
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · enter open · esc back"
msgstr ""
#: lib/bds/tui.ex:793
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr ""
#: lib/bds/tui.ex:310
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr ""
#: lib/bds/tui.ex:910
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · : commands (:? help) · r refresh · ctrl+q quit"
msgstr ""

View File

@@ -63,6 +63,21 @@ rule AiQuickAction {
ensures: AiSuggestionsRequestedOrRefused()
}
rule ProjectSwitcher {
when: TuiKeyPressed(code: "p")
-- "p" opens the projects overlay: all projects from the caching
-- database with the active one marked; enter activates the selected
-- project (BDS.Projects.set_active_project) and reloads the sidebar.
-- "o" switches to a folder-path prompt — a typed path is validated
-- to be an existing directory, then opened as a project
-- (BDS.Projects.create_project with data_path, named after the
-- folder) and activated; a full database rebuild is queued
-- automatically through the rebuild_database shell command so the
-- folder's content is loaded into the caching database. Invalid
-- paths keep the prompt open and report the error.
ensures: ProjectSwitchedOrOpened()
}
rule CommandPrompt {
when: TuiKeyPressed(code: ":")
-- Vi-style prompt: ":" opens a filterable list of the parameterless

View File

@@ -53,7 +53,7 @@ defmodule BDS.TUITest do
end)
end
defp key(code, modifiers \\ []), do: %Key{code: code, kind: "press", modifiers: modifiers}
defp key(code, modifiers), do: %Key{code: code, kind: "press", modifiers: modifiers}
defp press(state, code, modifiers \\ []) do
{:noreply, state} = BDS.TUI.handle_event(key(code, modifiers), state)
@@ -224,7 +224,7 @@ defmodule BDS.TUITest do
end
test "up/down move the selection" do
state = mount_with_executor!() |> press(":") |> press("down") |> press("enter")
_state = mount_with_executor!() |> press(":") |> press("down") |> press("enter")
assert_receive {:executed, action, %{}}
assert is_binary(action)
@@ -416,6 +416,114 @@ defmodule BDS.TUITest do
end
end
describe "projects overlay" do
defp type(state, text) do
text |> String.graphemes() |> Enum.reduce(state, &press(&2, &1))
end
defp move_to(state, index) do
moves = index - state.projects.selected
code = if moves >= 0, do: "down", else: "up"
Enum.reduce(List.duplicate(code, abs(moves)), state, &press(&2, &1))
end
test "'p' opens the overlay listing all projects with the active one selected", %{
project: project
} do
state = mount!() |> press("p")
assert state.projects.mode == :list
active = Enum.at(state.projects.projects, state.projects.selected)
assert active.id == project.id
text = screen_text(state, 140, 40)
assert text =~ project.name
end
test "esc closes the overlay" do
state = mount!() |> press("p") |> press("esc")
assert state.projects == nil
end
test "enter switches the active project and reloads the sidebar", %{project: project} do
other_dir = Path.join(System.tmp_dir!(), "bds-tui-other-#{System.unique_integer([:positive])}")
File.mkdir_p!(other_dir)
on_exit(fn -> File.rm_rf(other_dir) end)
{:ok, other} = BDS.Projects.create_project(%{name: "Other Blog", data_path: other_dir})
{:ok, _} =
BDS.Posts.create_post(%{project_id: other.id, title: "Other Post", content: "x"})
state = mount!() |> press("p")
index = Enum.find_index(state.projects.projects, &(&1.id == other.id))
state = state |> move_to(index) |> press("enter")
assert state.projects == nil
assert state.project_id == other.id
assert BDS.Projects.get_active_project().id == other.id
assert screen_text(state) =~ "Other Post"
# switching back must not churn: selecting the active project is a no-op
{:ok, _} = BDS.Projects.set_active_project(project.id)
end
test "'o' plus a valid path opens the folder as a project and queues a rebuild" do
parent = self()
import_dir =
Path.join(System.tmp_dir!(), "bds-tui-import-#{System.unique_integer([:positive])}")
File.mkdir_p!(import_dir)
on_exit(fn -> File.rm_rf(import_dir) end)
state =
mount!(
command_executor: fn action, params ->
send(parent, {:executed, action, params})
{:ok, %{kind: "task_queued", title: "Rebuild", message: "queued"}}
end
)
|> press("p")
|> press("o")
assert state.projects.mode == :open
state = state |> type(import_dir) |> press("enter")
assert state.projects == nil
imported = Enum.find(BDS.Projects.list_projects(), &(&1.data_path == import_dir))
assert imported != nil
assert BDS.Projects.get_active_project().id == imported.id
assert state.project_id == imported.id
assert_receive {:executed, "rebuild_database", %{}}
assert state.task_polling
end
test "an invalid path keeps the prompt open and reports the error" do
parent = self()
count_before = length(BDS.Projects.list_projects())
state =
mount!(command_executor: fn action, params -> send(parent, {:executed, action, params}) end)
|> press("p")
|> press("o")
|> type("/nonexistent-bds-folder-xyz")
|> press("enter")
assert state.projects.mode == :open
assert state.status != nil
assert length(BDS.Projects.list_projects()) == count_before
refute_receive {:executed, _action, _params}, 50
end
test "esc in the path prompt returns to the project list" do
state = mount!() |> press("p") |> press("o") |> press("esc")
assert state.projects.mode == :list
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)