diff --git a/lib/bds/tui.ex b/lib/bds/tui.ex index 87ca3af..0bfcb36 100644 --- a/lib/bds/tui.ex +++ b/lib/bds/tui.ex @@ -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}), diff --git a/priv/gettext/de/LC_MESSAGES/ui.po b/priv/gettext/de/LC_MESSAGES/ui.po index e8eeeaa..8f94fea 100644 --- a/priv/gettext/de/LC_MESSAGES/ui.po +++ b/priv/gettext/de/LC_MESSAGES/ui.po @@ -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" diff --git a/priv/gettext/en/LC_MESSAGES/ui.po b/priv/gettext/en/LC_MESSAGES/ui.po index 2ffc31d..b88168b 100644 --- a/priv/gettext/en/LC_MESSAGES/ui.po +++ b/priv/gettext/en/LC_MESSAGES/ui.po @@ -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 "" diff --git a/priv/gettext/es/LC_MESSAGES/ui.po b/priv/gettext/es/LC_MESSAGES/ui.po index c21e7ad..e18b5a1 100644 --- a/priv/gettext/es/LC_MESSAGES/ui.po +++ b/priv/gettext/es/LC_MESSAGES/ui.po @@ -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" diff --git a/priv/gettext/fr/LC_MESSAGES/ui.po b/priv/gettext/fr/LC_MESSAGES/ui.po index 88f1dcf..badfbf0 100644 --- a/priv/gettext/fr/LC_MESSAGES/ui.po +++ b/priv/gettext/fr/LC_MESSAGES/ui.po @@ -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 d’articles par page" #: lib/bds/desktop/shell_live/misc_editor.ex:762 #: lib/bds/desktop/shell_live/sidebar_components.ex:654 #: lib/bds/desktop/shell_live/sidebar_delete.ex:175 -#: lib/bds/tui.ex: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 l’index d’embeddings" @@ -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 l’application #: lib/bds/desktop/shell_live/script_editor.ex:216 #: lib/bds/desktop/shell_live/script_editor.ex:219 #: lib/bds/desktop/shell_live/script_editor.ex:234 -#: lib/bds/tui.ex: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" diff --git a/priv/gettext/it/LC_MESSAGES/ui.po b/priv/gettext/it/LC_MESSAGES/ui.po index f9eac8d..c7bc0de 100644 --- a/priv/gettext/it/LC_MESSAGES/ui.po +++ b/priv/gettext/it/LC_MESSAGES/ui.po @@ -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" diff --git a/priv/gettext/ui.pot b/priv/gettext/ui.pot index c27983e..1f43123 100644 --- a/priv/gettext/ui.pot +++ b/priv/gettext/ui.pot @@ -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 "" diff --git a/specs/tui.allium b/specs/tui.allium index a6a7d64..25aedad 100644 --- a/specs/tui.allium +++ b/specs/tui.allium @@ -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 diff --git a/test/bds/tui_test.exs b/test/bds/tui_test.exs index 0d1dbbb..501c5d6 100644 --- a/test/bds/tui_test.exs +++ b/test/bds/tui_test.exs @@ -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)