From 7fa6e6232c7698300122a46c23e3d8d0ff143865 Mon Sep 17 00:00:00 2001 From: Chili Palmer Date: Sun, 5 Jul 2026 12:24:30 +0200 Subject: [PATCH] fix: issue #6 post bodies missing for asides --- lib/bds/bounded_atoms.ex | 1 + lib/bds/desktop/menu_bar.ex | 1 + lib/bds/desktop/shell_commands.ex | 83 ++++-- lib/bds/desktop/shell_live.ex | 4 +- lib/bds/generation.ex | 22 +- lib/bds/generation/renderers.ex | 34 +-- lib/bds/rendering/render_context.ex | 29 +- lib/bds/ui/commands.ex | 1 + lib/bds/ui/menu_bar.ex | 1 + priv/gettext/de/LC_MESSAGES/ui.po | 274 +++++++++--------- priv/gettext/en/LC_MESSAGES/ui.po | 274 +++++++++--------- priv/gettext/es/LC_MESSAGES/ui.po | 274 +++++++++--------- priv/gettext/fr/LC_MESSAGES/ui.po | 274 +++++++++--------- priv/gettext/it/LC_MESSAGES/ui.po | 274 +++++++++--------- priv/gettext/ui.pot | 61 ++-- test/bds/desktop/shell_commands_test.exs | 57 ++++ test/bds/desktop_test.exs | 12 + .../aside_archive_rendering_test.exs | 53 ++++ test/bds/rendering/render_context_test.exs | 44 +++ 19 files changed, 985 insertions(+), 788 deletions(-) create mode 100644 test/bds/generation/aside_archive_rendering_test.exs diff --git a/lib/bds/bounded_atoms.ex b/lib/bds/bounded_atoms.ex index 3cb0012..a861c32 100644 --- a/lib/bds/bounded_atoms.ex +++ b/lib/bds/bounded_atoms.ex @@ -54,6 +54,7 @@ defmodule BDS.BoundedAtoms do :fill_missing_translations, :find_duplicates, :generate_sitemap, + :force_render_site, :validate_site, :upload_site, :documentation, diff --git a/lib/bds/desktop/menu_bar.ex b/lib/bds/desktop/menu_bar.ex index 1ae52d1..6446784 100644 --- a/lib/bds/desktop/menu_bar.ex +++ b/lib/bds/desktop/menu_bar.ex @@ -188,6 +188,7 @@ defmodule BDS.Desktop.MenuBar do defp item_label(:fill_missing_translations), do: dgettext("ui", "Fill Missing Translations") defp item_label(:find_duplicates), do: dgettext("ui", "Find Duplicate Posts") defp item_label(:generate_sitemap), do: dgettext("ui", "Generate Site") + defp item_label(:force_render_site), do: dgettext("ui", "Force Render Site") defp item_label(:validate_site), do: dgettext("ui", "Validate Site") defp item_label(:upload_site), do: dgettext("ui", "Upload Site") defp item_label(:about), do: dgettext("ui", "About") diff --git a/lib/bds/desktop/shell_commands.ex b/lib/bds/desktop/shell_commands.ex index 95b6dd2..04a9de8 100644 --- a/lib/bds/desktop/shell_commands.ex +++ b/lib/bds/desktop/shell_commands.ex @@ -239,33 +239,13 @@ defmodule BDS.Desktop.ShellCommands do end defp dispatch("generate_sitemap", project, _params) do - group_id = task_group_id("generate_sitemap") - attrs = %{group_id: group_id, group_name: "Render Site"} + queue_render_site(project, "generate_sitemap", "Render Site", []) + end - {:ok, first_task} = - Tasks.submit_task( - section_task_name(:core), - fn report -> - {:ok, _result} = Generation.render_site_section(project.id, :core, on_progress: report) - report.(1.0, section_complete_message(:core)) - :ok - end, - attrs - ) - - Task.start(fn -> run_render_site_sequence(project, group_id, attrs) end) - - {:ok, - %{ - kind: "task_queued", - action: "generate_sitemap", - title: "Render Site", - message: "Render Site tasks queued", - project_id: project.id, - task_id: first_task.id, - task_group_id: group_id, - panel_tab: "tasks" - }} + # Forced variant of the site render: ignores the stored content hashes and + # rewrites every output file, repairing any drift on disk. + defp dispatch("force_render_site", project, _params) do + queue_render_site(project, "force_render_site", "Force Render Site", force: true) end defp dispatch("validate_site", project, _params) do @@ -490,7 +470,43 @@ defmodule BDS.Desktop.ShellCommands do end end - defp run_render_site_sequence(project, group_id, attrs) do + defp queue_render_site(project, action, title, render_opts) do + group_id = task_group_id(action) + attrs = %{group_id: group_id, group_name: title} + + {:ok, first_task} = + Tasks.submit_task( + section_task_name(:core), + fn report -> + {:ok, _result} = + Generation.render_site_section( + project.id, + :core, + [on_progress: report] ++ render_opts + ) + + report.(1.0, section_complete_message(:core)) + :ok + end, + attrs + ) + + Task.start(fn -> run_render_site_sequence(project, group_id, attrs, render_opts) end) + + {:ok, + %{ + kind: "task_queued", + action: action, + title: title, + message: title <> " tasks queued", + project_id: project.id, + task_id: first_task.id, + task_group_id: group_id, + panel_tab: "tasks" + }} + end + + defp run_render_site_sequence(project, group_id, attrs, render_opts) do remaining_sections = [:single, :category, :tag, :date] Enum.each(remaining_sections, fn section -> @@ -499,7 +515,11 @@ defmodule BDS.Desktop.ShellCommands do section_task_name(section), fn report -> {:ok, _result} = - Generation.render_site_section(project.id, section, on_progress: report) + Generation.render_site_section( + project.id, + section, + [on_progress: report] ++ render_opts + ) report.(1.0, section_complete_message(section)) :ok @@ -515,7 +535,12 @@ defmodule BDS.Desktop.ShellCommands do Tasks.submit_task( "Build Search Index", fn report -> - {:ok, _result} = Generation.build_site_search_index(project.id, on_progress: report) + {:ok, _result} = + Generation.build_site_search_index( + project.id, + [on_progress: report] ++ render_opts + ) + report.(1.0, "Build Search Index complete") :ok end, diff --git a/lib/bds/desktop/shell_live.ex b/lib/bds/desktop/shell_live.ex index ccc84e0..cf0560e 100644 --- a/lib/bds/desktop/shell_live.ex +++ b/lib/bds/desktop/shell_live.ex @@ -137,7 +137,9 @@ defmodule BDS.Desktop.ShellLive do |> MapSet.union( MapSet.new([:validate_translations, :fill_missing_translations, :find_duplicates]) ) - |> MapSet.union(MapSet.new([:generate_sitemap, :validate_site, :upload_site])) + |> MapSet.union( + MapSet.new([:generate_sitemap, :force_render_site, :validate_site, :upload_site]) + ) end embed_templates("shell_live/*") diff --git a/lib/bds/generation.ex b/lib/bds/generation.ex index ed39edc..7fbdb23 100644 --- a/lib/bds/generation.ex +++ b/lib/bds/generation.ex @@ -99,6 +99,10 @@ defmodule BDS.Generation do than just the affected ones). The `:core` section also writes the complete sitemap, feeds, calendar and preview assets. The Pagefind search index is built separately by `build_site_search_index/2`. + + Pass `force: true` to ignore the stored content hashes and rewrite every + output file, repairing any drift between the tracked hashes and what is + actually on disk. """ @spec render_site_section(String.t(), section(), generation_opts()) :: {:ok, map()} | {:error, term()} @@ -115,7 +119,12 @@ defmodule BDS.Generation do rendered_url_count = stream_render(project_id, on_progress, route_total, - [verb: "Generated", gerund: "Generating", refresh_route_timestamps: false], + [ + verb: "Generated", + gerund: "Generating", + refresh_route_timestamps: false, + force: Keyword.get(opts, :force, false) + ], fn on_output -> full_section_outputs(plan, render_data, section, on_output) end ) @@ -143,7 +152,12 @@ defmodule BDS.Generation do pagefind_outputs = BDS.Generation.Pagefind.build_outputs(plan, html_outputs) total = max(length(pagefind_outputs), 1) - write_ctx = stream_context(project_id, nil, 0, verb: "Built", gerund: "Building") + write_ctx = + stream_context(project_id, nil, 0, + verb: "Built", + gerund: "Building", + force: Keyword.get(opts, :force, false) + ) pagefind_outputs |> Enum.with_index(1) @@ -953,7 +967,9 @@ defmodule BDS.Generation do %{ project_id: project_id, project: Projects.get_project!(project_id), - existing_hashes: existing_hash_map(project_id), + # force: pretend nothing was ever generated so every output is written. + existing_hashes: + if(Keyword.get(opts, :force, false), do: %{}, else: existing_hash_map(project_id)), pending_hashes: :ets.new(:bds_generation_pending_hashes, [:set, :public]), on_progress: on_progress, route_total: route_total, diff --git a/lib/bds/generation/renderers.ex b/lib/bds/generation/renderers.ex index 5af14c7..a01bc87 100644 --- a/lib/bds/generation/renderers.ex +++ b/lib/bds/generation/renderers.ex @@ -44,30 +44,18 @@ defmodule BDS.Generation.Renderers do |> IO.iodata_to_binary() end - @doc "Render an archive page (category, tag, year) with pagination." + @doc "Render an archive page (category, tag) with pagination." @spec render_archive_page(map(), String.t(), [map()], String.t() | nil, String.t(), map()) :: String.t() def render_archive_page(plan, title, posts, language, kind, pagination) do - fallback = fn -> render_inline_list_page(title, posts, language, kind) end - - render_list_output( + render_archive_list_page( plan, - language, title, - Enum.map(posts, fn post -> - %{ - id: post.id, - slug: post.slug, - title: post.title, - href: "#", - excerpt: post.excerpt, - content: nil, - language: post.language - } - end), %{kind: kind, name: title}, - pagination, - fallback + posts, + language, + kind, + pagination ) end @@ -75,12 +63,18 @@ defmodule BDS.Generation.Renderers do @spec render_date_archive_page(map(), String.t(), map(), [map()], String.t() | nil, map()) :: String.t() def render_date_archive_page(plan, label, archive_context, posts, language, pagination) do - fallback = fn -> render_inline_list_page(label, posts, language, "date") end + render_archive_list_page(plan, label, archive_context, posts, language, "date", pagination) + end + + # Shared by every archive kind so category/tag pages get the same post + # payloads (loaded bodies, real hrefs) as date archives. + defp render_archive_list_page(plan, title, archive_context, posts, language, kind, pagination) do + fallback = fn -> render_inline_list_page(title, posts, language, kind) end render_list_output( plan, language, - label, + title, build_list_posts(plan, posts, Paths.route_language(plan.language, language)), archive_context, pagination, diff --git a/lib/bds/rendering/render_context.ex b/lib/bds/rendering/render_context.ex index ad6f312..ad8d168 100644 --- a/lib/bds/rendering/render_context.ex +++ b/lib/bds/rendering/render_context.ex @@ -102,19 +102,34 @@ defmodule BDS.Rendering.RenderContext do @doc """ Return the cached value for `key`, computing and caching it with `fun` on the - first call. Safe to call from concurrently rendering processes; concurrent - first calls may compute twice but always return a consistent value. + first call. Single-flight: concurrent first calls for the same key compute + exactly once — later callers wait for the winner instead of duplicating the + work (template parses, file reads) and its queries. """ @spec memoize(t(), term(), (-> value)) :: value when value: term() - def memoize(%__MODULE__{cache: cache}, key, fun) when is_function(fun, 0) do + def memoize(%__MODULE__{cache: cache} = ctx, key, fun) when is_function(fun, 0) do case :ets.lookup(cache, key) do - [{^key, value}] -> - value + [{^key, value}] -> value + [] -> compute_memoized(ctx, key, fun) + end + end - [] -> + defp compute_memoized(%__MODULE__{cache: cache} = ctx, key, fun) do + lock_key = {:memoize_lock, key} + + if :ets.insert_new(cache, {lock_key, self()}) do + try do value = fun.() - :ets.insert(cache, {key, value}) + true = :ets.insert(cache, {key, value}) value + after + :ets.delete(cache, lock_key) + end + else + # Another process is computing this key; poll until its value lands (or + # its lock disappears because it crashed, in which case we take over). + Process.sleep(2) + memoize(ctx, key, fun) end end diff --git a/lib/bds/ui/commands.ex b/lib/bds/ui/commands.ex index eef587e..8e48b87 100644 --- a/lib/bds/ui/commands.ex +++ b/lib/bds/ui/commands.ex @@ -27,6 +27,7 @@ defmodule BDS.UI.Commands do %{id: :publish_selected, accelerator: "CTRL+SHIFT+P"}, %{id: :preview_post, accelerator: "CTRL+SHIFT+V"}, %{id: :generate_sitemap, accelerator: "CTRL+R"}, + %{id: :force_render_site, accelerator: "CTRL+SHIFT+R"}, %{id: :validate_site, accelerator: "CTRL+SHIFT+L"}, %{id: :upload_site, accelerator: "CTRL+SHIFT+U"} ] diff --git a/lib/bds/ui/menu_bar.ex b/lib/bds/ui/menu_bar.ex index 3a0933c..a0324ef 100644 --- a/lib/bds/ui/menu_bar.ex +++ b/lib/bds/ui/menu_bar.ex @@ -63,6 +63,7 @@ defmodule BDS.UI.MenuBar do %{id: :find_duplicates}, %{separator: true}, %{id: :generate_sitemap}, + %{id: :force_render_site}, %{id: :validate_site}, %{id: :upload_site} ] diff --git a/priv/gettext/de/LC_MESSAGES/ui.po b/priv/gettext/de/LC_MESSAGES/ui.po index 4c4cb07..59ab5f2 100644 --- a/priv/gettext/de/LC_MESSAGES/ui.po +++ b/priv/gettext/de/LC_MESSAGES/ui.po @@ -1,4 +1,4 @@ -#: lib/bds/desktop/shell_live/misc_editor.ex:333 +#: lib/bds/desktop/shell_live/misc_editor.ex:319 #, elixir-autogen, elixir-format msgid "%{canonical} = %{translation}" msgstr "%{canonical} = %{translation}" @@ -79,7 +79,7 @@ msgstr "KI-Einstellungen" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42 #: lib/bds/desktop/shell_live/overlay_manager.ex:72 -#: lib/bds/desktop/shell_live/post_editor.ex:888 +#: lib/bds/desktop/shell_live/post_editor.ex:918 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #, elixir-autogen, elixir-format msgid "AI Suggestions" @@ -105,12 +105,12 @@ msgstr "KI schlägt Zuordnungen von neuen zu vorhandenen Einträgen vor, um Dupl msgid "API" msgstr "API" -#: lib/bds/desktop/menu_bar.ex:195 +#: lib/bds/desktop/menu_bar.ex:196 #, elixir-autogen, elixir-format msgid "API Documentation" msgstr "API-Dokumentation" -#: lib/bds/desktop/menu_bar.ex:193 +#: lib/bds/desktop/menu_bar.ex:194 #, elixir-autogen, elixir-format msgid "About" msgstr "Über" @@ -337,14 +337,14 @@ msgid "Auto" msgstr "Automatisch" #: lib/bds/desktop/shell_data.ex:98 -#: lib/bds/desktop/shell_live.ex:422 +#: lib/bds/desktop/shell_live.ex:424 #: lib/bds/desktop/shell_live/chat_editor.ex:234 -#: lib/bds/desktop/shell_live/media_editor.ex:160 -#: lib/bds/desktop/shell_live/media_editor.ex:353 -#: lib/bds/desktop/shell_live/media_editor.ex:546 +#: lib/bds/desktop/shell_live/media_editor.ex:171 +#: lib/bds/desktop/shell_live/media_editor.ex:364 +#: lib/bds/desktop/shell_live/media_editor.ex:557 #: lib/bds/desktop/shell_live/overlay_manager.ex:73 -#: lib/bds/desktop/shell_live/post_editor.ex:755 -#: lib/bds/desktop/shell_live/post_editor.ex:804 +#: lib/bds/desktop/shell_live/post_editor.ex:763 +#: lib/bds/desktop/shell_live/post_editor.ex:812 #, elixir-autogen, elixir-format msgid "Automatic AI actions stay gated by airplane mode." msgstr "Automatische KI-Aktionen bleiben durch den Flugmodus gesperrt." @@ -447,8 +447,8 @@ msgstr "Bildunterschrift" #: lib/bds/desktop/shell_live/import_editor.ex:1024 #: lib/bds/desktop/shell_live/import_editor.ex:1188 #: lib/bds/desktop/shell_live/index.html.heex:336 -#: lib/bds/desktop/shell_live/misc_editor.ex:755 -#: lib/bds/desktop/shell_live/misc_editor.ex:756 +#: lib/bds/desktop/shell_live/misc_editor.ex:741 +#: lib/bds/desktop/shell_live/misc_editor.ex:742 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75 @@ -486,7 +486,7 @@ msgstr "Kategorie-Standards, Render-Flags und Template-Zuordnung" msgid "Category name is required" msgstr "Kategoriename ist erforderlich" -#: lib/bds/desktop/shell_live.ex:719 +#: lib/bds/desktop/shell_live.ex:721 #: lib/bds/desktop/shell_live/chat_editor.ex:87 #: lib/bds/desktop/shell_live/chat_editor.ex:233 #: lib/bds/desktop/shell_live/chat_editor.ex:323 @@ -506,7 +506,7 @@ msgstr "Chat" msgid "Check Syntax" msgstr "Syntax prüfen" -#: lib/bds/desktop/shell_live/misc_editor.ex:486 +#: lib/bds/desktop/shell_live/misc_editor.ex:472 #, elixir-autogen, elixir-format msgid "Checked DB rows: %{dbRows} · Checked files: %{files} · Invalid DB rows: %{invalidDb} · Invalid files: %{invalidFiles}" msgstr "Geprüfte DB-Zeilen: %{dbRows} · Geprüfte Dateien: %{files} · Ungültige DB-Zeilen: %{invalidDb} · Ungültige Dateien: %{invalidFiles}" @@ -742,7 +742,7 @@ msgstr "Loeschen" msgid "Delete Media" msgstr "Medium loeschen" -#: lib/bds/desktop/shell_live/media_editor.ex:396 +#: lib/bds/desktop/shell_live/media_editor.ex:407 #, elixir-autogen, elixir-format msgid "Delete Translation" msgstr "Übersetzung löschen" @@ -758,7 +758,7 @@ msgstr "Unterhaltung löschen" msgid "Delete this unpublished draft" msgstr "Diesen unveröffentlichten Entwurf löschen" -#: lib/bds/desktop/shell_live/misc_editor.ex:120 +#: lib/bds/desktop/shell_live/misc_editor.ex:106 #, elixir-autogen, elixir-format msgid "Deleted %{dbRows} DB rows and %{files} files, flushed %{flushed} translations to disk" msgstr "%{dbRows} DB-Zeilen und %{files} Dateien gelöscht, %{flushed} Übersetzungen auf Datenträger geschrieben" @@ -783,14 +783,14 @@ msgstr "Desktop-Laufzeit" msgid "Detect" msgstr "Erkennen" -#: lib/bds/desktop/shell_live/media_editor.ex:159 -#: lib/bds/desktop/shell_live/media_editor.ex:198 -#: lib/bds/desktop/shell_live/media_editor.ex:203 +#: lib/bds/desktop/shell_live/media_editor.ex:170 #: lib/bds/desktop/shell_live/media_editor.ex:209 +#: lib/bds/desktop/shell_live/media_editor.ex:214 +#: lib/bds/desktop/shell_live/media_editor.ex:220 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59 -#: lib/bds/desktop/shell_live/post_editor.ex:754 -#: lib/bds/desktop/shell_live/post_editor.ex:783 -#: lib/bds/desktop/shell_live/post_editor.ex:789 +#: lib/bds/desktop/shell_live/post_editor.ex:762 +#: lib/bds/desktop/shell_live/post_editor.ex:791 +#: lib/bds/desktop/shell_live/post_editor.ex:797 #, elixir-autogen, elixir-format msgid "Detect Language" msgstr "Sprache erkennen" @@ -861,7 +861,7 @@ msgstr "Anzeigetext" msgid "Do Not Translate" msgstr "Nicht übersetzen" -#: lib/bds/desktop/menu_bar.ex:194 +#: lib/bds/desktop/menu_bar.ex:195 #: lib/bds/help_docs.ex:14 #: lib/bds/ui/registry.ex:118 #, elixir-autogen, elixir-format @@ -921,8 +921,8 @@ msgstr "Editor" msgid "Editor Settings" msgstr "Editor-Einstellungen" -#: lib/bds/desktop/shell_live/misc_editor.ex:757 -#: lib/bds/desktop/shell_live/misc_editor.ex:780 +#: lib/bds/desktop/shell_live/misc_editor.ex:743 +#: lib/bds/desktop/shell_live/misc_editor.ex:766 #, elixir-autogen, elixir-format msgid "Embeddings" msgstr "Embeddings" @@ -1047,11 +1047,11 @@ msgstr "Suchen" msgid "Find Duplicate Posts" msgstr "Doppelte Beiträge finden" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 -#: lib/bds/desktop/shell_live/misc_editor.ex:182 -#: lib/bds/desktop/shell_live/misc_editor.ex:209 -#: lib/bds/desktop/shell_live/misc_editor.ex:216 -#: lib/bds/desktop/shell_live/misc_editor.ex:503 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 +#: lib/bds/desktop/shell_live/misc_editor.ex:168 +#: lib/bds/desktop/shell_live/misc_editor.ex:195 +#: lib/bds/desktop/shell_live/misc_editor.ex:202 +#: lib/bds/desktop/shell_live/misc_editor.ex:489 #: lib/bds/ui/registry.ex:139 #, elixir-autogen, elixir-format msgid "Find Duplicates" @@ -1073,21 +1073,21 @@ msgstr "Galerie" msgid "Generate Site" msgstr "Website generieren" -#: lib/bds/desktop/shell_live.ex:720 +#: lib/bds/desktop/shell_live.ex:722 #: lib/bds/desktop/shell_live/socket_state.ex:109 #: lib/bds/ui/sidebar.ex:789 #, elixir-autogen, elixir-format msgid "Git" msgstr "Git" -#: lib/bds/desktop/shell_live/misc_editor.ex:560 +#: lib/bds/desktop/shell_live/misc_editor.ex:546 #: lib/bds/ui/registry.ex:113 #, elixir-autogen, elixir-format msgid "Git Diff" msgstr "Git-Diff" #: lib/bds/desktop/shell_data.ex:244 -#: lib/bds/desktop/shell_live.ex:716 +#: lib/bds/desktop/shell_live.ex:718 #: lib/bds/desktop/shell_live/panel_renderer.ex:171 #, elixir-autogen, elixir-format msgid "Git Log" @@ -1115,8 +1115,8 @@ msgstr "Host" #: lib/bds/desktop/shell_data.ex:116 #: lib/bds/desktop/shell_live/index.html.heex:666 -#: lib/bds/desktop/shell_live/media_editor.ex:711 -#: lib/bds/desktop/shell_live/post_editor.ex:1006 +#: lib/bds/desktop/shell_live/media_editor.ex:731 +#: lib/bds/desktop/shell_live/post_editor.ex:1036 #, elixir-autogen, elixir-format msgid "Idle" msgstr "Leerlauf" @@ -1210,9 +1210,9 @@ msgstr "Importdefinitionen" msgid "Import failed: %{error}" msgstr "Import fehlgeschlagen: %{error}" -#: lib/bds/desktop/shell_live.ex:572 -#: lib/bds/desktop/shell_live.ex:832 -#: lib/bds/desktop/shell_live.ex:838 +#: lib/bds/desktop/shell_live.ex:574 +#: lib/bds/desktop/shell_live.ex:834 +#: lib/bds/desktop/shell_live.ex:840 #: lib/bds/desktop/shell_live/sidebar_create.ex:47 #, elixir-autogen, elixir-format msgid "Import media" @@ -1286,8 +1286,8 @@ msgstr "Art" msgid "Language" msgstr "Sprache" -#: lib/bds/desktop/shell_live/media_editor.ex:210 -#: lib/bds/desktop/shell_live/post_editor.ex:790 +#: lib/bds/desktop/shell_live/media_editor.ex:221 +#: lib/bds/desktop/shell_live/post_editor.ex:798 #, elixir-autogen, elixir-format msgid "Language detection failed." msgstr "Spracherkennung fehlgeschlagen." @@ -1297,7 +1297,7 @@ msgstr "Spracherkennung fehlgeschlagen." msgid "Light" msgstr "Hell" -#: lib/bds/desktop/shell_live/media_editor.ex:256 +#: lib/bds/desktop/shell_live/media_editor.ex:267 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:215 #, elixir-autogen, elixir-format msgid "Link to Post" @@ -1371,7 +1371,7 @@ msgstr "Zuordnen zu..." msgid "Mapped" msgstr "Zugeordnet" -#: lib/bds/desktop/shell_live/post_editor.ex:1009 +#: lib/bds/desktop/shell_live/post_editor.ex:1039 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123 #, elixir-autogen, elixir-format msgid "Markdown" @@ -1383,10 +1383,10 @@ msgid "Max Posts Per Page" msgstr "Maximale Beiträge pro Seite" #: lib/bds/desktop/menu_bar.ex:168 -#: lib/bds/desktop/shell_live/media_editor.ex:498 -#: lib/bds/desktop/shell_live/media_editor.ex:502 -#: lib/bds/desktop/shell_live/misc_editor.ex:749 -#: lib/bds/desktop/shell_live/misc_editor.ex:776 +#: lib/bds/desktop/shell_live/media_editor.ex:509 +#: lib/bds/desktop/shell_live/media_editor.ex:513 +#: lib/bds/desktop/shell_live/misc_editor.ex:735 +#: 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/ui/registry.ex:30 @@ -1401,7 +1401,7 @@ msgstr "Medien" msgid "Media (%{count})" msgstr "Medien (%{count})" -#: lib/bds/desktop/shell_live/media_editor.ex:498 +#: lib/bds/desktop/shell_live/media_editor.ex:509 #, elixir-autogen, elixir-format msgid "Media saved" msgstr "Medium gespeichert" @@ -1428,9 +1428,9 @@ msgid "Metadata" msgstr "Metadaten" #: lib/bds/desktop/menu_bar.ex:185 -#: lib/bds/desktop/shell_live/misc_editor.ex:228 -#: lib/bds/desktop/shell_live/misc_editor.ex:240 -#: lib/bds/desktop/shell_live/misc_editor.ex:462 +#: 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/ui/registry.ex:111 #, elixir-autogen, elixir-format msgid "Metadata Diff" @@ -1532,7 +1532,7 @@ msgstr "Kein Ordner ausgewählt" msgid "No git history yet" msgstr "Noch keine Git-Historie" -#: lib/bds/desktop/shell_live/misc_editor.ex:473 +#: lib/bds/desktop/shell_live/misc_editor.ex:459 #: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333 @@ -1572,12 +1572,12 @@ msgstr "Keine passenden Beiträge" msgid "No media files" msgstr "Keine Mediendateien" -#: lib/bds/desktop/shell_live/misc_editor.ex:592 +#: lib/bds/desktop/shell_live/misc_editor.ex:578 #, elixir-autogen, elixir-format msgid "No metadata diff items selected" msgstr "Keine Metadaten-Diff-Einträge ausgewählt" -#: lib/bds/desktop/shell_live/misc_editor.ex:621 +#: lib/bds/desktop/shell_live/misc_editor.ex:607 #, elixir-autogen, elixir-format msgid "No orphan files selected" msgstr "Keine verwaisten Dateien ausgewählt" @@ -1602,7 +1602,7 @@ msgstr "Keine Beiträge zum Verknüpfen" msgid "No posts yet" msgstr "Noch keine Beiträge" -#: lib/bds/desktop/shell_live/misc_editor.ex:589 +#: lib/bds/desktop/shell_live/misc_editor.ex:575 #, elixir-autogen, elixir-format msgid "No repair action available" msgstr "Keine Reparaturaktion verfügbar" @@ -1627,7 +1627,7 @@ msgstr "Keine Schlagwörter gefunden" msgid "No translations" msgstr "Keine Übersetzungen" -#: lib/bds/desktop/shell_live/misc_editor.ex:567 +#: lib/bds/desktop/shell_live/misc_editor.ex:553 #, elixir-autogen, elixir-format msgid "No unstaged changes" msgstr "Keine nicht bereitgestellten Änderungen" @@ -1804,7 +1804,7 @@ msgstr "Sonstige" msgid "Other (%{count})" msgstr "Andere (%{count})" -#: lib/bds/desktop/shell_live.ex:715 +#: lib/bds/desktop/shell_live.ex:717 #: lib/bds/desktop/shell_live/panel_renderer.ex:83 #, elixir-autogen, elixir-format msgid "Output" @@ -1842,7 +1842,7 @@ msgstr "Seiten" msgid "Pages (%{count})" msgstr "Seiten (%{count})" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 #, elixir-autogen, elixir-format msgid "Pair dismissed" msgstr "Paar verworfen" @@ -1868,17 +1868,17 @@ msgstr "Pfad" msgid "Persist the detected language for this media item" msgstr "Die erkannte Sprache für dieses Medium speichern" -#: lib/bds/desktop/shell_live/misc_editor.ex:747 -#: lib/bds/desktop/shell_live/post_editor.ex:529 -#: lib/bds/desktop/shell_live/post_editor.ex:533 -#: lib/bds/desktop/shell_live/post_editor.ex:572 -#: lib/bds/desktop/shell_live/post_editor.ex:576 -#: lib/bds/desktop/shell_live/post_editor.ex:614 -#: lib/bds/desktop/shell_live/post_editor.ex:629 -#: lib/bds/desktop/shell_live/post_editor.ex:658 -#: lib/bds/desktop/shell_live/post_editor.ex:661 -#: lib/bds/desktop/shell_live/post_editor.ex:741 -#: lib/bds/desktop/shell_live/post_editor.ex:744 +#: lib/bds/desktop/shell_live/misc_editor.ex:733 +#: lib/bds/desktop/shell_live/post_editor.ex:537 +#: lib/bds/desktop/shell_live/post_editor.ex:541 +#: lib/bds/desktop/shell_live/post_editor.ex:580 +#: lib/bds/desktop/shell_live/post_editor.ex:584 +#: lib/bds/desktop/shell_live/post_editor.ex:622 +#: lib/bds/desktop/shell_live/post_editor.ex:637 +#: lib/bds/desktop/shell_live/post_editor.ex:666 +#: lib/bds/desktop/shell_live/post_editor.ex:669 +#: lib/bds/desktop/shell_live/post_editor.ex:749 +#: lib/bds/desktop/shell_live/post_editor.ex:752 #: lib/bds/desktop/shell_live/sidebar_components.ex:651 #: lib/bds/desktop/shell_live/sidebar_delete.ex:174 #: lib/bds/ui/registry.ex:99 @@ -1903,24 +1903,24 @@ msgstr "Beitrags-Slug-Konflikte" msgid "Post Template" msgstr "Beitragsvorlage" -#: lib/bds/desktop/shell_live/misc_editor.ex:315 +#: lib/bds/desktop/shell_live/misc_editor.ex:301 #, elixir-autogen, elixir-format msgid "Post is marked as do-not-translate but has translations" msgstr "Beitrag ist als nicht-übersetzen markiert, hat aber Übersetzungen" -#: lib/bds/desktop/shell_live/post_editor.ex:572 +#: lib/bds/desktop/shell_live/post_editor.ex:580 #, elixir-autogen, elixir-format msgid "Post published" msgstr "Beitrag veröffentlicht" -#: lib/bds/desktop/shell_live/post_editor.ex:529 +#: lib/bds/desktop/shell_live/post_editor.ex:537 #, elixir-autogen, elixir-format msgid "Post saved" msgstr "Beitrag gespeichert" #: lib/bds/desktop/menu_bar.ex:167 -#: lib/bds/desktop/shell_live/misc_editor.ex:678 -#: lib/bds/desktop/shell_live/misc_editor.ex:775 +#: lib/bds/desktop/shell_live/misc_editor.ex:664 +#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/ui/registry.ex:14 #: lib/bds/ui/sidebar.ex:271 #, elixir-autogen, elixir-format @@ -1937,7 +1937,7 @@ msgstr "Beiträge (%{count})" msgid "Preferences" msgstr "Einstellungen" -#: lib/bds/desktop/shell_live/post_editor.ex:1010 +#: lib/bds/desktop/shell_live/post_editor.ex:1040 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124 #, elixir-autogen, elixir-format msgid "Preview" @@ -1959,8 +1959,8 @@ msgid "Preview unavailable" msgstr "Vorschau nicht verfügbar" #: lib/bds/desktop/shell_live/index.html.heex:509 -#: lib/bds/desktop/shell_live/misc_editor.ex:753 -#: lib/bds/desktop/shell_live/misc_editor.ex:779 +#: lib/bds/desktop/shell_live/misc_editor.ex:739 +#: lib/bds/desktop/shell_live/misc_editor.ex:765 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27 #: lib/bds/ui/sidebar.ex:762 #, elixir-autogen, elixir-format @@ -2006,19 +2006,19 @@ msgid "Publish Selected" msgstr "Ausgewähltes veröffentlichen" #: lib/bds/desktop/shell_data.ex:181 -#: lib/bds/desktop/shell_live/post_editor.ex:1004 +#: lib/bds/desktop/shell_live/post_editor.ex:1034 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472 #: lib/bds/ui/sidebar.ex:324 #, elixir-autogen, elixir-format msgid "Published" msgstr "Veröffentlicht" -#: lib/bds/desktop/shell_live/misc_editor.ex:318 +#: lib/bds/desktop/shell_live/misc_editor.ex:304 #, elixir-autogen, elixir-format msgid "Published translation has content stuck in DB instead of filesystem" msgstr "Veröffentlichte Übersetzung hat Inhalt in der DB statt im Dateisystem" -#: lib/bds/desktop/shell_live/misc_editor.ex:754 +#: lib/bds/desktop/shell_live/misc_editor.ex:740 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338 @@ -2105,8 +2105,8 @@ msgstr "Offline-Modelle aktualisieren" msgid "Refresh Online Models" msgstr "Online-Modelle aktualisieren" -#: lib/bds/desktop/shell_live/media_editor.ex:368 -#: lib/bds/desktop/shell_live/media_editor.ex:377 +#: lib/bds/desktop/shell_live/media_editor.ex:379 +#: lib/bds/desktop/shell_live/media_editor.ex:388 #, elixir-autogen, elixir-format msgid "Refresh Translation" msgstr "Übersetzung aktualisieren" @@ -2162,19 +2162,19 @@ msgstr "In Listen rendern" msgid "Replace" msgstr "Ersetzen" -#: lib/bds/desktop/shell_live/media_editor.ex:142 -#: lib/bds/desktop/shell_live/media_editor.ex:150 +#: lib/bds/desktop/shell_live/media_editor.ex:153 +#: lib/bds/desktop/shell_live/media_editor.ex:161 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:86 #, elixir-autogen, elixir-format msgid "Replace File" msgstr "Datei ersetzen" -#: lib/bds/desktop/shell_live/media_editor.ex:116 +#: lib/bds/desktop/shell_live/media_editor.ex:127 #, elixir-autogen, elixir-format msgid "Replace Media File" msgstr "Mediendatei ersetzen" -#: lib/bds/desktop/menu_bar.ex:197 +#: lib/bds/desktop/menu_bar.ex:198 #, elixir-autogen, elixir-format msgid "Report Issue" msgstr "Problem melden" @@ -2204,7 +2204,7 @@ msgstr "Lösung" msgid "Result" msgstr "Ergebnis" -#: lib/bds/desktop/shell_live/post_editor.ex:1005 +#: lib/bds/desktop/shell_live/post_editor.ex:1035 #, elixir-autogen, elixir-format msgid "Reverted" msgstr "Zurückgesetzt" @@ -2250,13 +2250,13 @@ msgstr "SSH-Modus" msgid "Save" msgstr "Speichern" -#: lib/bds/desktop/shell_live/media_editor.ex:328 +#: lib/bds/desktop/shell_live/media_editor.ex:339 #, elixir-autogen, elixir-format msgid "Save Translation" msgstr "Übersetzung speichern" -#: lib/bds/desktop/shell_live/media_editor.ex:710 -#: lib/bds/desktop/shell_live/post_editor.ex:1003 +#: lib/bds/desktop/shell_live/media_editor.ex:730 +#: lib/bds/desktop/shell_live/post_editor.ex:1033 #, elixir-autogen, elixir-format msgid "Saved" msgstr "Gespeichert" @@ -2266,7 +2266,7 @@ msgstr "Gespeichert" msgid "Scanning entries..." msgstr "Einträge werden gescannt..." -#: lib/bds/desktop/shell_live/misc_editor.ex:751 +#: lib/bds/desktop/shell_live/misc_editor.ex:737 #: lib/bds/desktop/shell_live/sidebar_components.ex:657 #: lib/bds/desktop/shell_live/sidebar_delete.ex:176 #: lib/bds/ui/registry.ex:133 @@ -2294,7 +2294,7 @@ msgstr "Scripting-Laufzeit" msgid "Scripting capabilities are configured at the application layer in the rewrite and do not expose runtime switching here." msgstr "Scripting-Funktionen werden in der Neufassung auf Anwendungsebene konfiguriert und bieten hier keine Umschaltung der Laufzeit." -#: lib/bds/desktop/shell_live/misc_editor.ex:777 +#: lib/bds/desktop/shell_live/misc_editor.ex:763 #: lib/bds/desktop/shell_live/script_editor.ex:119 #: lib/bds/desktop/shell_live/script_editor.ex:124 #: lib/bds/desktop/shell_live/script_editor.ex:130 @@ -2399,7 +2399,7 @@ msgstr "Zielsprache für diesen Beitrag auswählen" msgid "Select an existing category or press Enter to create a new archive entry" msgstr "Wähle eine vorhandene Kategorie oder drücke Enter, um einen neuen Archiv-Eintrag zu erstellen" -#: lib/bds/desktop/shell_live/misc_editor.ex:210 +#: lib/bds/desktop/shell_live/misc_editor.ex:196 #, elixir-autogen, elixir-format msgid "Selected pairs dismissed" msgstr "Ausgewählte Paare verworfen" @@ -2433,9 +2433,7 @@ msgstr "Nebeneinander" msgid "Site" msgstr "Website" -#: lib/bds/desktop/shell_live/misc_editor.ex:95 -#: lib/bds/desktop/shell_live/misc_editor.ex:105 -#: lib/bds/desktop/shell_live/misc_editor.ex:426 +#: lib/bds/desktop/shell_live/misc_editor.ex:412 #: lib/bds/ui/registry.ex:125 #, elixir-autogen, elixir-format msgid "Site Validation" @@ -2565,7 +2563,7 @@ msgstr "Schlagwortname" msgid "Tags" msgstr "Tags" -#: lib/bds/desktop/shell_live.ex:714 +#: lib/bds/desktop/shell_live.ex:716 #: lib/bds/desktop/shell_live/panel_renderer.ex:54 #, elixir-autogen, elixir-format msgid "Tasks" @@ -2577,7 +2575,7 @@ msgstr "Aufgaben" msgid "Technology" msgstr "Technik" -#: lib/bds/desktop/shell_live/misc_editor.ex:752 +#: lib/bds/desktop/shell_live/misc_editor.ex:738 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299 #: lib/bds/desktop/shell_live/sidebar_components.ex:660 #: lib/bds/desktop/shell_live/sidebar_delete.ex:179 @@ -2601,7 +2599,7 @@ msgstr "Template gespeichert" msgid "Template syntax is valid" msgstr "Template-Syntax ist gültig" -#: lib/bds/desktop/shell_live/misc_editor.ex:778 +#: lib/bds/desktop/shell_live/misc_editor.ex:764 #: lib/bds/desktop/shell_live/template_editor.ex:111 #: lib/bds/desktop/shell_live/template_editor.ex:116 #: lib/bds/desktop/shell_live/template_editor.ex:121 @@ -2725,39 +2723,35 @@ msgstr "Panel umschalten" msgid "Toggle sidebar" msgstr "Seitenleiste umschalten" -#: lib/bds/desktop/shell_live/media_editor.ex:352 -#: lib/bds/desktop/shell_live/media_editor.ex:545 -#: lib/bds/desktop/shell_live/media_editor.ex:566 -#: lib/bds/desktop/shell_live/media_editor.ex:571 +#: lib/bds/desktop/shell_live/media_editor.ex:363 +#: lib/bds/desktop/shell_live/media_editor.ex:556 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76 -#: lib/bds/desktop/shell_live/post_editor.ex:803 -#: lib/bds/desktop/shell_live/post_editor.ex:832 -#: lib/bds/desktop/shell_live/post_editor.ex:837 +#: lib/bds/desktop/shell_live/post_editor.ex:811 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60 #, elixir-autogen, elixir-format msgid "Translate" msgstr "Uebersetzen" +#: lib/bds/desktop/shell_live/misc_editor.ex:105 #: lib/bds/desktop/shell_live/misc_editor.ex:119 -#: lib/bds/desktop/shell_live/misc_editor.ex:133 -#: lib/bds/desktop/shell_live/misc_editor.ex:482 +#: lib/bds/desktop/shell_live/misc_editor.ex:468 #, elixir-autogen, elixir-format msgid "Translation Validation" msgstr "Übersetzungsvalidierung" -#: lib/bds/desktop/shell_live/misc_editor.ex:312 +#: lib/bds/desktop/shell_live/misc_editor.ex:298 #, elixir-autogen, elixir-format msgid "Translation language matches canonical post language" msgstr "Übersetzungssprache entspricht der kanonischen Beitragssprache" -#: lib/bds/desktop/shell_live/misc_editor.ex:321 +#: lib/bds/desktop/shell_live/misc_editor.ex:307 #, elixir-autogen, elixir-format msgid "Translation points to a missing source post" msgstr "Übersetzung verweist auf einen fehlenden Quellbeitrag" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:183 -#: lib/bds/desktop/shell_live/misc_editor.ex:748 -#: lib/bds/desktop/shell_live/misc_editor.ex:750 +#: lib/bds/desktop/shell_live/misc_editor.ex:734 +#: lib/bds/desktop/shell_live/misc_editor.ex:736 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:129 #: lib/bds/ui/registry.ex:131 #, elixir-autogen, elixir-format @@ -2802,14 +2796,14 @@ msgstr "Rückgängig" msgid "Unknown" msgstr "Unbekannt" -#: lib/bds/desktop/shell_live/media_editor.ex:269 +#: lib/bds/desktop/shell_live/media_editor.ex:280 #, elixir-autogen, elixir-format msgid "Unlink from Post" msgstr "Verknüpfung mit Beitrag aufheben" -#: lib/bds/desktop/shell_live/media_editor.ex:709 +#: lib/bds/desktop/shell_live/media_editor.ex:729 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10 -#: lib/bds/desktop/shell_live/post_editor.ex:1002 +#: lib/bds/desktop/shell_live/post_editor.ex:1032 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7 #, elixir-autogen, elixir-format msgid "Unsaved" @@ -2841,7 +2835,7 @@ msgstr "Aktualisiert" msgid "Updated URLs" msgstr "Aktualisierte URLs" -#: lib/bds/desktop/menu_bar.ex:192 +#: lib/bds/desktop/menu_bar.ex:193 #, elixir-autogen, elixir-format msgid "Upload Site" msgstr "Website hochladen" @@ -2868,7 +2862,7 @@ msgstr "Benutzername" msgid "Validate" msgstr "Validieren" -#: lib/bds/desktop/menu_bar.ex:191 +#: lib/bds/desktop/menu_bar.ex:192 #, elixir-autogen, elixir-format msgid "Validate Site" msgstr "Website validieren" @@ -2878,17 +2872,12 @@ msgstr "Website validieren" msgid "Validate Translations" msgstr "Übersetzungen validieren" -#: lib/bds/desktop/shell_live/misc_editor.ex:96 -#, elixir-autogen, elixir-format -msgid "Validation changes applied" -msgstr "Validierungsänderungen angewendet" - #: lib/bds/desktop/menu_bar.ex:146 #, elixir-autogen, elixir-format msgid "View" msgstr "Ansicht" -#: lib/bds/desktop/menu_bar.ex:196 +#: lib/bds/desktop/menu_bar.ex:197 #, elixir-autogen, elixir-format msgid "View on GitHub" msgstr "Auf GitHub ansehen" @@ -3259,12 +3248,12 @@ msgstr "Willkommen beim KI-Assistenten" msgid "Comparing database and filesystem metadata" msgstr "Vergleicht Datenbank- und Dateisystem-Metadaten" -#: lib/bds/desktop/shell_live.ex:648 +#: lib/bds/desktop/shell_live.ex:650 #, elixir-autogen, elixir-format msgid "Added %{count} images to post" msgstr "%{count} Bilder zum Beitrag hinzugefügt" -#: lib/bds/desktop/shell_live.ex:616 +#: lib/bds/desktop/shell_live.ex:618 #, elixir-autogen, elixir-format msgid "Added %{title}" msgstr "%{title} hinzugefügt" @@ -3284,18 +3273,18 @@ msgstr "Endbenutzer-Anleitung für redaktionelle Arbeitsabläufe, Medien, Vorlag msgid "Image Import Concurrency" msgstr "Gleichzeitige Bildimporte" -#: lib/bds/desktop/shell_live.ex:421 -#: lib/bds/desktop/shell_live.ex:434 -#: lib/bds/desktop/shell_live.ex:615 -#: lib/bds/desktop/shell_live.ex:647 -#: lib/bds/desktop/shell_live.ex:658 -#: lib/bds/desktop/shell_live.ex:669 +#: lib/bds/desktop/shell_live.ex:423 +#: lib/bds/desktop/shell_live.ex:436 +#: lib/bds/desktop/shell_live.ex:617 +#: lib/bds/desktop/shell_live.ex:649 +#: lib/bds/desktop/shell_live.ex:660 +#: lib/bds/desktop/shell_live.ex:671 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420 #, elixir-autogen, elixir-format msgid "Add Gallery Images" msgstr "Galerie-Bilder hinzufügen" -#: lib/bds/desktop/shell_live.ex:670 +#: lib/bds/desktop/shell_live.ex:672 #, elixir-autogen, elixir-format msgid "Failed to process %{path}: %{reason}" msgstr "%{path} konnte nicht verarbeitet werden: %{reason}" @@ -3310,12 +3299,12 @@ msgstr "Archivieren" msgid "Move this post to the archive" msgstr "Diesen Beitrag ins Archiv verschieben" -#: lib/bds/desktop/shell_live/post_editor.ex:658 +#: lib/bds/desktop/shell_live/post_editor.ex:666 #, elixir-autogen, elixir-format msgid "Post archived" msgstr "Beitrag archiviert" -#: lib/bds/desktop/shell_live/post_editor.ex:741 +#: lib/bds/desktop/shell_live/post_editor.ex:749 #, elixir-autogen, elixir-format msgid "Post unarchived" msgstr "Beitrag wiederhergestellt" @@ -3484,28 +3473,28 @@ msgstr "umbenannt" msgid "untracked" msgstr "nicht verfolgt" -#: lib/bds/desktop/shell_live.ex:740 +#: lib/bds/desktop/shell_live.ex:742 #, elixir-autogen, elixir-format msgid "Blogmark" msgstr "Blogmark" -#: lib/bds/desktop/shell_live.ex:783 +#: lib/bds/desktop/shell_live.ex:785 #, elixir-autogen, elixir-format msgid "Open a project before importing a blogmark." msgstr "Öffnen Sie ein Projekt, bevor Sie ein Blogmark importieren." -#: lib/bds/desktop/shell_live/post_editor.ex:684 +#: lib/bds/desktop/shell_live/post_editor.ex:692 #, elixir-autogen, elixir-format msgid "Added %{name}" msgstr "%{name} hinzugefügt" -#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:699 #, elixir-autogen, elixir-format msgid "Failed to import %{path}: %{reason}" msgstr "Import von %{path} fehlgeschlagen: %{reason}" -#: lib/bds/desktop/shell_live/post_editor.ex:683 -#: lib/bds/desktop/shell_live/post_editor.ex:690 +#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:698 #, elixir-autogen, elixir-format msgid "Insert Image" msgstr "Bild einfügen" @@ -3530,7 +3519,7 @@ msgstr "Loeschen" msgid "Failed to copy bookmarklet to clipboard" msgstr "Bookmarklet konnte nicht in die Zwischenablage kopiert werden" -#: lib/bds/desktop/shell_live.ex:752 +#: lib/bds/desktop/shell_live.ex:754 #, elixir-autogen, elixir-format msgid "The project this blogmark targets does not exist here." msgstr "Das Projekt, auf das dieses Blogmark verweist, existiert hier nicht." @@ -3539,3 +3528,8 @@ msgstr "Das Projekt, auf das dieses Blogmark verweist, existiert hier nicht." #, elixir-autogen, elixir-format msgid "Suggested tags" msgstr "Vorgeschlagene Tags" + +#: lib/bds/desktop/menu_bar.ex:191 +#, elixir-autogen, elixir-format +msgid "Force Render Site" +msgstr "Website vollständig neu generieren" diff --git a/priv/gettext/en/LC_MESSAGES/ui.po b/priv/gettext/en/LC_MESSAGES/ui.po index 878cfa3..a96b062 100644 --- a/priv/gettext/en/LC_MESSAGES/ui.po +++ b/priv/gettext/en/LC_MESSAGES/ui.po @@ -1,4 +1,4 @@ -#: lib/bds/desktop/shell_live/misc_editor.ex:333 +#: lib/bds/desktop/shell_live/misc_editor.ex:319 #, elixir-autogen, elixir-format msgid "%{canonical} = %{translation}" msgstr "" @@ -79,7 +79,7 @@ msgstr "" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42 #: lib/bds/desktop/shell_live/overlay_manager.ex:72 -#: lib/bds/desktop/shell_live/post_editor.ex:888 +#: lib/bds/desktop/shell_live/post_editor.ex:918 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #, elixir-autogen, elixir-format msgid "AI Suggestions" @@ -105,12 +105,12 @@ msgstr "" msgid "API" msgstr "" -#: lib/bds/desktop/menu_bar.ex:195 +#: lib/bds/desktop/menu_bar.ex:196 #, elixir-autogen, elixir-format msgid "API Documentation" msgstr "" -#: lib/bds/desktop/menu_bar.ex:193 +#: lib/bds/desktop/menu_bar.ex:194 #, elixir-autogen, elixir-format msgid "About" msgstr "" @@ -337,14 +337,14 @@ msgid "Auto" msgstr "" #: lib/bds/desktop/shell_data.ex:98 -#: lib/bds/desktop/shell_live.ex:422 +#: lib/bds/desktop/shell_live.ex:424 #: lib/bds/desktop/shell_live/chat_editor.ex:234 -#: lib/bds/desktop/shell_live/media_editor.ex:160 -#: lib/bds/desktop/shell_live/media_editor.ex:353 -#: lib/bds/desktop/shell_live/media_editor.ex:546 +#: lib/bds/desktop/shell_live/media_editor.ex:171 +#: lib/bds/desktop/shell_live/media_editor.ex:364 +#: lib/bds/desktop/shell_live/media_editor.ex:557 #: lib/bds/desktop/shell_live/overlay_manager.ex:73 -#: lib/bds/desktop/shell_live/post_editor.ex:755 -#: lib/bds/desktop/shell_live/post_editor.ex:804 +#: lib/bds/desktop/shell_live/post_editor.ex:763 +#: lib/bds/desktop/shell_live/post_editor.ex:812 #, elixir-autogen, elixir-format msgid "Automatic AI actions stay gated by airplane mode." msgstr "" @@ -447,8 +447,8 @@ msgstr "" #: lib/bds/desktop/shell_live/import_editor.ex:1024 #: lib/bds/desktop/shell_live/import_editor.ex:1188 #: lib/bds/desktop/shell_live/index.html.heex:336 -#: lib/bds/desktop/shell_live/misc_editor.ex:755 -#: lib/bds/desktop/shell_live/misc_editor.ex:756 +#: lib/bds/desktop/shell_live/misc_editor.ex:741 +#: lib/bds/desktop/shell_live/misc_editor.ex:742 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75 @@ -486,7 +486,7 @@ msgstr "" msgid "Category name is required" msgstr "" -#: lib/bds/desktop/shell_live.ex:719 +#: lib/bds/desktop/shell_live.ex:721 #: lib/bds/desktop/shell_live/chat_editor.ex:87 #: lib/bds/desktop/shell_live/chat_editor.ex:233 #: lib/bds/desktop/shell_live/chat_editor.ex:323 @@ -506,7 +506,7 @@ msgstr "" msgid "Check Syntax" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:486 +#: lib/bds/desktop/shell_live/misc_editor.ex:472 #, elixir-autogen, elixir-format msgid "Checked DB rows: %{dbRows} · Checked files: %{files} · Invalid DB rows: %{invalidDb} · Invalid files: %{invalidFiles}" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "Delete Media" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:396 +#: lib/bds/desktop/shell_live/media_editor.ex:407 #, elixir-autogen, elixir-format msgid "Delete Translation" msgstr "" @@ -758,7 +758,7 @@ msgstr "" msgid "Delete this unpublished draft" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:120 +#: lib/bds/desktop/shell_live/misc_editor.ex:106 #, elixir-autogen, elixir-format msgid "Deleted %{dbRows} DB rows and %{files} files, flushed %{flushed} translations to disk" msgstr "" @@ -783,14 +783,14 @@ msgstr "" msgid "Detect" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:159 -#: lib/bds/desktop/shell_live/media_editor.ex:198 -#: lib/bds/desktop/shell_live/media_editor.ex:203 +#: lib/bds/desktop/shell_live/media_editor.ex:170 #: lib/bds/desktop/shell_live/media_editor.ex:209 +#: lib/bds/desktop/shell_live/media_editor.ex:214 +#: lib/bds/desktop/shell_live/media_editor.ex:220 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59 -#: lib/bds/desktop/shell_live/post_editor.ex:754 -#: lib/bds/desktop/shell_live/post_editor.ex:783 -#: lib/bds/desktop/shell_live/post_editor.ex:789 +#: lib/bds/desktop/shell_live/post_editor.ex:762 +#: lib/bds/desktop/shell_live/post_editor.ex:791 +#: lib/bds/desktop/shell_live/post_editor.ex:797 #, elixir-autogen, elixir-format msgid "Detect Language" msgstr "" @@ -861,7 +861,7 @@ msgstr "" msgid "Do Not Translate" msgstr "" -#: lib/bds/desktop/menu_bar.ex:194 +#: lib/bds/desktop/menu_bar.ex:195 #: lib/bds/help_docs.ex:14 #: lib/bds/ui/registry.ex:118 #, elixir-autogen, elixir-format @@ -921,8 +921,8 @@ msgstr "" msgid "Editor Settings" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:757 -#: lib/bds/desktop/shell_live/misc_editor.ex:780 +#: lib/bds/desktop/shell_live/misc_editor.ex:743 +#: lib/bds/desktop/shell_live/misc_editor.ex:766 #, elixir-autogen, elixir-format msgid "Embeddings" msgstr "" @@ -1047,11 +1047,11 @@ msgstr "" msgid "Find Duplicate Posts" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 -#: lib/bds/desktop/shell_live/misc_editor.ex:182 -#: lib/bds/desktop/shell_live/misc_editor.ex:209 -#: lib/bds/desktop/shell_live/misc_editor.ex:216 -#: lib/bds/desktop/shell_live/misc_editor.ex:503 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 +#: lib/bds/desktop/shell_live/misc_editor.ex:168 +#: lib/bds/desktop/shell_live/misc_editor.ex:195 +#: lib/bds/desktop/shell_live/misc_editor.ex:202 +#: lib/bds/desktop/shell_live/misc_editor.ex:489 #: lib/bds/ui/registry.ex:139 #, elixir-autogen, elixir-format msgid "Find Duplicates" @@ -1073,21 +1073,21 @@ msgstr "" msgid "Generate Site" msgstr "" -#: lib/bds/desktop/shell_live.ex:720 +#: lib/bds/desktop/shell_live.ex:722 #: lib/bds/desktop/shell_live/socket_state.ex:109 #: lib/bds/ui/sidebar.ex:789 #, elixir-autogen, elixir-format msgid "Git" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:560 +#: lib/bds/desktop/shell_live/misc_editor.ex:546 #: lib/bds/ui/registry.ex:113 #, elixir-autogen, elixir-format msgid "Git Diff" msgstr "" #: lib/bds/desktop/shell_data.ex:244 -#: lib/bds/desktop/shell_live.ex:716 +#: lib/bds/desktop/shell_live.ex:718 #: lib/bds/desktop/shell_live/panel_renderer.ex:171 #, elixir-autogen, elixir-format msgid "Git Log" @@ -1115,8 +1115,8 @@ msgstr "" #: lib/bds/desktop/shell_data.ex:116 #: lib/bds/desktop/shell_live/index.html.heex:666 -#: lib/bds/desktop/shell_live/media_editor.ex:711 -#: lib/bds/desktop/shell_live/post_editor.ex:1006 +#: lib/bds/desktop/shell_live/media_editor.ex:731 +#: lib/bds/desktop/shell_live/post_editor.ex:1036 #, elixir-autogen, elixir-format msgid "Idle" msgstr "" @@ -1210,9 +1210,9 @@ msgstr "" msgid "Import failed: %{error}" msgstr "" -#: lib/bds/desktop/shell_live.ex:572 -#: lib/bds/desktop/shell_live.ex:832 -#: lib/bds/desktop/shell_live.ex:838 +#: lib/bds/desktop/shell_live.ex:574 +#: lib/bds/desktop/shell_live.ex:834 +#: lib/bds/desktop/shell_live.ex:840 #: lib/bds/desktop/shell_live/sidebar_create.ex:47 #, elixir-autogen, elixir-format msgid "Import media" @@ -1286,8 +1286,8 @@ msgstr "" msgid "Language" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:210 -#: lib/bds/desktop/shell_live/post_editor.ex:790 +#: lib/bds/desktop/shell_live/media_editor.ex:221 +#: lib/bds/desktop/shell_live/post_editor.ex:798 #, elixir-autogen, elixir-format msgid "Language detection failed." msgstr "" @@ -1297,7 +1297,7 @@ msgstr "" msgid "Light" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:256 +#: lib/bds/desktop/shell_live/media_editor.ex:267 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:215 #, elixir-autogen, elixir-format msgid "Link to Post" @@ -1371,7 +1371,7 @@ msgstr "" msgid "Mapped" msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:1009 +#: lib/bds/desktop/shell_live/post_editor.ex:1039 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123 #, elixir-autogen, elixir-format msgid "Markdown" @@ -1383,10 +1383,10 @@ msgid "Max Posts Per Page" msgstr "" #: lib/bds/desktop/menu_bar.ex:168 -#: lib/bds/desktop/shell_live/media_editor.ex:498 -#: lib/bds/desktop/shell_live/media_editor.ex:502 -#: lib/bds/desktop/shell_live/misc_editor.ex:749 -#: lib/bds/desktop/shell_live/misc_editor.ex:776 +#: lib/bds/desktop/shell_live/media_editor.ex:509 +#: lib/bds/desktop/shell_live/media_editor.ex:513 +#: lib/bds/desktop/shell_live/misc_editor.ex:735 +#: 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/ui/registry.ex:30 @@ -1401,7 +1401,7 @@ msgstr "" msgid "Media (%{count})" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:498 +#: lib/bds/desktop/shell_live/media_editor.ex:509 #, elixir-autogen, elixir-format msgid "Media saved" msgstr "" @@ -1428,9 +1428,9 @@ msgid "Metadata" msgstr "" #: lib/bds/desktop/menu_bar.ex:185 -#: lib/bds/desktop/shell_live/misc_editor.ex:228 -#: lib/bds/desktop/shell_live/misc_editor.ex:240 -#: lib/bds/desktop/shell_live/misc_editor.ex:462 +#: 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/ui/registry.ex:111 #, elixir-autogen, elixir-format msgid "Metadata Diff" @@ -1532,7 +1532,7 @@ msgstr "" msgid "No git history yet" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:473 +#: lib/bds/desktop/shell_live/misc_editor.ex:459 #: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333 @@ -1572,12 +1572,12 @@ msgstr "" msgid "No media files" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:592 +#: lib/bds/desktop/shell_live/misc_editor.ex:578 #, elixir-autogen, elixir-format msgid "No metadata diff items selected" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:621 +#: lib/bds/desktop/shell_live/misc_editor.ex:607 #, elixir-autogen, elixir-format msgid "No orphan files selected" msgstr "" @@ -1602,7 +1602,7 @@ msgstr "" msgid "No posts yet" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:589 +#: lib/bds/desktop/shell_live/misc_editor.ex:575 #, elixir-autogen, elixir-format msgid "No repair action available" msgstr "" @@ -1627,7 +1627,7 @@ msgstr "" msgid "No translations" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:567 +#: lib/bds/desktop/shell_live/misc_editor.ex:553 #, elixir-autogen, elixir-format msgid "No unstaged changes" msgstr "" @@ -1804,7 +1804,7 @@ msgstr "" msgid "Other (%{count})" msgstr "" -#: lib/bds/desktop/shell_live.ex:715 +#: lib/bds/desktop/shell_live.ex:717 #: lib/bds/desktop/shell_live/panel_renderer.ex:83 #, elixir-autogen, elixir-format msgid "Output" @@ -1842,7 +1842,7 @@ msgstr "" msgid "Pages (%{count})" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 #, elixir-autogen, elixir-format msgid "Pair dismissed" msgstr "" @@ -1868,17 +1868,17 @@ msgstr "" msgid "Persist the detected language for this media item" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:747 -#: lib/bds/desktop/shell_live/post_editor.ex:529 -#: lib/bds/desktop/shell_live/post_editor.ex:533 -#: lib/bds/desktop/shell_live/post_editor.ex:572 -#: lib/bds/desktop/shell_live/post_editor.ex:576 -#: lib/bds/desktop/shell_live/post_editor.ex:614 -#: lib/bds/desktop/shell_live/post_editor.ex:629 -#: lib/bds/desktop/shell_live/post_editor.ex:658 -#: lib/bds/desktop/shell_live/post_editor.ex:661 -#: lib/bds/desktop/shell_live/post_editor.ex:741 -#: lib/bds/desktop/shell_live/post_editor.ex:744 +#: lib/bds/desktop/shell_live/misc_editor.ex:733 +#: lib/bds/desktop/shell_live/post_editor.ex:537 +#: lib/bds/desktop/shell_live/post_editor.ex:541 +#: lib/bds/desktop/shell_live/post_editor.ex:580 +#: lib/bds/desktop/shell_live/post_editor.ex:584 +#: lib/bds/desktop/shell_live/post_editor.ex:622 +#: lib/bds/desktop/shell_live/post_editor.ex:637 +#: lib/bds/desktop/shell_live/post_editor.ex:666 +#: lib/bds/desktop/shell_live/post_editor.ex:669 +#: lib/bds/desktop/shell_live/post_editor.ex:749 +#: lib/bds/desktop/shell_live/post_editor.ex:752 #: lib/bds/desktop/shell_live/sidebar_components.ex:651 #: lib/bds/desktop/shell_live/sidebar_delete.ex:174 #: lib/bds/ui/registry.ex:99 @@ -1903,24 +1903,24 @@ msgstr "" msgid "Post Template" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:315 +#: lib/bds/desktop/shell_live/misc_editor.ex:301 #, elixir-autogen, elixir-format msgid "Post is marked as do-not-translate but has translations" msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:572 +#: lib/bds/desktop/shell_live/post_editor.ex:580 #, elixir-autogen, elixir-format msgid "Post published" msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:529 +#: lib/bds/desktop/shell_live/post_editor.ex:537 #, elixir-autogen, elixir-format msgid "Post saved" msgstr "" #: lib/bds/desktop/menu_bar.ex:167 -#: lib/bds/desktop/shell_live/misc_editor.ex:678 -#: lib/bds/desktop/shell_live/misc_editor.ex:775 +#: lib/bds/desktop/shell_live/misc_editor.ex:664 +#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/ui/registry.ex:14 #: lib/bds/ui/sidebar.ex:271 #, elixir-autogen, elixir-format @@ -1937,7 +1937,7 @@ msgstr "" msgid "Preferences" msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:1010 +#: lib/bds/desktop/shell_live/post_editor.ex:1040 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124 #, elixir-autogen, elixir-format msgid "Preview" @@ -1959,8 +1959,8 @@ msgid "Preview unavailable" msgstr "" #: lib/bds/desktop/shell_live/index.html.heex:509 -#: lib/bds/desktop/shell_live/misc_editor.ex:753 -#: lib/bds/desktop/shell_live/misc_editor.ex:779 +#: lib/bds/desktop/shell_live/misc_editor.ex:739 +#: lib/bds/desktop/shell_live/misc_editor.ex:765 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27 #: lib/bds/ui/sidebar.ex:762 #, elixir-autogen, elixir-format @@ -2006,19 +2006,19 @@ msgid "Publish Selected" msgstr "" #: lib/bds/desktop/shell_data.ex:181 -#: lib/bds/desktop/shell_live/post_editor.ex:1004 +#: lib/bds/desktop/shell_live/post_editor.ex:1034 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472 #: lib/bds/ui/sidebar.ex:324 #, elixir-autogen, elixir-format msgid "Published" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:318 +#: lib/bds/desktop/shell_live/misc_editor.ex:304 #, elixir-autogen, elixir-format msgid "Published translation has content stuck in DB instead of filesystem" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:754 +#: lib/bds/desktop/shell_live/misc_editor.ex:740 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338 @@ -2105,8 +2105,8 @@ msgstr "" msgid "Refresh Online Models" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:368 -#: lib/bds/desktop/shell_live/media_editor.ex:377 +#: lib/bds/desktop/shell_live/media_editor.ex:379 +#: lib/bds/desktop/shell_live/media_editor.ex:388 #, elixir-autogen, elixir-format msgid "Refresh Translation" msgstr "" @@ -2162,19 +2162,19 @@ msgstr "" msgid "Replace" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:142 -#: lib/bds/desktop/shell_live/media_editor.ex:150 +#: lib/bds/desktop/shell_live/media_editor.ex:153 +#: lib/bds/desktop/shell_live/media_editor.ex:161 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:86 #, elixir-autogen, elixir-format msgid "Replace File" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:116 +#: lib/bds/desktop/shell_live/media_editor.ex:127 #, elixir-autogen, elixir-format msgid "Replace Media File" msgstr "" -#: lib/bds/desktop/menu_bar.ex:197 +#: lib/bds/desktop/menu_bar.ex:198 #, elixir-autogen, elixir-format msgid "Report Issue" msgstr "" @@ -2204,7 +2204,7 @@ msgstr "" msgid "Result" msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:1005 +#: lib/bds/desktop/shell_live/post_editor.ex:1035 #, elixir-autogen, elixir-format msgid "Reverted" msgstr "" @@ -2250,13 +2250,13 @@ msgstr "" msgid "Save" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:328 +#: lib/bds/desktop/shell_live/media_editor.ex:339 #, elixir-autogen, elixir-format msgid "Save Translation" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:710 -#: lib/bds/desktop/shell_live/post_editor.ex:1003 +#: lib/bds/desktop/shell_live/media_editor.ex:730 +#: lib/bds/desktop/shell_live/post_editor.ex:1033 #, elixir-autogen, elixir-format msgid "Saved" msgstr "" @@ -2266,7 +2266,7 @@ msgstr "" msgid "Scanning entries..." msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:751 +#: lib/bds/desktop/shell_live/misc_editor.ex:737 #: lib/bds/desktop/shell_live/sidebar_components.ex:657 #: lib/bds/desktop/shell_live/sidebar_delete.ex:176 #: lib/bds/ui/registry.ex:133 @@ -2294,7 +2294,7 @@ msgstr "" msgid "Scripting capabilities are configured at the application layer in the rewrite and do not expose runtime switching here." msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:777 +#: lib/bds/desktop/shell_live/misc_editor.ex:763 #: lib/bds/desktop/shell_live/script_editor.ex:119 #: lib/bds/desktop/shell_live/script_editor.ex:124 #: lib/bds/desktop/shell_live/script_editor.ex:130 @@ -2399,7 +2399,7 @@ msgstr "" msgid "Select an existing category or press Enter to create a new archive entry" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:210 +#: lib/bds/desktop/shell_live/misc_editor.ex:196 #, elixir-autogen, elixir-format msgid "Selected pairs dismissed" msgstr "" @@ -2433,9 +2433,7 @@ msgstr "" msgid "Site" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:95 -#: lib/bds/desktop/shell_live/misc_editor.ex:105 -#: lib/bds/desktop/shell_live/misc_editor.ex:426 +#: lib/bds/desktop/shell_live/misc_editor.ex:412 #: lib/bds/ui/registry.ex:125 #, elixir-autogen, elixir-format msgid "Site Validation" @@ -2565,7 +2563,7 @@ msgstr "" msgid "Tags" msgstr "" -#: lib/bds/desktop/shell_live.ex:714 +#: lib/bds/desktop/shell_live.ex:716 #: lib/bds/desktop/shell_live/panel_renderer.ex:54 #, elixir-autogen, elixir-format msgid "Tasks" @@ -2577,7 +2575,7 @@ msgstr "" msgid "Technology" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:752 +#: lib/bds/desktop/shell_live/misc_editor.ex:738 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299 #: lib/bds/desktop/shell_live/sidebar_components.ex:660 #: lib/bds/desktop/shell_live/sidebar_delete.ex:179 @@ -2601,7 +2599,7 @@ msgstr "" msgid "Template syntax is valid" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:778 +#: lib/bds/desktop/shell_live/misc_editor.ex:764 #: lib/bds/desktop/shell_live/template_editor.ex:111 #: lib/bds/desktop/shell_live/template_editor.ex:116 #: lib/bds/desktop/shell_live/template_editor.ex:121 @@ -2725,39 +2723,35 @@ msgstr "" msgid "Toggle sidebar" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:352 -#: lib/bds/desktop/shell_live/media_editor.ex:545 -#: lib/bds/desktop/shell_live/media_editor.ex:566 -#: lib/bds/desktop/shell_live/media_editor.ex:571 +#: lib/bds/desktop/shell_live/media_editor.ex:363 +#: lib/bds/desktop/shell_live/media_editor.ex:556 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76 -#: lib/bds/desktop/shell_live/post_editor.ex:803 -#: lib/bds/desktop/shell_live/post_editor.ex:832 -#: lib/bds/desktop/shell_live/post_editor.ex:837 +#: lib/bds/desktop/shell_live/post_editor.ex:811 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60 #, elixir-autogen, elixir-format msgid "Translate" msgstr "" +#: lib/bds/desktop/shell_live/misc_editor.ex:105 #: lib/bds/desktop/shell_live/misc_editor.ex:119 -#: lib/bds/desktop/shell_live/misc_editor.ex:133 -#: lib/bds/desktop/shell_live/misc_editor.ex:482 +#: lib/bds/desktop/shell_live/misc_editor.ex:468 #, elixir-autogen, elixir-format msgid "Translation Validation" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:312 +#: lib/bds/desktop/shell_live/misc_editor.ex:298 #, elixir-autogen, elixir-format msgid "Translation language matches canonical post language" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:321 +#: lib/bds/desktop/shell_live/misc_editor.ex:307 #, elixir-autogen, elixir-format msgid "Translation points to a missing source post" msgstr "" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:183 -#: lib/bds/desktop/shell_live/misc_editor.ex:748 -#: lib/bds/desktop/shell_live/misc_editor.ex:750 +#: lib/bds/desktop/shell_live/misc_editor.ex:734 +#: lib/bds/desktop/shell_live/misc_editor.ex:736 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:129 #: lib/bds/ui/registry.ex:131 #, elixir-autogen, elixir-format @@ -2802,14 +2796,14 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:269 +#: lib/bds/desktop/shell_live/media_editor.ex:280 #, elixir-autogen, elixir-format msgid "Unlink from Post" msgstr "" -#: lib/bds/desktop/shell_live/media_editor.ex:709 +#: lib/bds/desktop/shell_live/media_editor.ex:729 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10 -#: lib/bds/desktop/shell_live/post_editor.ex:1002 +#: lib/bds/desktop/shell_live/post_editor.ex:1032 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7 #, elixir-autogen, elixir-format msgid "Unsaved" @@ -2841,7 +2835,7 @@ msgstr "" msgid "Updated URLs" msgstr "" -#: lib/bds/desktop/menu_bar.ex:192 +#: lib/bds/desktop/menu_bar.ex:193 #, elixir-autogen, elixir-format msgid "Upload Site" msgstr "" @@ -2868,7 +2862,7 @@ msgstr "" msgid "Validate" msgstr "" -#: lib/bds/desktop/menu_bar.ex:191 +#: lib/bds/desktop/menu_bar.ex:192 #, elixir-autogen, elixir-format msgid "Validate Site" msgstr "" @@ -2878,17 +2872,12 @@ msgstr "" msgid "Validate Translations" msgstr "" -#: lib/bds/desktop/shell_live/misc_editor.ex:96 -#, elixir-autogen, elixir-format -msgid "Validation changes applied" -msgstr "" - #: lib/bds/desktop/menu_bar.ex:146 #, elixir-autogen, elixir-format msgid "View" msgstr "" -#: lib/bds/desktop/menu_bar.ex:196 +#: lib/bds/desktop/menu_bar.ex:197 #, elixir-autogen, elixir-format msgid "View on GitHub" msgstr "" @@ -3259,12 +3248,12 @@ msgstr "" msgid "Comparing database and filesystem metadata" msgstr "Comparing database and filesystem metadata" -#: lib/bds/desktop/shell_live.ex:648 +#: lib/bds/desktop/shell_live.ex:650 #, elixir-autogen, elixir-format msgid "Added %{count} images to post" msgstr "Added %{count} images to post" -#: lib/bds/desktop/shell_live.ex:616 +#: lib/bds/desktop/shell_live.ex:618 #, elixir-autogen, elixir-format msgid "Added %{title}" msgstr "Added %{title}" @@ -3284,18 +3273,18 @@ msgstr "" msgid "Image Import Concurrency" msgstr "Image Import Concurrency" -#: lib/bds/desktop/shell_live.ex:421 -#: lib/bds/desktop/shell_live.ex:434 -#: lib/bds/desktop/shell_live.ex:615 -#: lib/bds/desktop/shell_live.ex:647 -#: lib/bds/desktop/shell_live.ex:658 -#: lib/bds/desktop/shell_live.ex:669 +#: lib/bds/desktop/shell_live.ex:423 +#: lib/bds/desktop/shell_live.ex:436 +#: lib/bds/desktop/shell_live.ex:617 +#: lib/bds/desktop/shell_live.ex:649 +#: lib/bds/desktop/shell_live.ex:660 +#: lib/bds/desktop/shell_live.ex:671 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420 #, elixir-autogen, elixir-format msgid "Add Gallery Images" msgstr "Add Gallery Images" -#: lib/bds/desktop/shell_live.ex:670 +#: lib/bds/desktop/shell_live.ex:672 #, elixir-autogen, elixir-format msgid "Failed to process %{path}: %{reason}" msgstr "Failed to process %{path}: %{reason}" @@ -3310,12 +3299,12 @@ msgstr "" msgid "Move this post to the archive" msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:658 +#: lib/bds/desktop/shell_live/post_editor.ex:666 #, elixir-autogen, elixir-format, fuzzy msgid "Post archived" msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:741 +#: lib/bds/desktop/shell_live/post_editor.ex:749 #, elixir-autogen, elixir-format, fuzzy msgid "Post unarchived" msgstr "" @@ -3484,28 +3473,28 @@ msgstr "" msgid "untracked" msgstr "" -#: lib/bds/desktop/shell_live.ex:740 +#: lib/bds/desktop/shell_live.ex:742 #, elixir-autogen, elixir-format, fuzzy msgid "Blogmark" msgstr "Blogmark" -#: lib/bds/desktop/shell_live.ex:783 +#: lib/bds/desktop/shell_live.ex:785 #, elixir-autogen, elixir-format msgid "Open a project before importing a blogmark." msgstr "" -#: lib/bds/desktop/shell_live/post_editor.ex:684 +#: lib/bds/desktop/shell_live/post_editor.ex:692 #, elixir-autogen, elixir-format msgid "Added %{name}" msgstr "Added %{name}" -#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:699 #, elixir-autogen, elixir-format msgid "Failed to import %{path}: %{reason}" msgstr "Failed to import %{path}: %{reason}" -#: lib/bds/desktop/shell_live/post_editor.ex:683 -#: lib/bds/desktop/shell_live/post_editor.ex:690 +#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:698 #, elixir-autogen, elixir-format msgid "Insert Image" msgstr "Insert Image" @@ -3530,7 +3519,7 @@ msgstr "" msgid "Failed to copy bookmarklet to clipboard" msgstr "" -#: lib/bds/desktop/shell_live.ex:752 +#: lib/bds/desktop/shell_live.ex:754 #, elixir-autogen, elixir-format msgid "The project this blogmark targets does not exist here." msgstr "" @@ -3539,3 +3528,8 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Suggested tags" msgstr "" + +#: lib/bds/desktop/menu_bar.ex:191 +#, elixir-autogen, elixir-format +msgid "Force Render Site" +msgstr "" diff --git a/priv/gettext/es/LC_MESSAGES/ui.po b/priv/gettext/es/LC_MESSAGES/ui.po index d994bad..6592061 100644 --- a/priv/gettext/es/LC_MESSAGES/ui.po +++ b/priv/gettext/es/LC_MESSAGES/ui.po @@ -1,4 +1,4 @@ -#: lib/bds/desktop/shell_live/misc_editor.ex:333 +#: lib/bds/desktop/shell_live/misc_editor.ex:319 #, elixir-autogen, elixir-format msgid "%{canonical} = %{translation}" msgstr "%{canonical} = %{translation}" @@ -79,7 +79,7 @@ msgstr "Configuración de IA" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42 #: lib/bds/desktop/shell_live/overlay_manager.ex:72 -#: lib/bds/desktop/shell_live/post_editor.ex:888 +#: lib/bds/desktop/shell_live/post_editor.ex:918 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #, elixir-autogen, elixir-format msgid "AI Suggestions" @@ -105,12 +105,12 @@ msgstr "La IA sugerirá mapeos de elementos nuevos a existentes para evitar dupl msgid "API" msgstr "API" -#: lib/bds/desktop/menu_bar.ex:195 +#: lib/bds/desktop/menu_bar.ex:196 #, elixir-autogen, elixir-format msgid "API Documentation" msgstr "Documentación de API" -#: lib/bds/desktop/menu_bar.ex:193 +#: lib/bds/desktop/menu_bar.ex:194 #, elixir-autogen, elixir-format msgid "About" msgstr "Acerca de" @@ -337,14 +337,14 @@ msgid "Auto" msgstr "Automático" #: lib/bds/desktop/shell_data.ex:98 -#: lib/bds/desktop/shell_live.ex:422 +#: lib/bds/desktop/shell_live.ex:424 #: lib/bds/desktop/shell_live/chat_editor.ex:234 -#: lib/bds/desktop/shell_live/media_editor.ex:160 -#: lib/bds/desktop/shell_live/media_editor.ex:353 -#: lib/bds/desktop/shell_live/media_editor.ex:546 +#: lib/bds/desktop/shell_live/media_editor.ex:171 +#: lib/bds/desktop/shell_live/media_editor.ex:364 +#: lib/bds/desktop/shell_live/media_editor.ex:557 #: lib/bds/desktop/shell_live/overlay_manager.ex:73 -#: lib/bds/desktop/shell_live/post_editor.ex:755 -#: lib/bds/desktop/shell_live/post_editor.ex:804 +#: lib/bds/desktop/shell_live/post_editor.ex:763 +#: lib/bds/desktop/shell_live/post_editor.ex:812 #, elixir-autogen, elixir-format msgid "Automatic AI actions stay gated by airplane mode." msgstr "Las acciones automáticas de IA siguen bloqueadas por el modo avión." @@ -447,8 +447,8 @@ msgstr "Leyenda" #: lib/bds/desktop/shell_live/import_editor.ex:1024 #: lib/bds/desktop/shell_live/import_editor.ex:1188 #: lib/bds/desktop/shell_live/index.html.heex:336 -#: lib/bds/desktop/shell_live/misc_editor.ex:755 -#: lib/bds/desktop/shell_live/misc_editor.ex:756 +#: lib/bds/desktop/shell_live/misc_editor.ex:741 +#: lib/bds/desktop/shell_live/misc_editor.ex:742 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75 @@ -486,7 +486,7 @@ msgstr "Valores predeterminados de categoría, opciones de renderizado y conexi msgid "Category name is required" msgstr "El nombre de la categoría es obligatorio" -#: lib/bds/desktop/shell_live.ex:719 +#: lib/bds/desktop/shell_live.ex:721 #: lib/bds/desktop/shell_live/chat_editor.ex:87 #: lib/bds/desktop/shell_live/chat_editor.ex:233 #: lib/bds/desktop/shell_live/chat_editor.ex:323 @@ -506,7 +506,7 @@ msgstr "Chat" msgid "Check Syntax" msgstr "Verificar sintaxis" -#: lib/bds/desktop/shell_live/misc_editor.ex:486 +#: lib/bds/desktop/shell_live/misc_editor.ex:472 #, elixir-autogen, elixir-format msgid "Checked DB rows: %{dbRows} · Checked files: %{files} · Invalid DB rows: %{invalidDb} · Invalid files: %{invalidFiles}" msgstr "Filas de BD revisadas: %{dbRows} · Archivos revisados: %{files} · Filas de BD inválidas: %{invalidDb} · Archivos inválidos: %{invalidFiles}" @@ -742,7 +742,7 @@ msgstr "Eliminar" msgid "Delete Media" msgstr "Eliminar medio" -#: lib/bds/desktop/shell_live/media_editor.ex:396 +#: lib/bds/desktop/shell_live/media_editor.ex:407 #, elixir-autogen, elixir-format msgid "Delete Translation" msgstr "Eliminar traducción" @@ -758,7 +758,7 @@ msgstr "Eliminar conversación" msgid "Delete this unpublished draft" msgstr "Eliminar este borrador no publicado" -#: lib/bds/desktop/shell_live/misc_editor.ex:120 +#: lib/bds/desktop/shell_live/misc_editor.ex:106 #, elixir-autogen, elixir-format msgid "Deleted %{dbRows} DB rows and %{files} files, flushed %{flushed} translations to disk" msgstr "%{dbRows} filas de BD y %{files} archivos eliminados, %{flushed} traducciones escritas a disco" @@ -783,14 +783,14 @@ msgstr "Entorno de escritorio" msgid "Detect" msgstr "Detectar" -#: lib/bds/desktop/shell_live/media_editor.ex:159 -#: lib/bds/desktop/shell_live/media_editor.ex:198 -#: lib/bds/desktop/shell_live/media_editor.ex:203 +#: lib/bds/desktop/shell_live/media_editor.ex:170 #: lib/bds/desktop/shell_live/media_editor.ex:209 +#: lib/bds/desktop/shell_live/media_editor.ex:214 +#: lib/bds/desktop/shell_live/media_editor.ex:220 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59 -#: lib/bds/desktop/shell_live/post_editor.ex:754 -#: lib/bds/desktop/shell_live/post_editor.ex:783 -#: lib/bds/desktop/shell_live/post_editor.ex:789 +#: lib/bds/desktop/shell_live/post_editor.ex:762 +#: lib/bds/desktop/shell_live/post_editor.ex:791 +#: lib/bds/desktop/shell_live/post_editor.ex:797 #, elixir-autogen, elixir-format msgid "Detect Language" msgstr "Detectar idioma" @@ -861,7 +861,7 @@ msgstr "Texto mostrado" msgid "Do Not Translate" msgstr "No traducir" -#: lib/bds/desktop/menu_bar.ex:194 +#: lib/bds/desktop/menu_bar.ex:195 #: lib/bds/help_docs.ex:14 #: lib/bds/ui/registry.ex:118 #, elixir-autogen, elixir-format @@ -921,8 +921,8 @@ msgstr "Editor" msgid "Editor Settings" msgstr "Configuración del editor" -#: lib/bds/desktop/shell_live/misc_editor.ex:757 -#: lib/bds/desktop/shell_live/misc_editor.ex:780 +#: lib/bds/desktop/shell_live/misc_editor.ex:743 +#: lib/bds/desktop/shell_live/misc_editor.ex:766 #, elixir-autogen, elixir-format msgid "Embeddings" msgstr "Embeddings" @@ -1047,11 +1047,11 @@ msgstr "Buscar" msgid "Find Duplicate Posts" msgstr "Buscar entradas duplicadas" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 -#: lib/bds/desktop/shell_live/misc_editor.ex:182 -#: lib/bds/desktop/shell_live/misc_editor.ex:209 -#: lib/bds/desktop/shell_live/misc_editor.ex:216 -#: lib/bds/desktop/shell_live/misc_editor.ex:503 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 +#: lib/bds/desktop/shell_live/misc_editor.ex:168 +#: lib/bds/desktop/shell_live/misc_editor.ex:195 +#: lib/bds/desktop/shell_live/misc_editor.ex:202 +#: lib/bds/desktop/shell_live/misc_editor.ex:489 #: lib/bds/ui/registry.ex:139 #, elixir-autogen, elixir-format msgid "Find Duplicates" @@ -1073,21 +1073,21 @@ msgstr "Galeria" msgid "Generate Site" msgstr "Generar sitio" -#: lib/bds/desktop/shell_live.ex:720 +#: lib/bds/desktop/shell_live.ex:722 #: lib/bds/desktop/shell_live/socket_state.ex:109 #: lib/bds/ui/sidebar.ex:789 #, elixir-autogen, elixir-format msgid "Git" msgstr "Git" -#: lib/bds/desktop/shell_live/misc_editor.ex:560 +#: lib/bds/desktop/shell_live/misc_editor.ex:546 #: lib/bds/ui/registry.ex:113 #, elixir-autogen, elixir-format msgid "Git Diff" msgstr "Diff de Git" #: lib/bds/desktop/shell_data.ex:244 -#: lib/bds/desktop/shell_live.ex:716 +#: lib/bds/desktop/shell_live.ex:718 #: lib/bds/desktop/shell_live/panel_renderer.ex:171 #, elixir-autogen, elixir-format msgid "Git Log" @@ -1115,8 +1115,8 @@ msgstr "Host" #: lib/bds/desktop/shell_data.ex:116 #: lib/bds/desktop/shell_live/index.html.heex:666 -#: lib/bds/desktop/shell_live/media_editor.ex:711 -#: lib/bds/desktop/shell_live/post_editor.ex:1006 +#: lib/bds/desktop/shell_live/media_editor.ex:731 +#: lib/bds/desktop/shell_live/post_editor.ex:1036 #, elixir-autogen, elixir-format msgid "Idle" msgstr "Inactivo" @@ -1210,9 +1210,9 @@ msgstr "Definiciones de importación" msgid "Import failed: %{error}" msgstr "La importación falló: %{error}" -#: lib/bds/desktop/shell_live.ex:572 -#: lib/bds/desktop/shell_live.ex:832 -#: lib/bds/desktop/shell_live.ex:838 +#: lib/bds/desktop/shell_live.ex:574 +#: lib/bds/desktop/shell_live.ex:834 +#: lib/bds/desktop/shell_live.ex:840 #: lib/bds/desktop/shell_live/sidebar_create.ex:47 #, elixir-autogen, elixir-format msgid "Import media" @@ -1286,8 +1286,8 @@ msgstr "Tipo" msgid "Language" msgstr "Idioma" -#: lib/bds/desktop/shell_live/media_editor.ex:210 -#: lib/bds/desktop/shell_live/post_editor.ex:790 +#: lib/bds/desktop/shell_live/media_editor.ex:221 +#: lib/bds/desktop/shell_live/post_editor.ex:798 #, elixir-autogen, elixir-format msgid "Language detection failed." msgstr "La detección de idioma falló." @@ -1297,7 +1297,7 @@ msgstr "La detección de idioma falló." msgid "Light" msgstr "Claro" -#: lib/bds/desktop/shell_live/media_editor.ex:256 +#: lib/bds/desktop/shell_live/media_editor.ex:267 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:215 #, elixir-autogen, elixir-format msgid "Link to Post" @@ -1371,7 +1371,7 @@ msgstr "Mapear a..." msgid "Mapped" msgstr "Mapeado" -#: lib/bds/desktop/shell_live/post_editor.ex:1009 +#: lib/bds/desktop/shell_live/post_editor.ex:1039 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123 #, elixir-autogen, elixir-format msgid "Markdown" @@ -1383,10 +1383,10 @@ msgid "Max Posts Per Page" msgstr "Máximo de publicaciones por página" #: lib/bds/desktop/menu_bar.ex:168 -#: lib/bds/desktop/shell_live/media_editor.ex:498 -#: lib/bds/desktop/shell_live/media_editor.ex:502 -#: lib/bds/desktop/shell_live/misc_editor.ex:749 -#: lib/bds/desktop/shell_live/misc_editor.ex:776 +#: lib/bds/desktop/shell_live/media_editor.ex:509 +#: lib/bds/desktop/shell_live/media_editor.ex:513 +#: lib/bds/desktop/shell_live/misc_editor.ex:735 +#: 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/ui/registry.ex:30 @@ -1401,7 +1401,7 @@ msgstr "Medios" msgid "Media (%{count})" msgstr "Medios (%{count})" -#: lib/bds/desktop/shell_live/media_editor.ex:498 +#: lib/bds/desktop/shell_live/media_editor.ex:509 #, elixir-autogen, elixir-format msgid "Media saved" msgstr "Medio guardado" @@ -1428,9 +1428,9 @@ msgid "Metadata" msgstr "Metadatos" #: lib/bds/desktop/menu_bar.ex:185 -#: lib/bds/desktop/shell_live/misc_editor.ex:228 -#: lib/bds/desktop/shell_live/misc_editor.ex:240 -#: lib/bds/desktop/shell_live/misc_editor.ex:462 +#: 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/ui/registry.ex:111 #, elixir-autogen, elixir-format msgid "Metadata Diff" @@ -1532,7 +1532,7 @@ msgstr "Ninguna carpeta seleccionada" msgid "No git history yet" msgstr "Aún no hay historial de Git" -#: lib/bds/desktop/shell_live/misc_editor.ex:473 +#: lib/bds/desktop/shell_live/misc_editor.ex:459 #: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333 @@ -1572,12 +1572,12 @@ msgstr "No hay entradas coincidentes" msgid "No media files" msgstr "No hay archivos multimedia" -#: lib/bds/desktop/shell_live/misc_editor.ex:592 +#: lib/bds/desktop/shell_live/misc_editor.ex:578 #, elixir-autogen, elixir-format msgid "No metadata diff items selected" msgstr "No hay elementos del diff de metadatos seleccionados" -#: lib/bds/desktop/shell_live/misc_editor.ex:621 +#: lib/bds/desktop/shell_live/misc_editor.ex:607 #, elixir-autogen, elixir-format msgid "No orphan files selected" msgstr "No hay archivos huérfanos seleccionados" @@ -1602,7 +1602,7 @@ msgstr "No hay publicaciones para enlazar" msgid "No posts yet" msgstr "Aún no hay entradas" -#: lib/bds/desktop/shell_live/misc_editor.ex:589 +#: lib/bds/desktop/shell_live/misc_editor.ex:575 #, elixir-autogen, elixir-format msgid "No repair action available" msgstr "No hay ninguna acción de reparación disponible" @@ -1627,7 +1627,7 @@ msgstr "No se encontraron etiquetas" msgid "No translations" msgstr "Sin traducciones" -#: lib/bds/desktop/shell_live/misc_editor.ex:567 +#: lib/bds/desktop/shell_live/misc_editor.ex:553 #, elixir-autogen, elixir-format msgid "No unstaged changes" msgstr "Sin cambios no preparados" @@ -1804,7 +1804,7 @@ msgstr "Otros" msgid "Other (%{count})" msgstr "Otros (%{count})" -#: lib/bds/desktop/shell_live.ex:715 +#: lib/bds/desktop/shell_live.ex:717 #: lib/bds/desktop/shell_live/panel_renderer.ex:83 #, elixir-autogen, elixir-format msgid "Output" @@ -1842,7 +1842,7 @@ msgstr "Páginas" msgid "Pages (%{count})" msgstr "Páginas (%{count})" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 #, elixir-autogen, elixir-format msgid "Pair dismissed" msgstr "Par descartado" @@ -1868,17 +1868,17 @@ msgstr "Ruta" msgid "Persist the detected language for this media item" msgstr "Guardar el idioma detectado para este medio" -#: lib/bds/desktop/shell_live/misc_editor.ex:747 -#: lib/bds/desktop/shell_live/post_editor.ex:529 -#: lib/bds/desktop/shell_live/post_editor.ex:533 -#: lib/bds/desktop/shell_live/post_editor.ex:572 -#: lib/bds/desktop/shell_live/post_editor.ex:576 -#: lib/bds/desktop/shell_live/post_editor.ex:614 -#: lib/bds/desktop/shell_live/post_editor.ex:629 -#: lib/bds/desktop/shell_live/post_editor.ex:658 -#: lib/bds/desktop/shell_live/post_editor.ex:661 -#: lib/bds/desktop/shell_live/post_editor.ex:741 -#: lib/bds/desktop/shell_live/post_editor.ex:744 +#: lib/bds/desktop/shell_live/misc_editor.ex:733 +#: lib/bds/desktop/shell_live/post_editor.ex:537 +#: lib/bds/desktop/shell_live/post_editor.ex:541 +#: lib/bds/desktop/shell_live/post_editor.ex:580 +#: lib/bds/desktop/shell_live/post_editor.ex:584 +#: lib/bds/desktop/shell_live/post_editor.ex:622 +#: lib/bds/desktop/shell_live/post_editor.ex:637 +#: lib/bds/desktop/shell_live/post_editor.ex:666 +#: lib/bds/desktop/shell_live/post_editor.ex:669 +#: lib/bds/desktop/shell_live/post_editor.ex:749 +#: lib/bds/desktop/shell_live/post_editor.ex:752 #: lib/bds/desktop/shell_live/sidebar_components.ex:651 #: lib/bds/desktop/shell_live/sidebar_delete.ex:174 #: lib/bds/ui/registry.ex:99 @@ -1903,24 +1903,24 @@ msgstr "Conflictos de slug de publicaciones" msgid "Post Template" msgstr "Plantilla de publicación" -#: lib/bds/desktop/shell_live/misc_editor.ex:315 +#: lib/bds/desktop/shell_live/misc_editor.ex:301 #, elixir-autogen, elixir-format msgid "Post is marked as do-not-translate but has translations" msgstr "La entrada está marcada como no-traducir pero tiene traducciones" -#: lib/bds/desktop/shell_live/post_editor.ex:572 +#: lib/bds/desktop/shell_live/post_editor.ex:580 #, elixir-autogen, elixir-format msgid "Post published" msgstr "Artículo publicado" -#: lib/bds/desktop/shell_live/post_editor.ex:529 +#: lib/bds/desktop/shell_live/post_editor.ex:537 #, elixir-autogen, elixir-format msgid "Post saved" msgstr "Artículo guardado" #: lib/bds/desktop/menu_bar.ex:167 -#: lib/bds/desktop/shell_live/misc_editor.ex:678 -#: lib/bds/desktop/shell_live/misc_editor.ex:775 +#: lib/bds/desktop/shell_live/misc_editor.ex:664 +#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/ui/registry.ex:14 #: lib/bds/ui/sidebar.ex:271 #, elixir-autogen, elixir-format @@ -1937,7 +1937,7 @@ msgstr "Publicaciones (%{count})" msgid "Preferences" msgstr "Preferencias" -#: lib/bds/desktop/shell_live/post_editor.ex:1010 +#: lib/bds/desktop/shell_live/post_editor.ex:1040 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124 #, elixir-autogen, elixir-format msgid "Preview" @@ -1959,8 +1959,8 @@ msgid "Preview unavailable" msgstr "Vista previa no disponible" #: lib/bds/desktop/shell_live/index.html.heex:509 -#: lib/bds/desktop/shell_live/misc_editor.ex:753 -#: lib/bds/desktop/shell_live/misc_editor.ex:779 +#: lib/bds/desktop/shell_live/misc_editor.ex:739 +#: lib/bds/desktop/shell_live/misc_editor.ex:765 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27 #: lib/bds/ui/sidebar.ex:762 #, elixir-autogen, elixir-format @@ -2006,19 +2006,19 @@ msgid "Publish Selected" msgstr "Publicar seleccionados" #: lib/bds/desktop/shell_data.ex:181 -#: lib/bds/desktop/shell_live/post_editor.ex:1004 +#: lib/bds/desktop/shell_live/post_editor.ex:1034 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472 #: lib/bds/ui/sidebar.ex:324 #, elixir-autogen, elixir-format msgid "Published" msgstr "Publicado" -#: lib/bds/desktop/shell_live/misc_editor.ex:318 +#: lib/bds/desktop/shell_live/misc_editor.ex:304 #, elixir-autogen, elixir-format msgid "Published translation has content stuck in DB instead of filesystem" msgstr "Traducción publicada con contenido en la BD en lugar del sistema de archivos" -#: lib/bds/desktop/shell_live/misc_editor.ex:754 +#: lib/bds/desktop/shell_live/misc_editor.ex:740 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338 @@ -2105,8 +2105,8 @@ msgstr "Actualizar modelos sin conexión" msgid "Refresh Online Models" msgstr "Actualizar modelos en línea" -#: lib/bds/desktop/shell_live/media_editor.ex:368 -#: lib/bds/desktop/shell_live/media_editor.ex:377 +#: lib/bds/desktop/shell_live/media_editor.ex:379 +#: lib/bds/desktop/shell_live/media_editor.ex:388 #, elixir-autogen, elixir-format msgid "Refresh Translation" msgstr "Actualizar traducción" @@ -2162,19 +2162,19 @@ msgstr "Mostrar en listas" msgid "Replace" msgstr "Reemplazar" -#: lib/bds/desktop/shell_live/media_editor.ex:142 -#: lib/bds/desktop/shell_live/media_editor.ex:150 +#: lib/bds/desktop/shell_live/media_editor.ex:153 +#: lib/bds/desktop/shell_live/media_editor.ex:161 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:86 #, elixir-autogen, elixir-format msgid "Replace File" msgstr "Reemplazar archivo" -#: lib/bds/desktop/shell_live/media_editor.ex:116 +#: lib/bds/desktop/shell_live/media_editor.ex:127 #, elixir-autogen, elixir-format msgid "Replace Media File" msgstr "Reemplazar archivo de medios" -#: lib/bds/desktop/menu_bar.ex:197 +#: lib/bds/desktop/menu_bar.ex:198 #, elixir-autogen, elixir-format msgid "Report Issue" msgstr "Informar de problema" @@ -2204,7 +2204,7 @@ msgstr "Resolución" msgid "Result" msgstr "Resultado" -#: lib/bds/desktop/shell_live/post_editor.ex:1005 +#: lib/bds/desktop/shell_live/post_editor.ex:1035 #, elixir-autogen, elixir-format msgid "Reverted" msgstr "Revertido" @@ -2250,13 +2250,13 @@ msgstr "Modo SSH" msgid "Save" msgstr "Guardar" -#: lib/bds/desktop/shell_live/media_editor.ex:328 +#: lib/bds/desktop/shell_live/media_editor.ex:339 #, elixir-autogen, elixir-format msgid "Save Translation" msgstr "Guardar traducción" -#: lib/bds/desktop/shell_live/media_editor.ex:710 -#: lib/bds/desktop/shell_live/post_editor.ex:1003 +#: lib/bds/desktop/shell_live/media_editor.ex:730 +#: lib/bds/desktop/shell_live/post_editor.ex:1033 #, elixir-autogen, elixir-format msgid "Saved" msgstr "Guardado" @@ -2266,7 +2266,7 @@ msgstr "Guardado" msgid "Scanning entries..." msgstr "Escaneando entradas..." -#: lib/bds/desktop/shell_live/misc_editor.ex:751 +#: lib/bds/desktop/shell_live/misc_editor.ex:737 #: lib/bds/desktop/shell_live/sidebar_components.ex:657 #: lib/bds/desktop/shell_live/sidebar_delete.ex:176 #: lib/bds/ui/registry.ex:133 @@ -2294,7 +2294,7 @@ msgstr "Entorno de scripts" msgid "Scripting capabilities are configured at the application layer in the rewrite and do not expose runtime switching here." msgstr "Las capacidades de scripts se configuran en la capa de aplicación en la reescritura y no exponen aquí el cambio de entorno." -#: lib/bds/desktop/shell_live/misc_editor.ex:777 +#: lib/bds/desktop/shell_live/misc_editor.ex:763 #: lib/bds/desktop/shell_live/script_editor.ex:119 #: lib/bds/desktop/shell_live/script_editor.ex:124 #: lib/bds/desktop/shell_live/script_editor.ex:130 @@ -2399,7 +2399,7 @@ msgstr "Seleccionar un idioma de destino para este artículo" msgid "Select an existing category or press Enter to create a new archive entry" msgstr "Selecciona una categoría existente o pulsa Enter para crear una nueva entrada de archivo" -#: lib/bds/desktop/shell_live/misc_editor.ex:210 +#: lib/bds/desktop/shell_live/misc_editor.ex:196 #, elixir-autogen, elixir-format msgid "Selected pairs dismissed" msgstr "Pares seleccionados descartados" @@ -2433,9 +2433,7 @@ msgstr "Lado a lado" msgid "Site" msgstr "Sitio" -#: lib/bds/desktop/shell_live/misc_editor.ex:95 -#: lib/bds/desktop/shell_live/misc_editor.ex:105 -#: lib/bds/desktop/shell_live/misc_editor.ex:426 +#: lib/bds/desktop/shell_live/misc_editor.ex:412 #: lib/bds/ui/registry.ex:125 #, elixir-autogen, elixir-format msgid "Site Validation" @@ -2565,7 +2563,7 @@ msgstr "Nombre de la etiqueta" msgid "Tags" msgstr "Etiquetas" -#: lib/bds/desktop/shell_live.ex:714 +#: lib/bds/desktop/shell_live.ex:716 #: lib/bds/desktop/shell_live/panel_renderer.ex:54 #, elixir-autogen, elixir-format msgid "Tasks" @@ -2577,7 +2575,7 @@ msgstr "Tareas" msgid "Technology" msgstr "Tecnología" -#: lib/bds/desktop/shell_live/misc_editor.ex:752 +#: lib/bds/desktop/shell_live/misc_editor.ex:738 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299 #: lib/bds/desktop/shell_live/sidebar_components.ex:660 #: lib/bds/desktop/shell_live/sidebar_delete.ex:179 @@ -2601,7 +2599,7 @@ msgstr "Plantilla guardada" msgid "Template syntax is valid" msgstr "La sintaxis de la plantilla es válida" -#: lib/bds/desktop/shell_live/misc_editor.ex:778 +#: lib/bds/desktop/shell_live/misc_editor.ex:764 #: lib/bds/desktop/shell_live/template_editor.ex:111 #: lib/bds/desktop/shell_live/template_editor.ex:116 #: lib/bds/desktop/shell_live/template_editor.ex:121 @@ -2725,39 +2723,35 @@ msgstr "Alternar panel" msgid "Toggle sidebar" msgstr "Alternar barra lateral" -#: lib/bds/desktop/shell_live/media_editor.ex:352 -#: lib/bds/desktop/shell_live/media_editor.ex:545 -#: lib/bds/desktop/shell_live/media_editor.ex:566 -#: lib/bds/desktop/shell_live/media_editor.ex:571 +#: lib/bds/desktop/shell_live/media_editor.ex:363 +#: lib/bds/desktop/shell_live/media_editor.ex:556 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76 -#: lib/bds/desktop/shell_live/post_editor.ex:803 -#: lib/bds/desktop/shell_live/post_editor.ex:832 -#: lib/bds/desktop/shell_live/post_editor.ex:837 +#: lib/bds/desktop/shell_live/post_editor.ex:811 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60 #, elixir-autogen, elixir-format msgid "Translate" msgstr "Traducir" +#: lib/bds/desktop/shell_live/misc_editor.ex:105 #: lib/bds/desktop/shell_live/misc_editor.ex:119 -#: lib/bds/desktop/shell_live/misc_editor.ex:133 -#: lib/bds/desktop/shell_live/misc_editor.ex:482 +#: lib/bds/desktop/shell_live/misc_editor.ex:468 #, elixir-autogen, elixir-format msgid "Translation Validation" msgstr "Validación de traducciones" -#: lib/bds/desktop/shell_live/misc_editor.ex:312 +#: lib/bds/desktop/shell_live/misc_editor.ex:298 #, elixir-autogen, elixir-format msgid "Translation language matches canonical post language" msgstr "El idioma de la traducción coincide con el idioma canónico de la entrada" -#: lib/bds/desktop/shell_live/misc_editor.ex:321 +#: lib/bds/desktop/shell_live/misc_editor.ex:307 #, elixir-autogen, elixir-format msgid "Translation points to a missing source post" msgstr "La traducción apunta a una entrada de origen inexistente" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:183 -#: lib/bds/desktop/shell_live/misc_editor.ex:748 -#: lib/bds/desktop/shell_live/misc_editor.ex:750 +#: lib/bds/desktop/shell_live/misc_editor.ex:734 +#: lib/bds/desktop/shell_live/misc_editor.ex:736 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:129 #: lib/bds/ui/registry.ex:131 #, elixir-autogen, elixir-format @@ -2802,14 +2796,14 @@ msgstr "Deshacer" msgid "Unknown" msgstr "Desconocido" -#: lib/bds/desktop/shell_live/media_editor.ex:269 +#: lib/bds/desktop/shell_live/media_editor.ex:280 #, elixir-autogen, elixir-format msgid "Unlink from Post" msgstr "Desvincular del artículo" -#: lib/bds/desktop/shell_live/media_editor.ex:709 +#: lib/bds/desktop/shell_live/media_editor.ex:729 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10 -#: lib/bds/desktop/shell_live/post_editor.ex:1002 +#: lib/bds/desktop/shell_live/post_editor.ex:1032 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7 #, elixir-autogen, elixir-format msgid "Unsaved" @@ -2841,7 +2835,7 @@ msgstr "Actualizado" msgid "Updated URLs" msgstr "URLs actualizadas" -#: lib/bds/desktop/menu_bar.ex:192 +#: lib/bds/desktop/menu_bar.ex:193 #, elixir-autogen, elixir-format msgid "Upload Site" msgstr "Subir sitio" @@ -2868,7 +2862,7 @@ msgstr "Nombre de usuario" msgid "Validate" msgstr "Validar" -#: lib/bds/desktop/menu_bar.ex:191 +#: lib/bds/desktop/menu_bar.ex:192 #, elixir-autogen, elixir-format msgid "Validate Site" msgstr "Validar sitio" @@ -2878,17 +2872,12 @@ msgstr "Validar sitio" msgid "Validate Translations" msgstr "Validar traducciones" -#: lib/bds/desktop/shell_live/misc_editor.ex:96 -#, elixir-autogen, elixir-format -msgid "Validation changes applied" -msgstr "Correcciones de validación aplicadas" - #: lib/bds/desktop/menu_bar.ex:146 #, elixir-autogen, elixir-format msgid "View" msgstr "Ver" -#: lib/bds/desktop/menu_bar.ex:196 +#: lib/bds/desktop/menu_bar.ex:197 #, elixir-autogen, elixir-format msgid "View on GitHub" msgstr "Ver en GitHub" @@ -3259,12 +3248,12 @@ msgstr "Bienvenido al asistente de IA" msgid "Comparing database and filesystem metadata" msgstr "Comparando metadatos de la base de datos y del sistema de archivos" -#: lib/bds/desktop/shell_live.ex:648 +#: lib/bds/desktop/shell_live.ex:650 #, elixir-autogen, elixir-format msgid "Added %{count} images to post" msgstr "%{count} imágenes añadidas a la publicación" -#: lib/bds/desktop/shell_live.ex:616 +#: lib/bds/desktop/shell_live.ex:618 #, elixir-autogen, elixir-format msgid "Added %{title}" msgstr "%{title} añadido" @@ -3284,18 +3273,18 @@ msgstr "Guía del usuario para flujos editoriales, medios, plantillas, traducci msgid "Image Import Concurrency" msgstr "Importación simultánea de imágenes" -#: lib/bds/desktop/shell_live.ex:421 -#: lib/bds/desktop/shell_live.ex:434 -#: lib/bds/desktop/shell_live.ex:615 -#: lib/bds/desktop/shell_live.ex:647 -#: lib/bds/desktop/shell_live.ex:658 -#: lib/bds/desktop/shell_live.ex:669 +#: lib/bds/desktop/shell_live.ex:423 +#: lib/bds/desktop/shell_live.ex:436 +#: lib/bds/desktop/shell_live.ex:617 +#: lib/bds/desktop/shell_live.ex:649 +#: lib/bds/desktop/shell_live.ex:660 +#: lib/bds/desktop/shell_live.ex:671 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420 #, elixir-autogen, elixir-format msgid "Add Gallery Images" msgstr "Añadir imágenes a la galería" -#: lib/bds/desktop/shell_live.ex:670 +#: lib/bds/desktop/shell_live.ex:672 #, elixir-autogen, elixir-format msgid "Failed to process %{path}: %{reason}" msgstr "No se pudo procesar %{path}: %{reason}" @@ -3310,12 +3299,12 @@ msgstr "Archivar" msgid "Move this post to the archive" msgstr "Mover este artículo al archivo" -#: lib/bds/desktop/shell_live/post_editor.ex:658 +#: lib/bds/desktop/shell_live/post_editor.ex:666 #, elixir-autogen, elixir-format msgid "Post archived" msgstr "Artículo archivado" -#: lib/bds/desktop/shell_live/post_editor.ex:741 +#: lib/bds/desktop/shell_live/post_editor.ex:749 #, elixir-autogen, elixir-format msgid "Post unarchived" msgstr "Artículo restaurado" @@ -3484,28 +3473,28 @@ msgstr "renombrado" msgid "untracked" msgstr "sin seguimiento" -#: lib/bds/desktop/shell_live.ex:740 +#: lib/bds/desktop/shell_live.ex:742 #, elixir-autogen, elixir-format msgid "Blogmark" msgstr "Blogmark" -#: lib/bds/desktop/shell_live.ex:783 +#: lib/bds/desktop/shell_live.ex:785 #, elixir-autogen, elixir-format msgid "Open a project before importing a blogmark." msgstr "Abre un proyecto antes de importar un blogmark." -#: lib/bds/desktop/shell_live/post_editor.ex:684 +#: lib/bds/desktop/shell_live/post_editor.ex:692 #, elixir-autogen, elixir-format msgid "Added %{name}" msgstr "%{name} añadido" -#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:699 #, elixir-autogen, elixir-format msgid "Failed to import %{path}: %{reason}" msgstr "No se pudo importar %{path}: %{reason}" -#: lib/bds/desktop/shell_live/post_editor.ex:683 -#: lib/bds/desktop/shell_live/post_editor.ex:690 +#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:698 #, elixir-autogen, elixir-format msgid "Insert Image" msgstr "Insertar imagen" @@ -3530,7 +3519,7 @@ msgstr "Eliminar" msgid "Failed to copy bookmarklet to clipboard" msgstr "Error al copiar el bookmarklet al portapapeles" -#: lib/bds/desktop/shell_live.ex:752 +#: lib/bds/desktop/shell_live.ex:754 #, elixir-autogen, elixir-format msgid "The project this blogmark targets does not exist here." msgstr "El proyecto al que apunta este blogmark no existe aquí." @@ -3539,3 +3528,8 @@ msgstr "El proyecto al que apunta este blogmark no existe aquí." #, elixir-autogen, elixir-format msgid "Suggested tags" msgstr "Etiquetas sugeridas" + +#: lib/bds/desktop/menu_bar.ex:191 +#, elixir-autogen, elixir-format +msgid "Force Render Site" +msgstr "Forzar la regeneración del sitio" diff --git a/priv/gettext/fr/LC_MESSAGES/ui.po b/priv/gettext/fr/LC_MESSAGES/ui.po index 72b909d..f5371e6 100644 --- a/priv/gettext/fr/LC_MESSAGES/ui.po +++ b/priv/gettext/fr/LC_MESSAGES/ui.po @@ -1,4 +1,4 @@ -#: lib/bds/desktop/shell_live/misc_editor.ex:333 +#: lib/bds/desktop/shell_live/misc_editor.ex:319 #, elixir-autogen, elixir-format msgid "%{canonical} = %{translation}" msgstr "%{canonical} = %{translation}" @@ -79,7 +79,7 @@ msgstr "Paramètres IA" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42 #: lib/bds/desktop/shell_live/overlay_manager.ex:72 -#: lib/bds/desktop/shell_live/post_editor.ex:888 +#: lib/bds/desktop/shell_live/post_editor.ex:918 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #, elixir-autogen, elixir-format msgid "AI Suggestions" @@ -105,12 +105,12 @@ msgstr "L’IA suggère des correspondances entre nouveaux éléments et éléme msgid "API" msgstr "API" -#: lib/bds/desktop/menu_bar.ex:195 +#: lib/bds/desktop/menu_bar.ex:196 #, elixir-autogen, elixir-format msgid "API Documentation" msgstr "Documentation API" -#: lib/bds/desktop/menu_bar.ex:193 +#: lib/bds/desktop/menu_bar.ex:194 #, elixir-autogen, elixir-format msgid "About" msgstr "À propos" @@ -337,14 +337,14 @@ msgid "Auto" msgstr "Automatique" #: lib/bds/desktop/shell_data.ex:98 -#: lib/bds/desktop/shell_live.ex:422 +#: lib/bds/desktop/shell_live.ex:424 #: lib/bds/desktop/shell_live/chat_editor.ex:234 -#: lib/bds/desktop/shell_live/media_editor.ex:160 -#: lib/bds/desktop/shell_live/media_editor.ex:353 -#: lib/bds/desktop/shell_live/media_editor.ex:546 +#: lib/bds/desktop/shell_live/media_editor.ex:171 +#: lib/bds/desktop/shell_live/media_editor.ex:364 +#: lib/bds/desktop/shell_live/media_editor.ex:557 #: lib/bds/desktop/shell_live/overlay_manager.ex:73 -#: lib/bds/desktop/shell_live/post_editor.ex:755 -#: lib/bds/desktop/shell_live/post_editor.ex:804 +#: lib/bds/desktop/shell_live/post_editor.ex:763 +#: lib/bds/desktop/shell_live/post_editor.ex:812 #, elixir-autogen, elixir-format msgid "Automatic AI actions stay gated by airplane mode." msgstr "Les actions IA automatiques restent bloquées par le mode avion." @@ -447,8 +447,8 @@ msgstr "Legende" #: lib/bds/desktop/shell_live/import_editor.ex:1024 #: lib/bds/desktop/shell_live/import_editor.ex:1188 #: lib/bds/desktop/shell_live/index.html.heex:336 -#: lib/bds/desktop/shell_live/misc_editor.ex:755 -#: lib/bds/desktop/shell_live/misc_editor.ex:756 +#: lib/bds/desktop/shell_live/misc_editor.ex:741 +#: lib/bds/desktop/shell_live/misc_editor.ex:742 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75 @@ -486,7 +486,7 @@ msgstr "Valeurs par défaut des catégories, options de rendu et liaison des mod msgid "Category name is required" msgstr "Le nom de la catégorie est requis" -#: lib/bds/desktop/shell_live.ex:719 +#: lib/bds/desktop/shell_live.ex:721 #: lib/bds/desktop/shell_live/chat_editor.ex:87 #: lib/bds/desktop/shell_live/chat_editor.ex:233 #: lib/bds/desktop/shell_live/chat_editor.ex:323 @@ -506,7 +506,7 @@ msgstr "Chat" msgid "Check Syntax" msgstr "Vérifier la syntaxe" -#: lib/bds/desktop/shell_live/misc_editor.ex:486 +#: lib/bds/desktop/shell_live/misc_editor.ex:472 #, elixir-autogen, elixir-format msgid "Checked DB rows: %{dbRows} · Checked files: %{files} · Invalid DB rows: %{invalidDb} · Invalid files: %{invalidFiles}" msgstr "Lignes BD vérifiées : %{dbRows} · Fichiers vérifiés : %{files} · Lignes BD invalides : %{invalidDb} · Fichiers invalides : %{invalidFiles}" @@ -742,7 +742,7 @@ msgstr "Supprimer" msgid "Delete Media" msgstr "Supprimer le media" -#: lib/bds/desktop/shell_live/media_editor.ex:396 +#: lib/bds/desktop/shell_live/media_editor.ex:407 #, elixir-autogen, elixir-format msgid "Delete Translation" msgstr "Supprimer la traduction" @@ -758,7 +758,7 @@ msgstr "Supprimer la conversation" msgid "Delete this unpublished draft" msgstr "Supprimer ce brouillon non publié" -#: lib/bds/desktop/shell_live/misc_editor.ex:120 +#: lib/bds/desktop/shell_live/misc_editor.ex:106 #, elixir-autogen, elixir-format msgid "Deleted %{dbRows} DB rows and %{files} files, flushed %{flushed} translations to disk" msgstr "%{dbRows} lignes DB et %{files} fichiers supprimés, %{flushed} traductions écrites sur disque" @@ -783,14 +783,14 @@ msgstr "Exécution bureau" msgid "Detect" msgstr "Détecter" -#: lib/bds/desktop/shell_live/media_editor.ex:159 -#: lib/bds/desktop/shell_live/media_editor.ex:198 -#: lib/bds/desktop/shell_live/media_editor.ex:203 +#: lib/bds/desktop/shell_live/media_editor.ex:170 #: lib/bds/desktop/shell_live/media_editor.ex:209 +#: lib/bds/desktop/shell_live/media_editor.ex:214 +#: lib/bds/desktop/shell_live/media_editor.ex:220 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59 -#: lib/bds/desktop/shell_live/post_editor.ex:754 -#: lib/bds/desktop/shell_live/post_editor.ex:783 -#: lib/bds/desktop/shell_live/post_editor.ex:789 +#: lib/bds/desktop/shell_live/post_editor.ex:762 +#: lib/bds/desktop/shell_live/post_editor.ex:791 +#: lib/bds/desktop/shell_live/post_editor.ex:797 #, elixir-autogen, elixir-format msgid "Detect Language" msgstr "Détecter la langue" @@ -861,7 +861,7 @@ msgstr "Texte affiche" msgid "Do Not Translate" msgstr "Ne pas traduire" -#: lib/bds/desktop/menu_bar.ex:194 +#: lib/bds/desktop/menu_bar.ex:195 #: lib/bds/help_docs.ex:14 #: lib/bds/ui/registry.ex:118 #, elixir-autogen, elixir-format @@ -921,8 +921,8 @@ msgstr "Éditeur" msgid "Editor Settings" msgstr "Paramètres de l'éditeur" -#: lib/bds/desktop/shell_live/misc_editor.ex:757 -#: lib/bds/desktop/shell_live/misc_editor.ex:780 +#: lib/bds/desktop/shell_live/misc_editor.ex:743 +#: lib/bds/desktop/shell_live/misc_editor.ex:766 #, elixir-autogen, elixir-format msgid "Embeddings" msgstr "Embeddings" @@ -1047,11 +1047,11 @@ msgstr "Rechercher" msgid "Find Duplicate Posts" msgstr "Trouver les doublons" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 -#: lib/bds/desktop/shell_live/misc_editor.ex:182 -#: lib/bds/desktop/shell_live/misc_editor.ex:209 -#: lib/bds/desktop/shell_live/misc_editor.ex:216 -#: lib/bds/desktop/shell_live/misc_editor.ex:503 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 +#: lib/bds/desktop/shell_live/misc_editor.ex:168 +#: lib/bds/desktop/shell_live/misc_editor.ex:195 +#: lib/bds/desktop/shell_live/misc_editor.ex:202 +#: lib/bds/desktop/shell_live/misc_editor.ex:489 #: lib/bds/ui/registry.ex:139 #, elixir-autogen, elixir-format msgid "Find Duplicates" @@ -1073,21 +1073,21 @@ msgstr "Galerie" msgid "Generate Site" msgstr "Générer le site" -#: lib/bds/desktop/shell_live.ex:720 +#: lib/bds/desktop/shell_live.ex:722 #: lib/bds/desktop/shell_live/socket_state.ex:109 #: lib/bds/ui/sidebar.ex:789 #, elixir-autogen, elixir-format msgid "Git" msgstr "Git" -#: lib/bds/desktop/shell_live/misc_editor.ex:560 +#: lib/bds/desktop/shell_live/misc_editor.ex:546 #: lib/bds/ui/registry.ex:113 #, elixir-autogen, elixir-format msgid "Git Diff" msgstr "Diff Git" #: lib/bds/desktop/shell_data.ex:244 -#: lib/bds/desktop/shell_live.ex:716 +#: lib/bds/desktop/shell_live.ex:718 #: lib/bds/desktop/shell_live/panel_renderer.ex:171 #, elixir-autogen, elixir-format msgid "Git Log" @@ -1115,8 +1115,8 @@ msgstr "Hôte" #: lib/bds/desktop/shell_data.ex:116 #: lib/bds/desktop/shell_live/index.html.heex:666 -#: lib/bds/desktop/shell_live/media_editor.ex:711 -#: lib/bds/desktop/shell_live/post_editor.ex:1006 +#: lib/bds/desktop/shell_live/media_editor.ex:731 +#: lib/bds/desktop/shell_live/post_editor.ex:1036 #, elixir-autogen, elixir-format msgid "Idle" msgstr "Inactif" @@ -1210,9 +1210,9 @@ msgstr "Définitions d’import" msgid "Import failed: %{error}" msgstr "Échec de l’import : %{error}" -#: lib/bds/desktop/shell_live.ex:572 -#: lib/bds/desktop/shell_live.ex:832 -#: lib/bds/desktop/shell_live.ex:838 +#: lib/bds/desktop/shell_live.ex:574 +#: lib/bds/desktop/shell_live.ex:834 +#: lib/bds/desktop/shell_live.ex:840 #: lib/bds/desktop/shell_live/sidebar_create.ex:47 #, elixir-autogen, elixir-format msgid "Import media" @@ -1286,8 +1286,8 @@ msgstr "Type" msgid "Language" msgstr "Langue" -#: lib/bds/desktop/shell_live/media_editor.ex:210 -#: lib/bds/desktop/shell_live/post_editor.ex:790 +#: lib/bds/desktop/shell_live/media_editor.ex:221 +#: lib/bds/desktop/shell_live/post_editor.ex:798 #, elixir-autogen, elixir-format msgid "Language detection failed." msgstr "La détection de la langue a échoué." @@ -1297,7 +1297,7 @@ msgstr "La détection de la langue a échoué." msgid "Light" msgstr "Clair" -#: lib/bds/desktop/shell_live/media_editor.ex:256 +#: lib/bds/desktop/shell_live/media_editor.ex:267 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:215 #, elixir-autogen, elixir-format msgid "Link to Post" @@ -1371,7 +1371,7 @@ msgstr "Mapper vers..." msgid "Mapped" msgstr "Mappé" -#: lib/bds/desktop/shell_live/post_editor.ex:1009 +#: lib/bds/desktop/shell_live/post_editor.ex:1039 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123 #, elixir-autogen, elixir-format msgid "Markdown" @@ -1383,10 +1383,10 @@ msgid "Max Posts Per Page" msgstr "Nombre maximal d’articles par page" #: lib/bds/desktop/menu_bar.ex:168 -#: lib/bds/desktop/shell_live/media_editor.ex:498 -#: lib/bds/desktop/shell_live/media_editor.ex:502 -#: lib/bds/desktop/shell_live/misc_editor.ex:749 -#: lib/bds/desktop/shell_live/misc_editor.ex:776 +#: lib/bds/desktop/shell_live/media_editor.ex:509 +#: lib/bds/desktop/shell_live/media_editor.ex:513 +#: lib/bds/desktop/shell_live/misc_editor.ex:735 +#: 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/ui/registry.ex:30 @@ -1401,7 +1401,7 @@ msgstr "Médias" msgid "Media (%{count})" msgstr "Médias (%{count})" -#: lib/bds/desktop/shell_live/media_editor.ex:498 +#: lib/bds/desktop/shell_live/media_editor.ex:509 #, elixir-autogen, elixir-format msgid "Media saved" msgstr "Média enregistré" @@ -1428,9 +1428,9 @@ msgid "Metadata" msgstr "Métadonnées" #: lib/bds/desktop/menu_bar.ex:185 -#: lib/bds/desktop/shell_live/misc_editor.ex:228 -#: lib/bds/desktop/shell_live/misc_editor.ex:240 -#: lib/bds/desktop/shell_live/misc_editor.ex:462 +#: 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/ui/registry.ex:111 #, elixir-autogen, elixir-format msgid "Metadata Diff" @@ -1532,7 +1532,7 @@ msgstr "Aucun dossier sélectionné" msgid "No git history yet" msgstr "Pas encore d'historique Git" -#: lib/bds/desktop/shell_live/misc_editor.ex:473 +#: lib/bds/desktop/shell_live/misc_editor.ex:459 #: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333 @@ -1572,12 +1572,12 @@ msgstr "Aucun article correspondant" msgid "No media files" msgstr "Aucun fichier média" -#: lib/bds/desktop/shell_live/misc_editor.ex:592 +#: lib/bds/desktop/shell_live/misc_editor.ex:578 #, elixir-autogen, elixir-format msgid "No metadata diff items selected" msgstr "Aucun élément du diff des métadonnées sélectionné" -#: lib/bds/desktop/shell_live/misc_editor.ex:621 +#: lib/bds/desktop/shell_live/misc_editor.ex:607 #, elixir-autogen, elixir-format msgid "No orphan files selected" msgstr "Aucun fichier orphelin sélectionné" @@ -1602,7 +1602,7 @@ msgstr "Aucun article à lier" msgid "No posts yet" msgstr "Aucun article pour le moment" -#: lib/bds/desktop/shell_live/misc_editor.ex:589 +#: lib/bds/desktop/shell_live/misc_editor.ex:575 #, elixir-autogen, elixir-format msgid "No repair action available" msgstr "Aucune action de réparation disponible" @@ -1627,7 +1627,7 @@ msgstr "Aucun mot-clé trouvé" msgid "No translations" msgstr "Aucune traduction" -#: lib/bds/desktop/shell_live/misc_editor.ex:567 +#: lib/bds/desktop/shell_live/misc_editor.ex:553 #, elixir-autogen, elixir-format msgid "No unstaged changes" msgstr "Aucune modification non indexée" @@ -1804,7 +1804,7 @@ msgstr "Autre" msgid "Other (%{count})" msgstr "Autres (%{count})" -#: lib/bds/desktop/shell_live.ex:715 +#: lib/bds/desktop/shell_live.ex:717 #: lib/bds/desktop/shell_live/panel_renderer.ex:83 #, elixir-autogen, elixir-format msgid "Output" @@ -1842,7 +1842,7 @@ msgstr "Pages" msgid "Pages (%{count})" msgstr "Pages (%{count})" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 #, elixir-autogen, elixir-format msgid "Pair dismissed" msgstr "Paire ignorée" @@ -1868,17 +1868,17 @@ msgstr "Chemin" msgid "Persist the detected language for this media item" msgstr "Enregistrer la langue détectée pour ce média" -#: lib/bds/desktop/shell_live/misc_editor.ex:747 -#: lib/bds/desktop/shell_live/post_editor.ex:529 -#: lib/bds/desktop/shell_live/post_editor.ex:533 -#: lib/bds/desktop/shell_live/post_editor.ex:572 -#: lib/bds/desktop/shell_live/post_editor.ex:576 -#: lib/bds/desktop/shell_live/post_editor.ex:614 -#: lib/bds/desktop/shell_live/post_editor.ex:629 -#: lib/bds/desktop/shell_live/post_editor.ex:658 -#: lib/bds/desktop/shell_live/post_editor.ex:661 -#: lib/bds/desktop/shell_live/post_editor.ex:741 -#: lib/bds/desktop/shell_live/post_editor.ex:744 +#: lib/bds/desktop/shell_live/misc_editor.ex:733 +#: lib/bds/desktop/shell_live/post_editor.ex:537 +#: lib/bds/desktop/shell_live/post_editor.ex:541 +#: lib/bds/desktop/shell_live/post_editor.ex:580 +#: lib/bds/desktop/shell_live/post_editor.ex:584 +#: lib/bds/desktop/shell_live/post_editor.ex:622 +#: lib/bds/desktop/shell_live/post_editor.ex:637 +#: lib/bds/desktop/shell_live/post_editor.ex:666 +#: lib/bds/desktop/shell_live/post_editor.ex:669 +#: lib/bds/desktop/shell_live/post_editor.ex:749 +#: lib/bds/desktop/shell_live/post_editor.ex:752 #: lib/bds/desktop/shell_live/sidebar_components.ex:651 #: lib/bds/desktop/shell_live/sidebar_delete.ex:174 #: lib/bds/ui/registry.ex:99 @@ -1903,24 +1903,24 @@ msgstr "Conflits de slug d’article" msgid "Post Template" msgstr "Modèle d’article" -#: lib/bds/desktop/shell_live/misc_editor.ex:315 +#: lib/bds/desktop/shell_live/misc_editor.ex:301 #, elixir-autogen, elixir-format msgid "Post is marked as do-not-translate but has translations" msgstr "L'article est marqué ne-pas-traduire mais a des traductions" -#: lib/bds/desktop/shell_live/post_editor.ex:572 +#: lib/bds/desktop/shell_live/post_editor.ex:580 #, elixir-autogen, elixir-format msgid "Post published" msgstr "Article publié" -#: lib/bds/desktop/shell_live/post_editor.ex:529 +#: lib/bds/desktop/shell_live/post_editor.ex:537 #, elixir-autogen, elixir-format msgid "Post saved" msgstr "Article enregistré" #: lib/bds/desktop/menu_bar.ex:167 -#: lib/bds/desktop/shell_live/misc_editor.ex:678 -#: lib/bds/desktop/shell_live/misc_editor.ex:775 +#: lib/bds/desktop/shell_live/misc_editor.ex:664 +#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/ui/registry.ex:14 #: lib/bds/ui/sidebar.ex:271 #, elixir-autogen, elixir-format @@ -1937,7 +1937,7 @@ msgstr "Articles (%{count})" msgid "Preferences" msgstr "Préférences" -#: lib/bds/desktop/shell_live/post_editor.ex:1010 +#: lib/bds/desktop/shell_live/post_editor.ex:1040 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124 #, elixir-autogen, elixir-format msgid "Preview" @@ -1959,8 +1959,8 @@ msgid "Preview unavailable" msgstr "Aperçu non disponible" #: lib/bds/desktop/shell_live/index.html.heex:509 -#: lib/bds/desktop/shell_live/misc_editor.ex:753 -#: lib/bds/desktop/shell_live/misc_editor.ex:779 +#: lib/bds/desktop/shell_live/misc_editor.ex:739 +#: lib/bds/desktop/shell_live/misc_editor.ex:765 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27 #: lib/bds/ui/sidebar.ex:762 #, elixir-autogen, elixir-format @@ -2006,19 +2006,19 @@ msgid "Publish Selected" msgstr "Publier la sélection" #: lib/bds/desktop/shell_data.ex:181 -#: lib/bds/desktop/shell_live/post_editor.ex:1004 +#: lib/bds/desktop/shell_live/post_editor.ex:1034 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472 #: lib/bds/ui/sidebar.ex:324 #, elixir-autogen, elixir-format msgid "Published" msgstr "Publié" -#: lib/bds/desktop/shell_live/misc_editor.ex:318 +#: lib/bds/desktop/shell_live/misc_editor.ex:304 #, elixir-autogen, elixir-format msgid "Published translation has content stuck in DB instead of filesystem" msgstr "Traduction publiée avec contenu encore en base au lieu du système de fichiers" -#: lib/bds/desktop/shell_live/misc_editor.ex:754 +#: lib/bds/desktop/shell_live/misc_editor.ex:740 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338 @@ -2105,8 +2105,8 @@ msgstr "Actualiser les modèles hors ligne" msgid "Refresh Online Models" msgstr "Actualiser les modèles en ligne" -#: lib/bds/desktop/shell_live/media_editor.ex:368 -#: lib/bds/desktop/shell_live/media_editor.ex:377 +#: lib/bds/desktop/shell_live/media_editor.ex:379 +#: lib/bds/desktop/shell_live/media_editor.ex:388 #, elixir-autogen, elixir-format msgid "Refresh Translation" msgstr "Actualiser la traduction" @@ -2162,19 +2162,19 @@ msgstr "Afficher dans les listes" msgid "Replace" msgstr "Remplacer" -#: lib/bds/desktop/shell_live/media_editor.ex:142 -#: lib/bds/desktop/shell_live/media_editor.ex:150 +#: lib/bds/desktop/shell_live/media_editor.ex:153 +#: lib/bds/desktop/shell_live/media_editor.ex:161 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:86 #, elixir-autogen, elixir-format msgid "Replace File" msgstr "Remplacer le fichier" -#: lib/bds/desktop/shell_live/media_editor.ex:116 +#: lib/bds/desktop/shell_live/media_editor.ex:127 #, elixir-autogen, elixir-format msgid "Replace Media File" msgstr "Remplacer le fichier média" -#: lib/bds/desktop/menu_bar.ex:197 +#: lib/bds/desktop/menu_bar.ex:198 #, elixir-autogen, elixir-format msgid "Report Issue" msgstr "Signaler un problème" @@ -2204,7 +2204,7 @@ msgstr "Résolution" msgid "Result" msgstr "Résultat" -#: lib/bds/desktop/shell_live/post_editor.ex:1005 +#: lib/bds/desktop/shell_live/post_editor.ex:1035 #, elixir-autogen, elixir-format msgid "Reverted" msgstr "Restauré" @@ -2250,13 +2250,13 @@ msgstr "Mode SSH" msgid "Save" msgstr "Enregistrer" -#: lib/bds/desktop/shell_live/media_editor.ex:328 +#: lib/bds/desktop/shell_live/media_editor.ex:339 #, elixir-autogen, elixir-format msgid "Save Translation" msgstr "Enregistrer la traduction" -#: lib/bds/desktop/shell_live/media_editor.ex:710 -#: lib/bds/desktop/shell_live/post_editor.ex:1003 +#: lib/bds/desktop/shell_live/media_editor.ex:730 +#: lib/bds/desktop/shell_live/post_editor.ex:1033 #, elixir-autogen, elixir-format msgid "Saved" msgstr "Enregistré" @@ -2266,7 +2266,7 @@ msgstr "Enregistré" msgid "Scanning entries..." msgstr "Analyse des entrées..." -#: lib/bds/desktop/shell_live/misc_editor.ex:751 +#: lib/bds/desktop/shell_live/misc_editor.ex:737 #: lib/bds/desktop/shell_live/sidebar_components.ex:657 #: lib/bds/desktop/shell_live/sidebar_delete.ex:176 #: lib/bds/ui/registry.ex:133 @@ -2294,7 +2294,7 @@ msgstr "Environnement de script" msgid "Scripting capabilities are configured at the application layer in the rewrite and do not expose runtime switching here." msgstr "Les capacités de script sont configurées au niveau de l’application dans la réécriture et n’exposent pas de changement d’environnement ici." -#: lib/bds/desktop/shell_live/misc_editor.ex:777 +#: lib/bds/desktop/shell_live/misc_editor.ex:763 #: lib/bds/desktop/shell_live/script_editor.ex:119 #: lib/bds/desktop/shell_live/script_editor.ex:124 #: lib/bds/desktop/shell_live/script_editor.ex:130 @@ -2399,7 +2399,7 @@ msgstr "Sélectionner une langue cible pour cet article" msgid "Select an existing category or press Enter to create a new archive entry" msgstr "Sélectionnez une catégorie existante ou appuyez sur Entrée pour créer une nouvelle entrée d’archive" -#: lib/bds/desktop/shell_live/misc_editor.ex:210 +#: lib/bds/desktop/shell_live/misc_editor.ex:196 #, elixir-autogen, elixir-format msgid "Selected pairs dismissed" msgstr "Paires sélectionnées ignorées" @@ -2433,9 +2433,7 @@ msgstr "Côte à côte" msgid "Site" msgstr "Site" -#: lib/bds/desktop/shell_live/misc_editor.ex:95 -#: lib/bds/desktop/shell_live/misc_editor.ex:105 -#: lib/bds/desktop/shell_live/misc_editor.ex:426 +#: lib/bds/desktop/shell_live/misc_editor.ex:412 #: lib/bds/ui/registry.ex:125 #, elixir-autogen, elixir-format msgid "Site Validation" @@ -2565,7 +2563,7 @@ msgstr "Nom du mot-clé" msgid "Tags" msgstr "Tags" -#: lib/bds/desktop/shell_live.ex:714 +#: lib/bds/desktop/shell_live.ex:716 #: lib/bds/desktop/shell_live/panel_renderer.ex:54 #, elixir-autogen, elixir-format msgid "Tasks" @@ -2577,7 +2575,7 @@ msgstr "Tâches" msgid "Technology" msgstr "Technologie" -#: lib/bds/desktop/shell_live/misc_editor.ex:752 +#: lib/bds/desktop/shell_live/misc_editor.ex:738 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299 #: lib/bds/desktop/shell_live/sidebar_components.ex:660 #: lib/bds/desktop/shell_live/sidebar_delete.ex:179 @@ -2601,7 +2599,7 @@ msgstr "Template enregistré" msgid "Template syntax is valid" msgstr "La syntaxe du template est valide" -#: lib/bds/desktop/shell_live/misc_editor.ex:778 +#: lib/bds/desktop/shell_live/misc_editor.ex:764 #: lib/bds/desktop/shell_live/template_editor.ex:111 #: lib/bds/desktop/shell_live/template_editor.ex:116 #: lib/bds/desktop/shell_live/template_editor.ex:121 @@ -2725,39 +2723,35 @@ msgstr "Afficher ou masquer le panneau" msgid "Toggle sidebar" msgstr "Afficher ou masquer la barre latérale" -#: lib/bds/desktop/shell_live/media_editor.ex:352 -#: lib/bds/desktop/shell_live/media_editor.ex:545 -#: lib/bds/desktop/shell_live/media_editor.ex:566 -#: lib/bds/desktop/shell_live/media_editor.ex:571 +#: lib/bds/desktop/shell_live/media_editor.ex:363 +#: lib/bds/desktop/shell_live/media_editor.ex:556 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76 -#: lib/bds/desktop/shell_live/post_editor.ex:803 -#: lib/bds/desktop/shell_live/post_editor.ex:832 -#: lib/bds/desktop/shell_live/post_editor.ex:837 +#: lib/bds/desktop/shell_live/post_editor.ex:811 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60 #, elixir-autogen, elixir-format msgid "Translate" msgstr "Traduire" +#: lib/bds/desktop/shell_live/misc_editor.ex:105 #: lib/bds/desktop/shell_live/misc_editor.ex:119 -#: lib/bds/desktop/shell_live/misc_editor.ex:133 -#: lib/bds/desktop/shell_live/misc_editor.ex:482 +#: lib/bds/desktop/shell_live/misc_editor.ex:468 #, elixir-autogen, elixir-format msgid "Translation Validation" msgstr "Validation des traductions" -#: lib/bds/desktop/shell_live/misc_editor.ex:312 +#: lib/bds/desktop/shell_live/misc_editor.ex:298 #, elixir-autogen, elixir-format msgid "Translation language matches canonical post language" msgstr "La langue de traduction correspond à la langue canonique de l’article" -#: lib/bds/desktop/shell_live/misc_editor.ex:321 +#: lib/bds/desktop/shell_live/misc_editor.ex:307 #, elixir-autogen, elixir-format msgid "Translation points to a missing source post" msgstr "La traduction pointe vers un article source manquant" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:183 -#: lib/bds/desktop/shell_live/misc_editor.ex:748 -#: lib/bds/desktop/shell_live/misc_editor.ex:750 +#: lib/bds/desktop/shell_live/misc_editor.ex:734 +#: lib/bds/desktop/shell_live/misc_editor.ex:736 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:129 #: lib/bds/ui/registry.ex:131 #, elixir-autogen, elixir-format @@ -2802,14 +2796,14 @@ msgstr "Annuler" msgid "Unknown" msgstr "Inconnu" -#: lib/bds/desktop/shell_live/media_editor.ex:269 +#: lib/bds/desktop/shell_live/media_editor.ex:280 #, elixir-autogen, elixir-format msgid "Unlink from Post" msgstr "Dissocier de l'article" -#: lib/bds/desktop/shell_live/media_editor.ex:709 +#: lib/bds/desktop/shell_live/media_editor.ex:729 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10 -#: lib/bds/desktop/shell_live/post_editor.ex:1002 +#: lib/bds/desktop/shell_live/post_editor.ex:1032 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7 #, elixir-autogen, elixir-format msgid "Unsaved" @@ -2841,7 +2835,7 @@ msgstr "Mis à jour" msgid "Updated URLs" msgstr "URLs mises à jour" -#: lib/bds/desktop/menu_bar.ex:192 +#: lib/bds/desktop/menu_bar.ex:193 #, elixir-autogen, elixir-format msgid "Upload Site" msgstr "Téléverser le site" @@ -2868,7 +2862,7 @@ msgstr "Nom d’utilisateur" msgid "Validate" msgstr "Valider" -#: lib/bds/desktop/menu_bar.ex:191 +#: lib/bds/desktop/menu_bar.ex:192 #, elixir-autogen, elixir-format msgid "Validate Site" msgstr "Valider le site" @@ -2878,17 +2872,12 @@ msgstr "Valider le site" msgid "Validate Translations" msgstr "Valider les traductions" -#: lib/bds/desktop/shell_live/misc_editor.ex:96 -#, elixir-autogen, elixir-format -msgid "Validation changes applied" -msgstr "Corrections de validation appliquées" - #: lib/bds/desktop/menu_bar.ex:146 #, elixir-autogen, elixir-format msgid "View" msgstr "Affichage" -#: lib/bds/desktop/menu_bar.ex:196 +#: lib/bds/desktop/menu_bar.ex:197 #, elixir-autogen, elixir-format msgid "View on GitHub" msgstr "Voir sur GitHub" @@ -3259,12 +3248,12 @@ msgstr "Bienvenue dans l’assistant IA" msgid "Comparing database and filesystem metadata" msgstr "Comparaison des métadonnées entre la base et le système de fichiers" -#: lib/bds/desktop/shell_live.ex:648 +#: lib/bds/desktop/shell_live.ex:650 #, elixir-autogen, elixir-format msgid "Added %{count} images to post" msgstr "%{count} images ajoutées à l'article" -#: lib/bds/desktop/shell_live.ex:616 +#: lib/bds/desktop/shell_live.ex:618 #, elixir-autogen, elixir-format msgid "Added %{title}" msgstr "%{title} ajouté" @@ -3284,18 +3273,18 @@ msgstr "Guide utilisateur pour les flux éditoriaux, médias, modèles, traducti msgid "Image Import Concurrency" msgstr "Importation simultanée d'images" -#: lib/bds/desktop/shell_live.ex:421 -#: lib/bds/desktop/shell_live.ex:434 -#: lib/bds/desktop/shell_live.ex:615 -#: lib/bds/desktop/shell_live.ex:647 -#: lib/bds/desktop/shell_live.ex:658 -#: lib/bds/desktop/shell_live.ex:669 +#: lib/bds/desktop/shell_live.ex:423 +#: lib/bds/desktop/shell_live.ex:436 +#: lib/bds/desktop/shell_live.ex:617 +#: lib/bds/desktop/shell_live.ex:649 +#: lib/bds/desktop/shell_live.ex:660 +#: lib/bds/desktop/shell_live.ex:671 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420 #, elixir-autogen, elixir-format msgid "Add Gallery Images" msgstr "Ajouter des images à la galerie" -#: lib/bds/desktop/shell_live.ex:670 +#: lib/bds/desktop/shell_live.ex:672 #, elixir-autogen, elixir-format msgid "Failed to process %{path}: %{reason}" msgstr "Impossible de traiter %{path} : %{reason}" @@ -3310,12 +3299,12 @@ msgstr "Archiver" msgid "Move this post to the archive" msgstr "Déplacer cet article dans les archives" -#: lib/bds/desktop/shell_live/post_editor.ex:658 +#: lib/bds/desktop/shell_live/post_editor.ex:666 #, elixir-autogen, elixir-format msgid "Post archived" msgstr "Article archivé" -#: lib/bds/desktop/shell_live/post_editor.ex:741 +#: lib/bds/desktop/shell_live/post_editor.ex:749 #, elixir-autogen, elixir-format msgid "Post unarchived" msgstr "Article désarchivé" @@ -3484,28 +3473,28 @@ msgstr "renommé" msgid "untracked" msgstr "non suivi" -#: lib/bds/desktop/shell_live.ex:740 +#: lib/bds/desktop/shell_live.ex:742 #, elixir-autogen, elixir-format msgid "Blogmark" msgstr "Blogmark" -#: lib/bds/desktop/shell_live.ex:783 +#: lib/bds/desktop/shell_live.ex:785 #, elixir-autogen, elixir-format msgid "Open a project before importing a blogmark." msgstr "Ouvrez un projet avant d’importer un blogmark." -#: lib/bds/desktop/shell_live/post_editor.ex:684 +#: lib/bds/desktop/shell_live/post_editor.ex:692 #, elixir-autogen, elixir-format msgid "Added %{name}" msgstr "%{name} ajouté" -#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:699 #, elixir-autogen, elixir-format msgid "Failed to import %{path}: %{reason}" msgstr "Échec de l'import de %{path} : %{reason}" -#: lib/bds/desktop/shell_live/post_editor.ex:683 -#: lib/bds/desktop/shell_live/post_editor.ex:690 +#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:698 #, elixir-autogen, elixir-format msgid "Insert Image" msgstr "Insérer une image" @@ -3530,7 +3519,7 @@ msgstr "Supprimer" msgid "Failed to copy bookmarklet to clipboard" msgstr "Échec de la copie du bookmarklet dans le presse-papiers" -#: lib/bds/desktop/shell_live.ex:752 +#: lib/bds/desktop/shell_live.ex:754 #, elixir-autogen, elixir-format msgid "The project this blogmark targets does not exist here." msgstr "Le projet ciblé par ce blogmark n'existe pas ici." @@ -3539,3 +3528,8 @@ msgstr "Le projet ciblé par ce blogmark n'existe pas ici." #, elixir-autogen, elixir-format msgid "Suggested tags" msgstr "Tags suggérés" + +#: lib/bds/desktop/menu_bar.ex:191 +#, elixir-autogen, elixir-format +msgid "Force Render Site" +msgstr "Forcer la régénération du site" diff --git a/priv/gettext/it/LC_MESSAGES/ui.po b/priv/gettext/it/LC_MESSAGES/ui.po index 5e8dd0c..8194f41 100644 --- a/priv/gettext/it/LC_MESSAGES/ui.po +++ b/priv/gettext/it/LC_MESSAGES/ui.po @@ -1,4 +1,4 @@ -#: lib/bds/desktop/shell_live/misc_editor.ex:333 +#: lib/bds/desktop/shell_live/misc_editor.ex:319 #, elixir-autogen, elixir-format msgid "%{canonical} = %{translation}" msgstr "%{canonical} = %{translation}" @@ -79,7 +79,7 @@ msgstr "Impostazioni IA" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:42 #: lib/bds/desktop/shell_live/overlay_manager.ex:72 -#: lib/bds/desktop/shell_live/post_editor.ex:888 +#: lib/bds/desktop/shell_live/post_editor.ex:918 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43 #, elixir-autogen, elixir-format msgid "AI Suggestions" @@ -105,12 +105,12 @@ msgstr "L’IA suggerirà mappature da elementi nuovi a quelli esistenti per evi msgid "API" msgstr "API" -#: lib/bds/desktop/menu_bar.ex:195 +#: lib/bds/desktop/menu_bar.ex:196 #, elixir-autogen, elixir-format msgid "API Documentation" msgstr "Documentazione API" -#: lib/bds/desktop/menu_bar.ex:193 +#: lib/bds/desktop/menu_bar.ex:194 #, elixir-autogen, elixir-format msgid "About" msgstr "Informazioni" @@ -337,14 +337,14 @@ msgid "Auto" msgstr "Automatico" #: lib/bds/desktop/shell_data.ex:98 -#: lib/bds/desktop/shell_live.ex:422 +#: lib/bds/desktop/shell_live.ex:424 #: lib/bds/desktop/shell_live/chat_editor.ex:234 -#: lib/bds/desktop/shell_live/media_editor.ex:160 -#: lib/bds/desktop/shell_live/media_editor.ex:353 -#: lib/bds/desktop/shell_live/media_editor.ex:546 +#: lib/bds/desktop/shell_live/media_editor.ex:171 +#: lib/bds/desktop/shell_live/media_editor.ex:364 +#: lib/bds/desktop/shell_live/media_editor.ex:557 #: lib/bds/desktop/shell_live/overlay_manager.ex:73 -#: lib/bds/desktop/shell_live/post_editor.ex:755 -#: lib/bds/desktop/shell_live/post_editor.ex:804 +#: lib/bds/desktop/shell_live/post_editor.ex:763 +#: lib/bds/desktop/shell_live/post_editor.ex:812 #, elixir-autogen, elixir-format msgid "Automatic AI actions stay gated by airplane mode." msgstr "Le azioni IA automatiche restano bloccate dalla modalità aereo." @@ -447,8 +447,8 @@ msgstr "Didascalia" #: lib/bds/desktop/shell_live/import_editor.ex:1024 #: lib/bds/desktop/shell_live/import_editor.ex:1188 #: lib/bds/desktop/shell_live/index.html.heex:336 -#: lib/bds/desktop/shell_live/misc_editor.ex:755 -#: lib/bds/desktop/shell_live/misc_editor.ex:756 +#: lib/bds/desktop/shell_live/misc_editor.ex:741 +#: lib/bds/desktop/shell_live/misc_editor.ex:742 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:256 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:59 #: lib/bds/desktop/shell_live/settings_editor/managed_categories.ex:75 @@ -486,7 +486,7 @@ msgstr "Valori predefiniti delle categorie, opzioni di rendering e collegamento msgid "Category name is required" msgstr "Il nome della categoria è obbligatorio" -#: lib/bds/desktop/shell_live.ex:719 +#: lib/bds/desktop/shell_live.ex:721 #: lib/bds/desktop/shell_live/chat_editor.ex:87 #: lib/bds/desktop/shell_live/chat_editor.ex:233 #: lib/bds/desktop/shell_live/chat_editor.ex:323 @@ -506,7 +506,7 @@ msgstr "Chat" msgid "Check Syntax" msgstr "Controlla sintassi" -#: lib/bds/desktop/shell_live/misc_editor.ex:486 +#: lib/bds/desktop/shell_live/misc_editor.ex:472 #, elixir-autogen, elixir-format msgid "Checked DB rows: %{dbRows} · Checked files: %{files} · Invalid DB rows: %{invalidDb} · Invalid files: %{invalidFiles}" msgstr "Righe DB controllate: %{dbRows} · File controllati: %{files} · Righe DB non valide: %{invalidDb} · File non validi: %{invalidFiles}" @@ -742,7 +742,7 @@ msgstr "Elimina" msgid "Delete Media" msgstr "Elimina media" -#: lib/bds/desktop/shell_live/media_editor.ex:396 +#: lib/bds/desktop/shell_live/media_editor.ex:407 #, elixir-autogen, elixir-format msgid "Delete Translation" msgstr "Elimina traduzione" @@ -758,7 +758,7 @@ msgstr "Elimina conversazione" msgid "Delete this unpublished draft" msgstr "Elimina questa bozza non pubblicata" -#: lib/bds/desktop/shell_live/misc_editor.ex:120 +#: lib/bds/desktop/shell_live/misc_editor.ex:106 #, elixir-autogen, elixir-format msgid "Deleted %{dbRows} DB rows and %{files} files, flushed %{flushed} translations to disk" msgstr "%{dbRows} righe DB e %{files} file eliminati, %{flushed} traduzioni scritte su disco" @@ -783,14 +783,14 @@ msgstr "Runtime desktop" msgid "Detect" msgstr "Rileva" -#: lib/bds/desktop/shell_live/media_editor.ex:159 -#: lib/bds/desktop/shell_live/media_editor.ex:198 -#: lib/bds/desktop/shell_live/media_editor.ex:203 +#: lib/bds/desktop/shell_live/media_editor.ex:170 #: lib/bds/desktop/shell_live/media_editor.ex:209 +#: lib/bds/desktop/shell_live/media_editor.ex:214 +#: lib/bds/desktop/shell_live/media_editor.ex:220 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59 -#: lib/bds/desktop/shell_live/post_editor.ex:754 -#: lib/bds/desktop/shell_live/post_editor.ex:783 -#: lib/bds/desktop/shell_live/post_editor.ex:789 +#: lib/bds/desktop/shell_live/post_editor.ex:762 +#: lib/bds/desktop/shell_live/post_editor.ex:791 +#: lib/bds/desktop/shell_live/post_editor.ex:797 #, elixir-autogen, elixir-format msgid "Detect Language" msgstr "Rileva lingua" @@ -861,7 +861,7 @@ msgstr "Testo visualizzato" msgid "Do Not Translate" msgstr "Non tradurre" -#: lib/bds/desktop/menu_bar.ex:194 +#: lib/bds/desktop/menu_bar.ex:195 #: lib/bds/help_docs.ex:14 #: lib/bds/ui/registry.ex:118 #, elixir-autogen, elixir-format @@ -921,8 +921,8 @@ msgstr "Editor" msgid "Editor Settings" msgstr "Impostazioni editor" -#: lib/bds/desktop/shell_live/misc_editor.ex:757 -#: lib/bds/desktop/shell_live/misc_editor.ex:780 +#: lib/bds/desktop/shell_live/misc_editor.ex:743 +#: lib/bds/desktop/shell_live/misc_editor.ex:766 #, elixir-autogen, elixir-format msgid "Embeddings" msgstr "Embeddings" @@ -1047,11 +1047,11 @@ msgstr "Trova" msgid "Find Duplicate Posts" msgstr "Trova post duplicati" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 -#: lib/bds/desktop/shell_live/misc_editor.ex:182 -#: lib/bds/desktop/shell_live/misc_editor.ex:209 -#: lib/bds/desktop/shell_live/misc_editor.ex:216 -#: lib/bds/desktop/shell_live/misc_editor.ex:503 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 +#: lib/bds/desktop/shell_live/misc_editor.ex:168 +#: lib/bds/desktop/shell_live/misc_editor.ex:195 +#: lib/bds/desktop/shell_live/misc_editor.ex:202 +#: lib/bds/desktop/shell_live/misc_editor.ex:489 #: lib/bds/ui/registry.ex:139 #, elixir-autogen, elixir-format msgid "Find Duplicates" @@ -1073,21 +1073,21 @@ msgstr "Galleria" msgid "Generate Site" msgstr "Genera sito" -#: lib/bds/desktop/shell_live.ex:720 +#: lib/bds/desktop/shell_live.ex:722 #: lib/bds/desktop/shell_live/socket_state.ex:109 #: lib/bds/ui/sidebar.ex:789 #, elixir-autogen, elixir-format msgid "Git" msgstr "Git" -#: lib/bds/desktop/shell_live/misc_editor.ex:560 +#: lib/bds/desktop/shell_live/misc_editor.ex:546 #: lib/bds/ui/registry.ex:113 #, elixir-autogen, elixir-format msgid "Git Diff" msgstr "Diff Git" #: lib/bds/desktop/shell_data.ex:244 -#: lib/bds/desktop/shell_live.ex:716 +#: lib/bds/desktop/shell_live.ex:718 #: lib/bds/desktop/shell_live/panel_renderer.ex:171 #, elixir-autogen, elixir-format msgid "Git Log" @@ -1115,8 +1115,8 @@ msgstr "Host" #: lib/bds/desktop/shell_data.ex:116 #: lib/bds/desktop/shell_live/index.html.heex:666 -#: lib/bds/desktop/shell_live/media_editor.ex:711 -#: lib/bds/desktop/shell_live/post_editor.ex:1006 +#: lib/bds/desktop/shell_live/media_editor.ex:731 +#: lib/bds/desktop/shell_live/post_editor.ex:1036 #, elixir-autogen, elixir-format msgid "Idle" msgstr "Inattivo" @@ -1210,9 +1210,9 @@ msgstr "Definizioni di importazione" msgid "Import failed: %{error}" msgstr "Importazione non riuscita: %{error}" -#: lib/bds/desktop/shell_live.ex:572 -#: lib/bds/desktop/shell_live.ex:832 -#: lib/bds/desktop/shell_live.ex:838 +#: lib/bds/desktop/shell_live.ex:574 +#: lib/bds/desktop/shell_live.ex:834 +#: lib/bds/desktop/shell_live.ex:840 #: lib/bds/desktop/shell_live/sidebar_create.ex:47 #, elixir-autogen, elixir-format msgid "Import media" @@ -1286,8 +1286,8 @@ msgstr "Tipo" msgid "Language" msgstr "Lingua" -#: lib/bds/desktop/shell_live/media_editor.ex:210 -#: lib/bds/desktop/shell_live/post_editor.ex:790 +#: lib/bds/desktop/shell_live/media_editor.ex:221 +#: lib/bds/desktop/shell_live/post_editor.ex:798 #, elixir-autogen, elixir-format msgid "Language detection failed." msgstr "Rilevamento della lingua non riuscito." @@ -1297,7 +1297,7 @@ msgstr "Rilevamento della lingua non riuscito." msgid "Light" msgstr "Chiaro" -#: lib/bds/desktop/shell_live/media_editor.ex:256 +#: lib/bds/desktop/shell_live/media_editor.ex:267 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:215 #, elixir-autogen, elixir-format msgid "Link to Post" @@ -1371,7 +1371,7 @@ msgstr "Mappa a..." msgid "Mapped" msgstr "Mappato" -#: lib/bds/desktop/shell_live/post_editor.ex:1009 +#: lib/bds/desktop/shell_live/post_editor.ex:1039 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:123 #, elixir-autogen, elixir-format msgid "Markdown" @@ -1383,10 +1383,10 @@ msgid "Max Posts Per Page" msgstr "Numero massimo di post per pagina" #: lib/bds/desktop/menu_bar.ex:168 -#: lib/bds/desktop/shell_live/media_editor.ex:498 -#: lib/bds/desktop/shell_live/media_editor.ex:502 -#: lib/bds/desktop/shell_live/misc_editor.ex:749 -#: lib/bds/desktop/shell_live/misc_editor.ex:776 +#: lib/bds/desktop/shell_live/media_editor.ex:509 +#: lib/bds/desktop/shell_live/media_editor.ex:513 +#: lib/bds/desktop/shell_live/misc_editor.ex:735 +#: 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/ui/registry.ex:30 @@ -1401,7 +1401,7 @@ msgstr "Media" msgid "Media (%{count})" msgstr "Media (%{count})" -#: lib/bds/desktop/shell_live/media_editor.ex:498 +#: lib/bds/desktop/shell_live/media_editor.ex:509 #, elixir-autogen, elixir-format msgid "Media saved" msgstr "Media salvato" @@ -1428,9 +1428,9 @@ msgid "Metadata" msgstr "Metadati" #: lib/bds/desktop/menu_bar.ex:185 -#: lib/bds/desktop/shell_live/misc_editor.ex:228 -#: lib/bds/desktop/shell_live/misc_editor.ex:240 -#: lib/bds/desktop/shell_live/misc_editor.ex:462 +#: 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/ui/registry.ex:111 #, elixir-autogen, elixir-format msgid "Metadata Diff" @@ -1532,7 +1532,7 @@ msgstr "Nessuna cartella selezionata" msgid "No git history yet" msgstr "Nessuna cronologia Git" -#: lib/bds/desktop/shell_live/misc_editor.ex:473 +#: lib/bds/desktop/shell_live/misc_editor.ex:459 #: lib/bds/desktop/shell_live/overlay_html/shell_overlay.html.heex:72 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:321 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:333 @@ -1572,12 +1572,12 @@ msgstr "Nessun post corrispondente" msgid "No media files" msgstr "Nessun file multimediale" -#: lib/bds/desktop/shell_live/misc_editor.ex:592 +#: lib/bds/desktop/shell_live/misc_editor.ex:578 #, elixir-autogen, elixir-format msgid "No metadata diff items selected" msgstr "Nessun elemento del diff dei metadati selezionato" -#: lib/bds/desktop/shell_live/misc_editor.ex:621 +#: lib/bds/desktop/shell_live/misc_editor.ex:607 #, elixir-autogen, elixir-format msgid "No orphan files selected" msgstr "Nessun file orfano selezionato" @@ -1602,7 +1602,7 @@ msgstr "Nessun post da collegare" msgid "No posts yet" msgstr "Nessun post" -#: lib/bds/desktop/shell_live/misc_editor.ex:589 +#: lib/bds/desktop/shell_live/misc_editor.ex:575 #, elixir-autogen, elixir-format msgid "No repair action available" msgstr "Nessuna azione di riparazione disponibile" @@ -1627,7 +1627,7 @@ msgstr "Nessun tag trovato" msgid "No translations" msgstr "Nessuna traduzione" -#: lib/bds/desktop/shell_live/misc_editor.ex:567 +#: lib/bds/desktop/shell_live/misc_editor.ex:553 #, elixir-autogen, elixir-format msgid "No unstaged changes" msgstr "Nessuna modifica non preparata" @@ -1804,7 +1804,7 @@ msgstr "Altro" msgid "Other (%{count})" msgstr "Altro (%{count})" -#: lib/bds/desktop/shell_live.ex:715 +#: lib/bds/desktop/shell_live.ex:717 #: lib/bds/desktop/shell_live/panel_renderer.ex:83 #, elixir-autogen, elixir-format msgid "Output" @@ -1842,7 +1842,7 @@ msgstr "Pagine" msgid "Pages (%{count})" msgstr "Pagine (%{count})" -#: lib/bds/desktop/shell_live/misc_editor.ex:176 +#: lib/bds/desktop/shell_live/misc_editor.ex:162 #, elixir-autogen, elixir-format msgid "Pair dismissed" msgstr "Coppia ignorata" @@ -1868,17 +1868,17 @@ msgstr "Percorso" msgid "Persist the detected language for this media item" msgstr "Salva la lingua rilevata per questo media" -#: lib/bds/desktop/shell_live/misc_editor.ex:747 -#: lib/bds/desktop/shell_live/post_editor.ex:529 -#: lib/bds/desktop/shell_live/post_editor.ex:533 -#: lib/bds/desktop/shell_live/post_editor.ex:572 -#: lib/bds/desktop/shell_live/post_editor.ex:576 -#: lib/bds/desktop/shell_live/post_editor.ex:614 -#: lib/bds/desktop/shell_live/post_editor.ex:629 -#: lib/bds/desktop/shell_live/post_editor.ex:658 -#: lib/bds/desktop/shell_live/post_editor.ex:661 -#: lib/bds/desktop/shell_live/post_editor.ex:741 -#: lib/bds/desktop/shell_live/post_editor.ex:744 +#: lib/bds/desktop/shell_live/misc_editor.ex:733 +#: lib/bds/desktop/shell_live/post_editor.ex:537 +#: lib/bds/desktop/shell_live/post_editor.ex:541 +#: lib/bds/desktop/shell_live/post_editor.ex:580 +#: lib/bds/desktop/shell_live/post_editor.ex:584 +#: lib/bds/desktop/shell_live/post_editor.ex:622 +#: lib/bds/desktop/shell_live/post_editor.ex:637 +#: lib/bds/desktop/shell_live/post_editor.ex:666 +#: lib/bds/desktop/shell_live/post_editor.ex:669 +#: lib/bds/desktop/shell_live/post_editor.ex:749 +#: lib/bds/desktop/shell_live/post_editor.ex:752 #: lib/bds/desktop/shell_live/sidebar_components.ex:651 #: lib/bds/desktop/shell_live/sidebar_delete.ex:174 #: lib/bds/ui/registry.ex:99 @@ -1903,24 +1903,24 @@ msgstr "Conflitti slug articoli" msgid "Post Template" msgstr "Template del post" -#: lib/bds/desktop/shell_live/misc_editor.ex:315 +#: lib/bds/desktop/shell_live/misc_editor.ex:301 #, elixir-autogen, elixir-format msgid "Post is marked as do-not-translate but has translations" msgstr "Il post è contrassegnato come non-tradurre ma ha traduzioni" -#: lib/bds/desktop/shell_live/post_editor.ex:572 +#: lib/bds/desktop/shell_live/post_editor.ex:580 #, elixir-autogen, elixir-format msgid "Post published" msgstr "Articolo pubblicato" -#: lib/bds/desktop/shell_live/post_editor.ex:529 +#: lib/bds/desktop/shell_live/post_editor.ex:537 #, elixir-autogen, elixir-format msgid "Post saved" msgstr "Articolo salvato" #: lib/bds/desktop/menu_bar.ex:167 -#: lib/bds/desktop/shell_live/misc_editor.ex:678 -#: lib/bds/desktop/shell_live/misc_editor.ex:775 +#: lib/bds/desktop/shell_live/misc_editor.ex:664 +#: lib/bds/desktop/shell_live/misc_editor.ex:761 #: lib/bds/ui/registry.ex:14 #: lib/bds/ui/sidebar.ex:271 #, elixir-autogen, elixir-format @@ -1937,7 +1937,7 @@ msgstr "Articoli (%{count})" msgid "Preferences" msgstr "Preferenze" -#: lib/bds/desktop/shell_live/post_editor.ex:1010 +#: lib/bds/desktop/shell_live/post_editor.ex:1040 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:124 #, elixir-autogen, elixir-format msgid "Preview" @@ -1959,8 +1959,8 @@ msgid "Preview unavailable" msgstr "Anteprima non disponibile" #: lib/bds/desktop/shell_live/index.html.heex:509 -#: lib/bds/desktop/shell_live/misc_editor.ex:753 -#: lib/bds/desktop/shell_live/misc_editor.ex:779 +#: lib/bds/desktop/shell_live/misc_editor.ex:739 +#: lib/bds/desktop/shell_live/misc_editor.ex:765 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27 #: lib/bds/ui/sidebar.ex:762 #, elixir-autogen, elixir-format @@ -2006,19 +2006,19 @@ msgid "Publish Selected" msgstr "Pubblica selezionati" #: lib/bds/desktop/shell_data.ex:181 -#: lib/bds/desktop/shell_live/post_editor.ex:1004 +#: lib/bds/desktop/shell_live/post_editor.ex:1034 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472 #: lib/bds/ui/sidebar.ex:324 #, elixir-autogen, elixir-format msgid "Published" msgstr "Pubblicato" -#: lib/bds/desktop/shell_live/misc_editor.ex:318 +#: lib/bds/desktop/shell_live/misc_editor.ex:304 #, elixir-autogen, elixir-format msgid "Published translation has content stuck in DB instead of filesystem" msgstr "Traduzione pubblicata con contenuto nel DB invece del filesystem" -#: lib/bds/desktop/shell_live/misc_editor.ex:754 +#: lib/bds/desktop/shell_live/misc_editor.ex:740 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40 #: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57 #: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338 @@ -2105,8 +2105,8 @@ msgstr "Aggiorna modelli offline" msgid "Refresh Online Models" msgstr "Aggiorna modelli online" -#: lib/bds/desktop/shell_live/media_editor.ex:368 -#: lib/bds/desktop/shell_live/media_editor.ex:377 +#: lib/bds/desktop/shell_live/media_editor.ex:379 +#: lib/bds/desktop/shell_live/media_editor.ex:388 #, elixir-autogen, elixir-format msgid "Refresh Translation" msgstr "Aggiorna traduzione" @@ -2162,19 +2162,19 @@ msgstr "Mostra nelle liste" msgid "Replace" msgstr "Sostituisci" -#: lib/bds/desktop/shell_live/media_editor.ex:142 -#: lib/bds/desktop/shell_live/media_editor.ex:150 +#: lib/bds/desktop/shell_live/media_editor.ex:153 +#: lib/bds/desktop/shell_live/media_editor.ex:161 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:86 #, elixir-autogen, elixir-format msgid "Replace File" msgstr "Sostituisci file" -#: lib/bds/desktop/shell_live/media_editor.ex:116 +#: lib/bds/desktop/shell_live/media_editor.ex:127 #, elixir-autogen, elixir-format msgid "Replace Media File" msgstr "Sostituisci file media" -#: lib/bds/desktop/menu_bar.ex:197 +#: lib/bds/desktop/menu_bar.ex:198 #, elixir-autogen, elixir-format msgid "Report Issue" msgstr "Segnala problema" @@ -2204,7 +2204,7 @@ msgstr "Risoluzione" msgid "Result" msgstr "Risultato" -#: lib/bds/desktop/shell_live/post_editor.ex:1005 +#: lib/bds/desktop/shell_live/post_editor.ex:1035 #, elixir-autogen, elixir-format msgid "Reverted" msgstr "Ripristinato" @@ -2250,13 +2250,13 @@ msgstr "Modalità SSH" msgid "Save" msgstr "Salva" -#: lib/bds/desktop/shell_live/media_editor.ex:328 +#: lib/bds/desktop/shell_live/media_editor.ex:339 #, elixir-autogen, elixir-format msgid "Save Translation" msgstr "Salva traduzione" -#: lib/bds/desktop/shell_live/media_editor.ex:710 -#: lib/bds/desktop/shell_live/post_editor.ex:1003 +#: lib/bds/desktop/shell_live/media_editor.ex:730 +#: lib/bds/desktop/shell_live/post_editor.ex:1033 #, elixir-autogen, elixir-format msgid "Saved" msgstr "Salvato" @@ -2266,7 +2266,7 @@ msgstr "Salvato" msgid "Scanning entries..." msgstr "Scansione delle voci..." -#: lib/bds/desktop/shell_live/misc_editor.ex:751 +#: lib/bds/desktop/shell_live/misc_editor.ex:737 #: lib/bds/desktop/shell_live/sidebar_components.ex:657 #: lib/bds/desktop/shell_live/sidebar_delete.ex:176 #: lib/bds/ui/registry.ex:133 @@ -2294,7 +2294,7 @@ msgstr "Runtime scripting" msgid "Scripting capabilities are configured at the application layer in the rewrite and do not expose runtime switching here." msgstr "Le capacità di scripting sono configurate a livello applicativo nella riscrittura e non espongono qui il cambio di runtime." -#: lib/bds/desktop/shell_live/misc_editor.ex:777 +#: lib/bds/desktop/shell_live/misc_editor.ex:763 #: lib/bds/desktop/shell_live/script_editor.ex:119 #: lib/bds/desktop/shell_live/script_editor.ex:124 #: lib/bds/desktop/shell_live/script_editor.ex:130 @@ -2399,7 +2399,7 @@ msgstr "Seleziona una lingua di destinazione per questo articolo" msgid "Select an existing category or press Enter to create a new archive entry" msgstr "Seleziona una categoria esistente o premi Invio per creare una nuova voce di archivio" -#: lib/bds/desktop/shell_live/misc_editor.ex:210 +#: lib/bds/desktop/shell_live/misc_editor.ex:196 #, elixir-autogen, elixir-format msgid "Selected pairs dismissed" msgstr "Coppie selezionate ignorate" @@ -2433,9 +2433,7 @@ msgstr "Affiancato" msgid "Site" msgstr "Sito" -#: lib/bds/desktop/shell_live/misc_editor.ex:95 -#: lib/bds/desktop/shell_live/misc_editor.ex:105 -#: lib/bds/desktop/shell_live/misc_editor.ex:426 +#: lib/bds/desktop/shell_live/misc_editor.ex:412 #: lib/bds/ui/registry.ex:125 #, elixir-autogen, elixir-format msgid "Site Validation" @@ -2565,7 +2563,7 @@ msgstr "Nome del tag" msgid "Tags" msgstr "Tag" -#: lib/bds/desktop/shell_live.ex:714 +#: lib/bds/desktop/shell_live.ex:716 #: lib/bds/desktop/shell_live/panel_renderer.ex:54 #, elixir-autogen, elixir-format msgid "Tasks" @@ -2577,7 +2575,7 @@ msgstr "Attività" msgid "Technology" msgstr "Tecnologia" -#: lib/bds/desktop/shell_live/misc_editor.ex:752 +#: lib/bds/desktop/shell_live/misc_editor.ex:738 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:299 #: lib/bds/desktop/shell_live/sidebar_components.ex:660 #: lib/bds/desktop/shell_live/sidebar_delete.ex:179 @@ -2601,7 +2599,7 @@ msgstr "Template salvato" msgid "Template syntax is valid" msgstr "La sintassi del template è valida" -#: lib/bds/desktop/shell_live/misc_editor.ex:778 +#: lib/bds/desktop/shell_live/misc_editor.ex:764 #: lib/bds/desktop/shell_live/template_editor.ex:111 #: lib/bds/desktop/shell_live/template_editor.ex:116 #: lib/bds/desktop/shell_live/template_editor.ex:121 @@ -2725,39 +2723,35 @@ msgstr "Attiva/disattiva pannello" msgid "Toggle sidebar" msgstr "Attiva/disattiva barra laterale" -#: lib/bds/desktop/shell_live/media_editor.ex:352 -#: lib/bds/desktop/shell_live/media_editor.ex:545 -#: lib/bds/desktop/shell_live/media_editor.ex:566 -#: lib/bds/desktop/shell_live/media_editor.ex:571 +#: lib/bds/desktop/shell_live/media_editor.ex:363 +#: lib/bds/desktop/shell_live/media_editor.ex:556 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76 -#: lib/bds/desktop/shell_live/post_editor.ex:803 -#: lib/bds/desktop/shell_live/post_editor.ex:832 -#: lib/bds/desktop/shell_live/post_editor.ex:837 +#: lib/bds/desktop/shell_live/post_editor.ex:811 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60 #, elixir-autogen, elixir-format msgid "Translate" msgstr "Traduci" +#: lib/bds/desktop/shell_live/misc_editor.ex:105 #: lib/bds/desktop/shell_live/misc_editor.ex:119 -#: lib/bds/desktop/shell_live/misc_editor.ex:133 -#: lib/bds/desktop/shell_live/misc_editor.ex:482 +#: lib/bds/desktop/shell_live/misc_editor.ex:468 #, elixir-autogen, elixir-format msgid "Translation Validation" msgstr "Validazione traduzioni" -#: lib/bds/desktop/shell_live/misc_editor.ex:312 +#: lib/bds/desktop/shell_live/misc_editor.ex:298 #, elixir-autogen, elixir-format msgid "Translation language matches canonical post language" msgstr "La lingua della traduzione coincide con la lingua canonica del post" -#: lib/bds/desktop/shell_live/misc_editor.ex:321 +#: lib/bds/desktop/shell_live/misc_editor.ex:307 #, elixir-autogen, elixir-format msgid "Translation points to a missing source post" msgstr "La traduzione punta a un post sorgente mancante" #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:183 -#: lib/bds/desktop/shell_live/misc_editor.ex:748 -#: lib/bds/desktop/shell_live/misc_editor.ex:750 +#: lib/bds/desktop/shell_live/misc_editor.ex:734 +#: lib/bds/desktop/shell_live/misc_editor.ex:736 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:129 #: lib/bds/ui/registry.ex:131 #, elixir-autogen, elixir-format @@ -2802,14 +2796,14 @@ msgstr "Annulla" msgid "Unknown" msgstr "Sconosciuto" -#: lib/bds/desktop/shell_live/media_editor.ex:269 +#: lib/bds/desktop/shell_live/media_editor.ex:280 #, elixir-autogen, elixir-format msgid "Unlink from Post" msgstr "Scollega dall'articolo" -#: lib/bds/desktop/shell_live/media_editor.ex:709 +#: lib/bds/desktop/shell_live/media_editor.ex:729 #: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10 -#: lib/bds/desktop/shell_live/post_editor.ex:1002 +#: lib/bds/desktop/shell_live/post_editor.ex:1032 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7 #, elixir-autogen, elixir-format msgid "Unsaved" @@ -2841,7 +2835,7 @@ msgstr "Aggiornato" msgid "Updated URLs" msgstr "URL aggiornati" -#: lib/bds/desktop/menu_bar.ex:192 +#: lib/bds/desktop/menu_bar.ex:193 #, elixir-autogen, elixir-format msgid "Upload Site" msgstr "Carica sito" @@ -2868,7 +2862,7 @@ msgstr "Nome utente" msgid "Validate" msgstr "Valida" -#: lib/bds/desktop/menu_bar.ex:191 +#: lib/bds/desktop/menu_bar.ex:192 #, elixir-autogen, elixir-format msgid "Validate Site" msgstr "Valida sito" @@ -2878,17 +2872,12 @@ msgstr "Valida sito" msgid "Validate Translations" msgstr "Valida traduzioni" -#: lib/bds/desktop/shell_live/misc_editor.ex:96 -#, elixir-autogen, elixir-format -msgid "Validation changes applied" -msgstr "Correzioni di validazione applicate" - #: lib/bds/desktop/menu_bar.ex:146 #, elixir-autogen, elixir-format msgid "View" msgstr "Vista" -#: lib/bds/desktop/menu_bar.ex:196 +#: lib/bds/desktop/menu_bar.ex:197 #, elixir-autogen, elixir-format msgid "View on GitHub" msgstr "Visualizza su GitHub" @@ -3259,12 +3248,12 @@ msgstr "Benvenuto nell’assistente IA" msgid "Comparing database and filesystem metadata" msgstr "Confronto tra i metadati del database e del filesystem" -#: lib/bds/desktop/shell_live.ex:648 +#: lib/bds/desktop/shell_live.ex:650 #, elixir-autogen, elixir-format msgid "Added %{count} images to post" msgstr "%{count} immagini aggiunte al post" -#: lib/bds/desktop/shell_live.ex:616 +#: lib/bds/desktop/shell_live.ex:618 #, elixir-autogen, elixir-format msgid "Added %{title}" msgstr "%{title} aggiunto" @@ -3284,18 +3273,18 @@ msgstr "Guida per l'utente finale per flussi editoriali, media, modelli, traduzi msgid "Image Import Concurrency" msgstr "Importazione simultanea immagini" -#: lib/bds/desktop/shell_live.ex:421 -#: lib/bds/desktop/shell_live.ex:434 -#: lib/bds/desktop/shell_live.ex:615 -#: lib/bds/desktop/shell_live.ex:647 -#: lib/bds/desktop/shell_live.ex:658 -#: lib/bds/desktop/shell_live.ex:669 +#: lib/bds/desktop/shell_live.ex:423 +#: lib/bds/desktop/shell_live.ex:436 +#: lib/bds/desktop/shell_live.ex:617 +#: lib/bds/desktop/shell_live.ex:649 +#: lib/bds/desktop/shell_live.ex:660 +#: lib/bds/desktop/shell_live.ex:671 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420 #, elixir-autogen, elixir-format msgid "Add Gallery Images" msgstr "Aggiungi immagini alla galleria" -#: lib/bds/desktop/shell_live.ex:670 +#: lib/bds/desktop/shell_live.ex:672 #, elixir-autogen, elixir-format msgid "Failed to process %{path}: %{reason}" msgstr "Impossibile elaborare %{path}: %{reason}" @@ -3310,12 +3299,12 @@ msgstr "Archivia" msgid "Move this post to the archive" msgstr "Sposta questo articolo nell'archivio" -#: lib/bds/desktop/shell_live/post_editor.ex:658 +#: lib/bds/desktop/shell_live/post_editor.ex:666 #, elixir-autogen, elixir-format msgid "Post archived" msgstr "Articolo archiviato" -#: lib/bds/desktop/shell_live/post_editor.ex:741 +#: lib/bds/desktop/shell_live/post_editor.ex:749 #, elixir-autogen, elixir-format msgid "Post unarchived" msgstr "Articolo ripristinato" @@ -3484,28 +3473,28 @@ msgstr "rinominato" msgid "untracked" msgstr "non tracciato" -#: lib/bds/desktop/shell_live.ex:740 +#: lib/bds/desktop/shell_live.ex:742 #, elixir-autogen, elixir-format msgid "Blogmark" msgstr "Blogmark" -#: lib/bds/desktop/shell_live.ex:783 +#: lib/bds/desktop/shell_live.ex:785 #, elixir-autogen, elixir-format msgid "Open a project before importing a blogmark." msgstr "Apri un progetto prima di importare un blogmark." -#: lib/bds/desktop/shell_live/post_editor.ex:684 +#: lib/bds/desktop/shell_live/post_editor.ex:692 #, elixir-autogen, elixir-format msgid "Added %{name}" msgstr "%{name} aggiunto" -#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:699 #, elixir-autogen, elixir-format msgid "Failed to import %{path}: %{reason}" msgstr "Impossibile importare %{path}: %{reason}" -#: lib/bds/desktop/shell_live/post_editor.ex:683 -#: lib/bds/desktop/shell_live/post_editor.ex:690 +#: lib/bds/desktop/shell_live/post_editor.ex:691 +#: lib/bds/desktop/shell_live/post_editor.ex:698 #, elixir-autogen, elixir-format msgid "Insert Image" msgstr "Inserisci immagine" @@ -3530,7 +3519,7 @@ msgstr "Elimina" msgid "Failed to copy bookmarklet to clipboard" msgstr "Impossibile copiare il bookmarklet negli appunti" -#: lib/bds/desktop/shell_live.ex:752 +#: lib/bds/desktop/shell_live.ex:754 #, elixir-autogen, elixir-format msgid "The project this blogmark targets does not exist here." msgstr "Il progetto a cui punta questo blogmark non esiste qui." @@ -3539,3 +3528,8 @@ msgstr "Il progetto a cui punta questo blogmark non esiste qui." #, elixir-autogen, elixir-format msgid "Suggested tags" msgstr "Tag suggeriti" + +#: lib/bds/desktop/menu_bar.ex:191 +#, elixir-autogen, elixir-format +msgid "Force Render Site" +msgstr "Forza la rigenerazione del sito" diff --git a/priv/gettext/ui.pot b/priv/gettext/ui.pot index fc725e3..cec9442 100644 --- a/priv/gettext/ui.pot +++ b/priv/gettext/ui.pot @@ -118,12 +118,12 @@ msgstr "" msgid "API" msgstr "" -#: lib/bds/desktop/menu_bar.ex:195 +#: lib/bds/desktop/menu_bar.ex:196 #, elixir-autogen, elixir-format msgid "API Documentation" msgstr "" -#: lib/bds/desktop/menu_bar.ex:193 +#: lib/bds/desktop/menu_bar.ex:194 #, elixir-autogen, elixir-format msgid "About" msgstr "" @@ -350,7 +350,7 @@ msgid "Auto" msgstr "" #: lib/bds/desktop/shell_data.ex:98 -#: lib/bds/desktop/shell_live.ex:422 +#: lib/bds/desktop/shell_live.ex:424 #: lib/bds/desktop/shell_live/chat_editor.ex:234 #: lib/bds/desktop/shell_live/media_editor.ex:171 #: lib/bds/desktop/shell_live/media_editor.ex:364 @@ -499,7 +499,7 @@ msgstr "" msgid "Category name is required" msgstr "" -#: lib/bds/desktop/shell_live.ex:719 +#: lib/bds/desktop/shell_live.ex:721 #: lib/bds/desktop/shell_live/chat_editor.ex:87 #: lib/bds/desktop/shell_live/chat_editor.ex:233 #: lib/bds/desktop/shell_live/chat_editor.ex:323 @@ -874,7 +874,7 @@ msgstr "" msgid "Do Not Translate" msgstr "" -#: lib/bds/desktop/menu_bar.ex:194 +#: lib/bds/desktop/menu_bar.ex:195 #: lib/bds/help_docs.ex:14 #: lib/bds/ui/registry.ex:118 #, elixir-autogen, elixir-format @@ -1086,7 +1086,7 @@ msgstr "" msgid "Generate Site" msgstr "" -#: lib/bds/desktop/shell_live.ex:720 +#: lib/bds/desktop/shell_live.ex:722 #: lib/bds/desktop/shell_live/socket_state.ex:109 #: lib/bds/ui/sidebar.ex:789 #, elixir-autogen, elixir-format @@ -1100,7 +1100,7 @@ msgid "Git Diff" msgstr "" #: lib/bds/desktop/shell_data.ex:244 -#: lib/bds/desktop/shell_live.ex:716 +#: lib/bds/desktop/shell_live.ex:718 #: lib/bds/desktop/shell_live/panel_renderer.ex:171 #, elixir-autogen, elixir-format msgid "Git Log" @@ -1223,9 +1223,9 @@ msgstr "" msgid "Import failed: %{error}" msgstr "" -#: lib/bds/desktop/shell_live.ex:572 -#: lib/bds/desktop/shell_live.ex:832 -#: lib/bds/desktop/shell_live.ex:838 +#: lib/bds/desktop/shell_live.ex:574 +#: lib/bds/desktop/shell_live.ex:834 +#: lib/bds/desktop/shell_live.ex:840 #: lib/bds/desktop/shell_live/sidebar_create.ex:47 #, elixir-autogen, elixir-format msgid "Import media" @@ -1817,7 +1817,7 @@ msgstr "" msgid "Other (%{count})" msgstr "" -#: lib/bds/desktop/shell_live.ex:715 +#: lib/bds/desktop/shell_live.ex:717 #: lib/bds/desktop/shell_live/panel_renderer.ex:83 #, elixir-autogen, elixir-format msgid "Output" @@ -2187,7 +2187,7 @@ msgstr "" msgid "Replace Media File" msgstr "" -#: lib/bds/desktop/menu_bar.ex:197 +#: lib/bds/desktop/menu_bar.ex:198 #, elixir-autogen, elixir-format msgid "Report Issue" msgstr "" @@ -2576,7 +2576,7 @@ msgstr "" msgid "Tags" msgstr "" -#: lib/bds/desktop/shell_live.ex:714 +#: lib/bds/desktop/shell_live.ex:716 #: lib/bds/desktop/shell_live/panel_renderer.ex:54 #, elixir-autogen, elixir-format msgid "Tasks" @@ -2848,7 +2848,7 @@ msgstr "" msgid "Updated URLs" msgstr "" -#: lib/bds/desktop/menu_bar.ex:192 +#: lib/bds/desktop/menu_bar.ex:193 #, elixir-autogen, elixir-format msgid "Upload Site" msgstr "" @@ -2875,7 +2875,7 @@ msgstr "" msgid "Validate" msgstr "" -#: lib/bds/desktop/menu_bar.ex:191 +#: lib/bds/desktop/menu_bar.ex:192 #, elixir-autogen, elixir-format msgid "Validate Site" msgstr "" @@ -2890,7 +2890,7 @@ msgstr "" msgid "View" msgstr "" -#: lib/bds/desktop/menu_bar.ex:196 +#: lib/bds/desktop/menu_bar.ex:197 #, elixir-autogen, elixir-format msgid "View on GitHub" msgstr "" @@ -3261,12 +3261,12 @@ msgstr "" msgid "Comparing database and filesystem metadata" msgstr "" -#: lib/bds/desktop/shell_live.ex:648 +#: lib/bds/desktop/shell_live.ex:650 #, elixir-autogen, elixir-format msgid "Added %{count} images to post" msgstr "" -#: lib/bds/desktop/shell_live.ex:616 +#: lib/bds/desktop/shell_live.ex:618 #, elixir-autogen, elixir-format msgid "Added %{title}" msgstr "" @@ -3286,18 +3286,18 @@ msgstr "" msgid "Image Import Concurrency" msgstr "" -#: lib/bds/desktop/shell_live.ex:421 -#: lib/bds/desktop/shell_live.ex:434 -#: lib/bds/desktop/shell_live.ex:615 -#: lib/bds/desktop/shell_live.ex:647 -#: lib/bds/desktop/shell_live.ex:658 -#: lib/bds/desktop/shell_live.ex:669 +#: lib/bds/desktop/shell_live.ex:423 +#: lib/bds/desktop/shell_live.ex:436 +#: lib/bds/desktop/shell_live.ex:617 +#: lib/bds/desktop/shell_live.ex:649 +#: lib/bds/desktop/shell_live.ex:660 +#: lib/bds/desktop/shell_live.ex:671 #: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420 #, elixir-autogen, elixir-format msgid "Add Gallery Images" msgstr "" -#: lib/bds/desktop/shell_live.ex:670 +#: lib/bds/desktop/shell_live.ex:672 #, elixir-autogen, elixir-format msgid "Failed to process %{path}: %{reason}" msgstr "" @@ -3486,12 +3486,12 @@ msgstr "" msgid "untracked" msgstr "" -#: lib/bds/desktop/shell_live.ex:740 +#: lib/bds/desktop/shell_live.ex:742 #, elixir-autogen, elixir-format msgid "Blogmark" msgstr "" -#: lib/bds/desktop/shell_live.ex:783 +#: lib/bds/desktop/shell_live.ex:785 #, elixir-autogen, elixir-format msgid "Open a project before importing a blogmark." msgstr "" @@ -3532,7 +3532,7 @@ msgstr "" msgid "Failed to copy bookmarklet to clipboard" msgstr "" -#: lib/bds/desktop/shell_live.ex:752 +#: lib/bds/desktop/shell_live.ex:754 #, elixir-autogen, elixir-format msgid "The project this blogmark targets does not exist here." msgstr "" @@ -3541,3 +3541,8 @@ msgstr "" #, elixir-autogen, elixir-format msgid "Suggested tags" msgstr "" + +#: lib/bds/desktop/menu_bar.ex:191 +#, elixir-autogen, elixir-format +msgid "Force Render Site" +msgstr "" diff --git a/test/bds/desktop/shell_commands_test.exs b/test/bds/desktop/shell_commands_test.exs index 73cc567..73fa9a4 100644 --- a/test/bds/desktop/shell_commands_test.exs +++ b/test/bds/desktop/shell_commands_test.exs @@ -438,6 +438,63 @@ defmodule BDS.Desktop.ShellCommandsTest do assert validation_task.result.payload.updated_post_url_paths == [] end + test "force_render_site rewrites drifted outputs that a normal render would skip", %{ + project: project, + temp_dir: temp_dir + } do + assert {:ok, _metadata} = + Metadata.update_project_metadata(project.id, %{ + public_url: "https://example.com/blog", + main_language: "en", + blog_languages: ["en"] + }) + + assert {:ok, post} = + Posts.create_post(%{ + project_id: project.id, + title: "Force Render Post", + content: "Force render body", + language: "en", + categories: ["notes"], + tags: ["elixir"] + }) + + assert {:ok, published} = Posts.publish_post(post.id) + + # Populate outputs and hashes, then tamper with a file on disk so its + # stored hash still matches the expected content. + assert {:ok, _} = BDS.Generation.render_site_section(project.id, :single) + post_file = Path.join([temp_dir, "html", BDS.Generation.post_output_path(published)]) + original_html = File.read!(post_file) + File.write!(post_file, "TAMPERED") + + assert {:ok, result} = ShellCommands.execute("force_render_site") + + assert result.kind == "task_queued" + assert result.action == "force_render_site" + assert result.title == "Force Render Site" + assert is_binary(result.task_group_id) + + tasks = + wait_for_tasks_by_name( + [ + "Render Site Core", + "Render Single Posts", + "Render Category Archives", + "Render Tag Archives", + "Render Date Archives", + "Build Search Index" + ], + &(&1.status == :completed), + 5_000 + ) + + assert Enum.all?(tasks, &(&1.group_id == result.task_group_id)) + assert Enum.all?(tasks, &(&1.group_name == "Force Render Site")) + + assert File.read!(post_file) == original_html + end + test "generate_sitemap renders the site as per-section tasks under a Render Site group", %{ project: project, temp_dir: temp_dir diff --git a/test/bds/desktop_test.exs b/test/bds/desktop_test.exs index ba31918..cee93e3 100644 --- a/test/bds/desktop_test.exs +++ b/test/bds/desktop_test.exs @@ -130,11 +130,23 @@ defmodule BDS.DesktopTest do assert menu_item(groups, :publish_selected).native_label == "Publish Selected\tCTRL+SHIFT+P" assert menu_item(groups, :preview_post).native_label == "Preview Post\tCTRL+SHIFT+V" assert menu_item(groups, :generate_sitemap).native_label == "Generate Site\tCTRL+R" + + assert menu_item(groups, :force_render_site).native_label == + "Force Render Site\tCTRL+SHIFT+R" + assert menu_item(groups, :validate_site).native_label == "Validate Site\tCTRL+SHIFT+L" assert menu_item(groups, :upload_site).native_label == "Upload Site\tCTRL+SHIFT+U" assert menu_item(groups, :metadata_diff).shortcut == nil end + test "force render sits directly below generate site in the blog menu" do + blog_group = Enum.find(BDS.UI.MenuBar.default_groups(), &(&1.id == :blog)) + item_ids = Enum.map(blog_group.items, &Map.get(&1, :id)) + generate_index = Enum.find_index(item_ids, &(&1 == :generate_sitemap)) + + assert Enum.at(item_ids, generate_index + 1) == :force_render_site + end + test "prod forwarded menu surface is covered by the shell dispatcher" do forwarded_actions = BDS.Desktop.MenuBar.groups(dev_mode?: false) diff --git a/test/bds/generation/aside_archive_rendering_test.exs b/test/bds/generation/aside_archive_rendering_test.exs new file mode 100644 index 0000000..8679673 --- /dev/null +++ b/test/bds/generation/aside_archive_rendering_test.exs @@ -0,0 +1,53 @@ +defmodule BDS.Generation.AsideArchiveRenderingTest do + use ExUnit.Case, async: false + + alias BDS.Generation + + setup do + :ok = Ecto.Adapters.SQL.Sandbox.checkout(BDS.Repo) + temp_dir = Path.join(System.tmp_dir!(), "bds-aside-#{System.unique_integer([:positive])}") + File.mkdir_p!(temp_dir) + on_exit(fn -> File.rm_rf(temp_dir) end) + + {:ok, project} = BDS.Projects.create_project(%{name: "AsideArchives", data_path: temp_dir}) + {:ok, _} = BDS.Metadata.update_project_metadata(project.id, %{main_language: "en"}) + + {:ok, post} = + BDS.Posts.create_post(%{ + project_id: project.id, + title: "Aside Title Marker", + content: "ASIDE BODY MARKER text of the aside", + categories: ["aside"], + tags: ["asides-tag"], + language: "en" + }) + + {:ok, _} = BDS.Posts.publish_post(post.id) + + %{project: project, temp_dir: temp_dir} + end + + defp read_archive(temp_dir, segments) do + path = Path.join([temp_dir, "html"] ++ segments ++ ["index.html"]) + assert File.exists?(path), "expected archive page at #{Enum.join(segments, "/")}" + File.read!(path) + end + + test "aside bodies render in category, tag, and date archives alike", %{ + project: project, + temp_dir: temp_dir + } do + {:ok, _} = Generation.render_site_section(project.id, :category) + {:ok, _} = Generation.render_site_section(project.id, :tag) + {:ok, _} = Generation.render_site_section(project.id, :date) + + year = Integer.to_string(DateTime.utc_now().year) + date_html = read_archive(temp_dir, [year]) + category_html = read_archive(temp_dir, ["category", "aside"]) + tag_html = read_archive(temp_dir, ["tag", "asides-tag"]) + + assert date_html =~ "ASIDE BODY MARKER" + assert category_html =~ "ASIDE BODY MARKER" + assert tag_html =~ "ASIDE BODY MARKER" + end +end diff --git a/test/bds/rendering/render_context_test.exs b/test/bds/rendering/render_context_test.exs index a2c4942..e556aca 100644 --- a/test/bds/rendering/render_context_test.exs +++ b/test/bds/rendering/render_context_test.exs @@ -74,6 +74,29 @@ defmodule BDS.Rendering.RenderContextTest do assert Agent.get(counter, & &1) == 1 end + test "memoize/3 computes once even under concurrent first calls", %{project: project} do + ctx = RenderContext.build(project.id) + {:ok, counter} = Agent.start_link(fn -> 0 end) + + slow_compute = fn -> + Agent.update(counter, &(&1 + 1)) + Process.sleep(30) + :computed + end + + results = + 1..8 + |> Task.async_stream( + fn _index -> RenderContext.memoize(ctx, {:test, "concurrent"}, slow_compute) end, + max_concurrency: 8, + timeout: :infinity + ) + |> Enum.map(fn {:ok, value} -> value end) + + assert Enum.all?(results, &(&1 == :computed)) + assert Agent.get(counter, & &1) == 1 + end + test "render_post_page with a context matches the project_id render", %{project: project} do {:ok, template} = BDS.Templates.create_template(%{ @@ -227,6 +250,27 @@ defmodule BDS.Rendering.RenderContextTest do end) end + test "force render rewrites outputs whose stored hash still matches", %{ + project: project, + temp_dir: temp_dir + } do + post = create_published_post(project, %{title: "Force Post", content: "Force body"}) + + assert {:ok, _} = Generation.render_site_section(project.id, :single) + + post_file = Path.join([temp_dir, "html", Generation.post_output_path(post)]) + original_html = File.read!(post_file) + File.write!(post_file, "TAMPERED") + + # A normal render trusts the stored hash and leaves the drifted file alone. + assert {:ok, _} = Generation.render_site_section(project.id, :single) + assert File.read!(post_file) == "TAMPERED" + + # A forced render ignores the stored hashes and rewrites everything. + assert {:ok, _} = Generation.render_site_section(project.id, :single, force: true) + assert File.read!(post_file) == original_html + end + test "full section render issues a bounded number of queries regardless of post count", %{ project: project } do