fix: A1-12 functional client-side search with real PagefindUI and fragment index
This commit is contained in:
@@ -21,7 +21,7 @@ Gap categories: **SC** = spec correct, fix code | **CS** = code correct, update
|
||||
| A1-9 | ~~17 preset colors + custom hex in tag picker~~ | editor_tags.allium | `ColourPicker` hook + popover with 17 preset swatches grid and custom hex input, wired to both create and edit forms | **Resolved:** replaced native `<input type="color">` with `ColourPickerPopover` component (17 presets, custom hex #RRGGBB, immediate selection), JS hook for click-away dismiss, 1 test added |
|
||||
| A1-10 | ~~Template file written on create~~ | engine_side_effects.allium:151-153 | `create_template` now computes `file_path` and writes template file with YAML frontmatter on create | **Resolved:** `create_template/1` writes `templates/{slug}.liquid` on create, `next_template_file_path` always computes path, 1 test added |
|
||||
| A1-11 | ~~Graceful shutdown with inflight request tracking~~ | preview.allium:47-48 | `stop_preview` now closes the listener, parks the reply, and drains monitored inflight request tasks before reporting stopped | **Resolved:** acceptor transfers socket ownership to each request task; GenServer monitors inflight tasks, `begin_graceful_stop` stops accepting and finalizes via `:DOWN`/`:drain_timeout` (5s force-kill cap), 1 test added |
|
||||
| A1-12 | Real Pagefind integration for search | generation.allium:208 | Stub only: `pagefind-ui.js` is one-liner, `PagefindUI` never defined, search-runtime.js silently bails, client-side search non-functional | Fix code: bundle real Pagefind, build proper fragment index, wire PagefindUI |
|
||||
| A1-12 | ~~Real Pagefind integration for search~~ | generation.allium:208 | Functional client-side search: `PagefindUI` defined in bundled `pagefind-ui.js`, fragment index records url/title/body-scoped text per page, search-runtime wires it up | **Resolved:** bundled real `PagefindUI` (fetch index, ranked full-text match, highlighted excerpts) + `pagefind-ui.css` as local assets read into `Pagefind`; index scoped to `data-pagefind-body` (unmarked pages excluded per PagefindHtmlMarking), title from `<title>`/`<h1>`; localized "No results found" label via `data-search-no-results` (de/fr/it/es); 3 unit tests added |
|
||||
| A1-13 | Git sidebar shows only "Working tree" placeholder | sidebar_views.allium:651-770 | `sidebar.ex:782-798` returns single entity_list item; `BDS.Git` has full status/diff/commit/history/fetch/pull/push/prune_lfs but sidebar doesn't use it | Fix code: wire sidebar `git_view/0` to `BDS.Git` — render branch, ahead/behind, status file list, commit input, history entries, action buttons per spec |
|
||||
| A1-14 | Embedding uses TF-IDF hash projection instead of real neural model | embedding.allium:44-53, invariants ModelCaching/VectorCacheInDb | `backends/in_app.ex` hashes terms into sparse vectors via `:erlang.phash2`; no ONNX model, no `"query: "` prefix, no mean pooling, vectors stored as JSON text not Float32Array BLOB, snapshot-based neighbor lookup instead of USearch HNSW index | Fix code: (1) add Bumblebee + ONNX runtime deps to run `Xenova/multilingual-e5-small`, (2) implement lazy model download + cache in app data dir, (3) `"query: "` prefix + mean pooling + L2 norm in backend, (4) store vectors as binary BLOB (1536 bytes), (5) replace JSON snapshot with USearch HNSW index (cosine, M=16, ef=128/64, 5s debounce), (6) cross-language semantic similarity must work |
|
||||
| A1-15 | ~~Preview vs generation content source strategy undocumented~~ | preview.allium (no invariant), generation.allium (no invariant) | Generation uses only published .md file content (`Generation.Data` snapshots set `content: nil`); preview includes published+draft posts and prefers DB content over file (`Preview.Router` queries `:published`/`:draft`, uses `editor_body`) | **Resolved:** added `PreviewDraftOverlay` invariant to preview.allium and `GenerationPublishedOnly` invariant to generation.allium; both cross-reference each other; code already correct, 3 tests added for draft-in-preview behavior |
|
||||
|
||||
@@ -7,10 +7,25 @@ defmodule BDS.Generation.Pagefind do
|
||||
@typedoc "A (relative_path, content) generated file tuple."
|
||||
@type generated_file :: {String.t(), String.t()}
|
||||
|
||||
@assets_dir Application.app_dir(:bds, "priv/preview_assets/assets")
|
||||
@ui_js_path Path.join(@assets_dir, "pagefind-ui.js")
|
||||
@ui_css_path Path.join(@assets_dir, "pagefind-ui.css")
|
||||
|
||||
@external_resource @ui_js_path
|
||||
@external_resource @ui_css_path
|
||||
|
||||
@ui_js File.read!(@ui_js_path)
|
||||
@ui_css File.read!(@ui_css_path)
|
||||
|
||||
@doc """
|
||||
Build the per-language Pagefind index outputs (`pagefind/index.json`,
|
||||
`pagefind/pagefind-ui.js`, `pagefind/pagefind-ui.css`) for every blog
|
||||
language declared on the plan.
|
||||
|
||||
The fragment index records one entry per indexable page, where indexable
|
||||
means the page carries a `data-pagefind-body` region. Each entry stores the
|
||||
page URL, its title, and the body text scoped to that region — mirroring
|
||||
Pagefind's behaviour of ignoring content outside `data-pagefind-body`.
|
||||
"""
|
||||
@spec build_outputs(map(), [html_output()]) :: [generated_file()]
|
||||
def build_outputs(plan, html_outputs) do
|
||||
@@ -31,8 +46,8 @@ defmodule BDS.Generation.Pagefind do
|
||||
[
|
||||
{Path.join(prefix ++ ["index.json"]),
|
||||
Jason.encode!(%{"language" => language, "pages" => pages})},
|
||||
{Path.join(prefix ++ ["pagefind-ui.js"]), ui_js(language)},
|
||||
{Path.join(prefix ++ ["pagefind-ui.css"]), ui_css()}
|
||||
{Path.join(prefix ++ ["pagefind-ui.js"]), @ui_js},
|
||||
{Path.join(prefix ++ ["pagefind-ui.css"]), @ui_css}
|
||||
]
|
||||
end)
|
||||
end
|
||||
@@ -43,11 +58,14 @@ defmodule BDS.Generation.Pagefind do
|
||||
String.ends_with?(relative_path, ".html") and
|
||||
language_match?(relative_path, route_language, other_prefixes)
|
||||
end)
|
||||
|> Enum.map(fn {relative_path, content} ->
|
||||
%{
|
||||
"url" => "/" <> relative_path,
|
||||
"text" => text(content)
|
||||
}
|
||||
|> Enum.flat_map(fn {relative_path, content} ->
|
||||
case body_text(content) do
|
||||
nil ->
|
||||
[]
|
||||
|
||||
text ->
|
||||
[%{"url" => "/" <> relative_path, "title" => title(content), "text" => text}]
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -60,19 +78,94 @@ defmodule BDS.Generation.Pagefind do
|
||||
defp language_match?(relative_path, route_language, _other_prefixes),
|
||||
do: String.starts_with?(relative_path, route_language <> "/")
|
||||
|
||||
defp text(content) do
|
||||
content
|
||||
# Extract the indexable body text scoped to the data-pagefind-body element.
|
||||
# Returns nil when the page is not marked, so unmarked pages are excluded
|
||||
# from the index entirely (matching Pagefind semantics).
|
||||
defp body_text(content) do
|
||||
case Regex.run(~r/<([a-zA-Z0-9]+)[^>]*\bdata-pagefind-body\b[^>]*>/, content,
|
||||
return: :index
|
||||
) do
|
||||
[{open_start, open_len}, {tag_start, tag_len}] ->
|
||||
tag = binary_part(content, tag_start, tag_len)
|
||||
region = scoped_region(content, tag, open_start + open_len)
|
||||
plain_text(region)
|
||||
|
||||
_no_match ->
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
# Capture the inner HTML of the marked element by balancing same-tag
|
||||
# open/close pairs from the opening tag onward.
|
||||
defp scoped_region(content, tag, body_start) do
|
||||
rest = binary_part(content, body_start, byte_size(content) - body_start)
|
||||
open_re = Regex.compile!("<#{tag}\\b", "i")
|
||||
close_re = Regex.compile!("</#{tag}\\s*>", "i")
|
||||
|
||||
events =
|
||||
(Regex.scan(open_re, rest, return: :index) ++ Regex.scan(close_re, rest, return: :index))
|
||||
|> Enum.map(fn [{pos, _len}] -> pos end)
|
||||
|> Enum.map(fn pos -> {pos, event_kind(rest, pos, tag)} end)
|
||||
|> Enum.sort_by(&elem(&1, 0))
|
||||
|
||||
close_at = balanced_close(events, 0)
|
||||
|
||||
case close_at do
|
||||
nil -> rest
|
||||
pos -> binary_part(rest, 0, pos)
|
||||
end
|
||||
end
|
||||
|
||||
defp event_kind(rest, pos, tag) do
|
||||
if String.starts_with?(binary_part(rest, pos, min(2 + byte_size(tag), byte_size(rest) - pos)), "</") do
|
||||
:close
|
||||
else
|
||||
:open
|
||||
end
|
||||
end
|
||||
|
||||
defp balanced_close([], _depth), do: nil
|
||||
|
||||
defp balanced_close([{pos, :close} | _rest], 0), do: pos
|
||||
|
||||
defp balanced_close([{_pos, :close} | rest], depth),
|
||||
do: balanced_close(rest, depth - 1)
|
||||
|
||||
defp balanced_close([{_pos, :open} | rest], depth),
|
||||
do: balanced_close(rest, depth + 1)
|
||||
|
||||
defp title(content) do
|
||||
tag_text(content, ~r/<title[^>]*>(.*?)<\/title>/si) ||
|
||||
tag_text(content, ~r/<h1[^>]*>(.*?)<\/h1>/si) ||
|
||||
""
|
||||
end
|
||||
|
||||
defp tag_text(content, regex) do
|
||||
case Regex.run(regex, content) do
|
||||
[_full, raw] -> raw |> plain_text() |> nil_if_blank()
|
||||
_no_match -> nil
|
||||
end
|
||||
end
|
||||
|
||||
defp nil_if_blank(""), do: nil
|
||||
defp nil_if_blank(value), do: value
|
||||
|
||||
defp plain_text(html) do
|
||||
html
|
||||
|> String.replace(~r/<[^>]+>/, " ")
|
||||
|> decode_entities()
|
||||
|> String.replace(~r/\s+/u, " ")
|
||||
|> String.trim()
|
||||
end
|
||||
|
||||
defp ui_js(language) do
|
||||
"window.bDSPagefind = { language: #{Jason.encode!(language)} };\n"
|
||||
end
|
||||
|
||||
defp ui_css do
|
||||
".pagefind-ui{display:block;}\n"
|
||||
defp decode_entities(text) do
|
||||
text
|
||||
|> String.replace("&", "&")
|
||||
|> String.replace("<", "<")
|
||||
|> String.replace(">", ">")
|
||||
|> String.replace(""", "\"")
|
||||
|> String.replace("'", "'")
|
||||
|> String.replace(" ", " ")
|
||||
end
|
||||
|
||||
defp route_language(main_language, language) when main_language == language, do: nil
|
||||
|
||||
@@ -27,6 +27,7 @@ defmodule BDS.Rendering.Labels do
|
||||
language_switcher_label: dgettext("render", "Language"),
|
||||
site_search_label: dgettext("render", "Site search"),
|
||||
search_placeholder: dgettext("render", "Search..."),
|
||||
search_no_results: dgettext("render", "No results found"),
|
||||
not_found_message: dgettext("render", "The requested preview page could not be found."),
|
||||
not_found_back_label: dgettext("render", "Back to preview home"),
|
||||
youtube_video: dgettext("render", "YouTube video"),
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</svg>
|
||||
</button>
|
||||
<div class="blog-search-panel" data-blog-search-panel hidden>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}"></div>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}" data-search-no-results="{{ labels.search_no_results }}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -35,7 +35,7 @@
|
||||
</svg>
|
||||
</button>
|
||||
<div class="blog-search-panel" data-blog-search-panel hidden>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}"></div>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}" data-search-no-results="{{ labels.search_no_results }}"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
msgid "Archive"
|
||||
msgstr "Archiv"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:54
|
||||
#: lib/bds/rendering/labels.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "April"
|
||||
msgstr "Apr."
|
||||
@@ -15,7 +15,7 @@ msgstr "Apr."
|
||||
msgid "Archive calendar"
|
||||
msgstr "Archiv"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:70
|
||||
#: lib/bds/rendering/labels.ex:71
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "August"
|
||||
msgstr "Aug."
|
||||
@@ -35,27 +35,27 @@ msgstr "Kalenderdaten konnten nicht geladen werden."
|
||||
msgid "Close calendar"
|
||||
msgstr "Kalender schließen"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:86
|
||||
#: lib/bds/rendering/labels.ex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "December"
|
||||
msgstr "Dezember"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:46
|
||||
#: lib/bds/rendering/labels.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "February"
|
||||
msgstr "Februar"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:42
|
||||
#: lib/bds/rendering/labels.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "January"
|
||||
msgstr "Januar"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:66
|
||||
#: lib/bds/rendering/labels.ex:67
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "July"
|
||||
msgstr "Juli"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:62
|
||||
#: lib/bds/rendering/labels.ex:63
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "June"
|
||||
msgstr "Juni"
|
||||
@@ -75,22 +75,22 @@ msgstr "Verlinkt von"
|
||||
msgid "Loading calendar…"
|
||||
msgstr "Kalender wird geladen …"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:50
|
||||
#: lib/bds/rendering/labels.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "March"
|
||||
msgstr "März"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:58
|
||||
#: lib/bds/rendering/labels.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "May"
|
||||
msgstr "Mai"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:82
|
||||
#: lib/bds/rendering/labels.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "November"
|
||||
msgstr "Nov."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:78
|
||||
#: lib/bds/rendering/labels.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "October"
|
||||
msgstr "Oktober"
|
||||
@@ -110,7 +110,7 @@ msgstr "Seitennummerierung"
|
||||
msgid "Search..."
|
||||
msgstr "Suchen..."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:74
|
||||
#: lib/bds/rendering/labels.ex:75
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "September"
|
||||
msgstr "Sept."
|
||||
@@ -135,22 +135,27 @@ msgstr "neuer"
|
||||
msgid "older"
|
||||
msgstr "älter"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to preview home"
|
||||
msgstr "Zurück zur Vorschau-Startseite"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The requested preview page could not be found."
|
||||
msgstr "Die angeforderte Vorschauseite konnte nicht gefunden werden."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#: lib/bds/rendering/labels.ex:34
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Vimeo video"
|
||||
msgstr "Vimeo-Video"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "YouTube video"
|
||||
msgstr "YouTube-Video"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No results found"
|
||||
msgstr "Keine Ergebnisse gefunden"
|
||||
|
||||
@@ -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:776
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:781
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
@@ -257,14 +257,14 @@ msgid "Auto"
|
||||
msgstr "Automatisch"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:98
|
||||
#: lib/bds/desktop/shell_live.ex:409
|
||||
#: lib/bds/desktop/shell_live.ex:414
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:231
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:156
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:349
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:538
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:643
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:692
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:648
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:697
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Automatic AI actions stay gated by airplane mode."
|
||||
msgstr "Automatische KI-Aktionen bleiben durch den Flugmodus gesperrt."
|
||||
@@ -404,7 +404,7 @@ msgstr "Kategorie-Standards, Render-Flags und Template-Zuordnung"
|
||||
msgid "Category name is required"
|
||||
msgstr "Kategoriename ist erforderlich"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live.ex:937
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:87
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:230
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:318
|
||||
@@ -537,7 +537,7 @@ msgstr "MCP-Konfiguration %{path} konnte nicht gelesen werden: %{reason}"
|
||||
msgid "Could not write MCP config %{path}: %{reason}"
|
||||
msgstr "MCP-Konfiguration %{path} konnte nicht geschrieben werden: %{reason}"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:42
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Create"
|
||||
msgstr "Erstellen"
|
||||
@@ -649,7 +649,7 @@ msgstr "Standard-Bearbeitungsmodus und Diff-Darstellung"
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:181
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:182
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:58
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:70
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:15
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
@@ -706,9 +706,9 @@ msgstr "Erkennen"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:199
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:205
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:642
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:671
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:677
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:647
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:676
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:682
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Detect Language"
|
||||
msgstr "Sprache erkennen"
|
||||
@@ -749,7 +749,7 @@ msgid "Discard changes and restore the published version"
|
||||
msgstr "Änderungen verwerfen und veröffentlichte Version wiederherstellen"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:21
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:84
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:96
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Discover"
|
||||
msgstr "Entdecken"
|
||||
@@ -991,7 +991,7 @@ msgstr "Galerie"
|
||||
msgid "Generate Site"
|
||||
msgstr "Website generieren"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live.ex:938
|
||||
#: lib/bds/ui/sidebar.ex:784
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git"
|
||||
@@ -1004,7 +1004,7 @@ msgid "Git Diff"
|
||||
msgstr "Git-Diff"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:244
|
||||
#: lib/bds/desktop/shell_live.ex:929
|
||||
#: lib/bds/desktop/shell_live.ex:934
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git Log"
|
||||
@@ -1033,7 +1033,7 @@ 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:703
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:894
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:899
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Idle"
|
||||
msgstr "Leerlauf"
|
||||
@@ -1127,9 +1127,9 @@ msgstr "Importdefinitionen"
|
||||
msgid "Import failed: %{error}"
|
||||
msgstr "Import fehlgeschlagen: %{error}"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:580
|
||||
#: lib/bds/desktop/shell_live.ex:970
|
||||
#: lib/bds/desktop/shell_live.ex:976
|
||||
#: lib/bds/desktop/shell_live.ex:585
|
||||
#: lib/bds/desktop/shell_live.ex:975
|
||||
#: lib/bds/desktop/shell_live.ex:981
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Import media"
|
||||
@@ -1204,7 +1204,7 @@ msgid "Language"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:206
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:678
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:683
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Language detection failed."
|
||||
msgstr "Spracherkennung fehlgeschlagen."
|
||||
@@ -1288,7 +1288,7 @@ msgstr "Zuordnen zu..."
|
||||
msgid "Mapped"
|
||||
msgstr "Zugeordnet"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:902
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Markdown"
|
||||
@@ -1328,12 +1328,12 @@ msgstr "Medium gespeichert"
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:75
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge"
|
||||
msgstr "Zusammenführen"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:66
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:78
|
||||
#: lib/bds/ui/sidebar.ex:747
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge Tags"
|
||||
@@ -1424,7 +1424,7 @@ msgstr "Neues Untermenü"
|
||||
msgid "New Template"
|
||||
msgstr "Neue Vorlage"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:52
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:64
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No Template"
|
||||
msgstr "Kein Template"
|
||||
@@ -1721,7 +1721,7 @@ msgstr "Sonstige"
|
||||
msgid "Other (%{count})"
|
||||
msgstr "Andere (%{count})"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:928
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Output"
|
||||
@@ -1786,16 +1786,16 @@ 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:742
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:478
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:517
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:552
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:567
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:599
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:632
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:483
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:522
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:557
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:572
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:604
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:637
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:515
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
|
||||
#: lib/bds/ui/registry.ex:99
|
||||
@@ -1825,12 +1825,12 @@ msgstr "Beitragsvorlage"
|
||||
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:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post published"
|
||||
msgstr "Beitrag veröffentlicht"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post saved"
|
||||
msgstr "Beitrag gespeichert"
|
||||
@@ -1854,7 +1854,7 @@ msgstr "Beiträge (%{count})"
|
||||
msgid "Preferences"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:903
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:121
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview"
|
||||
@@ -1923,7 +1923,7 @@ msgid "Publish Selected"
|
||||
msgstr "Ausgewähltes veröffentlichen"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:181
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:892
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
|
||||
#: lib/bds/ui/sidebar.ex:320
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2121,7 +2121,7 @@ msgstr "Lösung"
|
||||
msgid "Result"
|
||||
msgstr "Ergebnis"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:893
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reverted"
|
||||
msgstr "Zurückgesetzt"
|
||||
@@ -2161,7 +2161,7 @@ msgstr "SSH-Modus"
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:312
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:329
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:342
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:57
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:69
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:13
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save"
|
||||
@@ -2173,7 +2173,7 @@ msgid "Save Translation"
|
||||
msgstr "Übersetzung speichern"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:702
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:891
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:896
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved"
|
||||
msgstr "Gespeichert"
|
||||
@@ -2431,7 +2431,7 @@ msgstr "Untermenü"
|
||||
msgid "Switch project"
|
||||
msgstr "Projekt wechseln"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:82
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:94
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sync"
|
||||
msgstr "Synchronisieren"
|
||||
@@ -2468,11 +2468,11 @@ msgstr "Schlagwortname"
|
||||
#: lib/bds/desktop/shell_live/index.html.heex:325
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:161
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:158
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:94
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:136
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:189
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:203
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:234
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:104
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:166
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:233
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:264
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
@@ -2483,7 +2483,7 @@ msgstr "Schlagwortname"
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:927
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
@@ -2648,9 +2648,9 @@ msgstr "Seitenleiste umschalten"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:558
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:563
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:691
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:720
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:696
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:725
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:730
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Translate"
|
||||
@@ -2727,7 +2727,7 @@ msgstr "Verknüpfung mit Beitrag aufheben"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:701
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:890
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:895
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unsaved"
|
||||
@@ -3179,12 +3179,12 @@ msgstr "Willkommen beim KI-Assistenten"
|
||||
msgid "Comparing database and filesystem metadata"
|
||||
msgstr "Vergleicht Datenbank- und Dateisystem-Metadaten"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:650
|
||||
#: lib/bds/desktop/shell_live.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{count} images to post"
|
||||
msgstr "%{count} Bilder zum Beitrag hinzugefügt"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{title}"
|
||||
msgstr "%{title} hinzugefügt"
|
||||
@@ -3204,18 +3204,18 @@ msgstr "Endbenutzer-Anleitung für redaktionelle Arbeitsabläufe, Medien, Vorlag
|
||||
msgid "Image Import Concurrency"
|
||||
msgstr "Gleichzeitige Bildimporte"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:408
|
||||
#: lib/bds/desktop/shell_live.ex:421
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:649
|
||||
#: lib/bds/desktop/shell_live.ex:658
|
||||
#: lib/bds/desktop/shell_live.ex:665
|
||||
#: lib/bds/desktop/shell_live.ex:413
|
||||
#: lib/bds/desktop/shell_live.ex:426
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#: lib/bds/desktop/shell_live.ex:654
|
||||
#: lib/bds/desktop/shell_live.ex:663
|
||||
#: lib/bds/desktop/shell_live.ex:670
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Add Gallery Images"
|
||||
msgstr "Galerie-Bilder hinzufügen"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:666
|
||||
#: lib/bds/desktop/shell_live.ex:671
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to process %{path}: %{reason}"
|
||||
msgstr "%{path} konnte nicht verarbeitet werden: %{reason}"
|
||||
@@ -3230,12 +3230,12 @@ msgstr "Archivieren"
|
||||
msgid "Move this post to the archive"
|
||||
msgstr "Diesen Beitrag ins Archiv verschieben"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post archived"
|
||||
msgstr "Beitrag archiviert"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post unarchived"
|
||||
msgstr "Beitrag wiederhergestellt"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:54
|
||||
#: lib/bds/rendering/labels.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
@@ -15,7 +15,7 @@ msgstr ""
|
||||
msgid "Archive calendar"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:70
|
||||
#: lib/bds/rendering/labels.ex:71
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
@@ -35,27 +35,27 @@ msgstr ""
|
||||
msgid "Close calendar"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:86
|
||||
#: lib/bds/rendering/labels.ex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:46
|
||||
#: lib/bds/rendering/labels.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:42
|
||||
#: lib/bds/rendering/labels.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:66
|
||||
#: lib/bds/rendering/labels.ex:67
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:62
|
||||
#: lib/bds/rendering/labels.ex:63
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
@@ -75,22 +75,22 @@ msgstr ""
|
||||
msgid "Loading calendar…"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:50
|
||||
#: lib/bds/rendering/labels.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:58
|
||||
#: lib/bds/rendering/labels.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:82
|
||||
#: lib/bds/rendering/labels.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:78
|
||||
#: lib/bds/rendering/labels.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
@@ -110,7 +110,7 @@ msgstr ""
|
||||
msgid "Search..."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:74
|
||||
#: lib/bds/rendering/labels.ex:75
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
@@ -135,22 +135,27 @@ msgstr ""
|
||||
msgid "older"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to preview home"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The requested preview page could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#: lib/bds/rendering/labels.ex:34
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Vimeo video"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "YouTube video"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No results found"
|
||||
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:776
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:781
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
@@ -257,14 +257,14 @@ msgid "Auto"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:98
|
||||
#: lib/bds/desktop/shell_live.ex:409
|
||||
#: lib/bds/desktop/shell_live.ex:414
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:231
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:156
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:349
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:538
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:643
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:692
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:648
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:697
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Automatic AI actions stay gated by airplane mode."
|
||||
msgstr ""
|
||||
@@ -404,7 +404,7 @@ msgstr ""
|
||||
msgid "Category name is required"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live.ex:937
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:87
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:230
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:318
|
||||
@@ -537,7 +537,7 @@ msgstr ""
|
||||
msgid "Could not write MCP config %{path}: %{reason}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:42
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
@@ -649,7 +649,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:181
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:182
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:58
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:70
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:15
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
@@ -706,9 +706,9 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:199
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:205
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:642
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:671
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:677
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:647
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:676
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:682
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Detect Language"
|
||||
msgstr ""
|
||||
@@ -749,7 +749,7 @@ msgid "Discard changes and restore the published version"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:21
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:84
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:96
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Discover"
|
||||
msgstr ""
|
||||
@@ -991,7 +991,7 @@ msgstr ""
|
||||
msgid "Generate Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live.ex:938
|
||||
#: lib/bds/ui/sidebar.ex:784
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git"
|
||||
@@ -1004,7 +1004,7 @@ msgid "Git Diff"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:244
|
||||
#: lib/bds/desktop/shell_live.ex:929
|
||||
#: lib/bds/desktop/shell_live.ex:934
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git Log"
|
||||
@@ -1033,7 +1033,7 @@ 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:703
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:894
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:899
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Idle"
|
||||
msgstr ""
|
||||
@@ -1127,9 +1127,9 @@ msgstr ""
|
||||
msgid "Import failed: %{error}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:580
|
||||
#: lib/bds/desktop/shell_live.ex:970
|
||||
#: lib/bds/desktop/shell_live.ex:976
|
||||
#: lib/bds/desktop/shell_live.ex:585
|
||||
#: lib/bds/desktop/shell_live.ex:975
|
||||
#: lib/bds/desktop/shell_live.ex:981
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Import media"
|
||||
@@ -1204,7 +1204,7 @@ msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:206
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:678
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:683
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Language detection failed."
|
||||
msgstr ""
|
||||
@@ -1288,7 +1288,7 @@ msgstr ""
|
||||
msgid "Mapped"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:902
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Markdown"
|
||||
@@ -1328,12 +1328,12 @@ msgstr ""
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:75
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:66
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:78
|
||||
#: lib/bds/ui/sidebar.ex:747
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge Tags"
|
||||
@@ -1424,7 +1424,7 @@ msgstr ""
|
||||
msgid "New Template"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:52
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:64
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No Template"
|
||||
msgstr ""
|
||||
@@ -1721,7 +1721,7 @@ msgstr ""
|
||||
msgid "Other (%{count})"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:928
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Output"
|
||||
@@ -1786,16 +1786,16 @@ msgid "Persist the detected language for this media item"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:742
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:478
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:517
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:552
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:567
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:599
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:632
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:483
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:522
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:557
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:572
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:604
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:637
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:515
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
|
||||
#: lib/bds/ui/registry.ex:99
|
||||
@@ -1825,12 +1825,12 @@ msgstr ""
|
||||
msgid "Post is marked as do-not-translate but has translations"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post published"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post saved"
|
||||
msgstr ""
|
||||
@@ -1854,7 +1854,7 @@ msgstr ""
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:903
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:121
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview"
|
||||
@@ -1923,7 +1923,7 @@ msgid "Publish Selected"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:181
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:892
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
|
||||
#: lib/bds/ui/sidebar.ex:320
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2121,7 +2121,7 @@ msgstr ""
|
||||
msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:893
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reverted"
|
||||
msgstr ""
|
||||
@@ -2161,7 +2161,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:312
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:329
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:342
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:57
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:69
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:13
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save"
|
||||
@@ -2173,7 +2173,7 @@ msgid "Save Translation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:702
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:891
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:896
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved"
|
||||
msgstr ""
|
||||
@@ -2431,7 +2431,7 @@ msgstr ""
|
||||
msgid "Switch project"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:82
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:94
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sync"
|
||||
msgstr ""
|
||||
@@ -2468,11 +2468,11 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/index.html.heex:325
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:161
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:158
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:94
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:136
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:189
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:203
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:234
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:104
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:166
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:233
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:264
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
@@ -2483,7 +2483,7 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:927
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
@@ -2648,9 +2648,9 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:558
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:563
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:691
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:720
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:696
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:725
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:730
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Translate"
|
||||
@@ -2727,7 +2727,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:701
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:890
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:895
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unsaved"
|
||||
@@ -3179,12 +3179,12 @@ msgstr ""
|
||||
msgid "Comparing database and filesystem metadata"
|
||||
msgstr "Comparing database and filesystem metadata"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:650
|
||||
#: lib/bds/desktop/shell_live.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{count} images to post"
|
||||
msgstr "Added %{count} images to post"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{title}"
|
||||
msgstr "Added %{title}"
|
||||
@@ -3204,18 +3204,18 @@ msgstr ""
|
||||
msgid "Image Import Concurrency"
|
||||
msgstr "Image Import Concurrency"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:408
|
||||
#: lib/bds/desktop/shell_live.ex:421
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:649
|
||||
#: lib/bds/desktop/shell_live.ex:658
|
||||
#: lib/bds/desktop/shell_live.ex:665
|
||||
#: lib/bds/desktop/shell_live.ex:413
|
||||
#: lib/bds/desktop/shell_live.ex:426
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#: lib/bds/desktop/shell_live.ex:654
|
||||
#: lib/bds/desktop/shell_live.ex:663
|
||||
#: lib/bds/desktop/shell_live.ex:670
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Add Gallery Images"
|
||||
msgstr "Add Gallery Images"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:666
|
||||
#: lib/bds/desktop/shell_live.ex:671
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to process %{path}: %{reason}"
|
||||
msgstr "Failed to process %{path}: %{reason}"
|
||||
@@ -3230,12 +3230,12 @@ msgstr ""
|
||||
msgid "Move this post to the archive"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Post archived"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Post unarchived"
|
||||
msgstr ""
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
msgid "Archive"
|
||||
msgstr "Archivo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:54
|
||||
#: lib/bds/rendering/labels.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "April"
|
||||
msgstr "abril"
|
||||
@@ -15,7 +15,7 @@ msgstr "abril"
|
||||
msgid "Archive calendar"
|
||||
msgstr "Archivo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:70
|
||||
#: lib/bds/rendering/labels.ex:71
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "August"
|
||||
msgstr "agosto"
|
||||
@@ -35,27 +35,27 @@ msgstr "No se pudieron cargar los datos del calendario."
|
||||
msgid "Close calendar"
|
||||
msgstr "Cerrar calendario"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:86
|
||||
#: lib/bds/rendering/labels.ex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "December"
|
||||
msgstr "diciembre"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:46
|
||||
#: lib/bds/rendering/labels.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "February"
|
||||
msgstr "febrero"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:42
|
||||
#: lib/bds/rendering/labels.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "January"
|
||||
msgstr "enero"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:66
|
||||
#: lib/bds/rendering/labels.ex:67
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "July"
|
||||
msgstr "julio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:62
|
||||
#: lib/bds/rendering/labels.ex:63
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "June"
|
||||
msgstr "junio"
|
||||
@@ -75,22 +75,22 @@ msgstr "Enlazado desde"
|
||||
msgid "Loading calendar…"
|
||||
msgstr "Cargando calendario…"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:50
|
||||
#: lib/bds/rendering/labels.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "March"
|
||||
msgstr "marzo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:58
|
||||
#: lib/bds/rendering/labels.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "May"
|
||||
msgstr "mayo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:82
|
||||
#: lib/bds/rendering/labels.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "November"
|
||||
msgstr "noviembre"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:78
|
||||
#: lib/bds/rendering/labels.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "October"
|
||||
msgstr "octubre"
|
||||
@@ -110,7 +110,7 @@ msgstr "Paginación"
|
||||
msgid "Search..."
|
||||
msgstr "Buscar..."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:74
|
||||
#: lib/bds/rendering/labels.ex:75
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "September"
|
||||
msgstr "septiembre"
|
||||
@@ -135,22 +135,27 @@ msgstr "más reciente"
|
||||
msgid "older"
|
||||
msgstr "más antiguo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to preview home"
|
||||
msgstr "Volver al inicio de vista previa"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The requested preview page could not be found."
|
||||
msgstr "No se pudo encontrar la página de vista previa solicitada."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#: lib/bds/rendering/labels.ex:34
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Vimeo video"
|
||||
msgstr "Vídeo de Vimeo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "YouTube video"
|
||||
msgstr "Vídeo de YouTube"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No results found"
|
||||
msgstr "No se encontraron resultados"
|
||||
|
||||
@@ -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:776
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:781
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
@@ -257,14 +257,14 @@ msgid "Auto"
|
||||
msgstr "Automático"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:98
|
||||
#: lib/bds/desktop/shell_live.ex:409
|
||||
#: lib/bds/desktop/shell_live.ex:414
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:231
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:156
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:349
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:538
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:643
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:692
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:648
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:697
|
||||
#, 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."
|
||||
@@ -404,7 +404,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:932
|
||||
#: lib/bds/desktop/shell_live.ex:937
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:87
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:230
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:318
|
||||
@@ -537,7 +537,7 @@ msgstr "No se pudo leer la configuración MCP %{path}: %{reason}"
|
||||
msgid "Could not write MCP config %{path}: %{reason}"
|
||||
msgstr "No se pudo escribir la configuración MCP %{path}: %{reason}"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:42
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Create"
|
||||
msgstr "Crear"
|
||||
@@ -649,7 +649,7 @@ msgstr "Modo de edición predeterminado y presentación de diff"
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:181
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:182
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:58
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:70
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:15
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
@@ -706,9 +706,9 @@ msgstr "Detectar"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:199
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:205
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:642
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:671
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:677
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:647
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:676
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:682
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Detect Language"
|
||||
msgstr "Detectar idioma"
|
||||
@@ -749,7 +749,7 @@ msgid "Discard changes and restore the published version"
|
||||
msgstr "Descartar cambios y restaurar la versión publicada"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:21
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:84
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:96
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Discover"
|
||||
msgstr "Descubrir"
|
||||
@@ -991,7 +991,7 @@ msgstr "Galeria"
|
||||
msgid "Generate Site"
|
||||
msgstr "Generar sitio"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live.ex:938
|
||||
#: lib/bds/ui/sidebar.ex:784
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git"
|
||||
@@ -1004,7 +1004,7 @@ msgid "Git Diff"
|
||||
msgstr "Diff de Git"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:244
|
||||
#: lib/bds/desktop/shell_live.ex:929
|
||||
#: lib/bds/desktop/shell_live.ex:934
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git Log"
|
||||
@@ -1033,7 +1033,7 @@ 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:703
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:894
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:899
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Idle"
|
||||
msgstr "Inactivo"
|
||||
@@ -1127,9 +1127,9 @@ msgstr "Definiciones de importación"
|
||||
msgid "Import failed: %{error}"
|
||||
msgstr "La importación falló: %{error}"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:580
|
||||
#: lib/bds/desktop/shell_live.ex:970
|
||||
#: lib/bds/desktop/shell_live.ex:976
|
||||
#: lib/bds/desktop/shell_live.ex:585
|
||||
#: lib/bds/desktop/shell_live.ex:975
|
||||
#: lib/bds/desktop/shell_live.ex:981
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Import media"
|
||||
@@ -1204,7 +1204,7 @@ msgid "Language"
|
||||
msgstr "Idioma"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:206
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:678
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:683
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Language detection failed."
|
||||
msgstr "La detección de idioma falló."
|
||||
@@ -1288,7 +1288,7 @@ msgstr "Mapear a..."
|
||||
msgid "Mapped"
|
||||
msgstr "Mapeado"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:902
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Markdown"
|
||||
@@ -1328,12 +1328,12 @@ msgstr "Medio guardado"
|
||||
msgid "Menu"
|
||||
msgstr "Menú"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:75
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge"
|
||||
msgstr "Fusionar"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:66
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:78
|
||||
#: lib/bds/ui/sidebar.ex:747
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge Tags"
|
||||
@@ -1424,7 +1424,7 @@ msgstr "Nuevo submenú"
|
||||
msgid "New Template"
|
||||
msgstr "Nueva plantilla"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:52
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:64
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No Template"
|
||||
msgstr "Sin plantilla"
|
||||
@@ -1721,7 +1721,7 @@ msgstr "Otros"
|
||||
msgid "Other (%{count})"
|
||||
msgstr "Otros (%{count})"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:928
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Output"
|
||||
@@ -1786,16 +1786,16 @@ 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:742
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:478
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:517
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:552
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:567
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:599
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:632
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:483
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:522
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:557
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:572
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:604
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:637
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:515
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
|
||||
#: lib/bds/ui/registry.ex:99
|
||||
@@ -1825,12 +1825,12 @@ msgstr "Plantilla de publicación"
|
||||
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:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post published"
|
||||
msgstr "Artículo publicado"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post saved"
|
||||
msgstr "Artículo guardado"
|
||||
@@ -1854,7 +1854,7 @@ msgstr "Publicaciones (%{count})"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferencias"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:903
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:121
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview"
|
||||
@@ -1923,7 +1923,7 @@ msgid "Publish Selected"
|
||||
msgstr "Publicar seleccionados"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:181
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:892
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
|
||||
#: lib/bds/ui/sidebar.ex:320
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2121,7 +2121,7 @@ msgstr "Resolución"
|
||||
msgid "Result"
|
||||
msgstr "Resultado"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:893
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reverted"
|
||||
msgstr "Revertido"
|
||||
@@ -2161,7 +2161,7 @@ msgstr "Modo SSH"
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:312
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:329
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:342
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:57
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:69
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:13
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save"
|
||||
@@ -2173,7 +2173,7 @@ msgid "Save Translation"
|
||||
msgstr "Guardar traducción"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:702
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:891
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:896
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved"
|
||||
msgstr "Guardado"
|
||||
@@ -2431,7 +2431,7 @@ msgstr "Submenú"
|
||||
msgid "Switch project"
|
||||
msgstr "Cambiar proyecto"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:82
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:94
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sync"
|
||||
msgstr "Sincronizar"
|
||||
@@ -2468,11 +2468,11 @@ msgstr "Nombre de la etiqueta"
|
||||
#: lib/bds/desktop/shell_live/index.html.heex:325
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:161
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:158
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:94
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:136
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:189
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:203
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:234
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:104
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:166
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:233
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:264
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
@@ -2483,7 +2483,7 @@ msgstr "Nombre de la etiqueta"
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:927
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
@@ -2648,9 +2648,9 @@ msgstr "Alternar barra lateral"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:558
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:563
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:691
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:720
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:696
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:725
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:730
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Translate"
|
||||
@@ -2727,7 +2727,7 @@ msgstr "Desvincular del artículo"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:701
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:890
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:895
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unsaved"
|
||||
@@ -3179,12 +3179,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:650
|
||||
#: lib/bds/desktop/shell_live.ex:655
|
||||
#, 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:621
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{title}"
|
||||
msgstr "%{title} añadido"
|
||||
@@ -3204,18 +3204,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:408
|
||||
#: lib/bds/desktop/shell_live.ex:421
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:649
|
||||
#: lib/bds/desktop/shell_live.ex:658
|
||||
#: lib/bds/desktop/shell_live.ex:665
|
||||
#: lib/bds/desktop/shell_live.ex:413
|
||||
#: lib/bds/desktop/shell_live.ex:426
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#: lib/bds/desktop/shell_live.ex:654
|
||||
#: lib/bds/desktop/shell_live.ex:663
|
||||
#: lib/bds/desktop/shell_live.ex:670
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Add Gallery Images"
|
||||
msgstr "Añadir imágenes a la galería"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:666
|
||||
#: lib/bds/desktop/shell_live.ex:671
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to process %{path}: %{reason}"
|
||||
msgstr "No se pudo procesar %{path}: %{reason}"
|
||||
@@ -3230,12 +3230,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:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post archived"
|
||||
msgstr "Artículo archivado"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post unarchived"
|
||||
msgstr "Artículo restaurado"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
msgid "Archive"
|
||||
msgstr "Archives"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:54
|
||||
#: lib/bds/rendering/labels.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "April"
|
||||
msgstr "avril"
|
||||
@@ -15,7 +15,7 @@ msgstr "avril"
|
||||
msgid "Archive calendar"
|
||||
msgstr "Archives"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:70
|
||||
#: lib/bds/rendering/labels.ex:71
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "August"
|
||||
msgstr "août"
|
||||
@@ -35,27 +35,27 @@ msgstr "Impossible de charger les données du calendrier."
|
||||
msgid "Close calendar"
|
||||
msgstr "Fermer le calendrier"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:86
|
||||
#: lib/bds/rendering/labels.ex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "December"
|
||||
msgstr "décembre"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:46
|
||||
#: lib/bds/rendering/labels.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "February"
|
||||
msgstr "février"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:42
|
||||
#: lib/bds/rendering/labels.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "January"
|
||||
msgstr "janvier"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:66
|
||||
#: lib/bds/rendering/labels.ex:67
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "July"
|
||||
msgstr "juillet"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:62
|
||||
#: lib/bds/rendering/labels.ex:63
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "June"
|
||||
msgstr "juin"
|
||||
@@ -75,22 +75,22 @@ msgstr "Lié depuis"
|
||||
msgid "Loading calendar…"
|
||||
msgstr "Chargement du calendrier…"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:50
|
||||
#: lib/bds/rendering/labels.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "March"
|
||||
msgstr "mars"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:58
|
||||
#: lib/bds/rendering/labels.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "May"
|
||||
msgstr "mai"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:82
|
||||
#: lib/bds/rendering/labels.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "November"
|
||||
msgstr "novembre"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:78
|
||||
#: lib/bds/rendering/labels.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "October"
|
||||
msgstr "octobre"
|
||||
@@ -110,7 +110,7 @@ msgstr "Navigation paginée"
|
||||
msgid "Search..."
|
||||
msgstr "Rechercher..."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:74
|
||||
#: lib/bds/rendering/labels.ex:75
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "September"
|
||||
msgstr "septembre"
|
||||
@@ -135,22 +135,27 @@ msgstr "plus récent"
|
||||
msgid "older"
|
||||
msgstr "plus ancien"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to preview home"
|
||||
msgstr "Retour à l’accueil de l’aperçu"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The requested preview page could not be found."
|
||||
msgstr "La page d’aperçu demandée est introuvable."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#: lib/bds/rendering/labels.ex:34
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Vimeo video"
|
||||
msgstr "Vidéo Vimeo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "YouTube video"
|
||||
msgstr "Vidéo YouTube"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No results found"
|
||||
msgstr "Aucun résultat trouvé"
|
||||
|
||||
@@ -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:776
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:781
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
@@ -257,14 +257,14 @@ msgid "Auto"
|
||||
msgstr "Automatique"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:98
|
||||
#: lib/bds/desktop/shell_live.ex:409
|
||||
#: lib/bds/desktop/shell_live.ex:414
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:231
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:156
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:349
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:538
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:643
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:692
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:648
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:697
|
||||
#, 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."
|
||||
@@ -404,7 +404,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:932
|
||||
#: lib/bds/desktop/shell_live.ex:937
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:87
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:230
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:318
|
||||
@@ -537,7 +537,7 @@ msgstr "Impossible de lire la configuration MCP %{path} : %{reason}"
|
||||
msgid "Could not write MCP config %{path}: %{reason}"
|
||||
msgstr "Impossible d'écrire la configuration MCP %{path} : %{reason}"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:42
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Create"
|
||||
msgstr "Créer"
|
||||
@@ -649,7 +649,7 @@ msgstr "Mode d’édition par défaut et présentation des diffs"
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:181
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:182
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:58
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:70
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:15
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
@@ -706,9 +706,9 @@ msgstr "Détecter"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:199
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:205
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:642
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:671
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:677
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:647
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:676
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:682
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Detect Language"
|
||||
msgstr "Détecter la langue"
|
||||
@@ -749,7 +749,7 @@ msgid "Discard changes and restore the published version"
|
||||
msgstr "Annuler les modifications et restaurer la version publiée"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:21
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:84
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:96
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Discover"
|
||||
msgstr "Découvrir"
|
||||
@@ -991,7 +991,7 @@ msgstr "Galerie"
|
||||
msgid "Generate Site"
|
||||
msgstr "Générer le site"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live.ex:938
|
||||
#: lib/bds/ui/sidebar.ex:784
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git"
|
||||
@@ -1004,7 +1004,7 @@ msgid "Git Diff"
|
||||
msgstr "Diff Git"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:244
|
||||
#: lib/bds/desktop/shell_live.ex:929
|
||||
#: lib/bds/desktop/shell_live.ex:934
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git Log"
|
||||
@@ -1033,7 +1033,7 @@ 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:703
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:894
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:899
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Idle"
|
||||
msgstr "Inactif"
|
||||
@@ -1127,9 +1127,9 @@ msgstr "Définitions d’import"
|
||||
msgid "Import failed: %{error}"
|
||||
msgstr "Échec de l’import : %{error}"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:580
|
||||
#: lib/bds/desktop/shell_live.ex:970
|
||||
#: lib/bds/desktop/shell_live.ex:976
|
||||
#: lib/bds/desktop/shell_live.ex:585
|
||||
#: lib/bds/desktop/shell_live.ex:975
|
||||
#: lib/bds/desktop/shell_live.ex:981
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Import media"
|
||||
@@ -1204,7 +1204,7 @@ msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:206
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:678
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:683
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Language detection failed."
|
||||
msgstr "La détection de la langue a échoué."
|
||||
@@ -1288,7 +1288,7 @@ msgstr "Mapper vers..."
|
||||
msgid "Mapped"
|
||||
msgstr "Mappé"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:902
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Markdown"
|
||||
@@ -1328,12 +1328,12 @@ msgstr "Média enregistré"
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:75
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge"
|
||||
msgstr "Fusionner"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:66
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:78
|
||||
#: lib/bds/ui/sidebar.ex:747
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge Tags"
|
||||
@@ -1424,7 +1424,7 @@ msgstr "Nouveau sous-menu"
|
||||
msgid "New Template"
|
||||
msgstr "Nouveau modèle"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:52
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:64
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No Template"
|
||||
msgstr "Aucun template"
|
||||
@@ -1721,7 +1721,7 @@ msgstr "Autre"
|
||||
msgid "Other (%{count})"
|
||||
msgstr "Autres (%{count})"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:928
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Output"
|
||||
@@ -1786,16 +1786,16 @@ 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:742
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:478
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:517
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:552
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:567
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:599
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:632
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:483
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:522
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:557
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:572
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:604
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:637
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:515
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
|
||||
#: lib/bds/ui/registry.ex:99
|
||||
@@ -1825,12 +1825,12 @@ msgstr "Modèle d’article"
|
||||
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:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post published"
|
||||
msgstr "Article publié"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post saved"
|
||||
msgstr "Article enregistré"
|
||||
@@ -1854,7 +1854,7 @@ msgstr "Articles (%{count})"
|
||||
msgid "Preferences"
|
||||
msgstr "Préférences"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:903
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:121
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview"
|
||||
@@ -1923,7 +1923,7 @@ msgid "Publish Selected"
|
||||
msgstr "Publier la sélection"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:181
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:892
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
|
||||
#: lib/bds/ui/sidebar.ex:320
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2121,7 +2121,7 @@ msgstr "Résolution"
|
||||
msgid "Result"
|
||||
msgstr "Résultat"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:893
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reverted"
|
||||
msgstr "Restauré"
|
||||
@@ -2161,7 +2161,7 @@ msgstr "Mode SSH"
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:312
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:329
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:342
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:57
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:69
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:13
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save"
|
||||
@@ -2173,7 +2173,7 @@ msgid "Save Translation"
|
||||
msgstr "Enregistrer la traduction"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:702
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:891
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:896
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved"
|
||||
msgstr "Enregistré"
|
||||
@@ -2431,7 +2431,7 @@ msgstr "Sous-menu"
|
||||
msgid "Switch project"
|
||||
msgstr "Changer de projet"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:82
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:94
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sync"
|
||||
msgstr "Synchroniser"
|
||||
@@ -2468,11 +2468,11 @@ msgstr "Nom du mot-clé"
|
||||
#: lib/bds/desktop/shell_live/index.html.heex:325
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:161
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:158
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:94
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:136
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:189
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:203
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:234
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:104
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:166
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:233
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:264
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
@@ -2483,7 +2483,7 @@ msgstr "Nom du mot-clé"
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:927
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
@@ -2648,9 +2648,9 @@ msgstr "Afficher ou masquer la barre latérale"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:558
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:563
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:691
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:720
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:696
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:725
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:730
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Translate"
|
||||
@@ -2727,7 +2727,7 @@ msgstr "Dissocier de l'article"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:701
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:890
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:895
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unsaved"
|
||||
@@ -3179,12 +3179,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:650
|
||||
#: lib/bds/desktop/shell_live.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{count} images to post"
|
||||
msgstr "%{count} images ajoutées à l'article"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{title}"
|
||||
msgstr "%{title} ajouté"
|
||||
@@ -3204,18 +3204,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:408
|
||||
#: lib/bds/desktop/shell_live.ex:421
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:649
|
||||
#: lib/bds/desktop/shell_live.ex:658
|
||||
#: lib/bds/desktop/shell_live.ex:665
|
||||
#: lib/bds/desktop/shell_live.ex:413
|
||||
#: lib/bds/desktop/shell_live.ex:426
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#: lib/bds/desktop/shell_live.ex:654
|
||||
#: lib/bds/desktop/shell_live.ex:663
|
||||
#: lib/bds/desktop/shell_live.ex:670
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Add Gallery Images"
|
||||
msgstr "Ajouter des images à la galerie"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:666
|
||||
#: lib/bds/desktop/shell_live.ex:671
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to process %{path}: %{reason}"
|
||||
msgstr "Impossible de traiter %{path} : %{reason}"
|
||||
@@ -3230,12 +3230,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:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post archived"
|
||||
msgstr "Article archivé"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post unarchived"
|
||||
msgstr "Article désarchivé"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
msgid "Archive"
|
||||
msgstr "Archivio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:54
|
||||
#: lib/bds/rendering/labels.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "April"
|
||||
msgstr "aprile"
|
||||
@@ -15,7 +15,7 @@ msgstr "aprile"
|
||||
msgid "Archive calendar"
|
||||
msgstr "Archivio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:70
|
||||
#: lib/bds/rendering/labels.ex:71
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "August"
|
||||
msgstr "agosto"
|
||||
@@ -35,27 +35,27 @@ msgstr "Impossibile caricare i dati del calendario."
|
||||
msgid "Close calendar"
|
||||
msgstr "Chiudi calendario"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:86
|
||||
#: lib/bds/rendering/labels.ex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "December"
|
||||
msgstr "dicembre"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:46
|
||||
#: lib/bds/rendering/labels.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "February"
|
||||
msgstr "febbraio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:42
|
||||
#: lib/bds/rendering/labels.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "January"
|
||||
msgstr "gennaio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:66
|
||||
#: lib/bds/rendering/labels.ex:67
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "July"
|
||||
msgstr "luglio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:62
|
||||
#: lib/bds/rendering/labels.ex:63
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "June"
|
||||
msgstr "giugno"
|
||||
@@ -75,22 +75,22 @@ msgstr "Collegato da"
|
||||
msgid "Loading calendar…"
|
||||
msgstr "Caricamento calendario…"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:50
|
||||
#: lib/bds/rendering/labels.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "March"
|
||||
msgstr "marzo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:58
|
||||
#: lib/bds/rendering/labels.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "May"
|
||||
msgstr "maggio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:82
|
||||
#: lib/bds/rendering/labels.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "November"
|
||||
msgstr "novembre"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:78
|
||||
#: lib/bds/rendering/labels.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "October"
|
||||
msgstr "ottobre"
|
||||
@@ -110,7 +110,7 @@ msgstr "Paginazione"
|
||||
msgid "Search..."
|
||||
msgstr "Cerca..."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:74
|
||||
#: lib/bds/rendering/labels.ex:75
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "September"
|
||||
msgstr "settembre"
|
||||
@@ -135,22 +135,27 @@ msgstr "più recente"
|
||||
msgid "older"
|
||||
msgstr "più vecchio"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to preview home"
|
||||
msgstr "Torna alla home di anteprima"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The requested preview page could not be found."
|
||||
msgstr "La pagina di anteprima richiesta non è stata trovata."
|
||||
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#: lib/bds/rendering/labels.ex:34
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Vimeo video"
|
||||
msgstr "Video Vimeo"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "YouTube video"
|
||||
msgstr "Video YouTube"
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No results found"
|
||||
msgstr "Nessun risultato trovato"
|
||||
|
||||
@@ -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:776
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:781
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
@@ -257,14 +257,14 @@ msgid "Auto"
|
||||
msgstr "Automatico"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:98
|
||||
#: lib/bds/desktop/shell_live.ex:409
|
||||
#: lib/bds/desktop/shell_live.ex:414
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:231
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:156
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:349
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:538
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:643
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:692
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:648
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:697
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Automatic AI actions stay gated by airplane mode."
|
||||
msgstr "Le azioni IA automatiche restano bloccate dalla modalità aereo."
|
||||
@@ -404,7 +404,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:932
|
||||
#: lib/bds/desktop/shell_live.ex:937
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:87
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:230
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:318
|
||||
@@ -537,7 +537,7 @@ msgstr "Impossibile leggere la configurazione MCP %{path}: %{reason}"
|
||||
msgid "Could not write MCP config %{path}: %{reason}"
|
||||
msgstr "Impossibile scrivere la configurazione MCP %{path}: %{reason}"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:42
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Create"
|
||||
msgstr "Crea"
|
||||
@@ -649,7 +649,7 @@ msgstr "Modalità di modifica predefinita e presentazione dei diff"
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:181
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:182
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:58
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:70
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:15
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
@@ -706,9 +706,9 @@ msgstr "Rileva"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:199
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:205
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:642
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:671
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:677
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:647
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:676
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:682
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Detect Language"
|
||||
msgstr "Rileva lingua"
|
||||
@@ -749,7 +749,7 @@ msgid "Discard changes and restore the published version"
|
||||
msgstr "Annulla le modifiche e ripristina la versione pubblicata"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:21
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:84
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:96
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Discover"
|
||||
msgstr "Scopri"
|
||||
@@ -991,7 +991,7 @@ msgstr "Galleria"
|
||||
msgid "Generate Site"
|
||||
msgstr "Genera sito"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live.ex:938
|
||||
#: lib/bds/ui/sidebar.ex:784
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git"
|
||||
@@ -1004,7 +1004,7 @@ msgid "Git Diff"
|
||||
msgstr "Diff Git"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:244
|
||||
#: lib/bds/desktop/shell_live.ex:929
|
||||
#: lib/bds/desktop/shell_live.ex:934
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git Log"
|
||||
@@ -1033,7 +1033,7 @@ 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:703
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:894
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:899
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Idle"
|
||||
msgstr "Inattivo"
|
||||
@@ -1127,9 +1127,9 @@ msgstr "Definizioni di importazione"
|
||||
msgid "Import failed: %{error}"
|
||||
msgstr "Importazione non riuscita: %{error}"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:580
|
||||
#: lib/bds/desktop/shell_live.ex:970
|
||||
#: lib/bds/desktop/shell_live.ex:976
|
||||
#: lib/bds/desktop/shell_live.ex:585
|
||||
#: lib/bds/desktop/shell_live.ex:975
|
||||
#: lib/bds/desktop/shell_live.ex:981
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Import media"
|
||||
@@ -1204,7 +1204,7 @@ msgid "Language"
|
||||
msgstr "Lingua"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:206
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:678
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:683
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Language detection failed."
|
||||
msgstr "Rilevamento della lingua non riuscito."
|
||||
@@ -1288,7 +1288,7 @@ msgstr "Mappa a..."
|
||||
msgid "Mapped"
|
||||
msgstr "Mappato"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:902
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Markdown"
|
||||
@@ -1328,12 +1328,12 @@ msgstr "Media salvato"
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:75
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge"
|
||||
msgstr "Unisci"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:66
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:78
|
||||
#: lib/bds/ui/sidebar.ex:747
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge Tags"
|
||||
@@ -1424,7 +1424,7 @@ msgstr "Nuovo sottomenu"
|
||||
msgid "New Template"
|
||||
msgstr "Nuovo modello"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:52
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:64
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No Template"
|
||||
msgstr "Nessun template"
|
||||
@@ -1721,7 +1721,7 @@ msgstr "Altro"
|
||||
msgid "Other (%{count})"
|
||||
msgstr "Altro (%{count})"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:928
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Output"
|
||||
@@ -1786,16 +1786,16 @@ 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:742
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:478
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:517
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:552
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:567
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:599
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:632
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:483
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:522
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:557
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:572
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:604
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:637
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:515
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
|
||||
#: lib/bds/ui/registry.ex:99
|
||||
@@ -1825,12 +1825,12 @@ msgstr "Template del post"
|
||||
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:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post published"
|
||||
msgstr "Articolo pubblicato"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post saved"
|
||||
msgstr "Articolo salvato"
|
||||
@@ -1854,7 +1854,7 @@ msgstr "Articoli (%{count})"
|
||||
msgid "Preferences"
|
||||
msgstr "Preferenze"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:903
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:121
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview"
|
||||
@@ -1923,7 +1923,7 @@ msgid "Publish Selected"
|
||||
msgstr "Pubblica selezionati"
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:181
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:892
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
|
||||
#: lib/bds/ui/sidebar.ex:320
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2121,7 +2121,7 @@ msgstr "Risoluzione"
|
||||
msgid "Result"
|
||||
msgstr "Risultato"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:893
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reverted"
|
||||
msgstr "Ripristinato"
|
||||
@@ -2161,7 +2161,7 @@ msgstr "Modalità SSH"
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:312
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:329
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:342
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:57
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:69
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:13
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save"
|
||||
@@ -2173,7 +2173,7 @@ msgid "Save Translation"
|
||||
msgstr "Salva traduzione"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:702
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:891
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:896
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved"
|
||||
msgstr "Salvato"
|
||||
@@ -2431,7 +2431,7 @@ msgstr "Sottomenu"
|
||||
msgid "Switch project"
|
||||
msgstr "Cambia progetto"
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:82
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:94
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sync"
|
||||
msgstr "Sincronizza"
|
||||
@@ -2468,11 +2468,11 @@ msgstr "Nome del tag"
|
||||
#: lib/bds/desktop/shell_live/index.html.heex:325
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:161
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:158
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:94
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:136
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:189
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:203
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:234
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:104
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:166
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:233
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:264
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
@@ -2483,7 +2483,7 @@ msgstr "Nome del tag"
|
||||
msgid "Tags"
|
||||
msgstr "Tag"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:927
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
@@ -2648,9 +2648,9 @@ msgstr "Attiva/disattiva barra laterale"
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:558
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:563
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:691
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:720
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:696
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:725
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:730
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Translate"
|
||||
@@ -2727,7 +2727,7 @@ msgstr "Scollega dall'articolo"
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:701
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:890
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:895
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unsaved"
|
||||
@@ -3179,12 +3179,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:650
|
||||
#: lib/bds/desktop/shell_live.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{count} images to post"
|
||||
msgstr "%{count} immagini aggiunte al post"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{title}"
|
||||
msgstr "%{title} aggiunto"
|
||||
@@ -3204,18 +3204,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:408
|
||||
#: lib/bds/desktop/shell_live.ex:421
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:649
|
||||
#: lib/bds/desktop/shell_live.ex:658
|
||||
#: lib/bds/desktop/shell_live.ex:665
|
||||
#: lib/bds/desktop/shell_live.ex:413
|
||||
#: lib/bds/desktop/shell_live.ex:426
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#: lib/bds/desktop/shell_live.ex:654
|
||||
#: lib/bds/desktop/shell_live.ex:663
|
||||
#: lib/bds/desktop/shell_live.ex:670
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Add Gallery Images"
|
||||
msgstr "Aggiungi immagini alla galleria"
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:666
|
||||
#: lib/bds/desktop/shell_live.ex:671
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to process %{path}: %{reason}"
|
||||
msgstr "Impossibile elaborare %{path}: %{reason}"
|
||||
@@ -3230,12 +3230,12 @@ msgstr "Archivia"
|
||||
msgid "Move this post to the archive"
|
||||
msgstr "Sposta questo articolo nell'archivio"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post archived"
|
||||
msgstr "Articolo archiviato"
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post unarchived"
|
||||
msgstr "Articolo ripristinato"
|
||||
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:54
|
||||
#: lib/bds/rendering/labels.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
@@ -28,7 +28,7 @@ msgstr ""
|
||||
msgid "Archive calendar"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:70
|
||||
#: lib/bds/rendering/labels.ex:71
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
@@ -48,27 +48,27 @@ msgstr ""
|
||||
msgid "Close calendar"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:86
|
||||
#: lib/bds/rendering/labels.ex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:46
|
||||
#: lib/bds/rendering/labels.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:42
|
||||
#: lib/bds/rendering/labels.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:66
|
||||
#: lib/bds/rendering/labels.ex:67
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:62
|
||||
#: lib/bds/rendering/labels.ex:63
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
@@ -88,22 +88,22 @@ msgstr ""
|
||||
msgid "Loading calendar…"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:50
|
||||
#: lib/bds/rendering/labels.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:58
|
||||
#: lib/bds/rendering/labels.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:82
|
||||
#: lib/bds/rendering/labels.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:78
|
||||
#: lib/bds/rendering/labels.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
@@ -123,7 +123,7 @@ msgstr ""
|
||||
msgid "Search..."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:74
|
||||
#: lib/bds/rendering/labels.ex:75
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
@@ -148,22 +148,27 @@ msgstr ""
|
||||
msgid "older"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to preview home"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#: lib/bds/rendering/labels.ex:31
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "The requested preview page could not be found."
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#: lib/bds/rendering/labels.ex:34
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Vimeo video"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:32
|
||||
#: lib/bds/rendering/labels.ex:33
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "YouTube video"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/rendering/labels.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No results found"
|
||||
msgstr ""
|
||||
|
||||
@@ -92,7 +92,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:776
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:781
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "AI Suggestions"
|
||||
@@ -270,14 +270,14 @@ msgid "Auto"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:98
|
||||
#: lib/bds/desktop/shell_live.ex:409
|
||||
#: lib/bds/desktop/shell_live.ex:414
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:231
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:156
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:349
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:538
|
||||
#: lib/bds/desktop/shell_live/overlay_manager.ex:73
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:643
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:692
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:648
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:697
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Automatic AI actions stay gated by airplane mode."
|
||||
msgstr ""
|
||||
@@ -417,7 +417,7 @@ msgstr ""
|
||||
msgid "Category name is required"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live.ex:937
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:87
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:230
|
||||
#: lib/bds/desktop/shell_live/chat_editor.ex:318
|
||||
@@ -550,7 +550,7 @@ msgstr ""
|
||||
msgid "Could not write MCP config %{path}: %{reason}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:42
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
@@ -662,7 +662,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:179
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:181
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:182
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:58
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:70
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:15
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
@@ -719,9 +719,9 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:199
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:205
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:59
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:642
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:671
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:677
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:647
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:676
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:682
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Detect Language"
|
||||
msgstr ""
|
||||
@@ -762,7 +762,7 @@ msgid "Discard changes and restore the published version"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:21
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:84
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:96
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Discover"
|
||||
msgstr ""
|
||||
@@ -1004,7 +1004,7 @@ msgstr ""
|
||||
msgid "Generate Site"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live.ex:938
|
||||
#: lib/bds/ui/sidebar.ex:784
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git"
|
||||
@@ -1017,7 +1017,7 @@ msgid "Git Diff"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:244
|
||||
#: lib/bds/desktop/shell_live.ex:929
|
||||
#: lib/bds/desktop/shell_live.ex:934
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Git Log"
|
||||
@@ -1046,7 +1046,7 @@ 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:703
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:894
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:899
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Idle"
|
||||
msgstr ""
|
||||
@@ -1140,9 +1140,9 @@ msgstr ""
|
||||
msgid "Import failed: %{error}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:580
|
||||
#: lib/bds/desktop/shell_live.ex:970
|
||||
#: lib/bds/desktop/shell_live.ex:976
|
||||
#: lib/bds/desktop/shell_live.ex:585
|
||||
#: lib/bds/desktop/shell_live.ex:975
|
||||
#: lib/bds/desktop/shell_live.ex:981
|
||||
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Import media"
|
||||
@@ -1217,7 +1217,7 @@ msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:206
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:678
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:683
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Language detection failed."
|
||||
msgstr ""
|
||||
@@ -1301,7 +1301,7 @@ msgstr ""
|
||||
msgid "Mapped"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:902
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Markdown"
|
||||
@@ -1341,12 +1341,12 @@ msgstr ""
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:75
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:87
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:66
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:78
|
||||
#: lib/bds/ui/sidebar.ex:747
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Merge Tags"
|
||||
@@ -1437,7 +1437,7 @@ msgstr ""
|
||||
msgid "New Template"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:52
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:64
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No Template"
|
||||
msgstr ""
|
||||
@@ -1734,7 +1734,7 @@ msgstr ""
|
||||
msgid "Other (%{count})"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:928
|
||||
#: lib/bds/desktop/shell_live.ex:933
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Output"
|
||||
@@ -1799,16 +1799,16 @@ msgid "Persist the detected language for this media item"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/misc_editor.ex:742
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:478
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:517
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:552
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:567
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:599
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:632
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:483
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:522
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:557
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:572
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:604
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:637
|
||||
#: lib/bds/desktop/shell_live/sidebar_components.ex:515
|
||||
#: lib/bds/desktop/shell_live/sidebar_delete.ex:174
|
||||
#: lib/bds/ui/registry.ex:99
|
||||
@@ -1838,12 +1838,12 @@ msgstr ""
|
||||
msgid "Post is marked as do-not-translate but has translations"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:513
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:518
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post published"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:474
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:479
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post saved"
|
||||
msgstr ""
|
||||
@@ -1867,7 +1867,7 @@ msgstr ""
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:903
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:121
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview"
|
||||
@@ -1936,7 +1936,7 @@ msgid "Publish Selected"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_data.ex:181
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:892
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:897
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:456
|
||||
#: lib/bds/ui/sidebar.ex:320
|
||||
#, elixir-autogen, elixir-format
|
||||
@@ -2134,7 +2134,7 @@ msgstr ""
|
||||
msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:893
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:898
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reverted"
|
||||
msgstr ""
|
||||
@@ -2174,7 +2174,7 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:312
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:329
|
||||
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:342
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:57
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:69
|
||||
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:13
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save"
|
||||
@@ -2186,7 +2186,7 @@ msgid "Save Translation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:702
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:891
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:896
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saved"
|
||||
msgstr ""
|
||||
@@ -2444,7 +2444,7 @@ msgstr ""
|
||||
msgid "Switch project"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:82
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:94
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Sync"
|
||||
msgstr ""
|
||||
@@ -2481,11 +2481,11 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/index.html.heex:325
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:161
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:158
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:94
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:136
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:189
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:203
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:234
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:104
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:166
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:219
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:233
|
||||
#: lib/bds/desktop/shell_live/tags_editor.ex:264
|
||||
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
|
||||
#: lib/bds/ui/registry.ex:54
|
||||
#: lib/bds/ui/registry.ex:103
|
||||
@@ -2496,7 +2496,7 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:927
|
||||
#: lib/bds/desktop/shell_live.ex:932
|
||||
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Tasks"
|
||||
@@ -2661,9 +2661,9 @@ msgstr ""
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:558
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:563
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:76
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:691
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:720
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:696
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:725
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:730
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Translate"
|
||||
@@ -2740,7 +2740,7 @@ msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/media_editor.ex:701
|
||||
#: lib/bds/desktop/shell_live/media_editor_html/media_editor.html.heex:10
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:890
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:895
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:7
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unsaved"
|
||||
@@ -3192,12 +3192,12 @@ msgstr ""
|
||||
msgid "Comparing database and filesystem metadata"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:650
|
||||
#: lib/bds/desktop/shell_live.ex:655
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{count} images to post"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Added %{title}"
|
||||
msgstr ""
|
||||
@@ -3217,18 +3217,18 @@ msgstr ""
|
||||
msgid "Image Import Concurrency"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:408
|
||||
#: lib/bds/desktop/shell_live.ex:421
|
||||
#: lib/bds/desktop/shell_live.ex:621
|
||||
#: lib/bds/desktop/shell_live.ex:649
|
||||
#: lib/bds/desktop/shell_live.ex:658
|
||||
#: lib/bds/desktop/shell_live.ex:665
|
||||
#: lib/bds/desktop/shell_live.ex:413
|
||||
#: lib/bds/desktop/shell_live.ex:426
|
||||
#: lib/bds/desktop/shell_live.ex:626
|
||||
#: lib/bds/desktop/shell_live.ex:654
|
||||
#: lib/bds/desktop/shell_live.ex:663
|
||||
#: lib/bds/desktop/shell_live.ex:670
|
||||
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:407
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Add Gallery Images"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live.ex:666
|
||||
#: lib/bds/desktop/shell_live.ex:671
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Failed to process %{path}: %{reason}"
|
||||
msgstr ""
|
||||
@@ -3243,12 +3243,12 @@ msgstr ""
|
||||
msgid "Move this post to the archive"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:596
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:601
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post archived"
|
||||
msgstr ""
|
||||
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:629
|
||||
#: lib/bds/desktop/shell_live/post_editor.ex:634
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Post unarchived"
|
||||
msgstr ""
|
||||
|
||||
65
priv/preview_assets/assets/pagefind-ui.css
Normal file
65
priv/preview_assets/assets/pagefind-ui.css
Normal file
@@ -0,0 +1,65 @@
|
||||
/* Styling for the self-contained PagefindUI search widget. */
|
||||
.pagefind-ui {
|
||||
display: block;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.pagefind-ui__form {
|
||||
margin: 0 0 0.75rem 0;
|
||||
}
|
||||
|
||||
.pagefind-ui__search-input {
|
||||
width: 100%;
|
||||
padding: 0.5rem 0.75rem;
|
||||
border: 1px solid var(--pico-form-element-border-color, #ccc);
|
||||
border-radius: 0.375rem;
|
||||
font: inherit;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.pagefind-ui__results {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pagefind-ui__message {
|
||||
margin: 0.5rem 0;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.pagefind-ui__result-list {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pagefind-ui__result {
|
||||
padding: 0.5rem 0;
|
||||
border-bottom: 1px solid var(--pico-muted-border-color, #eee);
|
||||
}
|
||||
|
||||
.pagefind-ui__result:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.pagefind-ui__result-link {
|
||||
display: block;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.pagefind-ui__result-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.pagefind-ui__result-excerpt {
|
||||
margin: 0.25rem 0 0 0;
|
||||
opacity: 0.8;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.pagefind-ui__result-excerpt mark {
|
||||
background: var(--pico-mark-background-color, #ffe08a);
|
||||
color: inherit;
|
||||
padding: 0 0.1em;
|
||||
border-radius: 0.15em;
|
||||
}
|
||||
272
priv/preview_assets/assets/pagefind-ui.js
Normal file
272
priv/preview_assets/assets/pagefind-ui.js
Normal file
@@ -0,0 +1,272 @@
|
||||
/*
|
||||
* Self-contained client-side search UI for generated blog output.
|
||||
*
|
||||
* Exposes a global `PagefindUI` constructor that the bundled
|
||||
* `search-runtime.js` instantiates. It fetches the per-language fragment
|
||||
* index (`index.json`) co-located with this script, performs full-text
|
||||
* matching over the indexed post fragments, and renders ranked results.
|
||||
*
|
||||
* No external/CDN dependencies — everything needed ships in this file.
|
||||
*/
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
// Resolve the sibling index.json relative to this script's own URL so the
|
||||
// same bundle works for every language directory (e.g. /pagefind/,
|
||||
// /de/pagefind/) without baking the path in at generation time.
|
||||
var scriptSrc = (document.currentScript && document.currentScript.src) || "";
|
||||
|
||||
function resolveIndexUrl(src) {
|
||||
try {
|
||||
return new URL("index.json", src).href;
|
||||
} catch (err) {
|
||||
return "index.json";
|
||||
}
|
||||
}
|
||||
|
||||
function tokenize(value) {
|
||||
return (value || "")
|
||||
.toLowerCase()
|
||||
.split(/[^\p{L}\p{N}]+/u)
|
||||
.filter(function (token) {
|
||||
return token.length > 0;
|
||||
});
|
||||
}
|
||||
|
||||
function PagefindUI(options) {
|
||||
options = options || {};
|
||||
this.element =
|
||||
typeof options.element === "string"
|
||||
? document.querySelector(options.element)
|
||||
: options.element;
|
||||
|
||||
if (!this.element) {
|
||||
return;
|
||||
}
|
||||
|
||||
var translations = options.translations || {};
|
||||
this.placeholder = translations.placeholder || "Search";
|
||||
this.zeroResults = translations.zero_results || "No results found";
|
||||
this.indexUrl = options.indexUrl || resolveIndexUrl(scriptSrc);
|
||||
this.pages = null;
|
||||
this.loadPromise = null;
|
||||
|
||||
this.render();
|
||||
}
|
||||
|
||||
PagefindUI.prototype.render = function () {
|
||||
var self = this;
|
||||
this.element.classList.add("pagefind-ui");
|
||||
this.element.innerHTML = "";
|
||||
|
||||
var form = document.createElement("form");
|
||||
form.className = "pagefind-ui__form";
|
||||
form.setAttribute("role", "search");
|
||||
form.addEventListener("submit", function (event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
var input = document.createElement("input");
|
||||
input.type = "search";
|
||||
input.className = "pagefind-ui__search-input";
|
||||
input.setAttribute("autocomplete", "off");
|
||||
input.placeholder = this.placeholder;
|
||||
input.setAttribute("aria-label", this.placeholder);
|
||||
|
||||
var results = document.createElement("div");
|
||||
results.className = "pagefind-ui__results";
|
||||
|
||||
form.appendChild(input);
|
||||
this.element.appendChild(form);
|
||||
this.element.appendChild(results);
|
||||
|
||||
this.input = input;
|
||||
this.results = results;
|
||||
|
||||
var debounce = null;
|
||||
input.addEventListener("input", function () {
|
||||
window.clearTimeout(debounce);
|
||||
debounce = window.setTimeout(function () {
|
||||
self.search(input.value);
|
||||
}, 120);
|
||||
});
|
||||
};
|
||||
|
||||
PagefindUI.prototype.load = function () {
|
||||
if (this.pages) {
|
||||
return Promise.resolve(this.pages);
|
||||
}
|
||||
if (this.loadPromise) {
|
||||
return this.loadPromise;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
this.loadPromise = fetch(this.indexUrl, { credentials: "same-origin" })
|
||||
.then(function (response) {
|
||||
if (!response.ok) {
|
||||
throw new Error("pagefind index request failed: " + response.status);
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then(function (data) {
|
||||
self.pages = (data && data.pages) || [];
|
||||
return self.pages;
|
||||
})
|
||||
.catch(function () {
|
||||
self.pages = [];
|
||||
return self.pages;
|
||||
});
|
||||
|
||||
return this.loadPromise;
|
||||
};
|
||||
|
||||
PagefindUI.prototype.search = function (query) {
|
||||
var self = this;
|
||||
var terms = tokenize(query);
|
||||
|
||||
if (terms.length === 0) {
|
||||
this.results.innerHTML = "";
|
||||
return;
|
||||
}
|
||||
|
||||
this.load().then(function (pages) {
|
||||
var matches = [];
|
||||
|
||||
for (var i = 0; i < pages.length; i++) {
|
||||
var page = pages[i];
|
||||
var title = (page.title || "").toLowerCase();
|
||||
var body = (page.text || "").toLowerCase();
|
||||
var score = 0;
|
||||
var matchedAll = true;
|
||||
|
||||
for (var t = 0; t < terms.length; t++) {
|
||||
var term = terms[t];
|
||||
var bodyHits = body.split(term).length - 1;
|
||||
var titleHits = title.split(term).length - 1;
|
||||
|
||||
if (bodyHits === 0 && titleHits === 0) {
|
||||
matchedAll = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// Title matches are weighted more heavily than body matches.
|
||||
score += bodyHits + titleHits * 5;
|
||||
}
|
||||
|
||||
if (matchedAll) {
|
||||
matches.push({ page: page, score: score });
|
||||
}
|
||||
}
|
||||
|
||||
matches.sort(function (a, b) {
|
||||
return b.score - a.score;
|
||||
});
|
||||
|
||||
self.renderResults(matches.slice(0, 10), terms);
|
||||
});
|
||||
};
|
||||
|
||||
PagefindUI.prototype.renderResults = function (matches, terms) {
|
||||
this.results.innerHTML = "";
|
||||
|
||||
if (matches.length === 0) {
|
||||
var message = document.createElement("p");
|
||||
message.className = "pagefind-ui__message";
|
||||
message.textContent = this.zeroResults;
|
||||
this.results.appendChild(message);
|
||||
return;
|
||||
}
|
||||
|
||||
var list = document.createElement("ol");
|
||||
list.className = "pagefind-ui__result-list";
|
||||
|
||||
for (var i = 0; i < matches.length; i++) {
|
||||
var page = matches[i].page;
|
||||
|
||||
var item = document.createElement("li");
|
||||
item.className = "pagefind-ui__result";
|
||||
|
||||
var link = document.createElement("a");
|
||||
link.className = "pagefind-ui__result-link";
|
||||
link.href = page.url;
|
||||
link.textContent = page.title || page.url;
|
||||
|
||||
var excerpt = document.createElement("p");
|
||||
excerpt.className = "pagefind-ui__result-excerpt";
|
||||
buildExcerpt(excerpt, page.text || "", terms);
|
||||
|
||||
item.appendChild(link);
|
||||
item.appendChild(excerpt);
|
||||
list.appendChild(item);
|
||||
}
|
||||
|
||||
this.results.appendChild(list);
|
||||
};
|
||||
|
||||
// Build an excerpt around the first matching term and highlight all terms
|
||||
// with <mark>, using safe text nodes (never innerHTML on untrusted text).
|
||||
function buildExcerpt(target, text, terms) {
|
||||
var lower = text.toLowerCase();
|
||||
var firstHit = -1;
|
||||
|
||||
for (var t = 0; t < terms.length; t++) {
|
||||
var idx = lower.indexOf(terms[t]);
|
||||
if (idx !== -1 && (firstHit === -1 || idx < firstHit)) {
|
||||
firstHit = idx;
|
||||
}
|
||||
}
|
||||
|
||||
var start = firstHit === -1 ? 0 : Math.max(0, firstHit - 60);
|
||||
var snippet = text.slice(start, start + 220);
|
||||
if (start > 0) {
|
||||
snippet = "…" + snippet;
|
||||
}
|
||||
if (start + 220 < text.length) {
|
||||
snippet = snippet + "…";
|
||||
}
|
||||
|
||||
highlightInto(target, snippet, terms);
|
||||
}
|
||||
|
||||
function highlightInto(target, snippet, terms) {
|
||||
var escaped = terms
|
||||
.map(function (term) {
|
||||
return term.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
||||
})
|
||||
.filter(function (term) {
|
||||
return term.length > 0;
|
||||
});
|
||||
|
||||
if (escaped.length === 0) {
|
||||
target.appendChild(document.createTextNode(snippet));
|
||||
return;
|
||||
}
|
||||
|
||||
var pattern = new RegExp("(" + escaped.join("|") + ")", "giu");
|
||||
var lastIndex = 0;
|
||||
var match;
|
||||
|
||||
while ((match = pattern.exec(snippet)) !== null) {
|
||||
if (match.index > lastIndex) {
|
||||
target.appendChild(
|
||||
document.createTextNode(snippet.slice(lastIndex, match.index))
|
||||
);
|
||||
}
|
||||
var mark = document.createElement("mark");
|
||||
mark.textContent = match[0];
|
||||
target.appendChild(mark);
|
||||
lastIndex = match.index + match[0].length;
|
||||
|
||||
// Guard against zero-length matches looping forever.
|
||||
if (match.index === pattern.lastIndex) {
|
||||
pattern.lastIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
if (lastIndex < snippet.length) {
|
||||
target.appendChild(document.createTextNode(snippet.slice(lastIndex)));
|
||||
}
|
||||
}
|
||||
|
||||
window.PagefindUI = PagefindUI;
|
||||
})();
|
||||
@@ -15,11 +15,12 @@
|
||||
}
|
||||
initialized = true;
|
||||
var placeholder = root.getAttribute('data-search-placeholder') || 'Search...';
|
||||
var zeroResults = root.getAttribute('data-search-no-results') || 'No results found';
|
||||
new PagefindUI({
|
||||
element: root,
|
||||
showSubResults: true,
|
||||
showImages: false,
|
||||
translations: { placeholder: placeholder }
|
||||
translations: { placeholder: placeholder, zero_results: zeroResults }
|
||||
});
|
||||
var input = root.querySelector('input');
|
||||
if (input) {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</svg>
|
||||
</button>
|
||||
<div class="blog-search-panel" data-blog-search-panel hidden>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}"></div>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}" data-search-no-results="{{ labels.search_no_results }}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -35,7 +35,7 @@
|
||||
</svg>
|
||||
</button>
|
||||
<div class="blog-search-panel" data-blog-search-panel hidden>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}"></div>
|
||||
<div id="blog-search" data-blog-search-root data-search-placeholder="{{ labels.search_placeholder }}" data-search-no-results="{{ labels.search_no_results }}"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -7,7 +7,7 @@ defmodule BDS.CSM025HardcodedLanguagesTest do
|
||||
%{language: main, blog_languages: languages}
|
||||
end
|
||||
|
||||
defp html(path), do: {path, "<p>hello</p>"}
|
||||
defp html(path), do: {path, "<article data-pagefind-body><p>hello</p></article>"}
|
||||
|
||||
describe "build_outputs/2 derives language prefixes from plan" do
|
||||
test "no hardcoded language prefixes in source" do
|
||||
|
||||
91
test/bds/generation/pagefind_test.exs
Normal file
91
test/bds/generation/pagefind_test.exs
Normal file
@@ -0,0 +1,91 @@
|
||||
defmodule BDS.Generation.PagefindTest do
|
||||
use ExUnit.Case, async: true
|
||||
|
||||
alias BDS.Generation.Pagefind
|
||||
|
||||
defp plan(language, blog_languages), do: %{language: language, blog_languages: blog_languages}
|
||||
|
||||
defp index_for(outputs, relative_path) do
|
||||
{_path, content} = Enum.find(outputs, fn {path, _} -> path == relative_path end)
|
||||
Jason.decode!(content)
|
||||
end
|
||||
|
||||
defp content_for(outputs, relative_path) do
|
||||
{_path, content} = Enum.find(outputs, fn {path, _} -> path == relative_path end)
|
||||
content
|
||||
end
|
||||
|
||||
test "indexes only pages marked with data-pagefind-body and scopes text to that region" do
|
||||
post_html = """
|
||||
<html><head><title>My First Post</title></head>
|
||||
<body>
|
||||
<nav>Home Archive Contact ignored-nav-term</nav>
|
||||
<article data-pagefind-body><h1>My First Post</h1><p>Searchable elixir content.</p></article>
|
||||
<footer>footer-term</footer>
|
||||
</body></html>
|
||||
"""
|
||||
|
||||
list_html = "<html><head><title>Home</title></head><body><ul>list page</ul></body></html>"
|
||||
|
||||
outputs =
|
||||
Pagefind.build_outputs(plan("en", ["en"]), [
|
||||
{"posts/first.html", post_html},
|
||||
{"index.html", list_html}
|
||||
])
|
||||
|
||||
index = index_for(outputs, "pagefind/index.json")
|
||||
|
||||
assert index["language"] == "en"
|
||||
# Only the marked post page is indexed; the unmarked list page is excluded.
|
||||
urls = Enum.map(index["pages"], & &1["url"])
|
||||
assert "/posts/first.html" in urls
|
||||
refute "/index.html" in urls
|
||||
|
||||
page = Enum.find(index["pages"], &(&1["url"] == "/posts/first.html"))
|
||||
assert page["title"] == "My First Post"
|
||||
# Body text is scoped to data-pagefind-body — nav/footer text is excluded.
|
||||
assert page["text"] =~ "Searchable elixir content"
|
||||
refute page["text"] =~ "ignored-nav-term"
|
||||
refute page["text"] =~ "footer-term"
|
||||
end
|
||||
|
||||
test "builds a separate index per language scoped by route prefix" do
|
||||
en_post =
|
||||
"<html><head><title>EN</title></head><body><article data-pagefind-body>english body</article></body></html>"
|
||||
|
||||
de_post =
|
||||
"<html><head><title>DE</title></head><body><article data-pagefind-body>deutscher text</article></body></html>"
|
||||
|
||||
outputs =
|
||||
Pagefind.build_outputs(plan("en", ["en", "de"]), [
|
||||
{"posts/first.html", en_post},
|
||||
{"de/posts/first.html", de_post}
|
||||
])
|
||||
|
||||
en_index = index_for(outputs, "pagefind/index.json")
|
||||
de_index = index_for(outputs, "de/pagefind/index.json")
|
||||
|
||||
assert en_index["language"] == "en"
|
||||
assert Enum.map(en_index["pages"], & &1["url"]) == ["/posts/first.html"]
|
||||
|
||||
assert de_index["language"] == "de"
|
||||
assert Enum.map(de_index["pages"], & &1["url"]) == ["/de/posts/first.html"]
|
||||
end
|
||||
|
||||
test "emits a functional PagefindUI script and stylesheet per language" do
|
||||
outputs =
|
||||
Pagefind.build_outputs(plan("en", ["en"]), [
|
||||
{"posts/first.html",
|
||||
"<html><head><title>T</title></head><body><article data-pagefind-body>b</article></body></html>"}
|
||||
])
|
||||
|
||||
js = content_for(outputs, "pagefind/pagefind-ui.js")
|
||||
css = content_for(outputs, "pagefind/pagefind-ui.css")
|
||||
|
||||
# Real UI defines the PagefindUI global the search runtime instantiates.
|
||||
assert js =~ "PagefindUI"
|
||||
refute js =~ "window.bDSPagefind"
|
||||
# Stylesheet carries real UI selectors, not a one-liner stub.
|
||||
assert css =~ ".pagefind-ui__results"
|
||||
end
|
||||
end
|
||||
@@ -252,7 +252,7 @@ defmodule BDS.GenerationTest do
|
||||
title: "Post View",
|
||||
kind: :post,
|
||||
content:
|
||||
"<article class=\"post-template\"><h1>{{ post.title }}</h1><div class=\"body\">{{ post.content }}</div></article>"
|
||||
"<article class=\"post-template\" data-pagefind-body><h1>{{ post.title }}</h1><div class=\"body\">{{ post.content }}</div></article>"
|
||||
})
|
||||
|
||||
assert {:ok, published_post_template} = BDS.Templates.publish_template(post_template.id)
|
||||
|
||||
Reference in New Issue
Block a user