feat: TUI settings panel on key 6 with per-section preference editors backed by the same GUI settings backends (issue #29)

This commit is contained in:
2026-07-17 08:38:26 +02:00
parent b6b1d16e54
commit 505527ae4f
13 changed files with 2572 additions and 672 deletions

View File

@@ -107,6 +107,24 @@ defmodule BDS.Desktop.ShellLive.SettingsEditor.AISettings do
defp do_save_ai(socket, reload, append_output) do
attrs = ai_attrs(socket.assigns)
case save_attrs(attrs) do
:ok ->
LiveToast.send_toast(:info, dgettext("ui", "AI settings saved."))
socket
|> assign(:settings_editor_ai_draft, %{})
|> assign(:offline_mode, attrs.offline_mode)
|> reload.(socket.assigns.workbench)
{:error, reason} ->
surface_ai_error(socket, reload, append_output, reason)
end
end
# The full save pipeline as a pure function so the TUI settings form
# (BDS.UI.SettingsForm) drives the exact same writes as the GUI editor.
@spec save_attrs(map()) :: :ok | {:error, term()}
def save_attrs(attrs) do
with :ok <-
put_endpoint_preferences(
:online,
@@ -156,15 +174,7 @@ defmodule BDS.Desktop.ShellLive.SettingsEditor.AISettings do
attrs.offline_chat_images
),
:ok <- EditorSettings.put_global_setting("ai.system_prompt", attrs.system_prompt) do
LiveToast.send_toast(:info, dgettext("ui", "AI settings saved."))
socket
|> assign(:settings_editor_ai_draft, %{})
|> assign(:offline_mode, attrs.offline_mode)
|> reload.(socket.assigns.workbench)
else
{:error, reason} ->
surface_ai_error(socket, reload, append_output, reason)
:ok
end
end

View File

@@ -49,6 +49,11 @@ defmodule BDS.Metadata do
@typedoc "Attribute map for `update_project_metadata/2`."
@type attrs :: %{optional(atom()) => term(), optional(String.t()) => term()}
@spec supported_pico_themes() :: [String.t()]
def supported_pico_themes do
["default" | @supported_pico_themes |> MapSet.delete("default") |> Enum.sort()]
end
@spec get_project_metadata(String.t()) :: {:ok, metadata_state()}
def get_project_metadata(project_id) do
project = Projects.get_project!(project_id)

View File

@@ -10,7 +10,11 @@ defmodule BDS.TUI do
## Keys
Sidebar focus: `↑/↓`/`j/k` navigate, `enter` open, `n` new post,
`1..5` switch view (posts/media/templates/scripts/tags), `7` git panel
`1..5` switch view (posts/media/templates/scripts/tags), `6` settings
(the GUI preferences sections as sidebar entries; enter opens a
section's form — enter edits a text field in a status-line prompt,
toggles a boolean or cycles an enum, `ctrl+s` saves through the same
backends as the GUI, esc closes), `7` git panel
(changed files plus commit history in the sidebar, scrollable
whole-folder diff in the main area; `c` commit all, `u` pull, `s` push,
enter jumps the diff to the selected file), `r` refresh,
@@ -39,13 +43,14 @@ defmodule BDS.TUI do
alias BDS.Posts
alias BDS.Projects
alias BDS.UI.PostEditor.{Draft, Metadata, Persistence}
alias BDS.UI.SettingsForm
alias BDS.UI.Sidebar
alias ExRatatui.Layout
alias ExRatatui.Layout.Rect
alias ExRatatui.Style
alias ExRatatui.Widgets.{Block, Clear, List, Markdown, Paragraph, Tabs, Textarea}
@views ~w(posts media templates scripts tags git)
@views ~w(posts media templates scripts tags settings git)
@git_diff_scroll_step 10
@git_max_diff_lines 5000
@@ -72,6 +77,7 @@ defmodule BDS.TUI do
filters_by_view: %{},
git: nil,
git_commit: nil,
settings_form: nil,
report: nil,
handled_task_ids: nil,
task_polling: false,
@@ -139,6 +145,10 @@ defmodule BDS.TUI do
when search != nil,
do: search_key(key, state)
def handle_event(%ExRatatui.Event.Key{kind: "press"} = key, %{settings_form: form} = state)
when form != nil,
do: settings_form_key(key, state)
def handle_event(%ExRatatui.Event.Key{code: "esc"}, %{image: image} = state)
when image != nil,
do: {:noreply, %{state | image: nil}}
@@ -159,15 +169,13 @@ defmodule BDS.TUI do
defp sidebar_key(%{code: code}, state) when code in ["up", "k"],
do: {:noreply, move_selection(state, -1)}
defp sidebar_key(%{code: code}, state) when code in ~w(1 2 3 4 5) do
# Settings is panel "6" (issue #29) and git panel "7" (issue #30),
# matching the GUI panel numbering.
defp sidebar_key(%{code: code}, state) when code in ~w(1 2 3 4 5 6 7) do
view = Enum.at(@views, String.to_integer(code) - 1)
{:noreply, load_sidebar(%{state | view: view, selected: 0, image: nil})}
end
# Git is panel "7", matching the GUI panel numbering (issue #30).
defp sidebar_key(%{code: "7"}, state),
do: {:noreply, load_sidebar(%{state | view: "git", selected: 0, image: nil})}
defp sidebar_key(%{code: "c"}, %{view: "git"} = state) do
if state.git do
{:noreply, %{state | git_commit: %{input: ""}}}
@@ -230,6 +238,8 @@ defmodule BDS.TUI do
%{route: "post", id: post_id} -> {:noreply, open_post(state, post_id)}
%{route: "media", id: media_id} -> {:noreply, open_media(state, media_id)}
%{route: "git_file", id: path} -> {:noreply, jump_to_file_diff(state, path)}
%{route: "settings", id: "settings-" <> section} -> {:noreply, open_settings_form(state, section)}
%{route: "style"} -> {:noreply, open_settings_form(state, "style")}
%{id: _id} -> {:noreply, toast(state, view_label(state.view), dgettext("ui", "Editing this item is not available in the terminal UI yet."))}
_other -> {:noreply, state}
end
@@ -397,6 +407,153 @@ defmodule BDS.TUI do
defp format_git_error({:git_failed, output}), do: output
defp format_git_error(reason), do: inspect(reason)
# ── Events: settings form (issue #29) ─────────────────────────────────────
# A settings sidebar entry opens its section as a generic typed-field
# form in the main area, backed by BDS.UI.SettingsForm — the same
# preferences the GUI settings editor operates on.
defp open_settings_form(state, section) do
form = SettingsForm.load(section, state.project_id)
%{
state
| settings_form: %{
section: form.section,
title: form.title,
fields: form.fields,
selected: seek_field(form.fields, 0, 1),
input: nil,
dirty: false
},
image: nil
}
end
# Text fields edit in a status-line prompt (like the commit message):
# enter commits the value into the field, esc cancels just the prompt.
defp settings_form_key(%{code: "esc"}, %{settings_form: %{input: input}} = state)
when input != nil,
do: {:noreply, put_in(state.settings_form.input, nil)}
defp settings_form_key(%{code: "enter"}, %{settings_form: %{input: input} = form} = state)
when input != nil do
fields =
Enum.map(form.fields, fn field ->
if field.key == input.key, do: %{field | value: input.value}, else: field
end)
{:noreply, %{state | settings_form: %{form | fields: fields, input: nil, dirty: true}}}
end
defp settings_form_key(%{code: "backspace"}, %{settings_form: %{input: input}} = state)
when input != nil do
{:noreply, put_in(state.settings_form.input.value, String.slice(input.value, 0..-2//1))}
end
defp settings_form_key(%{code: code, modifiers: []}, %{settings_form: %{input: input}} = state)
when input != nil and byte_size(code) >= 1 do
if String.length(code) == 1 do
{:noreply, put_in(state.settings_form.input.value, input.value <> code)}
else
{:noreply, state}
end
end
defp settings_form_key(_key, %{settings_form: %{input: input}} = state) when input != nil,
do: {:noreply, state}
defp settings_form_key(%{code: "esc"}, state),
do: {:noreply, %{state | settings_form: nil}}
defp settings_form_key(%{code: "s", modifiers: ["ctrl"]}, state),
do: save_settings_form(state)
defp settings_form_key(%{code: code}, state) when code in ["down", "j"],
do: {:noreply, move_field_selection(state, 1)}
defp settings_form_key(%{code: code}, state) when code in ["up", "k"],
do: {:noreply, move_field_selection(state, -1)}
defp settings_form_key(%{code: "enter"}, %{settings_form: form} = state) do
case Enum.at(form.fields, form.selected) do
%{type: :text} = field ->
{:noreply,
put_in(state.settings_form.input, %{key: field.key, label: field.label, value: field.value})}
%{type: :bool} = field ->
{:noreply, update_field(state, field.key, not field.value)}
%{type: :enum, options: options} = field when options != [] ->
index = Enum.find_index(options, &(&1 == field.value)) || 0
{:noreply, update_field(state, field.key, Enum.at(options, rem(index + 1, length(options))))}
_other ->
{:noreply, state}
end
end
defp settings_form_key(_key, state), do: {:noreply, state}
defp update_field(%{settings_form: form} = state, key, value) do
fields =
Enum.map(form.fields, fn field ->
if field.key == key, do: %{field | value: value}, else: field
end)
%{state | settings_form: %{form | fields: fields, dirty: true}}
end
defp save_settings_form(%{settings_form: form} = state) do
values = Map.new(form.fields, fn field -> {field.key, field.value} end)
case SettingsForm.save(form.section, state.project_id, values) do
:ok ->
reloaded = SettingsForm.load(form.section, state.project_id)
state = %{
state
| settings_form: %{
form
| fields: reloaded.fields,
selected: min(form.selected, max(length(reloaded.fields) - 1, 0)),
input: nil,
dirty: false
}
}
{:noreply, toast(state, form.title, dgettext("ui", "Saved."))}
{:error, reason} ->
{:noreply, toast(state, form.title, settings_error(reason))}
end
end
defp settings_error(reason) when is_binary(reason), do: reason
defp settings_error(reason), do: inspect(reason)
# Selection skips read-only :info rows in the given direction.
defp move_field_selection(%{settings_form: form} = state, delta) do
count = length(form.fields)
if count == 0 do
state
else
next = seek_field(form.fields, clamp(form.selected + delta, count), delta)
put_in(state.settings_form.selected, next)
end
end
defp seek_field(fields, index, delta) do
case Enum.at(fields, index) do
%{type: :info} ->
next = clamp(index + sign(delta), length(fields))
if next == index, do: index, else: seek_field(fields, next, delta)
_other ->
index
end
end
# ── Events: sidebar search (vi-style "/") ─────────────────────────────────
# The prompt lives in the status line and filters the current view live
@@ -970,6 +1127,25 @@ defmodule BDS.TUI do
defp list_selected([], _selected), do: nil
defp list_selected(items, selected), do: min(selected, length(items) - 1)
defp main_widgets(%{settings_form: form}, rect) when form != nil do
items = Enum.map(form.fields, &field_line/1)
title =
form.title <>
if(form.dirty, do: "", else: "") <>
"" <> dgettext("ui", "enter edit · ctrl+s save · esc close")
[
{%List{
items: items,
selected: list_selected(items, form.selected),
scroll_padding: 2,
highlight_style: %Style{fg: :black, bg: :cyan},
block: %Block{title: title, borders: [:all]}
}, rect}
]
end
defp main_widgets(%{view: "git", editor: nil, git: nil}, rect) do
[
{%Paragraph{
@@ -1055,8 +1231,11 @@ defmodule BDS.TUI do
end
defp status_widgets(state, rect) do
settings_input = state.settings_form && state.settings_form.input
text =
cond do
settings_input -> settings_input.label <> ": " <> settings_input.value
state.git_commit -> dgettext("ui", "Commit message") <> ": " <> state.git_commit.input
state.search -> "/" <> state.search.input
state.busy -> dgettext("ui", "Working…")
@@ -1315,18 +1494,25 @@ defmodule BDS.TUI do
defp truncate(text) when byte_size(text) > 40, do: String.slice(text, 0, 40) <> ""
defp truncate(text), do: text
defp default_status(%{settings_form: form}) when form != nil,
do:
dgettext(
"ui",
"enter edit/toggle/cycle · ctrl+s save · esc close · ctrl+q quit"
)
defp default_status(%{focus: :sidebar, view: "git"}),
do:
dgettext(
"ui",
"c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-5 views · ctrl+q quit"
"c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-7 views · ctrl+q quit"
)
defp default_status(%{focus: :sidebar}),
do:
dgettext(
"ui",
"enter open · n new post · 1-5 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
"enter open · n new post · 1-7 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
)
defp default_status(%{focus: :editor}),
@@ -1453,6 +1639,12 @@ defmodule BDS.TUI do
end
end
defp field_line(%{type: :bool} = field),
do: if(field.value, do: "[x] ", else: "[ ] ") <> field.label
defp field_line(%{type: :info, value: ""} = field), do: field.label
defp field_line(field), do: "#{field.label}: #{field.value}"
defp item_label(item) do
title =
item[:title] || item[:name] || item[:original_name] || item[:label] || item[:id] || "?"
@@ -1466,6 +1658,7 @@ defmodule BDS.TUI do
defp view_label("templates"), do: dgettext("ui", "Templates")
defp view_label("scripts"), do: dgettext("ui", "Scripts")
defp view_label("tags"), do: dgettext("ui", "Tags")
defp view_label("settings"), do: dgettext("ui", "Settings")
defp view_label("git"), do: dgettext("ui", "Git")
# ── Post editor ──────────────────────────────────────────────────────────

494
lib/bds/ui/settings_form.ex Normal file
View File

@@ -0,0 +1,494 @@
defmodule BDS.UI.SettingsForm do
@moduledoc """
Renderer-agnostic preferences forms (issue #29).
Exposes each settings section of the GUI settings editor as a flat list
of typed fields (`:text`, `:bool`, `:enum`, `:info`) that the TUI can
render and edit generically. `save/3` writes through the same backends
as the GUI editor — `BDS.Metadata`, `BDS.Settings`, `BDS.AI` and
`BDS.MCP.AgentConfig` — so both frontends operate on the same
preferences.
"""
use Gettext, backend: BDS.Gettext
import Ecto.Query
alias BDS.Desktop.ShellLive.SettingsEditor.AISettings
alias BDS.Desktop.ShellLive.SettingsEditor.ManagedCategories
alias BDS.Desktop.ShellLive.SettingsEditor.MCPConfig
alias BDS.I18n
alias BDS.MCP.AgentConfig
alias BDS.Metadata
alias BDS.Projects
alias BDS.Repo
alias BDS.Settings
alias BDS.Templates.Template
@type field :: %{
key: String.t(),
label: String.t(),
type: :text | :bool | :enum | :info,
value: term(),
options: [String.t()]
}
@type form :: %{section: String.t(), title: String.t(), fields: [field()]}
# ── Load ─────────────────────────────────────────────────────────────────
@spec load(String.t(), String.t()) :: form()
def load("project", project_id) do
{:ok, metadata} = Metadata.get_project_metadata(project_id)
form("project", dgettext("ui", "Project"), [
text("name", dgettext("ui", "Name"), metadata.name),
text("description", dgettext("ui", "Description"), metadata.description),
text("public_url", dgettext("ui", "Public URL"), metadata.public_url),
enum(
"main_language",
dgettext("ui", "Main Language"),
metadata.main_language || "en",
supported_language_codes()
),
text("default_author", dgettext("ui", "Default Author"), metadata.default_author),
text(
"max_posts_per_page",
dgettext("ui", "Posts per Page"),
Integer.to_string(metadata.max_posts_per_page)
),
text(
"image_import_concurrency",
dgettext("ui", "Image Import Concurrency"),
Integer.to_string(metadata.image_import_concurrency)
),
enum(
"blogmark_category",
dgettext("ui", "Blogmark Category"),
metadata.blogmark_category || List.first(metadata.categories) || "article",
metadata.categories
),
text(
"blog_languages",
dgettext("ui", "Blog Languages (comma-separated)"),
Enum.join(metadata.blog_languages, ", ")
),
bool(
"semantic_similarity_enabled",
dgettext("ui", "Semantic Similarity"),
metadata.semantic_similarity_enabled
)
])
end
def load("editor", _project_id) do
stored = editor_settings()
form("editor", dgettext("ui", "Editor"), [
enum("default_mode", dgettext("ui", "Default Editor Mode"), stored["default_mode"], [
"wysiwyg",
"markdown",
"preview"
]),
enum("diff_view_style", dgettext("ui", "Diff View Style"), stored["diff_view_style"], [
"inline",
"side-by-side"
]),
bool("wrap_long_lines", dgettext("ui", "Wrap Long Lines"), stored["wrap_long_lines"]),
bool(
"hide_unchanged_regions",
dgettext("ui", "Hide Unchanged Regions"),
stored["hide_unchanged_regions"]
)
])
end
def load("content", project_id) do
{:ok, metadata} = Metadata.get_project_metadata(project_id)
post_templates = [""] ++ template_slugs(project_id, :post)
list_templates = [""] ++ template_slugs(project_id, :list)
category_fields =
metadata
|> ManagedCategories.category_rows()
|> Enum.flat_map(fn row ->
[
info("cat:#{row.name}", "── " <> row.name, ""),
text("cat:#{row.name}:title", dgettext("ui", "Title"), row.title),
bool("cat:#{row.name}:render_in_lists", dgettext("ui", "Render in Lists"), row.render_in_lists),
bool("cat:#{row.name}:show_title", dgettext("ui", "Show Title"), row.show_title),
enum(
"cat:#{row.name}:post_template_slug",
dgettext("ui", "Post Template"),
row.post_template_slug || "",
post_templates
),
enum(
"cat:#{row.name}:list_template_slug",
dgettext("ui", "List Template"),
row.list_template_slug || "",
list_templates
)
]
end)
form(
"content",
dgettext("ui", "Content"),
[text("new_category", dgettext("ui", "New Category"), "")] ++ category_fields
)
end
def load("ai", _project_id) do
stored = AISettings.ai_form(%{})
form("ai", dgettext("ui", "AI"), [
bool("offline_mode", dgettext("ui", "Airplane Mode"), stored["offline_mode"]),
text("system_prompt", dgettext("ui", "System Prompt"), stored["system_prompt"]),
text("online_url", dgettext("ui", "Online Endpoint URL"), stored["online_url"]),
text("online_api_key", dgettext("ui", "Online API Key"), stored["online_api_key"]),
text("online_chat_model", dgettext("ui", "Online Chat Model"), stored["online_chat_model"]),
bool("online_chat_tools", dgettext("ui", "Online Chat Tool Calls"), stored["online_chat_tools"]),
bool(
"online_chat_disable_reasoning",
dgettext("ui", "Online Chat Disable Reasoning"),
stored["online_chat_disable_reasoning"]
),
text("online_title_model", dgettext("ui", "Online Title Model"), stored["online_title_model"]),
text(
"online_image_analysis_model",
dgettext("ui", "Online Image Model"),
stored["online_image_analysis_model"]
),
bool("online_chat_images", dgettext("ui", "Online Image Support"), stored["online_chat_images"]),
text("offline_url", dgettext("ui", "Offline Endpoint URL"), stored["offline_url"]),
text("offline_api_key", dgettext("ui", "Offline API Key"), stored["offline_api_key"]),
text("offline_chat_model", dgettext("ui", "Offline Chat Model"), stored["offline_chat_model"]),
bool("offline_chat_tools", dgettext("ui", "Offline Chat Tool Calls"), stored["offline_chat_tools"]),
bool(
"offline_chat_disable_reasoning",
dgettext("ui", "Offline Chat Disable Reasoning"),
stored["offline_chat_disable_reasoning"]
),
text("offline_title_model", dgettext("ui", "Offline Title Model"), stored["offline_title_model"]),
text(
"offline_image_analysis_model",
dgettext("ui", "Offline Image Model"),
stored["offline_image_analysis_model"]
),
bool("offline_chat_images", dgettext("ui", "Offline Image Support"), stored["offline_chat_images"])
])
end
def load("technology", project_id) do
{:ok, metadata} = Metadata.get_project_metadata(project_id)
form("technology", dgettext("ui", "Technology"), [
bool(
"semantic_similarity_enabled",
dgettext("ui", "Semantic Similarity"),
metadata.semantic_similarity_enabled
)
])
end
def load("publishing", project_id) do
{:ok, metadata} = Metadata.get_project_metadata(project_id)
prefs = metadata.publishing_preferences
form("publishing", dgettext("ui", "Publishing"), [
text("ssh_host", dgettext("ui", "SSH Host"), Map.get(prefs, "ssh_host", "")),
text("ssh_user", dgettext("ui", "SSH User"), Map.get(prefs, "ssh_user", "")),
text("ssh_remote_path", dgettext("ui", "SSH Remote Path"), Map.get(prefs, "ssh_remote_path", "")),
enum("ssh_mode", dgettext("ui", "SSH Mode"), Map.get(prefs, "ssh_mode", "scp") || "scp", [
"scp",
"rsync"
])
])
end
def load("data", project_id) do
project = Projects.get_project(project_id)
data_path = if project, do: Projects.project_data_dir(project), else: ""
form("data", dgettext("ui", "Data"), [
info("data_path", dgettext("ui", "Data Folder"), data_path),
info(
"data_hint",
dgettext("ui", "Maintenance"),
dgettext("ui", "Rebuild and maintenance commands are available under the : prompt.")
)
])
end
def load("mcp", _project_id) do
fields =
Enum.map(MCPConfig.mcp_rows(), fn row ->
if row.supported? do
bool("mcp:#{row.id}", row.label, row.configured?)
else
info("mcp:#{row.id}", row.label, dgettext("ui", "not supported yet"))
end
end)
form("mcp", dgettext("ui", "MCP"), fields)
end
def load("style", project_id) do
{:ok, metadata} = Metadata.get_project_metadata(project_id)
current = if metadata.pico_theme in [nil, ""], do: "default", else: metadata.pico_theme
form("style", dgettext("ui", "Style"), [
enum("pico_theme", dgettext("ui", "Theme"), current, Metadata.supported_pico_themes())
])
end
def load(section, _project_id) do
form(section, section, [])
end
# ── Save ─────────────────────────────────────────────────────────────────
@spec save(String.t(), String.t(), %{String.t() => term()}) :: :ok | {:error, term()}
def save("project", project_id, values) do
save_project_metadata(project_id, %{
name: blank_to_nil(values["name"]),
description: blank_to_nil(values["description"]),
public_url: blank_to_nil(values["public_url"]),
main_language: blank_to_nil(values["main_language"]),
default_author: blank_to_nil(values["default_author"]),
max_posts_per_page: parse_integer(values["max_posts_per_page"], 50),
image_import_concurrency: parse_integer(values["image_import_concurrency"], 4),
blogmark_category: blank_to_nil(values["blogmark_category"]),
blog_languages: split_languages(values["blog_languages"]),
semantic_similarity_enabled: values["semantic_similarity_enabled"] == true
})
end
def save("editor", _project_id, values) do
with :ok <- Settings.put_global_setting("ui.preferred_editor_mode", values["default_mode"]),
:ok <- Settings.put_global_setting("ui.git_diff_view_style", values["diff_view_style"]),
:ok <-
Settings.put_global_setting(
"ui.git_diff_word_wrap",
boolean_string(values["wrap_long_lines"])
) do
Settings.put_global_setting(
"ui.git_diff_hide_unchanged_regions",
boolean_string(values["hide_unchanged_regions"])
)
end
end
def save("content", project_id, values) do
with :ok <- maybe_add_category(project_id, values["new_category"]) do
values
|> category_settings_by_name()
|> Enum.reduce_while(:ok, fn {category, settings}, _acc ->
case Metadata.update_category_settings(project_id, category, settings) do
{:ok, _metadata} -> {:cont, :ok}
{:error, reason} -> {:halt, {:error, reason}}
end
end)
end
end
def save("ai", _project_id, values) do
AISettings.save_attrs(%{
online_url: blank_to_nil(values["online_url"]),
online_api_key: blank_to_nil(values["online_api_key"]),
online_chat_model: blank_to_nil(values["online_chat_model"]),
online_chat_tools: values["online_chat_tools"] == true,
online_chat_disable_reasoning: values["online_chat_disable_reasoning"] == true,
online_title_model: blank_to_nil(values["online_title_model"]),
online_image_analysis_model: blank_to_nil(values["online_image_analysis_model"]),
online_chat_images: values["online_chat_images"] == true,
offline_url: blank_to_nil(values["offline_url"]),
offline_api_key: blank_to_nil(values["offline_api_key"]),
offline_mode: values["offline_mode"] == true,
offline_chat_model: blank_to_nil(values["offline_chat_model"]),
offline_chat_tools: values["offline_chat_tools"] == true,
offline_chat_disable_reasoning: values["offline_chat_disable_reasoning"] == true,
offline_title_model: blank_to_nil(values["offline_title_model"]),
offline_image_analysis_model: blank_to_nil(values["offline_image_analysis_model"]),
offline_chat_images: values["offline_chat_images"] == true,
system_prompt: to_string(values["system_prompt"] || "")
})
end
def save("technology", project_id, values) do
save_project_metadata(project_id, %{
semantic_similarity_enabled: values["semantic_similarity_enabled"] == true
})
end
def save("publishing", project_id, values) do
case Metadata.set_publishing_preferences(project_id, %{
ssh_host: blank_to_nil(values["ssh_host"]),
ssh_user: blank_to_nil(values["ssh_user"]),
ssh_remote_path: blank_to_nil(values["ssh_remote_path"]),
ssh_mode: values["ssh_mode"] || "scp"
}) do
{:ok, _metadata} -> :ok
{:error, reason} -> {:error, reason}
end
end
def save("mcp", _project_id, values) do
MCPConfig.mcp_rows()
|> Enum.filter(& &1.supported?)
|> Enum.reduce_while(:ok, fn row, _acc ->
case toggle_mcp_agent(row, Map.get(values, "mcp:#{row.id}", row.configured?)) do
:ok -> {:cont, :ok}
{:error, reason} -> {:halt, {:error, reason}}
end
end)
end
def save("style", project_id, values) do
save_project_metadata(project_id, %{pico_theme: values["pico_theme"]})
end
def save(_section, _project_id, _values), do: :ok
# ── Helpers ──────────────────────────────────────────────────────────────
defp form(section, title, fields), do: %{section: section, title: title, fields: fields}
defp text(key, label, value),
do: %{key: key, label: label, type: :text, value: to_string(value || ""), options: []}
defp bool(key, label, value),
do: %{key: key, label: label, type: :bool, value: value == true, options: []}
defp enum(key, label, value, options),
do: %{key: key, label: label, type: :enum, value: to_string(value || ""), options: options}
defp info(key, label, value),
do: %{key: key, label: label, type: :info, value: value, options: []}
defp editor_settings do
%{
"default_mode" => Settings.get_global_setting("ui.preferred_editor_mode") || "markdown",
"diff_view_style" => Settings.get_global_setting("ui.git_diff_view_style") || "inline",
"wrap_long_lines" => Settings.get_global_setting("ui.git_diff_word_wrap") == "true",
"hide_unchanged_regions" =>
Settings.get_global_setting("ui.git_diff_hide_unchanged_regions") == "true"
}
end
defp supported_language_codes, do: Enum.map(I18n.supported_languages(), & &1.code)
defp template_slugs(project_id, kind) do
Repo.all(
from template in Template,
where: template.project_id == ^project_id and template.kind == ^kind,
order_by: [asc: template.slug],
select: template.slug
)
end
# Project, technology and style all live in the same metadata record;
# `Metadata.update_project_metadata/2` treats missing keys as nil, so the
# current values are always passed along and only the edits override them.
defp save_project_metadata(project_id, overrides) do
{:ok, metadata} = Metadata.get_project_metadata(project_id)
attrs =
metadata
|> Map.take([
:name,
:description,
:public_url,
:main_language,
:default_author,
:max_posts_per_page,
:image_import_concurrency,
:blogmark_category,
:pico_theme,
:semantic_similarity_enabled,
:blog_languages
])
|> Map.merge(overrides)
case Metadata.update_project_metadata(project_id, attrs) do
{:ok, _metadata} -> :ok
{:error, reason} -> {:error, reason}
end
end
defp maybe_add_category(project_id, name) do
case String.trim(to_string(name || "")) do
"" ->
:ok
category ->
case Metadata.add_category(project_id, category) do
{:ok, _metadata} -> :ok
{:error, reason} -> {:error, reason}
end
end
end
defp category_settings_by_name(values) do
values
|> Enum.flat_map(fn {key, value} ->
case String.split(key, ":", parts: 3) do
["cat", name, property] -> [{name, property, value}]
_other -> []
end
end)
|> Enum.group_by(fn {name, _property, _value} -> name end)
|> Enum.map(fn {name, entries} ->
{name, Map.new(entries, fn {_name, property, value} -> category_setting(property, value) end)}
end)
end
defp category_setting("title", value), do: {:title, blank_to_nil(value)}
defp category_setting("render_in_lists", value), do: {:render_in_lists, value == true}
defp category_setting("show_title", value), do: {:show_title, value == true}
defp category_setting("post_template_slug", value), do: {:post_template_slug, blank_to_nil(value)}
defp category_setting("list_template_slug", value), do: {:list_template_slug, blank_to_nil(value)}
defp toggle_mcp_agent(%{configured?: configured?}, wanted) when wanted == configured?, do: :ok
defp toggle_mcp_agent(%{id: agent_id}, true) do
case AgentConfig.add_to_config(agent_id, install_root: Application.app_dir(:bds)) do
{:ok, _payload} -> :ok
{:error, reason} -> {:error, reason}
end
end
defp toggle_mcp_agent(%{id: agent_id}, _wanted) do
case AgentConfig.remove_from_config(agent_id) do
{:ok, _payload} -> :ok
{:error, reason} -> {:error, reason}
end
end
defp split_languages(value) do
value
|> to_string()
|> String.split(~r/[,\s]+/, trim: true)
|> Enum.uniq()
end
defp parse_integer(value, fallback) do
case Integer.parse(to_string(value || "")) do
{parsed, _rest} -> parsed
:error -> fallback
end
end
defp boolean_string(true), do: "true"
defp boolean_string(_value), do: "false"
defp blank_to_nil(nil), do: nil
defp blank_to_nil(value) do
case String.trim(to_string(value)) do
"" -> nil
trimmed -> trimmed
end
end
end

View File

@@ -59,6 +59,7 @@ msgid "--"
msgstr "--"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:220
#: lib/bds/ui/settings_form.ex:145
#: lib/bds/ui/sidebar.ex:802
#, elixir-autogen, elixir-format
msgid "AI"
@@ -71,8 +72,8 @@ msgid "AI Assistant"
msgstr "KI-Assistent"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:93
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:193
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:211
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:203
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:221
#, elixir-autogen, elixir-format
msgid "AI Settings"
msgstr "KI-Einstellungen"
@@ -81,11 +82,11 @@ msgstr "KI-Einstellungen"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:786
#: lib/bds/tui.ex:794
#: lib/bds/tui.ex:1523
#: lib/bds/tui.ex:937
#: lib/bds/tui.ex:940
#: lib/bds/tui.ex:943
#: lib/bds/tui.ex:951
#: lib/bds/tui.ex:1753
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr "KI-Vorschlaege"
@@ -163,6 +164,7 @@ msgid "Agent configuration files for the built-in bDS MCP server"
msgstr "Agent-Konfigurationsdateien für den integrierten bDS-MCP-Server"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:273
#: lib/bds/ui/settings_form.ex:146
#, elixir-autogen, elixir-format
msgid "Airplane Mode"
msgstr "Flugmodus"
@@ -414,6 +416,7 @@ msgid "Blogmark Bookmarklet"
msgstr "Blogmark-Bookmarklet"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:90
#: lib/bds/ui/settings_form.ex:67
#, elixir-autogen, elixir-format
msgid "Blogmark Category"
msgstr "Blogmark-Kategorie"
@@ -572,7 +575,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Unveränderte Diff-Blöcke einklappen"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:1619
#: lib/bds/tui.ex:1849
#, elixir-autogen, elixir-format
msgid "Command completed"
msgstr "Befehl abgeschlossen"
@@ -590,7 +593,8 @@ msgstr "Bestaetigen"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:1014
#: lib/bds/tui.ex:1219
#: lib/bds/ui/settings_form.ex:137
#: lib/bds/ui/sidebar.ex:801
#, elixir-autogen, elixir-format
msgid "Content"
@@ -678,6 +682,7 @@ msgstr "Dunkel"
msgid "Dashboard"
msgstr "Instrumententafel"
#: lib/bds/ui/settings_form.ex:214
#: lib/bds/ui/sidebar.ex:815
#, elixir-autogen, elixir-format
msgid "Data"
@@ -706,11 +711,13 @@ msgid "Default"
msgstr "Standard"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:78
#: lib/bds/ui/settings_form.ex:54
#, elixir-autogen, elixir-format
msgid "Default Author"
msgstr "Standardautor"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:119
#: lib/bds/ui/settings_form.ex:88
#, elixir-autogen, elixir-format
msgid "Default Editor Mode"
msgstr "Standard-Bearbeitungsmodus"
@@ -776,6 +783,7 @@ msgid "Deployment credentials for upload tasks"
msgstr "Bereitstellungszugangsdaten für Upload-Aufgaben"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:38
#: lib/bds/ui/settings_form.ex:46
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Beschreibung"
@@ -798,6 +806,7 @@ msgid "Detect Language"
msgstr "Sprache erkennen"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:129
#: lib/bds/ui/settings_form.ex:93
#, elixir-autogen, elixir-format
msgid "Diff View Style"
msgstr "Diff-Ansicht"
@@ -913,6 +922,7 @@ msgstr "Übersetzung bearbeiten"
#: lib/bds/desktop/shell_live/index.html.heex:513
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:114
#: lib/bds/ui/settings_form.ex:87
#: lib/bds/ui/sidebar.ex:800
#, elixir-autogen, elixir-format
msgid "Editor"
@@ -1030,7 +1040,7 @@ msgid "Filename"
msgstr "Dateiname"
#: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:1583
#: lib/bds/tui.ex:1813
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr "Fehlende Übersetzungen ergänzen"
@@ -1041,7 +1051,7 @@ msgid "Find"
msgstr "Suchen"
#: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:1586
#: lib/bds/tui.ex:1816
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr "Doppelte Beiträge finden"
@@ -1068,14 +1078,14 @@ msgid "Gallery"
msgstr "Galerie"
#: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:1567
#: lib/bds/tui.ex:1797
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr "Website generieren"
#: lib/bds/desktop/shell_live.ex:792
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/tui.ex:1440
#: lib/bds/tui.ex:1662
#: lib/bds/ui/sidebar.ex:826
#, elixir-autogen, elixir-format
msgid "Git"
@@ -1100,6 +1110,7 @@ msgid "Help"
msgstr "Hilfe"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:142
#: lib/bds/ui/settings_form.ex:100
#, elixir-autogen, elixir-format
msgid "Hide Unchanged Regions"
msgstr "Unveränderte Bereiche ausblenden"
@@ -1321,6 +1332,7 @@ msgid "Links To"
msgstr "Verweist auf"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:162
#: lib/bds/ui/settings_form.ex:128
#, elixir-autogen, elixir-format
msgid "List Template"
msgstr "Listen-Vorlage"
@@ -1333,6 +1345,7 @@ msgstr "Mehr laden"
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:50
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:351
#: lib/bds/ui/settings_form.ex:234
#: lib/bds/ui/sidebar.ex:816
#, elixir-autogen, elixir-format
msgid "MCP"
@@ -1350,6 +1363,7 @@ msgstr "Makros (%{count})"
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#: lib/bds/ui/settings_form.ex:50
#, elixir-autogen, elixir-format
msgid "Main Language"
msgstr "Hauptsprache"
@@ -1390,9 +1404,9 @@ msgstr "Maximale Beiträge pro Seite"
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:1436
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1657
#: lib/bds/tui.ex:1878
#: lib/bds/tui.ex:1881
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:578
@@ -1435,11 +1449,11 @@ msgstr "Metadaten"
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:271
#: lib/bds/tui.ex:282
#: lib/bds/tui.ex:1204
#: lib/bds/tui.ex:1564
#: lib/bds/tui.ex:278
#: lib/bds/tui.ex:284
#: lib/bds/tui.ex:295
#: lib/bds/tui.ex:1412
#: lib/bds/tui.ex:1794
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1485,7 +1499,7 @@ msgstr "Neue Seite"
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:221
#: lib/bds/tui.ex:232
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Neuer Beitrag"
@@ -1671,11 +1685,13 @@ msgid "Offline"
msgstr "Offline"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:269
#: lib/bds/ui/settings_form.ex:165
#, elixir-autogen, elixir-format
msgid "Offline API Key"
msgstr "Offline-API-Schlüssel"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:277
#: lib/bds/ui/settings_form.ex:166
#, elixir-autogen, elixir-format
msgid "Offline Chat Model"
msgstr "Offline-Chatmodell"
@@ -1691,6 +1707,7 @@ msgid "Offline Chat Tools"
msgstr "Offline-Chat-Werkzeuge"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:260
#: lib/bds/ui/settings_form.ex:164
#, elixir-autogen, elixir-format
msgid "Offline Endpoint URL"
msgstr "Offline-Endpunkt-URL"
@@ -1701,21 +1718,25 @@ msgid "Offline Image Analysis Model"
msgstr "Offline-Bildanalysemodell"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:297
#: lib/bds/ui/settings_form.ex:179
#, elixir-autogen, elixir-format
msgid "Offline Image Support"
msgstr "Offline-Bildunterstützung"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:289
#: lib/bds/ui/settings_form.ex:173
#, elixir-autogen, elixir-format
msgid "Offline Title Model"
msgstr "Offline-Titelmodell"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:232
#: lib/bds/ui/settings_form.ex:149
#, elixir-autogen, elixir-format
msgid "Online API Key"
msgstr "Online-API-Schlüssel"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:236
#: lib/bds/ui/settings_form.ex:150
#, elixir-autogen, elixir-format
msgid "Online Chat Model"
msgstr "Online-Chat-Modell"
@@ -1731,6 +1752,7 @@ msgid "Online Chat Tools"
msgstr "Online-Chat-Werkzeuge"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:223
#: lib/bds/ui/settings_form.ex:148
#, elixir-autogen, elixir-format
msgid "Online Endpoint URL"
msgstr "Online-Endpunkt-URL"
@@ -1741,11 +1763,13 @@ msgid "Online Image Analysis Model"
msgstr "Online-Bildanalysemodell"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:256
#: lib/bds/ui/settings_form.ex:163
#, elixir-autogen, elixir-format
msgid "Online Image Support"
msgstr "Online-Bildunterstützung"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:248
#: lib/bds/ui/settings_form.ex:157
#, elixir-autogen, elixir-format
msgid "Online Title Model"
msgstr "Online-Titelmodell"
@@ -1763,8 +1787,8 @@ msgid "Open Data Folder"
msgstr "Datenordner öffnen"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:632
#: lib/bds/tui.ex:637
#: lib/bds/tui.ex:792
#: lib/bds/tui.ex:797
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Bestehenden Blog öffnen"
@@ -1776,7 +1800,7 @@ msgid "Open Settings"
msgstr "Einstellungen öffnen"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:1588
#: lib/bds/tui.ex:1818
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Im Browser öffnen"
@@ -1902,6 +1926,7 @@ msgid "Post Slug Conflicts"
msgstr "Beitrags-Slug-Konflikte"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:161
#: lib/bds/ui/settings_form.ex:122
#, elixir-autogen, elixir-format
msgid "Post Template"
msgstr "Beitragsvorlage"
@@ -1924,8 +1949,8 @@ msgstr "Beitrag gespeichert"
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:1435
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1656
#: lib/bds/tui.ex:1671
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1967,6 +1992,7 @@ msgstr "Vorschau nicht verfügbar"
#: lib/bds/desktop/shell_live/misc_editor.ex:739
#: lib/bds/desktop/shell_live/misc_editor.ex:765
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27
#: lib/bds/ui/settings_form.ex:44
#: lib/bds/ui/sidebar.ex:799
#, elixir-autogen, elixir-format
msgid "Project"
@@ -1984,8 +2010,8 @@ msgstr "Projekt und Veröffentlichung"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:545
#: lib/bds/tui.ex:550
#: lib/bds/tui.ex:705
#: lib/bds/tui.ex:710
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Projekte"
@@ -1996,6 +2022,7 @@ msgid "Protected categories cannot be removed"
msgstr "Geschützte Kategorien können nicht entfernt werden"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:51
#: lib/bds/ui/settings_form.ex:47
#, elixir-autogen, elixir-format
msgid "Public URL"
msgstr "Öffentliche URL"
@@ -2029,6 +2056,7 @@ msgstr "Veröffentlichte Übersetzung hat Inhalt in der DB statt im Dateisystem"
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338
#: lib/bds/ui/settings_form.ex:199
#: lib/bds/ui/sidebar.ex:811
#, elixir-autogen, elixir-format
msgid "Publishing"
@@ -2051,15 +2079,15 @@ msgid "Ready to import:"
msgstr "Bereit zum Import:"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:629
#: lib/bds/tui.ex:1568
#: lib/bds/tui.ex:789
#: lib/bds/tui.ex:1798
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr "Datenbank neu aufbauen"
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:1572
#: lib/bds/tui.ex:1802
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Embedding-Index neu aufbauen"
@@ -2117,7 +2145,7 @@ msgid "Refresh Translation"
msgstr "Übersetzung aktualisieren"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:1575
#: lib/bds/tui.ex:1805
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Kalender neu erzeugen"
@@ -2128,7 +2156,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Fehlende Vorschaubilder neu erzeugen"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:1569
#: lib/bds/tui.ex:1799
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Text neu indizieren"
@@ -2160,6 +2188,7 @@ msgid "Remove tag"
msgstr "Schlagwort entfernen"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:159
#: lib/bds/ui/settings_form.ex:118
#, elixir-autogen, elixir-format
msgid "Render in Lists"
msgstr "In Listen rendern"
@@ -2237,6 +2266,7 @@ msgid "Run"
msgstr "Ausführen"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:340
#: lib/bds/ui/settings_form.ex:203
#, elixir-autogen, elixir-format
msgid "SSH Mode"
msgstr "SSH-Modus"
@@ -2314,7 +2344,7 @@ msgstr "Scripting-Funktionen werden in der Neufassung auf Anwendungsebene konfig
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:1438
#: lib/bds/tui.ex:1659
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2413,12 +2443,15 @@ msgid "Selected pairs dismissed"
msgstr "Ausgewählte Paare verworfen"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:324
#: lib/bds/ui/settings_form.ex:78
#: lib/bds/ui/settings_form.ex:189
#, elixir-autogen, elixir-format
msgid "Semantic Similarity"
msgstr "Semantische Ähnlichkeit"
#: lib/bds/desktop/shell_live/settings_editor/project_settings.ex:60
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:11
#: lib/bds/tui.ex:1661
#: lib/bds/ui/registry.ex:86
#: lib/bds/ui/registry.ex:101
#: lib/bds/ui/sidebar.ex:795
@@ -2442,9 +2475,9 @@ msgid "Site"
msgstr "Website"
#: lib/bds/desktop/shell_live/misc_editor.ex:412
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:300
#: lib/bds/tui.ex:1209
#: lib/bds/tui.ex:311
#: lib/bds/tui.ex:313
#: lib/bds/tui.ex:1417
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2508,6 +2541,7 @@ msgstr "Stopp"
#: lib/bds/desktop/shell_live/settings_editor/style_editor.ex:76
#: lib/bds/desktop/shell_live/settings_editor_html/style_editor.html.heex:3
#: lib/bds/ui/registry.ex:102
#: lib/bds/ui/settings_form.ex:241
#: lib/bds/ui/sidebar.ex:817
#, elixir-autogen, elixir-format
msgid "Style"
@@ -2534,6 +2568,7 @@ msgid "Syntax is valid"
msgstr "Syntax ist gültig"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:301
#: lib/bds/ui/settings_form.ex:147
#, elixir-autogen, elixir-format
msgid "System Prompt"
msgstr "System-Prompt"
@@ -2565,7 +2600,7 @@ msgstr "Schlagwortname"
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:1439
#: lib/bds/tui.ex:1660
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2577,12 +2612,13 @@ msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Aufgaben"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:321
#: lib/bds/ui/settings_form.ex:186
#: lib/bds/ui/sidebar.ex:805
#, elixir-autogen, elixir-format
msgid "Technology"
@@ -2622,7 +2658,7 @@ msgstr "Template-Syntax ist gültig"
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:1437
#: lib/bds/tui.ex:1658
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2668,6 +2704,7 @@ msgstr "Dieses Element wird referenziert von:"
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:23
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:158
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:22
#: lib/bds/ui/settings_form.ex:117
#, elixir-autogen, elixir-format
msgid "Title"
msgstr "Titel"
@@ -2845,7 +2882,7 @@ msgid "Updated URLs"
msgstr "Aktualisierte URLs"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:1587
#: lib/bds/tui.ex:1817
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Website hochladen"
@@ -2873,13 +2910,13 @@ msgid "Validate"
msgstr "Validieren"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:1565
#: lib/bds/tui.ex:1795
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Website validieren"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:1578
#: lib/bds/tui.ex:1808
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Übersetzungen validieren"
@@ -2923,6 +2960,7 @@ msgid "Working tree and history"
msgstr "Arbeitsverzeichnis und Verlauf"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:138
#: lib/bds/ui/settings_form.ex:97
#, elixir-autogen, elixir-format
msgid "Wrap Long Lines"
msgstr "Lange Zeilen umbrechen"
@@ -3281,6 +3319,7 @@ msgid "End-user guidance for editorial workflows, media, templates, translation,
msgstr "Endbenutzer-Anleitung für redaktionelle Arbeitsabläufe, Medien, Vorlagen, Übersetzungen und Veröffentlichungen in bDS2."
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:86
#: lib/bds/ui/settings_form.ex:62
#, elixir-autogen, elixir-format
msgid "Image Import Concurrency"
msgstr "Gleichzeitige Bildimporte"
@@ -3350,15 +3389,15 @@ msgstr "Änderungen"
#: lib/bds/desktop/shell_live/git_handler.ex:46
#: lib/bds/desktop/shell_live/git_handler.ex:52
#: lib/bds/desktop/shell_live/sidebar_components.ex:556
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:330
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:340
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Commit"
msgstr "Commit"
#: lib/bds/desktop/shell_live/sidebar_components.ex:555
#: lib/bds/tui.ex:1031
#: lib/bds/tui.ex:1239
#, elixir-autogen, elixir-format
msgid "Commit message"
msgstr "Commit-Nachricht"
@@ -3382,6 +3421,7 @@ msgid "Fetch"
msgstr "Abrufen"
#: lib/bds/desktop/shell_live/sidebar_components.ex:586
#: lib/bds/tui.ex:1074
#, elixir-autogen, elixir-format
msgid "History"
msgstr "Verlauf"
@@ -3429,7 +3469,7 @@ msgstr "LFS bereinigen"
#: lib/bds/desktop/shell_live/git_handler.ex:17
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/tui.ex:800
#: lib/bds/tui.ex:957
#, elixir-autogen, elixir-format
msgid "Pull"
msgstr "Pull"
@@ -3437,7 +3477,7 @@ msgstr "Pull"
#: lib/bds/desktop/shell_live/git_handler.ex:18
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/tui.ex:801
#: lib/bds/tui.ex:958
#, elixir-autogen, elixir-format
msgid "Push"
msgstr "Push"
@@ -3550,7 +3590,7 @@ msgid "Suggested tags"
msgstr "Vorgeschlagene Tags"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:1566
#: lib/bds/tui.ex:1796
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Website vollständig neu generieren"
@@ -3617,7 +3657,7 @@ msgstr "git pull"
msgid "git push"
msgstr "git push"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:159
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:112
#, elixir-autogen, elixir-format
msgid "AI settings saved."
msgstr "KI-Einstellungen gespeichert."
@@ -3627,12 +3667,12 @@ msgstr "KI-Einstellungen gespeichert."
msgid "Could not load models"
msgstr "Modelle konnten nicht geladen werden"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:190
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:200
#, elixir-autogen, elixir-format
msgid "Could not save AI settings"
msgstr "KI-Einstellungen konnten nicht gespeichert werden"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:194
#, elixir-autogen, elixir-format
msgid "Loaded %{count} models."
msgstr "%{count} Modelle geladen."
@@ -3642,87 +3682,88 @@ msgstr "%{count} Modelle geladen."
msgid "OK"
msgstr "OK"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:174
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#, elixir-autogen, elixir-format
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "Der Endpunkt hat keine Modelle zurückgegeben. Sie können einen Modellnamen weiterhin manuell eingeben."
#: lib/bds/tui.ex:1524
#: lib/bds/tui.ex:1754
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "KI ist im Flugmodus ohne lokalen Endpunkt nicht verfügbar."
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1881
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "Diese Datei konnte nicht geladen werden."
#: lib/bds/tui.ex:230
#: lib/bds/tui.ex:243
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr "Die Bearbeitung dieses Eintrags ist in der Terminal-Oberfläche noch nicht verfügbar."
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:940
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Keine Vorschläge erhalten."
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1878
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Nur Bilder können in der Vorschau angezeigt werden."
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1671
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Beitrag nicht gefunden."
#: lib/bds/tui.ex:969
#: lib/bds/tui.ex:1174
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Drücken Sie Enter, um %{name} in der Vorschau anzuzeigen."
#: lib/bds/tui.ex:1494
#: lib/bds/tui.ex:1724
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Veröffentlicht."
#: lib/bds/tui.ex:1510
#: lib/bds/tui.ex:1740
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Speichern Sie vor dem Sprachwechsel."
#: lib/bds/tui.ex:1495
#: lib/bds/tui.ex:524
#: lib/bds/tui.ex:1725
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Gespeichert."
#: lib/bds/tui.ex:972
#: lib/bds/tui.ex:1177
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr "Wählen Sie einen Eintrag aus und öffnen Sie ihn mit Enter."
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:937
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Vorschläge übernommen."
#: lib/bds/tui.ex:984
#: lib/bds/tui.ex:1189
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titel (Strg+T zum Bearbeiten)"
#: lib/bds/tui.ex:983
#: lib/bds/tui.ex:1188
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titel (Bearbeitung — Enter zum Bestätigen)"
#: lib/bds/tui.ex:1033
#: lib/bds/tui.ex:1241
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Wird bearbeitet…"
#: lib/bds/tui.ex:1055
#: lib/bds/tui.ex:1263
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "Esc zum Schließen"
@@ -3759,158 +3800,263 @@ msgstr "Serveradresse (user@host oder user@host:port), Public-Key-Authentifizier
msgid "Use the form user@host or user@host:port."
msgstr "Verwenden Sie das Format user@host oder user@host:port."
#: lib/bds/tui.ex:1003
#: lib/bds/tui.ex:1208
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Vorschau (ctrl+e zum Bearbeiten)"
#: lib/bds/tui.ex:1305
#: lib/bds/tui.ex:1520
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "Strg+S Speichern · Strg+P Veröffentlichen · Strg+E Vorschau · Strg+T Titel · Strg+L Sprache · Strg+G KI · Esc Zurück"
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Alle Aufgaben abgeschlossen."
#: lib/bds/tui.ex:1081
#: lib/bds/tui.ex:1289
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Befehle — Esc zum Schließen"
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:814
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Unbekannter Befehl."
#: lib/bds/tui.ex:1071
#: lib/bds/tui.ex:1279
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[Bericht/Anwenden in der GUI]"
#: lib/bds/tui.ex:1220
#: lib/bds/tui.ex:1428
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} Unterschiede · %{orphans} verwaiste Dateien"
#: lib/bds/tui.ex:1252
#: lib/bds/tui.ex:1460
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Erwartet %{expected} · Vorhanden %{existing}"
#: lib/bds/tui.ex:1269
#: lib/bds/tui.ex:1477
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "Überzählige Dateien (werden entfernt):"
#: lib/bds/tui.ex:1265
#: lib/bds/tui.ex:1473
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Fehlende Seiten (werden gerendert):"
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:311
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Nichts anzuwenden."
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:278
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Nichts zu reparieren."
#: lib/bds/tui.ex:1243
#: lib/bds/tui.ex:1451
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr "Verwaiste Dateien (nicht in der Datenbank):"
#: lib/bds/tui.ex:1259
#: lib/bds/tui.ex:1467
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap geändert."
#: lib/bds/tui.ex:1273
#: lib/bds/tui.ex:1481
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Aktualisierte Beiträge (werden neu gerendert):"
#: lib/bds/tui.ex:1210
#: lib/bds/tui.ex:1418
#, elixir-autogen, elixir-format
msgid "enter apply changes · esc close"
msgstr "Enter Änderungen anwenden · Esc Schließen"
#: lib/bds/tui.ex:1205
#: lib/bds/tui.ex:1413
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "Enter alles aus Dateien reparieren · Esc Schließen"
#: lib/bds/tui.ex:619
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Importierter Blog"
#: lib/bds/tui.ex:638
#: lib/bds/tui.ex:798
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "Kein Ordner: %{path}"
#: lib/bds/tui.ex:1147
#: lib/bds/tui.ex:1355
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Projekte — Enter Wechseln · O Bestehenden öffnen · Esc Schließen"
#: lib/bds/tui.ex:546
#: lib/bds/tui.ex:706
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Zu %{name} gewechselt."
#: lib/bds/tui.ex:1175
#: lib/bds/tui.ex:1383
#, elixir-autogen, elixir-format
msgid "Matching folders"
msgstr "Passende Ordner"
#: lib/bds/tui.ex:1113
#: lib/bds/tui.ex:1321
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · tab complete · enter open · esc back"
msgstr "Bestehenden Blog öffnen — Ordnerpfad eingeben · Tab Vervollständigen · Enter Öffnen · Esc Zurück"
#: lib/bds/tui.ex:1298
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "Enter Öffnen · N Neuer Beitrag · 1-5 Ansichten · P Projekte · / Suche · : Befehle (:? Hilfe) · R Aktualisieren · Strg+Q Beenden"
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:334
#, elixir-autogen, elixir-format
msgid "Commit message required."
msgstr "Commit-Nachricht erforderlich."
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:340
#, elixir-autogen, elixir-format
msgid "Committed."
msgstr "Commit erstellt."
#: lib/bds/tui.ex:960
#: lib/bds/tui.ex:1165
#, elixir-autogen, elixir-format
msgid "Diff (pgup/pgdn scroll)"
msgstr "Diff (Bild↑/Bild↓ blättern)"
#: lib/bds/tui.ex:1333
#: lib/bds/tui.ex:1548
#, elixir-autogen, elixir-format
msgid "No changes."
msgstr "Keine Änderungen."
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:400
#, elixir-autogen, elixir-format
msgid "No diff for this file."
msgstr "Kein Diff für diese Datei."
#: lib/bds/tui.ex:375
#: lib/bds/tui.ex:947
#: lib/bds/tui.ex:388
#: lib/bds/tui.ex:1152
#, elixir-autogen, elixir-format
msgid "Not a git repository."
msgstr "Kein Git-Repository."
#: lib/bds/tui.ex:1291
#: lib/bds/ui/settings_form.ex:73
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-5 views · ctrl+q quit"
msgstr "C Commit · U Pull · S Push · Enter Zur Datei springen · Bild↑/Bild↓ Diff blättern · 1-5 Ansichten · Strg+Q Beenden"
msgid "Blog Languages (comma-separated)"
msgstr "Blog-Sprachen (durch Komma getrennt)"
#: lib/bds/ui/settings_form.ex:215
#, elixir-autogen, elixir-format
msgid "Data Folder"
msgstr "Datenordner"
#: lib/bds/ui/settings_form.ex:218
#, elixir-autogen, elixir-format
msgid "Maintenance"
msgstr "Wartung"
#: lib/bds/ui/settings_form.ex:45
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Name"
#: lib/bds/ui/settings_form.ex:138
#, elixir-autogen, elixir-format
msgid "New Category"
msgstr "Neue Kategorie"
#: lib/bds/ui/settings_form.ex:170
#, elixir-autogen, elixir-format
msgid "Offline Chat Disable Reasoning"
msgstr "Offline-Chat: Denkprozess deaktivieren"
#: lib/bds/ui/settings_form.ex:167
#, elixir-autogen, elixir-format
msgid "Offline Chat Tool Calls"
msgstr "Offline-Chat: Werkzeugaufrufe"
#: lib/bds/ui/settings_form.ex:176
#, elixir-autogen, elixir-format
msgid "Offline Image Model"
msgstr "Offline-Bildmodell"
#: lib/bds/ui/settings_form.ex:154
#, elixir-autogen, elixir-format
msgid "Online Chat Disable Reasoning"
msgstr "Online-Chat: Denkprozess deaktivieren"
#: lib/bds/ui/settings_form.ex:151
#, elixir-autogen, elixir-format
msgid "Online Chat Tool Calls"
msgstr "Online-Chat: Werkzeugaufrufe"
#: lib/bds/ui/settings_form.ex:160
#, elixir-autogen, elixir-format
msgid "Online Image Model"
msgstr "Online-Bildmodell"
#: lib/bds/ui/settings_form.ex:57
#, elixir-autogen, elixir-format
msgid "Posts per Page"
msgstr "Beiträge pro Seite"
#: lib/bds/ui/settings_form.ex:219
#, elixir-autogen, elixir-format
msgid "Rebuild and maintenance commands are available under the : prompt."
msgstr "Befehle für Neuaufbau und Wartung sind über die :-Eingabe verfügbar."
#: lib/bds/ui/settings_form.ex:200
#, elixir-autogen, elixir-format
msgid "SSH Host"
msgstr "SSH-Host"
#: lib/bds/ui/settings_form.ex:202
#, elixir-autogen, elixir-format
msgid "SSH Remote Path"
msgstr "SSH-Remote-Pfad"
#: lib/bds/ui/settings_form.ex:201
#, elixir-autogen, elixir-format
msgid "SSH User"
msgstr "SSH-Benutzer"
#: lib/bds/ui/settings_form.ex:119
#, elixir-autogen, elixir-format
msgid "Show Title"
msgstr "Titel anzeigen"
#: lib/bds/ui/settings_form.ex:242
#, elixir-autogen, elixir-format
msgid "Theme"
msgstr "Theme"
#: lib/bds/tui.ex:1136
#, elixir-autogen, elixir-format
msgid "enter edit · ctrl+s save · esc close"
msgstr "Enter Bearbeiten · Strg+S Speichern · Esc Schließen"
#: lib/bds/tui.ex:1499
#, elixir-autogen, elixir-format
msgid "enter edit/toggle/cycle · ctrl+s save · esc close · ctrl+q quit"
msgstr "Enter Bearbeiten/Umschalten/Wechseln · Strg+S Speichern · Esc Schließen · Strg+Q Beenden"
#: lib/bds/ui/settings_form.ex:230
#, elixir-autogen, elixir-format
msgid "not supported yet"
msgstr "noch nicht unterstützt"
#: lib/bds/tui.ex:1506
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-7 views · ctrl+q quit"
msgstr "C Commit · U Pull · S Push · Enter Zur Datei springen · Bild↑/Bild↓ Diff blättern · 1-7 Ansichten · Strg+Q Beenden"
#: lib/bds/tui.ex:1513
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-7 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "Enter Öffnen · N Neuer Beitrag · 1-7 Ansichten · P Projekte · / Suche · : Befehle (:? Hilfe) · R Aktualisieren · Strg+Q Beenden"

View File

@@ -59,6 +59,7 @@ msgid "--"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:220
#: lib/bds/ui/settings_form.ex:145
#: lib/bds/ui/sidebar.ex:802
#, elixir-autogen, elixir-format
msgid "AI"
@@ -71,8 +72,8 @@ msgid "AI Assistant"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:93
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:193
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:211
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:203
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:221
#, elixir-autogen, elixir-format
msgid "AI Settings"
msgstr ""
@@ -81,11 +82,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:786
#: lib/bds/tui.ex:794
#: lib/bds/tui.ex:1523
#: lib/bds/tui.ex:937
#: lib/bds/tui.ex:940
#: lib/bds/tui.ex:943
#: lib/bds/tui.ex:951
#: lib/bds/tui.ex:1753
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr ""
@@ -163,6 +164,7 @@ msgid "Agent configuration files for the built-in bDS MCP server"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:273
#: lib/bds/ui/settings_form.ex:146
#, elixir-autogen, elixir-format
msgid "Airplane Mode"
msgstr ""
@@ -414,6 +416,7 @@ msgid "Blogmark Bookmarklet"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:90
#: lib/bds/ui/settings_form.ex:67
#, elixir-autogen, elixir-format
msgid "Blogmark Category"
msgstr ""
@@ -572,7 +575,7 @@ msgid "Collapse unchanged diff hunks"
msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:1619
#: lib/bds/tui.ex:1849
#, elixir-autogen, elixir-format
msgid "Command completed"
msgstr ""
@@ -590,7 +593,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:1014
#: lib/bds/tui.ex:1219
#: lib/bds/ui/settings_form.ex:137
#: lib/bds/ui/sidebar.ex:801
#, elixir-autogen, elixir-format
msgid "Content"
@@ -678,6 +682,7 @@ msgstr ""
msgid "Dashboard"
msgstr ""
#: lib/bds/ui/settings_form.ex:214
#: lib/bds/ui/sidebar.ex:815
#, elixir-autogen, elixir-format
msgid "Data"
@@ -706,11 +711,13 @@ msgid "Default"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:78
#: lib/bds/ui/settings_form.ex:54
#, elixir-autogen, elixir-format
msgid "Default Author"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:119
#: lib/bds/ui/settings_form.ex:88
#, elixir-autogen, elixir-format
msgid "Default Editor Mode"
msgstr ""
@@ -776,6 +783,7 @@ msgid "Deployment credentials for upload tasks"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:38
#: lib/bds/ui/settings_form.ex:46
#, elixir-autogen, elixir-format
msgid "Description"
msgstr ""
@@ -798,6 +806,7 @@ msgid "Detect Language"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:129
#: lib/bds/ui/settings_form.ex:93
#, elixir-autogen, elixir-format
msgid "Diff View Style"
msgstr ""
@@ -913,6 +922,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:513
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:114
#: lib/bds/ui/settings_form.ex:87
#: lib/bds/ui/sidebar.ex:800
#, elixir-autogen, elixir-format
msgid "Editor"
@@ -1030,7 +1040,7 @@ msgid "Filename"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:1583
#: lib/bds/tui.ex:1813
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr ""
@@ -1041,7 +1051,7 @@ msgid "Find"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:1586
#: lib/bds/tui.ex:1816
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr ""
@@ -1068,14 +1078,14 @@ msgid "Gallery"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:1567
#: lib/bds/tui.ex:1797
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr ""
#: lib/bds/desktop/shell_live.ex:792
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/tui.ex:1440
#: lib/bds/tui.ex:1662
#: lib/bds/ui/sidebar.ex:826
#, elixir-autogen, elixir-format
msgid "Git"
@@ -1100,6 +1110,7 @@ msgid "Help"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:142
#: lib/bds/ui/settings_form.ex:100
#, elixir-autogen, elixir-format
msgid "Hide Unchanged Regions"
msgstr ""
@@ -1321,6 +1332,7 @@ msgid "Links To"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:162
#: lib/bds/ui/settings_form.ex:128
#, elixir-autogen, elixir-format
msgid "List Template"
msgstr ""
@@ -1333,6 +1345,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:50
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:351
#: lib/bds/ui/settings_form.ex:234
#: lib/bds/ui/sidebar.ex:816
#, elixir-autogen, elixir-format
msgid "MCP"
@@ -1350,6 +1363,7 @@ msgstr ""
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#: lib/bds/ui/settings_form.ex:50
#, elixir-autogen, elixir-format
msgid "Main Language"
msgstr ""
@@ -1390,9 +1404,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:1436
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1657
#: lib/bds/tui.ex:1878
#: lib/bds/tui.ex:1881
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:578
@@ -1435,11 +1449,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:271
#: lib/bds/tui.ex:282
#: lib/bds/tui.ex:1204
#: lib/bds/tui.ex:1564
#: lib/bds/tui.ex:278
#: lib/bds/tui.ex:284
#: lib/bds/tui.ex:295
#: lib/bds/tui.ex:1412
#: lib/bds/tui.ex:1794
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1485,7 +1499,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:221
#: lib/bds/tui.ex:232
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr ""
@@ -1671,11 +1685,13 @@ msgid "Offline"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:269
#: lib/bds/ui/settings_form.ex:165
#, elixir-autogen, elixir-format
msgid "Offline API Key"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:277
#: lib/bds/ui/settings_form.ex:166
#, elixir-autogen, elixir-format
msgid "Offline Chat Model"
msgstr ""
@@ -1691,6 +1707,7 @@ msgid "Offline Chat Tools"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:260
#: lib/bds/ui/settings_form.ex:164
#, elixir-autogen, elixir-format
msgid "Offline Endpoint URL"
msgstr ""
@@ -1701,21 +1718,25 @@ msgid "Offline Image Analysis Model"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:297
#: lib/bds/ui/settings_form.ex:179
#, elixir-autogen, elixir-format
msgid "Offline Image Support"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:289
#: lib/bds/ui/settings_form.ex:173
#, elixir-autogen, elixir-format
msgid "Offline Title Model"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:232
#: lib/bds/ui/settings_form.ex:149
#, elixir-autogen, elixir-format
msgid "Online API Key"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:236
#: lib/bds/ui/settings_form.ex:150
#, elixir-autogen, elixir-format
msgid "Online Chat Model"
msgstr ""
@@ -1731,6 +1752,7 @@ msgid "Online Chat Tools"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:223
#: lib/bds/ui/settings_form.ex:148
#, elixir-autogen, elixir-format
msgid "Online Endpoint URL"
msgstr ""
@@ -1741,11 +1763,13 @@ msgid "Online Image Analysis Model"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:256
#: lib/bds/ui/settings_form.ex:163
#, elixir-autogen, elixir-format
msgid "Online Image Support"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:248
#: lib/bds/ui/settings_form.ex:157
#, elixir-autogen, elixir-format
msgid "Online Title Model"
msgstr ""
@@ -1763,8 +1787,8 @@ msgid "Open Data Folder"
msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:632
#: lib/bds/tui.ex:637
#: lib/bds/tui.ex:792
#: lib/bds/tui.ex:797
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr ""
@@ -1776,7 +1800,7 @@ msgid "Open Settings"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:1588
#: lib/bds/tui.ex:1818
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr ""
@@ -1902,6 +1926,7 @@ msgid "Post Slug Conflicts"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:161
#: lib/bds/ui/settings_form.ex:122
#, elixir-autogen, elixir-format
msgid "Post Template"
msgstr ""
@@ -1924,8 +1949,8 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:1435
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1656
#: lib/bds/tui.ex:1671
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1967,6 +1992,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:739
#: lib/bds/desktop/shell_live/misc_editor.ex:765
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27
#: lib/bds/ui/settings_form.ex:44
#: lib/bds/ui/sidebar.ex:799
#, elixir-autogen, elixir-format
msgid "Project"
@@ -1984,8 +2010,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:545
#: lib/bds/tui.ex:550
#: lib/bds/tui.ex:705
#: lib/bds/tui.ex:710
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr ""
@@ -1996,6 +2022,7 @@ msgid "Protected categories cannot be removed"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:51
#: lib/bds/ui/settings_form.ex:47
#, elixir-autogen, elixir-format
msgid "Public URL"
msgstr ""
@@ -2029,6 +2056,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338
#: lib/bds/ui/settings_form.ex:199
#: lib/bds/ui/sidebar.ex:811
#, elixir-autogen, elixir-format
msgid "Publishing"
@@ -2051,15 +2079,15 @@ msgid "Ready to import:"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:629
#: lib/bds/tui.ex:1568
#: lib/bds/tui.ex:789
#: lib/bds/tui.ex:1798
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:1572
#: lib/bds/tui.ex:1802
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr ""
@@ -2117,7 +2145,7 @@ msgid "Refresh Translation"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:1575
#: lib/bds/tui.ex:1805
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr ""
@@ -2128,7 +2156,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:1569
#: lib/bds/tui.ex:1799
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr ""
@@ -2160,6 +2188,7 @@ msgid "Remove tag"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:159
#: lib/bds/ui/settings_form.ex:118
#, elixir-autogen, elixir-format
msgid "Render in Lists"
msgstr ""
@@ -2237,6 +2266,7 @@ msgid "Run"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:340
#: lib/bds/ui/settings_form.ex:203
#, elixir-autogen, elixir-format
msgid "SSH Mode"
msgstr ""
@@ -2314,7 +2344,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:1438
#: lib/bds/tui.ex:1659
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2413,12 +2443,15 @@ msgid "Selected pairs dismissed"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:324
#: lib/bds/ui/settings_form.ex:78
#: lib/bds/ui/settings_form.ex:189
#, elixir-autogen, elixir-format
msgid "Semantic Similarity"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/project_settings.ex:60
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:11
#: lib/bds/tui.ex:1661
#: lib/bds/ui/registry.ex:86
#: lib/bds/ui/registry.ex:101
#: lib/bds/ui/sidebar.ex:795
@@ -2442,9 +2475,9 @@ msgid "Site"
msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:412
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:300
#: lib/bds/tui.ex:1209
#: lib/bds/tui.ex:311
#: lib/bds/tui.ex:313
#: lib/bds/tui.ex:1417
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2508,6 +2541,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/style_editor.ex:76
#: lib/bds/desktop/shell_live/settings_editor_html/style_editor.html.heex:3
#: lib/bds/ui/registry.ex:102
#: lib/bds/ui/settings_form.ex:241
#: lib/bds/ui/sidebar.ex:817
#, elixir-autogen, elixir-format
msgid "Style"
@@ -2534,6 +2568,7 @@ msgid "Syntax is valid"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:301
#: lib/bds/ui/settings_form.ex:147
#, elixir-autogen, elixir-format
msgid "System Prompt"
msgstr ""
@@ -2565,7 +2600,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:1439
#: lib/bds/tui.ex:1660
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2577,12 +2612,13 @@ msgstr ""
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:321
#: lib/bds/ui/settings_form.ex:186
#: lib/bds/ui/sidebar.ex:805
#, elixir-autogen, elixir-format
msgid "Technology"
@@ -2622,7 +2658,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:1437
#: lib/bds/tui.ex:1658
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2668,6 +2704,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:23
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:158
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:22
#: lib/bds/ui/settings_form.ex:117
#, elixir-autogen, elixir-format
msgid "Title"
msgstr ""
@@ -2845,7 +2882,7 @@ msgid "Updated URLs"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:1587
#: lib/bds/tui.ex:1817
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr ""
@@ -2873,13 +2910,13 @@ msgid "Validate"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:1565
#: lib/bds/tui.ex:1795
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:1578
#: lib/bds/tui.ex:1808
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr ""
@@ -2923,6 +2960,7 @@ msgid "Working tree and history"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:138
#: lib/bds/ui/settings_form.ex:97
#, elixir-autogen, elixir-format
msgid "Wrap Long Lines"
msgstr ""
@@ -3281,6 +3319,7 @@ msgid "End-user guidance for editorial workflows, media, templates, translation,
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:86
#: lib/bds/ui/settings_form.ex:62
#, elixir-autogen, elixir-format
msgid "Image Import Concurrency"
msgstr "Image Import Concurrency"
@@ -3350,15 +3389,15 @@ msgstr ""
#: lib/bds/desktop/shell_live/git_handler.ex:46
#: lib/bds/desktop/shell_live/git_handler.ex:52
#: lib/bds/desktop/shell_live/sidebar_components.ex:556
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:330
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:340
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Commit"
msgstr ""
#: lib/bds/desktop/shell_live/sidebar_components.ex:555
#: lib/bds/tui.ex:1031
#: lib/bds/tui.ex:1239
#, elixir-autogen, elixir-format
msgid "Commit message"
msgstr ""
@@ -3382,6 +3421,7 @@ msgid "Fetch"
msgstr ""
#: lib/bds/desktop/shell_live/sidebar_components.ex:586
#: lib/bds/tui.ex:1074
#, elixir-autogen, elixir-format
msgid "History"
msgstr ""
@@ -3429,7 +3469,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/git_handler.ex:17
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/tui.ex:800
#: lib/bds/tui.ex:957
#, elixir-autogen, elixir-format
msgid "Pull"
msgstr ""
@@ -3437,7 +3477,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/git_handler.ex:18
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/tui.ex:801
#: lib/bds/tui.ex:958
#, elixir-autogen, elixir-format, fuzzy
msgid "Push"
msgstr ""
@@ -3550,7 +3590,7 @@ msgid "Suggested tags"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:1566
#: lib/bds/tui.ex:1796
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr ""
@@ -3617,7 +3657,7 @@ msgstr ""
msgid "git push"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:159
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:112
#, elixir-autogen, elixir-format
msgid "AI settings saved."
msgstr ""
@@ -3627,12 +3667,12 @@ msgstr ""
msgid "Could not load models"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:190
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:200
#, elixir-autogen, elixir-format
msgid "Could not save AI settings"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:194
#, elixir-autogen, elixir-format
msgid "Loaded %{count} models."
msgstr ""
@@ -3642,87 +3682,88 @@ msgstr ""
msgid "OK"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:174
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#, elixir-autogen, elixir-format
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr ""
#: lib/bds/tui.ex:1524
#: lib/bds/tui.ex:1754
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr ""
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1881
#, elixir-autogen, elixir-format, fuzzy
msgid "Could not load this file."
msgstr ""
#: lib/bds/tui.ex:230
#: lib/bds/tui.ex:243
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr ""
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:940
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr ""
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1878
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr ""
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1671
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr ""
#: lib/bds/tui.ex:969
#: lib/bds/tui.ex:1174
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr ""
#: lib/bds/tui.ex:1494
#: lib/bds/tui.ex:1724
#, elixir-autogen, elixir-format, fuzzy
msgid "Published."
msgstr ""
#: lib/bds/tui.ex:1510
#: lib/bds/tui.ex:1740
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr ""
#: lib/bds/tui.ex:1495
#: lib/bds/tui.ex:524
#: lib/bds/tui.ex:1725
#, elixir-autogen, elixir-format, fuzzy
msgid "Saved."
msgstr ""
#: lib/bds/tui.ex:972
#: lib/bds/tui.ex:1177
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr ""
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:937
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr ""
#: lib/bds/tui.ex:984
#: lib/bds/tui.ex:1189
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr ""
#: lib/bds/tui.ex:983
#: lib/bds/tui.ex:1188
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr ""
#: lib/bds/tui.ex:1033
#: lib/bds/tui.ex:1241
#, elixir-autogen, elixir-format, fuzzy
msgid "Working…"
msgstr ""
#: lib/bds/tui.ex:1055
#: lib/bds/tui.ex:1263
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr ""
@@ -3759,158 +3800,263 @@ msgstr ""
msgid "Use the form user@host or user@host:port."
msgstr ""
#: lib/bds/tui.ex:1003
#: lib/bds/tui.ex:1208
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr ""
#: lib/bds/tui.ex:1305
#: lib/bds/tui.ex:1520
#, elixir-autogen, elixir-format, fuzzy
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr ""
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr ""
#: lib/bds/tui.ex:1081
#: lib/bds/tui.ex:1289
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr ""
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:814
#, elixir-autogen, elixir-format, fuzzy
msgid "Unknown command."
msgstr ""
#: lib/bds/tui.ex:1071
#: lib/bds/tui.ex:1279
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr ""
#: lib/bds/tui.ex:1220
#: lib/bds/tui.ex:1428
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr ""
#: lib/bds/tui.ex:1252
#: lib/bds/tui.ex:1460
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr ""
#: lib/bds/tui.ex:1269
#: lib/bds/tui.ex:1477
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr ""
#: lib/bds/tui.ex:1265
#: lib/bds/tui.ex:1473
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr ""
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:311
#, elixir-autogen, elixir-format, fuzzy
msgid "Nothing to apply."
msgstr ""
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:278
#, elixir-autogen, elixir-format, fuzzy
msgid "Nothing to repair."
msgstr ""
#: lib/bds/tui.ex:1243
#: lib/bds/tui.ex:1451
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr ""
#: lib/bds/tui.ex:1259
#: lib/bds/tui.ex:1467
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr ""
#: lib/bds/tui.ex:1273
#: lib/bds/tui.ex:1481
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr ""
#: lib/bds/tui.ex:1210
#: lib/bds/tui.ex:1418
#, elixir-autogen, elixir-format
msgid "enter apply changes · esc close"
msgstr ""
#: lib/bds/tui.ex:1205
#: lib/bds/tui.ex:1413
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr ""
#: lib/bds/tui.ex:619
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format, fuzzy
msgid "Imported Blog"
msgstr ""
#: lib/bds/tui.ex:638
#: lib/bds/tui.ex:798
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr ""
#: lib/bds/tui.ex:1147
#: lib/bds/tui.ex:1355
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr ""
#: lib/bds/tui.ex:546
#: lib/bds/tui.ex:706
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr ""
#: lib/bds/tui.ex:1175
#: lib/bds/tui.ex:1383
#, elixir-autogen, elixir-format
msgid "Matching folders"
msgstr ""
#: lib/bds/tui.ex:1113
#: lib/bds/tui.ex:1321
#, elixir-autogen, elixir-format, fuzzy
msgid "Open Existing Blog — type a folder path · tab complete · enter open · esc back"
msgstr ""
#: lib/bds/tui.ex:1298
#, elixir-autogen, elixir-format, fuzzy
msgid "enter open · n new post · 1-5 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:334
#, elixir-autogen, elixir-format, fuzzy
msgid "Commit message required."
msgstr ""
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:340
#, elixir-autogen, elixir-format, fuzzy
msgid "Committed."
msgstr ""
#: lib/bds/tui.ex:960
#: lib/bds/tui.ex:1165
#, elixir-autogen, elixir-format
msgid "Diff (pgup/pgdn scroll)"
msgstr ""
#: lib/bds/tui.ex:1333
#: lib/bds/tui.ex:1548
#, elixir-autogen, elixir-format, fuzzy
msgid "No changes."
msgstr ""
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:400
#, elixir-autogen, elixir-format
msgid "No diff for this file."
msgstr ""
#: lib/bds/tui.ex:375
#: lib/bds/tui.ex:947
#: lib/bds/tui.ex:388
#: lib/bds/tui.ex:1152
#, elixir-autogen, elixir-format
msgid "Not a git repository."
msgstr ""
#: lib/bds/tui.ex:1291
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-5 views · ctrl+q quit"
#: lib/bds/ui/settings_form.ex:73
#, elixir-autogen, elixir-format, fuzzy
msgid "Blog Languages (comma-separated)"
msgstr ""
#: lib/bds/ui/settings_form.ex:215
#, elixir-autogen, elixir-format
msgid "Data Folder"
msgstr ""
#: lib/bds/ui/settings_form.ex:218
#, elixir-autogen, elixir-format
msgid "Maintenance"
msgstr ""
#: lib/bds/ui/settings_form.ex:45
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
#: lib/bds/ui/settings_form.ex:138
#, elixir-autogen, elixir-format, fuzzy
msgid "New Category"
msgstr ""
#: lib/bds/ui/settings_form.ex:170
#, elixir-autogen, elixir-format, fuzzy
msgid "Offline Chat Disable Reasoning"
msgstr ""
#: lib/bds/ui/settings_form.ex:167
#, elixir-autogen, elixir-format, fuzzy
msgid "Offline Chat Tool Calls"
msgstr ""
#: lib/bds/ui/settings_form.ex:176
#, elixir-autogen, elixir-format, fuzzy
msgid "Offline Image Model"
msgstr ""
#: lib/bds/ui/settings_form.ex:154
#, elixir-autogen, elixir-format, fuzzy
msgid "Online Chat Disable Reasoning"
msgstr ""
#: lib/bds/ui/settings_form.ex:151
#, elixir-autogen, elixir-format, fuzzy
msgid "Online Chat Tool Calls"
msgstr ""
#: lib/bds/ui/settings_form.ex:160
#, elixir-autogen, elixir-format, fuzzy
msgid "Online Image Model"
msgstr ""
#: lib/bds/ui/settings_form.ex:57
#, elixir-autogen, elixir-format
msgid "Posts per Page"
msgstr ""
#: lib/bds/ui/settings_form.ex:219
#, elixir-autogen, elixir-format
msgid "Rebuild and maintenance commands are available under the : prompt."
msgstr ""
#: lib/bds/ui/settings_form.ex:200
#, elixir-autogen, elixir-format
msgid "SSH Host"
msgstr ""
#: lib/bds/ui/settings_form.ex:202
#, elixir-autogen, elixir-format, fuzzy
msgid "SSH Remote Path"
msgstr ""
#: lib/bds/ui/settings_form.ex:201
#, elixir-autogen, elixir-format
msgid "SSH User"
msgstr ""
#: lib/bds/ui/settings_form.ex:119
#, elixir-autogen, elixir-format, fuzzy
msgid "Show Title"
msgstr ""
#: lib/bds/ui/settings_form.ex:242
#, elixir-autogen, elixir-format, fuzzy
msgid "Theme"
msgstr ""
#: lib/bds/tui.ex:1136
#, elixir-autogen, elixir-format
msgid "enter edit · ctrl+s save · esc close"
msgstr ""
#: lib/bds/tui.ex:1499
#, elixir-autogen, elixir-format
msgid "enter edit/toggle/cycle · ctrl+s save · esc close · ctrl+q quit"
msgstr ""
#: lib/bds/ui/settings_form.ex:230
#, elixir-autogen, elixir-format
msgid "not supported yet"
msgstr ""
#: lib/bds/tui.ex:1506
#, elixir-autogen, elixir-format, fuzzy
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-7 views · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:1513
#, elixir-autogen, elixir-format, fuzzy
msgid "enter open · n new post · 1-7 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr ""

View File

@@ -59,6 +59,7 @@ msgid "--"
msgstr "--"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:220
#: lib/bds/ui/settings_form.ex:145
#: lib/bds/ui/sidebar.ex:802
#, elixir-autogen, elixir-format
msgid "AI"
@@ -71,8 +72,8 @@ msgid "AI Assistant"
msgstr "Asistente de IA"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:93
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:193
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:211
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:203
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:221
#, elixir-autogen, elixir-format
msgid "AI Settings"
msgstr "Configuración de IA"
@@ -81,11 +82,11 @@ msgstr "Configuración de IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:786
#: lib/bds/tui.ex:794
#: lib/bds/tui.ex:1523
#: lib/bds/tui.ex:937
#: lib/bds/tui.ex:940
#: lib/bds/tui.ex:943
#: lib/bds/tui.ex:951
#: lib/bds/tui.ex:1753
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr "Sugerencias de IA"
@@ -163,6 +164,7 @@ msgid "Agent configuration files for the built-in bDS MCP server"
msgstr "Archivos de configuración de agentes para el servidor MCP integrado de bDS"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:273
#: lib/bds/ui/settings_form.ex:146
#, elixir-autogen, elixir-format
msgid "Airplane Mode"
msgstr "Modo avión"
@@ -414,6 +416,7 @@ msgid "Blogmark Bookmarklet"
msgstr "Bookmarklet de blogmark"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:90
#: lib/bds/ui/settings_form.ex:67
#, elixir-autogen, elixir-format
msgid "Blogmark Category"
msgstr "Categoría de blogmark"
@@ -572,7 +575,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Contraer bloques de diff sin cambios"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:1619
#: lib/bds/tui.ex:1849
#, elixir-autogen, elixir-format
msgid "Command completed"
msgstr "Comando completado"
@@ -590,7 +593,8 @@ msgstr "Confirmar"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:1014
#: lib/bds/tui.ex:1219
#: lib/bds/ui/settings_form.ex:137
#: lib/bds/ui/sidebar.ex:801
#, elixir-autogen, elixir-format
msgid "Content"
@@ -678,6 +682,7 @@ msgstr "Oscuro"
msgid "Dashboard"
msgstr "Panel"
#: lib/bds/ui/settings_form.ex:214
#: lib/bds/ui/sidebar.ex:815
#, elixir-autogen, elixir-format
msgid "Data"
@@ -706,11 +711,13 @@ msgid "Default"
msgstr "Predeterminado"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:78
#: lib/bds/ui/settings_form.ex:54
#, elixir-autogen, elixir-format
msgid "Default Author"
msgstr "Autor predeterminado"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:119
#: lib/bds/ui/settings_form.ex:88
#, elixir-autogen, elixir-format
msgid "Default Editor Mode"
msgstr "Modo de editor predeterminado"
@@ -776,6 +783,7 @@ msgid "Deployment credentials for upload tasks"
msgstr "Credenciales de despliegue para tareas de subida"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:38
#: lib/bds/ui/settings_form.ex:46
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Descripción"
@@ -798,6 +806,7 @@ msgid "Detect Language"
msgstr "Detectar idioma"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:129
#: lib/bds/ui/settings_form.ex:93
#, elixir-autogen, elixir-format
msgid "Diff View Style"
msgstr "Estilo de vista diff"
@@ -913,6 +922,7 @@ msgstr "Editar traducción"
#: lib/bds/desktop/shell_live/index.html.heex:513
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:114
#: lib/bds/ui/settings_form.ex:87
#: lib/bds/ui/sidebar.ex:800
#, elixir-autogen, elixir-format
msgid "Editor"
@@ -1030,7 +1040,7 @@ msgid "Filename"
msgstr "Nombre de archivo"
#: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:1583
#: lib/bds/tui.ex:1813
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr "Completar traducciones faltantes"
@@ -1041,7 +1051,7 @@ msgid "Find"
msgstr "Buscar"
#: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:1586
#: lib/bds/tui.ex:1816
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr "Buscar entradas duplicadas"
@@ -1068,14 +1078,14 @@ msgid "Gallery"
msgstr "Galeria"
#: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:1567
#: lib/bds/tui.ex:1797
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr "Generar sitio"
#: lib/bds/desktop/shell_live.ex:792
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/tui.ex:1440
#: lib/bds/tui.ex:1662
#: lib/bds/ui/sidebar.ex:826
#, elixir-autogen, elixir-format
msgid "Git"
@@ -1100,6 +1110,7 @@ msgid "Help"
msgstr "Ayuda"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:142
#: lib/bds/ui/settings_form.ex:100
#, elixir-autogen, elixir-format
msgid "Hide Unchanged Regions"
msgstr "Ocultar regiones sin cambios"
@@ -1321,6 +1332,7 @@ msgid "Links To"
msgstr "Enlaza a"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:162
#: lib/bds/ui/settings_form.ex:128
#, elixir-autogen, elixir-format
msgid "List Template"
msgstr "Plantilla de lista"
@@ -1333,6 +1345,7 @@ msgstr "Cargar más"
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:50
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:351
#: lib/bds/ui/settings_form.ex:234
#: lib/bds/ui/sidebar.ex:816
#, elixir-autogen, elixir-format
msgid "MCP"
@@ -1350,6 +1363,7 @@ msgstr "Macros (%{count})"
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#: lib/bds/ui/settings_form.ex:50
#, elixir-autogen, elixir-format
msgid "Main Language"
msgstr "Idioma principal"
@@ -1390,9 +1404,9 @@ msgstr "Máximo de publicaciones por página"
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:1436
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1657
#: lib/bds/tui.ex:1878
#: lib/bds/tui.ex:1881
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:578
@@ -1435,11 +1449,11 @@ msgstr "Metadatos"
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:271
#: lib/bds/tui.ex:282
#: lib/bds/tui.ex:1204
#: lib/bds/tui.ex:1564
#: lib/bds/tui.ex:278
#: lib/bds/tui.ex:284
#: lib/bds/tui.ex:295
#: lib/bds/tui.ex:1412
#: lib/bds/tui.ex:1794
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1485,7 +1499,7 @@ msgstr "Nueva página"
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:221
#: lib/bds/tui.ex:232
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nueva entrada"
@@ -1671,11 +1685,13 @@ msgid "Offline"
msgstr "Sin conexión"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:269
#: lib/bds/ui/settings_form.ex:165
#, elixir-autogen, elixir-format
msgid "Offline API Key"
msgstr "Clave API sin conexión"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:277
#: lib/bds/ui/settings_form.ex:166
#, elixir-autogen, elixir-format
msgid "Offline Chat Model"
msgstr "Modelo de chat sin conexión"
@@ -1691,6 +1707,7 @@ msgid "Offline Chat Tools"
msgstr "Herramientas del chat sin conexión"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:260
#: lib/bds/ui/settings_form.ex:164
#, elixir-autogen, elixir-format
msgid "Offline Endpoint URL"
msgstr "URL del endpoint sin conexión"
@@ -1701,21 +1718,25 @@ msgid "Offline Image Analysis Model"
msgstr "Modelo de análisis de imágenes sin conexión"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:297
#: lib/bds/ui/settings_form.ex:179
#, elixir-autogen, elixir-format
msgid "Offline Image Support"
msgstr "Soporte de imágenes sin conexión"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:289
#: lib/bds/ui/settings_form.ex:173
#, elixir-autogen, elixir-format
msgid "Offline Title Model"
msgstr "Modelo de título sin conexión"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:232
#: lib/bds/ui/settings_form.ex:149
#, elixir-autogen, elixir-format
msgid "Online API Key"
msgstr "Clave API en línea"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:236
#: lib/bds/ui/settings_form.ex:150
#, elixir-autogen, elixir-format
msgid "Online Chat Model"
msgstr "Modelo de chat en línea"
@@ -1731,6 +1752,7 @@ msgid "Online Chat Tools"
msgstr "Herramientas del chat en línea"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:223
#: lib/bds/ui/settings_form.ex:148
#, elixir-autogen, elixir-format
msgid "Online Endpoint URL"
msgstr "URL del endpoint en línea"
@@ -1741,11 +1763,13 @@ msgid "Online Image Analysis Model"
msgstr "Modelo de análisis de imágenes en línea"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:256
#: lib/bds/ui/settings_form.ex:163
#, elixir-autogen, elixir-format
msgid "Online Image Support"
msgstr "Soporte de imágenes en línea"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:248
#: lib/bds/ui/settings_form.ex:157
#, elixir-autogen, elixir-format
msgid "Online Title Model"
msgstr "Modelo de títulos en línea"
@@ -1763,8 +1787,8 @@ msgid "Open Data Folder"
msgstr "Abrir carpeta de datos"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:632
#: lib/bds/tui.ex:637
#: lib/bds/tui.ex:792
#: lib/bds/tui.ex:797
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Abrir blog existente"
@@ -1776,7 +1800,7 @@ msgid "Open Settings"
msgstr "Abrir Ajustes"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:1588
#: lib/bds/tui.ex:1818
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Abrir en el navegador"
@@ -1902,6 +1926,7 @@ msgid "Post Slug Conflicts"
msgstr "Conflictos de slug de publicaciones"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:161
#: lib/bds/ui/settings_form.ex:122
#, elixir-autogen, elixir-format
msgid "Post Template"
msgstr "Plantilla de publicación"
@@ -1924,8 +1949,8 @@ msgstr "Artículo guardado"
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:1435
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1656
#: lib/bds/tui.ex:1671
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1967,6 +1992,7 @@ msgstr "Vista previa no disponible"
#: lib/bds/desktop/shell_live/misc_editor.ex:739
#: lib/bds/desktop/shell_live/misc_editor.ex:765
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27
#: lib/bds/ui/settings_form.ex:44
#: lib/bds/ui/sidebar.ex:799
#, elixir-autogen, elixir-format
msgid "Project"
@@ -1984,8 +2010,8 @@ msgstr "Proyecto y publicación"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:545
#: lib/bds/tui.ex:550
#: lib/bds/tui.ex:705
#: lib/bds/tui.ex:710
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Proyectos"
@@ -1996,6 +2022,7 @@ msgid "Protected categories cannot be removed"
msgstr "Las categorías protegidas no se pueden eliminar"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:51
#: lib/bds/ui/settings_form.ex:47
#, elixir-autogen, elixir-format
msgid "Public URL"
msgstr "URL pública"
@@ -2029,6 +2056,7 @@ msgstr "Traducción publicada con contenido en la BD en lugar del sistema de arc
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338
#: lib/bds/ui/settings_form.ex:199
#: lib/bds/ui/sidebar.ex:811
#, elixir-autogen, elixir-format
msgid "Publishing"
@@ -2051,15 +2079,15 @@ msgid "Ready to import:"
msgstr "Listo para importar:"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:629
#: lib/bds/tui.ex:1568
#: lib/bds/tui.ex:789
#: lib/bds/tui.ex:1798
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr "Reconstruir base de datos"
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:1572
#: lib/bds/tui.ex:1802
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Reconstruir índice de embeddings"
@@ -2117,7 +2145,7 @@ msgid "Refresh Translation"
msgstr "Actualizar traducción"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:1575
#: lib/bds/tui.ex:1805
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Regenerar calendario"
@@ -2128,7 +2156,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Regenerar miniaturas faltantes"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:1569
#: lib/bds/tui.ex:1799
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Reindexar texto"
@@ -2160,6 +2188,7 @@ msgid "Remove tag"
msgstr "Eliminar etiqueta"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:159
#: lib/bds/ui/settings_form.ex:118
#, elixir-autogen, elixir-format
msgid "Render in Lists"
msgstr "Mostrar en listas"
@@ -2237,6 +2266,7 @@ msgid "Run"
msgstr "Ejecutar"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:340
#: lib/bds/ui/settings_form.ex:203
#, elixir-autogen, elixir-format
msgid "SSH Mode"
msgstr "Modo SSH"
@@ -2314,7 +2344,7 @@ msgstr "Las capacidades de scripts se configuran en la capa de aplicación en la
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:1438
#: lib/bds/tui.ex:1659
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2413,12 +2443,15 @@ msgid "Selected pairs dismissed"
msgstr "Pares seleccionados descartados"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:324
#: lib/bds/ui/settings_form.ex:78
#: lib/bds/ui/settings_form.ex:189
#, elixir-autogen, elixir-format
msgid "Semantic Similarity"
msgstr "Similitud semántica"
#: lib/bds/desktop/shell_live/settings_editor/project_settings.ex:60
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:11
#: lib/bds/tui.ex:1661
#: lib/bds/ui/registry.ex:86
#: lib/bds/ui/registry.ex:101
#: lib/bds/ui/sidebar.ex:795
@@ -2442,9 +2475,9 @@ msgid "Site"
msgstr "Sitio"
#: lib/bds/desktop/shell_live/misc_editor.ex:412
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:300
#: lib/bds/tui.ex:1209
#: lib/bds/tui.ex:311
#: lib/bds/tui.ex:313
#: lib/bds/tui.ex:1417
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2508,6 +2541,7 @@ msgstr "Detener"
#: lib/bds/desktop/shell_live/settings_editor/style_editor.ex:76
#: lib/bds/desktop/shell_live/settings_editor_html/style_editor.html.heex:3
#: lib/bds/ui/registry.ex:102
#: lib/bds/ui/settings_form.ex:241
#: lib/bds/ui/sidebar.ex:817
#, elixir-autogen, elixir-format
msgid "Style"
@@ -2534,6 +2568,7 @@ msgid "Syntax is valid"
msgstr "La sintaxis es válida"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:301
#: lib/bds/ui/settings_form.ex:147
#, elixir-autogen, elixir-format
msgid "System Prompt"
msgstr "Prompt del sistema"
@@ -2565,7 +2600,7 @@ msgstr "Nombre de la etiqueta"
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:1439
#: lib/bds/tui.ex:1660
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2577,12 +2612,13 @@ msgstr "Etiquetas"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Tareas"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:321
#: lib/bds/ui/settings_form.ex:186
#: lib/bds/ui/sidebar.ex:805
#, elixir-autogen, elixir-format
msgid "Technology"
@@ -2622,7 +2658,7 @@ msgstr "La sintaxis de la plantilla es válida"
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:1437
#: lib/bds/tui.ex:1658
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2668,6 +2704,7 @@ msgstr "Este elemento esta referenciado por:"
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:23
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:158
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:22
#: lib/bds/ui/settings_form.ex:117
#, elixir-autogen, elixir-format
msgid "Title"
msgstr "Titulo"
@@ -2845,7 +2882,7 @@ msgid "Updated URLs"
msgstr "URLs actualizadas"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:1587
#: lib/bds/tui.ex:1817
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Subir sitio"
@@ -2873,13 +2910,13 @@ msgid "Validate"
msgstr "Validar"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:1565
#: lib/bds/tui.ex:1795
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Validar sitio"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:1578
#: lib/bds/tui.ex:1808
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Validar traducciones"
@@ -2923,6 +2960,7 @@ msgid "Working tree and history"
msgstr "Árbol de trabajo e historial"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:138
#: lib/bds/ui/settings_form.ex:97
#, elixir-autogen, elixir-format
msgid "Wrap Long Lines"
msgstr "Ajustar líneas largas"
@@ -3281,6 +3319,7 @@ msgid "End-user guidance for editorial workflows, media, templates, translation,
msgstr "Guía del usuario para flujos editoriales, medios, plantillas, traducción y publicación en bDS2."
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:86
#: lib/bds/ui/settings_form.ex:62
#, elixir-autogen, elixir-format
msgid "Image Import Concurrency"
msgstr "Importación simultánea de imágenes"
@@ -3350,15 +3389,15 @@ msgstr "Cambios"
#: lib/bds/desktop/shell_live/git_handler.ex:46
#: lib/bds/desktop/shell_live/git_handler.ex:52
#: lib/bds/desktop/shell_live/sidebar_components.ex:556
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:330
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:340
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Commit"
msgstr "Commit"
#: lib/bds/desktop/shell_live/sidebar_components.ex:555
#: lib/bds/tui.ex:1031
#: lib/bds/tui.ex:1239
#, elixir-autogen, elixir-format
msgid "Commit message"
msgstr "Mensaje de commit"
@@ -3382,6 +3421,7 @@ msgid "Fetch"
msgstr "Obtener"
#: lib/bds/desktop/shell_live/sidebar_components.ex:586
#: lib/bds/tui.ex:1074
#, elixir-autogen, elixir-format
msgid "History"
msgstr "Historial"
@@ -3429,7 +3469,7 @@ msgstr "Limpiar LFS"
#: lib/bds/desktop/shell_live/git_handler.ex:17
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/tui.ex:800
#: lib/bds/tui.ex:957
#, elixir-autogen, elixir-format
msgid "Pull"
msgstr "Pull"
@@ -3437,7 +3477,7 @@ msgstr "Pull"
#: lib/bds/desktop/shell_live/git_handler.ex:18
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/tui.ex:801
#: lib/bds/tui.ex:958
#, elixir-autogen, elixir-format
msgid "Push"
msgstr "Push"
@@ -3550,7 +3590,7 @@ msgid "Suggested tags"
msgstr "Etiquetas sugeridas"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:1566
#: lib/bds/tui.ex:1796
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Forzar la regeneración del sitio"
@@ -3617,7 +3657,7 @@ msgstr "git pull"
msgid "git push"
msgstr "git push"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:159
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:112
#, elixir-autogen, elixir-format
msgid "AI settings saved."
msgstr "Configuración de IA guardada."
@@ -3627,12 +3667,12 @@ msgstr "Configuración de IA guardada."
msgid "Could not load models"
msgstr "No se pudieron cargar los modelos"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:190
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:200
#, elixir-autogen, elixir-format
msgid "Could not save AI settings"
msgstr "No se pudo guardar la configuración de IA"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:194
#, elixir-autogen, elixir-format
msgid "Loaded %{count} models."
msgstr "%{count} modelos cargados."
@@ -3642,87 +3682,88 @@ msgstr "%{count} modelos cargados."
msgid "OK"
msgstr "OK"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:174
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#, elixir-autogen, elixir-format
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "El endpoint no devolvió ningún modelo. Aún puedes escribir el nombre de un modelo manualmente."
#: lib/bds/tui.ex:1524
#: lib/bds/tui.ex:1754
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "La IA no está disponible en modo avión sin un punto de conexión local."
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1881
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "No se pudo cargar este archivo."
#: lib/bds/tui.ex:230
#: lib/bds/tui.ex:243
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr "La edición de este elemento aún no está disponible en la interfaz de terminal."
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:940
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "No se recibieron sugerencias."
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1878
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Solo se pueden previsualizar imágenes."
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1671
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Entrada no encontrada."
#: lib/bds/tui.ex:969
#: lib/bds/tui.ex:1174
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Pulsa Intro para previsualizar %{name}."
#: lib/bds/tui.ex:1494
#: lib/bds/tui.ex:1724
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Publicado."
#: lib/bds/tui.ex:1510
#: lib/bds/tui.ex:1740
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Guarda antes de cambiar de idioma."
#: lib/bds/tui.ex:1495
#: lib/bds/tui.ex:524
#: lib/bds/tui.ex:1725
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Guardado."
#: lib/bds/tui.ex:972
#: lib/bds/tui.ex:1177
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr "Selecciona una entrada y pulsa Intro para abrirla."
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:937
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Sugerencias aplicadas."
#: lib/bds/tui.ex:984
#: lib/bds/tui.ex:1189
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Título (ctrl+t para editar)"
#: lib/bds/tui.ex:983
#: lib/bds/tui.ex:1188
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Título (edición — Intro para confirmar)"
#: lib/bds/tui.ex:1033
#: lib/bds/tui.ex:1241
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Procesando…"
#: lib/bds/tui.ex:1055
#: lib/bds/tui.ex:1263
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "esc para cerrar"
@@ -3759,158 +3800,263 @@ msgstr "Dirección del servidor (user@host o user@host:port), autenticación de
msgid "Use the form user@host or user@host:port."
msgstr "Usa el formato user@host o user@host:port."
#: lib/bds/tui.ex:1003
#: lib/bds/tui.ex:1208
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Vista previa (ctrl+e para editar)"
#: lib/bds/tui.ex:1305
#: lib/bds/tui.ex:1520
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "ctrl+s guardar · ctrl+p publicar · ctrl+e vista previa · ctrl+t título · ctrl+l idioma · ctrl+g IA · esc volver"
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Todas las tareas han terminado."
#: lib/bds/tui.ex:1081
#: lib/bds/tui.ex:1289
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Comandos — esc para cerrar"
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:814
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Comando desconocido."
#: lib/bds/tui.ex:1071
#: lib/bds/tui.ex:1279
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[informe/aplicación en la GUI]"
#: lib/bds/tui.ex:1220
#: lib/bds/tui.ex:1428
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} diferencias · %{orphans} archivos huérfanos"
#: lib/bds/tui.ex:1252
#: lib/bds/tui.ex:1460
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Esperados %{expected} · Existentes %{existing}"
#: lib/bds/tui.ex:1269
#: lib/bds/tui.ex:1477
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "Archivos sobrantes (se eliminarán):"
#: lib/bds/tui.ex:1265
#: lib/bds/tui.ex:1473
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Páginas faltantes (se generarán):"
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:311
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Nada que aplicar."
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:278
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Nada que reparar."
#: lib/bds/tui.ex:1243
#: lib/bds/tui.ex:1451
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr "Archivos huérfanos (no están en la base de datos):"
#: lib/bds/tui.ex:1259
#: lib/bds/tui.ex:1467
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap modificado."
#: lib/bds/tui.ex:1273
#: lib/bds/tui.ex:1481
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Entradas actualizadas (se volverán a generar):"
#: lib/bds/tui.ex:1210
#: lib/bds/tui.ex:1418
#, elixir-autogen, elixir-format
msgid "enter apply changes · esc close"
msgstr "intro aplicar cambios · esc cerrar"
#: lib/bds/tui.ex:1205
#: lib/bds/tui.ex:1413
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "intro reparar todo desde archivos · esc cerrar"
#: lib/bds/tui.ex:619
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Blog importado"
#: lib/bds/tui.ex:638
#: lib/bds/tui.ex:798
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "No es una carpeta: %{path}"
#: lib/bds/tui.ex:1147
#: lib/bds/tui.ex:1355
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Proyectos — intro cambiar · o abrir existente · esc cerrar"
#: lib/bds/tui.ex:546
#: lib/bds/tui.ex:706
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Cambiado a %{name}."
#: lib/bds/tui.ex:1175
#: lib/bds/tui.ex:1383
#, elixir-autogen, elixir-format
msgid "Matching folders"
msgstr "Carpetas coincidentes"
#: lib/bds/tui.ex:1113
#: lib/bds/tui.ex:1321
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · tab complete · enter open · esc back"
msgstr "Abrir blog existente — escribe la ruta de una carpeta · tab completar · intro abrir · esc volver"
#: lib/bds/tui.ex:1298
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "intro abrir · n nueva entrada · 1-5 vistas · p proyectos · / buscar · : comandos (:? ayuda) · r actualizar · ctrl+q salir"
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:334
#, elixir-autogen, elixir-format
msgid "Commit message required."
msgstr "Se requiere un mensaje de commit."
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:340
#, elixir-autogen, elixir-format
msgid "Committed."
msgstr "Commit realizado."
#: lib/bds/tui.ex:960
#: lib/bds/tui.ex:1165
#, elixir-autogen, elixir-format
msgid "Diff (pgup/pgdn scroll)"
msgstr "Diff (pgup/pgdn para desplazar)"
#: lib/bds/tui.ex:1333
#: lib/bds/tui.ex:1548
#, elixir-autogen, elixir-format
msgid "No changes."
msgstr "Sin cambios."
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:400
#, elixir-autogen, elixir-format
msgid "No diff for this file."
msgstr "No hay diff para este archivo."
#: lib/bds/tui.ex:375
#: lib/bds/tui.ex:947
#: lib/bds/tui.ex:388
#: lib/bds/tui.ex:1152
#, elixir-autogen, elixir-format
msgid "Not a git repository."
msgstr "No es un repositorio git."
#: lib/bds/tui.ex:1291
#: lib/bds/ui/settings_form.ex:73
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-5 views · ctrl+q quit"
msgstr "c commit · u pull · s push · intro ir al archivo · pgup/pgdn desplazar el diff · 1-5 vistas · ctrl+q salir"
msgid "Blog Languages (comma-separated)"
msgstr "Idiomas del blog (separados por comas)"
#: lib/bds/ui/settings_form.ex:215
#, elixir-autogen, elixir-format
msgid "Data Folder"
msgstr "Carpeta de datos"
#: lib/bds/ui/settings_form.ex:218
#, elixir-autogen, elixir-format
msgid "Maintenance"
msgstr "Mantenimiento"
#: lib/bds/ui/settings_form.ex:45
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Nombre"
#: lib/bds/ui/settings_form.ex:138
#, elixir-autogen, elixir-format
msgid "New Category"
msgstr "Nueva categoría"
#: lib/bds/ui/settings_form.ex:170
#, elixir-autogen, elixir-format
msgid "Offline Chat Disable Reasoning"
msgstr "Chat sin conexión: desactivar el razonamiento"
#: lib/bds/ui/settings_form.ex:167
#, elixir-autogen, elixir-format
msgid "Offline Chat Tool Calls"
msgstr "Chat sin conexión: llamadas a herramientas"
#: lib/bds/ui/settings_form.ex:176
#, elixir-autogen, elixir-format
msgid "Offline Image Model"
msgstr "Modelo de imágenes sin conexión"
#: lib/bds/ui/settings_form.ex:154
#, elixir-autogen, elixir-format
msgid "Online Chat Disable Reasoning"
msgstr "Chat en línea: desactivar el razonamiento"
#: lib/bds/ui/settings_form.ex:151
#, elixir-autogen, elixir-format
msgid "Online Chat Tool Calls"
msgstr "Chat en línea: llamadas a herramientas"
#: lib/bds/ui/settings_form.ex:160
#, elixir-autogen, elixir-format
msgid "Online Image Model"
msgstr "Modelo de imágenes en línea"
#: lib/bds/ui/settings_form.ex:57
#, elixir-autogen, elixir-format
msgid "Posts per Page"
msgstr "Publicaciones por página"
#: lib/bds/ui/settings_form.ex:219
#, elixir-autogen, elixir-format
msgid "Rebuild and maintenance commands are available under the : prompt."
msgstr "Los comandos de reconstrucción y mantenimiento están disponibles mediante el prompt :."
#: lib/bds/ui/settings_form.ex:200
#, elixir-autogen, elixir-format
msgid "SSH Host"
msgstr "Host SSH"
#: lib/bds/ui/settings_form.ex:202
#, elixir-autogen, elixir-format
msgid "SSH Remote Path"
msgstr "Ruta remota SSH"
#: lib/bds/ui/settings_form.ex:201
#, elixir-autogen, elixir-format
msgid "SSH User"
msgstr "Usuario SSH"
#: lib/bds/ui/settings_form.ex:119
#, elixir-autogen, elixir-format
msgid "Show Title"
msgstr "Mostrar título"
#: lib/bds/ui/settings_form.ex:242
#, elixir-autogen, elixir-format
msgid "Theme"
msgstr "Tema"
#: lib/bds/tui.ex:1136
#, elixir-autogen, elixir-format
msgid "enter edit · ctrl+s save · esc close"
msgstr "intro editar · ctrl+s guardar · esc cerrar"
#: lib/bds/tui.ex:1499
#, elixir-autogen, elixir-format
msgid "enter edit/toggle/cycle · ctrl+s save · esc close · ctrl+q quit"
msgstr "intro editar/alternar/ciclar · ctrl+s guardar · esc cerrar · ctrl+q salir"
#: lib/bds/ui/settings_form.ex:230
#, elixir-autogen, elixir-format
msgid "not supported yet"
msgstr "aún no compatible"
#: lib/bds/tui.ex:1506
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-7 views · ctrl+q quit"
msgstr "c commit · u pull · s push · intro ir al archivo · pgup/pgdn desplazar el diff · 1-7 vistas · ctrl+q salir"
#: lib/bds/tui.ex:1513
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-7 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "intro abrir · n nueva entrada · 1-7 vistas · p proyectos · / buscar · : comandos (:? ayuda) · r actualizar · ctrl+q salir"

View File

@@ -59,6 +59,7 @@ msgid "--"
msgstr "--"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:220
#: lib/bds/ui/settings_form.ex:145
#: lib/bds/ui/sidebar.ex:802
#, elixir-autogen, elixir-format
msgid "AI"
@@ -71,8 +72,8 @@ msgid "AI Assistant"
msgstr "Assistant IA"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:93
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:193
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:211
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:203
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:221
#, elixir-autogen, elixir-format
msgid "AI Settings"
msgstr "Paramètres IA"
@@ -81,11 +82,11 @@ msgstr "Paramètres IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:786
#: lib/bds/tui.ex:794
#: lib/bds/tui.ex:1523
#: lib/bds/tui.ex:937
#: lib/bds/tui.ex:940
#: lib/bds/tui.ex:943
#: lib/bds/tui.ex:951
#: lib/bds/tui.ex:1753
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr "Suggestions IA"
@@ -163,6 +164,7 @@ msgid "Agent configuration files for the built-in bDS MCP server"
msgstr "Fichiers de configuration dagent pour le serveur MCP bDS intégré"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:273
#: lib/bds/ui/settings_form.ex:146
#, elixir-autogen, elixir-format
msgid "Airplane Mode"
msgstr "Mode avion"
@@ -414,6 +416,7 @@ msgid "Blogmark Bookmarklet"
msgstr "Bookmarklet blogmark"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:90
#: lib/bds/ui/settings_form.ex:67
#, elixir-autogen, elixir-format
msgid "Blogmark Category"
msgstr "Catégorie de blogmark"
@@ -572,7 +575,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Réduire les blocs de diff inchangés"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:1619
#: lib/bds/tui.ex:1849
#, elixir-autogen, elixir-format
msgid "Command completed"
msgstr "Commande terminée"
@@ -590,7 +593,8 @@ msgstr "Confirmer"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:1014
#: lib/bds/tui.ex:1219
#: lib/bds/ui/settings_form.ex:137
#: lib/bds/ui/sidebar.ex:801
#, elixir-autogen, elixir-format
msgid "Content"
@@ -678,6 +682,7 @@ msgstr "Sombre"
msgid "Dashboard"
msgstr "Tableau de bord"
#: lib/bds/ui/settings_form.ex:214
#: lib/bds/ui/sidebar.ex:815
#, elixir-autogen, elixir-format
msgid "Data"
@@ -706,11 +711,13 @@ msgid "Default"
msgstr "Par défaut"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:78
#: lib/bds/ui/settings_form.ex:54
#, elixir-autogen, elixir-format
msgid "Default Author"
msgstr "Auteur par défaut"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:119
#: lib/bds/ui/settings_form.ex:88
#, elixir-autogen, elixir-format
msgid "Default Editor Mode"
msgstr "Mode dédition par défaut"
@@ -776,6 +783,7 @@ msgid "Deployment credentials for upload tasks"
msgstr "Identifiants de déploiement pour les tâches denvoi"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:38
#: lib/bds/ui/settings_form.ex:46
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Description"
@@ -798,6 +806,7 @@ msgid "Detect Language"
msgstr "Détecter la langue"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:129
#: lib/bds/ui/settings_form.ex:93
#, elixir-autogen, elixir-format
msgid "Diff View Style"
msgstr "Style de vue diff"
@@ -913,6 +922,7 @@ msgstr "Modifier la traduction"
#: lib/bds/desktop/shell_live/index.html.heex:513
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:114
#: lib/bds/ui/settings_form.ex:87
#: lib/bds/ui/sidebar.ex:800
#, elixir-autogen, elixir-format
msgid "Editor"
@@ -1030,7 +1040,7 @@ msgid "Filename"
msgstr "Nom de fichier"
#: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:1583
#: lib/bds/tui.ex:1813
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr "Compléter les traductions manquantes"
@@ -1041,7 +1051,7 @@ msgid "Find"
msgstr "Rechercher"
#: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:1586
#: lib/bds/tui.ex:1816
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr "Trouver les doublons"
@@ -1068,14 +1078,14 @@ msgid "Gallery"
msgstr "Galerie"
#: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:1567
#: lib/bds/tui.ex:1797
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr "Générer le site"
#: lib/bds/desktop/shell_live.ex:792
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/tui.ex:1440
#: lib/bds/tui.ex:1662
#: lib/bds/ui/sidebar.ex:826
#, elixir-autogen, elixir-format
msgid "Git"
@@ -1100,6 +1110,7 @@ msgid "Help"
msgstr "Aide"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:142
#: lib/bds/ui/settings_form.ex:100
#, elixir-autogen, elixir-format
msgid "Hide Unchanged Regions"
msgstr "Masquer les zones inchangées"
@@ -1321,6 +1332,7 @@ msgid "Links To"
msgstr "Liens vers"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:162
#: lib/bds/ui/settings_form.ex:128
#, elixir-autogen, elixir-format
msgid "List Template"
msgstr "Modèle de liste"
@@ -1333,6 +1345,7 @@ msgstr "Charger plus"
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:50
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:351
#: lib/bds/ui/settings_form.ex:234
#: lib/bds/ui/sidebar.ex:816
#, elixir-autogen, elixir-format
msgid "MCP"
@@ -1350,6 +1363,7 @@ msgstr "Macros (%{count})"
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#: lib/bds/ui/settings_form.ex:50
#, elixir-autogen, elixir-format
msgid "Main Language"
msgstr "Langue principale"
@@ -1390,9 +1404,9 @@ msgstr "Nombre maximal darticles par page"
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:1436
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1657
#: lib/bds/tui.ex:1878
#: lib/bds/tui.ex:1881
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:578
@@ -1435,11 +1449,11 @@ msgstr "Métadonnées"
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:271
#: lib/bds/tui.ex:282
#: lib/bds/tui.ex:1204
#: lib/bds/tui.ex:1564
#: lib/bds/tui.ex:278
#: lib/bds/tui.ex:284
#: lib/bds/tui.ex:295
#: lib/bds/tui.ex:1412
#: lib/bds/tui.ex:1794
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1485,7 +1499,7 @@ msgstr "Nouvelle page"
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:221
#: lib/bds/tui.ex:232
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nouvel article"
@@ -1671,11 +1685,13 @@ msgid "Offline"
msgstr "Hors ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:269
#: lib/bds/ui/settings_form.ex:165
#, elixir-autogen, elixir-format
msgid "Offline API Key"
msgstr "Clé API hors ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:277
#: lib/bds/ui/settings_form.ex:166
#, elixir-autogen, elixir-format
msgid "Offline Chat Model"
msgstr "Modèle de chat hors ligne"
@@ -1691,6 +1707,7 @@ msgid "Offline Chat Tools"
msgstr "Outils du chat hors ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:260
#: lib/bds/ui/settings_form.ex:164
#, elixir-autogen, elixir-format
msgid "Offline Endpoint URL"
msgstr "URL du point d'accès hors ligne"
@@ -1701,21 +1718,25 @@ msgid "Offline Image Analysis Model"
msgstr "Modèle danalyse dimage hors ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:297
#: lib/bds/ui/settings_form.ex:179
#, elixir-autogen, elixir-format
msgid "Offline Image Support"
msgstr "Support d'images hors ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:289
#: lib/bds/ui/settings_form.ex:173
#, elixir-autogen, elixir-format
msgid "Offline Title Model"
msgstr "Modèle de titre hors ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:232
#: lib/bds/ui/settings_form.ex:149
#, elixir-autogen, elixir-format
msgid "Online API Key"
msgstr "Clé API en ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:236
#: lib/bds/ui/settings_form.ex:150
#, elixir-autogen, elixir-format
msgid "Online Chat Model"
msgstr "Modèle de chat en ligne"
@@ -1731,6 +1752,7 @@ msgid "Online Chat Tools"
msgstr "Outils du chat en ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:223
#: lib/bds/ui/settings_form.ex:148
#, elixir-autogen, elixir-format
msgid "Online Endpoint URL"
msgstr "URL du point d'accès en ligne"
@@ -1741,11 +1763,13 @@ msgid "Online Image Analysis Model"
msgstr "Modèle d'analyse d'images en ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:256
#: lib/bds/ui/settings_form.ex:163
#, elixir-autogen, elixir-format
msgid "Online Image Support"
msgstr "Support d'images en ligne"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:248
#: lib/bds/ui/settings_form.ex:157
#, elixir-autogen, elixir-format
msgid "Online Title Model"
msgstr "Modèle de titres en ligne"
@@ -1763,8 +1787,8 @@ msgid "Open Data Folder"
msgstr "Ouvrir le dossier de données"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:632
#: lib/bds/tui.ex:637
#: lib/bds/tui.ex:792
#: lib/bds/tui.ex:797
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Ouvrir un blog existant"
@@ -1776,7 +1800,7 @@ msgid "Open Settings"
msgstr "Ouvrir les Réglages"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:1588
#: lib/bds/tui.ex:1818
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Ouvrir dans le navigateur"
@@ -1902,6 +1926,7 @@ msgid "Post Slug Conflicts"
msgstr "Conflits de slug darticle"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:161
#: lib/bds/ui/settings_form.ex:122
#, elixir-autogen, elixir-format
msgid "Post Template"
msgstr "Modèle darticle"
@@ -1924,8 +1949,8 @@ msgstr "Article enregistré"
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:1435
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1656
#: lib/bds/tui.ex:1671
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1967,6 +1992,7 @@ msgstr "Aperçu non disponible"
#: lib/bds/desktop/shell_live/misc_editor.ex:739
#: lib/bds/desktop/shell_live/misc_editor.ex:765
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27
#: lib/bds/ui/settings_form.ex:44
#: lib/bds/ui/sidebar.ex:799
#, elixir-autogen, elixir-format
msgid "Project"
@@ -1984,8 +2010,8 @@ msgstr "Projet et publication"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:545
#: lib/bds/tui.ex:550
#: lib/bds/tui.ex:705
#: lib/bds/tui.ex:710
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Projets"
@@ -1996,6 +2022,7 @@ msgid "Protected categories cannot be removed"
msgstr "Les catégories protégées ne peuvent pas être supprimées"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:51
#: lib/bds/ui/settings_form.ex:47
#, elixir-autogen, elixir-format
msgid "Public URL"
msgstr "URL publique"
@@ -2029,6 +2056,7 @@ msgstr "Traduction publiée avec contenu encore en base au lieu du système de f
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338
#: lib/bds/ui/settings_form.ex:199
#: lib/bds/ui/sidebar.ex:811
#, elixir-autogen, elixir-format
msgid "Publishing"
@@ -2051,15 +2079,15 @@ msgid "Ready to import:"
msgstr "Prêt à importer :"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:629
#: lib/bds/tui.ex:1568
#: lib/bds/tui.ex:789
#: lib/bds/tui.ex:1798
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr "Reconstruire la base de données"
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:1572
#: lib/bds/tui.ex:1802
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Reconstruire lindex dembeddings"
@@ -2117,7 +2145,7 @@ msgid "Refresh Translation"
msgstr "Actualiser la traduction"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:1575
#: lib/bds/tui.ex:1805
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Régénérer le calendrier"
@@ -2128,7 +2156,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Régénérer les vignettes manquantes"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:1569
#: lib/bds/tui.ex:1799
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Réindexer le texte"
@@ -2160,6 +2188,7 @@ msgid "Remove tag"
msgstr "Supprimer le mot-clé"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:159
#: lib/bds/ui/settings_form.ex:118
#, elixir-autogen, elixir-format
msgid "Render in Lists"
msgstr "Afficher dans les listes"
@@ -2237,6 +2266,7 @@ msgid "Run"
msgstr "Exécuter"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:340
#: lib/bds/ui/settings_form.ex:203
#, elixir-autogen, elixir-format
msgid "SSH Mode"
msgstr "Mode SSH"
@@ -2314,7 +2344,7 @@ msgstr "Les capacités de script sont configurées au niveau de lapplication
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:1438
#: lib/bds/tui.ex:1659
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2413,12 +2443,15 @@ msgid "Selected pairs dismissed"
msgstr "Paires sélectionnées ignorées"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:324
#: lib/bds/ui/settings_form.ex:78
#: lib/bds/ui/settings_form.ex:189
#, elixir-autogen, elixir-format
msgid "Semantic Similarity"
msgstr "Similarité sémantique"
#: lib/bds/desktop/shell_live/settings_editor/project_settings.ex:60
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:11
#: lib/bds/tui.ex:1661
#: lib/bds/ui/registry.ex:86
#: lib/bds/ui/registry.ex:101
#: lib/bds/ui/sidebar.ex:795
@@ -2442,9 +2475,9 @@ msgid "Site"
msgstr "Site"
#: lib/bds/desktop/shell_live/misc_editor.ex:412
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:300
#: lib/bds/tui.ex:1209
#: lib/bds/tui.ex:311
#: lib/bds/tui.ex:313
#: lib/bds/tui.ex:1417
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2508,6 +2541,7 @@ msgstr "Arrêter"
#: lib/bds/desktop/shell_live/settings_editor/style_editor.ex:76
#: lib/bds/desktop/shell_live/settings_editor_html/style_editor.html.heex:3
#: lib/bds/ui/registry.ex:102
#: lib/bds/ui/settings_form.ex:241
#: lib/bds/ui/sidebar.ex:817
#, elixir-autogen, elixir-format
msgid "Style"
@@ -2534,6 +2568,7 @@ msgid "Syntax is valid"
msgstr "La syntaxe est valide"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:301
#: lib/bds/ui/settings_form.ex:147
#, elixir-autogen, elixir-format
msgid "System Prompt"
msgstr "Prompt système"
@@ -2565,7 +2600,7 @@ msgstr "Nom du mot-clé"
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:1439
#: lib/bds/tui.ex:1660
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2577,12 +2612,13 @@ msgstr "Tags"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Tâches"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:321
#: lib/bds/ui/settings_form.ex:186
#: lib/bds/ui/sidebar.ex:805
#, elixir-autogen, elixir-format
msgid "Technology"
@@ -2622,7 +2658,7 @@ msgstr "La syntaxe du template est valide"
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:1437
#: lib/bds/tui.ex:1658
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2668,6 +2704,7 @@ msgstr "Cet element est reference par :"
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:23
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:158
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:22
#: lib/bds/ui/settings_form.ex:117
#, elixir-autogen, elixir-format
msgid "Title"
msgstr "Titre"
@@ -2845,7 +2882,7 @@ msgid "Updated URLs"
msgstr "URLs mises à jour"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:1587
#: lib/bds/tui.ex:1817
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Téléverser le site"
@@ -2873,13 +2910,13 @@ msgid "Validate"
msgstr "Valider"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:1565
#: lib/bds/tui.ex:1795
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Valider le site"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:1578
#: lib/bds/tui.ex:1808
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Valider les traductions"
@@ -2923,6 +2960,7 @@ msgid "Working tree and history"
msgstr "Arbre de travail et historique"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:138
#: lib/bds/ui/settings_form.ex:97
#, elixir-autogen, elixir-format
msgid "Wrap Long Lines"
msgstr "Renvoyer les longues lignes"
@@ -3281,6 +3319,7 @@ msgid "End-user guidance for editorial workflows, media, templates, translation,
msgstr "Guide utilisateur pour les flux éditoriaux, médias, modèles, traduction et publication dans bDS2."
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:86
#: lib/bds/ui/settings_form.ex:62
#, elixir-autogen, elixir-format
msgid "Image Import Concurrency"
msgstr "Importation simultanée d'images"
@@ -3350,15 +3389,15 @@ msgstr "Modifications"
#: lib/bds/desktop/shell_live/git_handler.ex:46
#: lib/bds/desktop/shell_live/git_handler.ex:52
#: lib/bds/desktop/shell_live/sidebar_components.ex:556
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:330
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:340
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Commit"
msgstr "Commit"
#: lib/bds/desktop/shell_live/sidebar_components.ex:555
#: lib/bds/tui.ex:1031
#: lib/bds/tui.ex:1239
#, elixir-autogen, elixir-format
msgid "Commit message"
msgstr "Message de commit"
@@ -3382,6 +3421,7 @@ msgid "Fetch"
msgstr "Récupérer"
#: lib/bds/desktop/shell_live/sidebar_components.ex:586
#: lib/bds/tui.ex:1074
#, elixir-autogen, elixir-format
msgid "History"
msgstr "Historique"
@@ -3429,7 +3469,7 @@ msgstr "Nettoyer LFS"
#: lib/bds/desktop/shell_live/git_handler.ex:17
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/tui.ex:800
#: lib/bds/tui.ex:957
#, elixir-autogen, elixir-format
msgid "Pull"
msgstr "Pull"
@@ -3437,7 +3477,7 @@ msgstr "Pull"
#: lib/bds/desktop/shell_live/git_handler.ex:18
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/tui.ex:801
#: lib/bds/tui.ex:958
#, elixir-autogen, elixir-format
msgid "Push"
msgstr "Push"
@@ -3550,7 +3590,7 @@ msgid "Suggested tags"
msgstr "Tags suggérés"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:1566
#: lib/bds/tui.ex:1796
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Forcer la régénération du site"
@@ -3617,7 +3657,7 @@ msgstr "git pull"
msgid "git push"
msgstr "git push"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:159
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:112
#, elixir-autogen, elixir-format
msgid "AI settings saved."
msgstr "Paramètres IA enregistrés."
@@ -3627,12 +3667,12 @@ msgstr "Paramètres IA enregistrés."
msgid "Could not load models"
msgstr "Impossible de charger les modèles"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:190
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:200
#, elixir-autogen, elixir-format
msgid "Could not save AI settings"
msgstr "Impossible d'enregistrer les paramètres IA"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:194
#, elixir-autogen, elixir-format
msgid "Loaded %{count} models."
msgstr "%{count} modèles chargés."
@@ -3642,87 +3682,88 @@ msgstr "%{count} modèles chargés."
msgid "OK"
msgstr "OK"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:174
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#, elixir-autogen, elixir-format
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "Le point de terminaison n'a renvoyé aucun modèle. Vous pouvez toujours saisir un nom de modèle manuellement."
#: lib/bds/tui.ex:1524
#: lib/bds/tui.ex:1754
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "L'IA n'est pas disponible en mode avion sans point de terminaison local."
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1881
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "Impossible de charger ce fichier."
#: lib/bds/tui.ex:230
#: lib/bds/tui.ex:243
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr "La modification de cet élément n'est pas encore disponible dans l'interface du terminal."
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:940
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Aucune suggestion reçue."
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1878
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Seules les images peuvent être prévisualisées."
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1671
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Article introuvable."
#: lib/bds/tui.ex:969
#: lib/bds/tui.ex:1174
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Appuyez sur Entrée pour prévisualiser %{name}."
#: lib/bds/tui.ex:1494
#: lib/bds/tui.ex:1724
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Publié."
#: lib/bds/tui.ex:1510
#: lib/bds/tui.ex:1740
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Enregistrez avant de changer de langue."
#: lib/bds/tui.ex:1495
#: lib/bds/tui.ex:524
#: lib/bds/tui.ex:1725
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Enregistré."
#: lib/bds/tui.ex:972
#: lib/bds/tui.ex:1177
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr "Sélectionnez une entrée et appuyez sur Entrée pour l'ouvrir."
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:937
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Suggestions appliquées."
#: lib/bds/tui.ex:984
#: lib/bds/tui.ex:1189
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titre (ctrl+t pour modifier)"
#: lib/bds/tui.ex:983
#: lib/bds/tui.ex:1188
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titre (édition — Entrée pour confirmer)"
#: lib/bds/tui.ex:1033
#: lib/bds/tui.ex:1241
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Traitement en cours…"
#: lib/bds/tui.ex:1055
#: lib/bds/tui.ex:1263
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "échap pour fermer"
@@ -3759,158 +3800,263 @@ msgstr "Adresse du serveur (user@host ou user@host:port), authentification par c
msgid "Use the form user@host or user@host:port."
msgstr "Utilisez le format user@host ou user@host:port."
#: lib/bds/tui.ex:1003
#: lib/bds/tui.ex:1208
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Aperçu (ctrl+e pour modifier)"
#: lib/bds/tui.ex:1305
#: lib/bds/tui.ex:1520
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "ctrl+s enregistrer · ctrl+p publier · ctrl+e aperçu · ctrl+t titre · ctrl+l langue · ctrl+g IA · échap retour"
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Toutes les tâches sont terminées."
#: lib/bds/tui.ex:1081
#: lib/bds/tui.ex:1289
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Commandes — échap pour fermer"
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:814
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Commande inconnue."
#: lib/bds/tui.ex:1071
#: lib/bds/tui.ex:1279
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[rapport/application dans la GUI]"
#: lib/bds/tui.ex:1220
#: lib/bds/tui.ex:1428
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} différences · %{orphans} fichiers orphelins"
#: lib/bds/tui.ex:1252
#: lib/bds/tui.ex:1460
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Attendu %{expected} · Existant %{existing}"
#: lib/bds/tui.ex:1269
#: lib/bds/tui.ex:1477
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "Fichiers en trop (seront supprimés) :"
#: lib/bds/tui.ex:1265
#: lib/bds/tui.ex:1473
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Pages manquantes (seront rendues) :"
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:311
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Rien à appliquer."
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:278
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Rien à réparer."
#: lib/bds/tui.ex:1243
#: lib/bds/tui.ex:1451
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr "Fichiers orphelins (absents de la base de données) :"
#: lib/bds/tui.ex:1259
#: lib/bds/tui.ex:1467
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap modifié."
#: lib/bds/tui.ex:1273
#: lib/bds/tui.ex:1481
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Articles mis à jour (seront rendus à nouveau) :"
#: lib/bds/tui.ex:1210
#: lib/bds/tui.ex:1418
#, elixir-autogen, elixir-format
msgid "enter apply changes · esc close"
msgstr "entrée appliquer les modifications · échap fermer"
#: lib/bds/tui.ex:1205
#: lib/bds/tui.ex:1413
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "entrée tout réparer depuis les fichiers · échap fermer"
#: lib/bds/tui.ex:619
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Blog importé"
#: lib/bds/tui.ex:638
#: lib/bds/tui.ex:798
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "Pas un dossier : %{path}"
#: lib/bds/tui.ex:1147
#: lib/bds/tui.ex:1355
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Projets — entrée changer · o ouvrir existant · échap fermer"
#: lib/bds/tui.ex:546
#: lib/bds/tui.ex:706
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Passage à %{name}."
#: lib/bds/tui.ex:1175
#: lib/bds/tui.ex:1383
#, elixir-autogen, elixir-format
msgid "Matching folders"
msgstr "Dossiers correspondants"
#: lib/bds/tui.ex:1113
#: lib/bds/tui.ex:1321
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · tab complete · enter open · esc back"
msgstr "Ouvrir un blog existant — saisir le chemin d'un dossier · tab compléter · entrée ouvrir · échap retour"
#: lib/bds/tui.ex:1298
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "entrée ouvrir · n nouvel article · 1-5 vues · p projets · / rechercher · : commandes (:? aide) · r actualiser · ctrl+q quitter"
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:334
#, elixir-autogen, elixir-format
msgid "Commit message required."
msgstr "Message de commit requis."
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:340
#, elixir-autogen, elixir-format
msgid "Committed."
msgstr "Commit effectué."
#: lib/bds/tui.ex:960
#: lib/bds/tui.ex:1165
#, elixir-autogen, elixir-format
msgid "Diff (pgup/pgdn scroll)"
msgstr "Diff (pgup/pgdn pour défiler)"
#: lib/bds/tui.ex:1333
#: lib/bds/tui.ex:1548
#, elixir-autogen, elixir-format
msgid "No changes."
msgstr "Aucune modification."
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:400
#, elixir-autogen, elixir-format
msgid "No diff for this file."
msgstr "Pas de diff pour ce fichier."
#: lib/bds/tui.ex:375
#: lib/bds/tui.ex:947
#: lib/bds/tui.ex:388
#: lib/bds/tui.ex:1152
#, elixir-autogen, elixir-format
msgid "Not a git repository."
msgstr "Pas un dépôt git."
#: lib/bds/tui.ex:1291
#: lib/bds/ui/settings_form.ex:73
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-5 views · ctrl+q quit"
msgstr "c commit · u pull · s push · entrée aller au fichier · pgup/pgdn défiler le diff · 1-5 vues · ctrl+q quitter"
msgid "Blog Languages (comma-separated)"
msgstr "Langues du blog (séparées par des virgules)"
#: lib/bds/ui/settings_form.ex:215
#, elixir-autogen, elixir-format
msgid "Data Folder"
msgstr "Dossier de données"
#: lib/bds/ui/settings_form.ex:218
#, elixir-autogen, elixir-format
msgid "Maintenance"
msgstr "Maintenance"
#: lib/bds/ui/settings_form.ex:45
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Nom"
#: lib/bds/ui/settings_form.ex:138
#, elixir-autogen, elixir-format
msgid "New Category"
msgstr "Nouvelle catégorie"
#: lib/bds/ui/settings_form.ex:170
#, elixir-autogen, elixir-format
msgid "Offline Chat Disable Reasoning"
msgstr "Chat hors ligne : désactiver le raisonnement"
#: lib/bds/ui/settings_form.ex:167
#, elixir-autogen, elixir-format
msgid "Offline Chat Tool Calls"
msgstr "Chat hors ligne : appels d'outils"
#: lib/bds/ui/settings_form.ex:176
#, elixir-autogen, elixir-format
msgid "Offline Image Model"
msgstr "Modèle d'image hors ligne"
#: lib/bds/ui/settings_form.ex:154
#, elixir-autogen, elixir-format
msgid "Online Chat Disable Reasoning"
msgstr "Chat en ligne : désactiver le raisonnement"
#: lib/bds/ui/settings_form.ex:151
#, elixir-autogen, elixir-format
msgid "Online Chat Tool Calls"
msgstr "Chat en ligne : appels d'outils"
#: lib/bds/ui/settings_form.ex:160
#, elixir-autogen, elixir-format
msgid "Online Image Model"
msgstr "Modèle d'image en ligne"
#: lib/bds/ui/settings_form.ex:57
#, elixir-autogen, elixir-format
msgid "Posts per Page"
msgstr "Articles par page"
#: lib/bds/ui/settings_form.ex:219
#, elixir-autogen, elixir-format
msgid "Rebuild and maintenance commands are available under the : prompt."
msgstr "Les commandes de reconstruction et de maintenance sont disponibles via l'invite :."
#: lib/bds/ui/settings_form.ex:200
#, elixir-autogen, elixir-format
msgid "SSH Host"
msgstr "Hôte SSH"
#: lib/bds/ui/settings_form.ex:202
#, elixir-autogen, elixir-format
msgid "SSH Remote Path"
msgstr "Chemin distant SSH"
#: lib/bds/ui/settings_form.ex:201
#, elixir-autogen, elixir-format
msgid "SSH User"
msgstr "Utilisateur SSH"
#: lib/bds/ui/settings_form.ex:119
#, elixir-autogen, elixir-format
msgid "Show Title"
msgstr "Afficher le titre"
#: lib/bds/ui/settings_form.ex:242
#, elixir-autogen, elixir-format
msgid "Theme"
msgstr "Thème"
#: lib/bds/tui.ex:1136
#, elixir-autogen, elixir-format
msgid "enter edit · ctrl+s save · esc close"
msgstr "entrée modifier · ctrl+s enregistrer · échap fermer"
#: lib/bds/tui.ex:1499
#, elixir-autogen, elixir-format
msgid "enter edit/toggle/cycle · ctrl+s save · esc close · ctrl+q quit"
msgstr "entrée modifier/basculer/parcourir · ctrl+s enregistrer · échap fermer · ctrl+q quitter"
#: lib/bds/ui/settings_form.ex:230
#, elixir-autogen, elixir-format
msgid "not supported yet"
msgstr "pas encore pris en charge"
#: lib/bds/tui.ex:1506
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-7 views · ctrl+q quit"
msgstr "c commit · u pull · s push · entrée aller au fichier · pgup/pgdn défiler le diff · 1-7 vues · ctrl+q quitter"
#: lib/bds/tui.ex:1513
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-7 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "entrée ouvrir · n nouvel article · 1-7 vues · p projets · / rechercher · : commandes (:? aide) · r actualiser · ctrl+q quitter"

View File

@@ -59,6 +59,7 @@ msgid "--"
msgstr "--"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:220
#: lib/bds/ui/settings_form.ex:145
#: lib/bds/ui/sidebar.ex:802
#, elixir-autogen, elixir-format
msgid "AI"
@@ -71,8 +72,8 @@ msgid "AI Assistant"
msgstr "Assistente IA"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:93
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:193
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:211
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:203
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:221
#, elixir-autogen, elixir-format
msgid "AI Settings"
msgstr "Impostazioni IA"
@@ -81,11 +82,11 @@ msgstr "Impostazioni IA"
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:786
#: lib/bds/tui.ex:794
#: lib/bds/tui.ex:1523
#: lib/bds/tui.ex:937
#: lib/bds/tui.ex:940
#: lib/bds/tui.ex:943
#: lib/bds/tui.ex:951
#: lib/bds/tui.ex:1753
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr "Suggerimenti IA"
@@ -163,6 +164,7 @@ msgid "Agent configuration files for the built-in bDS MCP server"
msgstr "File di configurazione degli agenti per il server MCP bDS integrato"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:273
#: lib/bds/ui/settings_form.ex:146
#, elixir-autogen, elixir-format
msgid "Airplane Mode"
msgstr "Modalità aereo"
@@ -414,6 +416,7 @@ msgid "Blogmark Bookmarklet"
msgstr "Bookmarklet blogmark"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:90
#: lib/bds/ui/settings_form.ex:67
#, elixir-autogen, elixir-format
msgid "Blogmark Category"
msgstr "Categoria blogmark"
@@ -572,7 +575,7 @@ msgid "Collapse unchanged diff hunks"
msgstr "Comprimi i blocchi diff invariati"
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:1619
#: lib/bds/tui.ex:1849
#, elixir-autogen, elixir-format
msgid "Command completed"
msgstr "Comando completato"
@@ -590,7 +593,8 @@ msgstr "Conferma"
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:1014
#: lib/bds/tui.ex:1219
#: lib/bds/ui/settings_form.ex:137
#: lib/bds/ui/sidebar.ex:801
#, elixir-autogen, elixir-format
msgid "Content"
@@ -678,6 +682,7 @@ msgstr "Scuro"
msgid "Dashboard"
msgstr "Dashboard"
#: lib/bds/ui/settings_form.ex:214
#: lib/bds/ui/sidebar.ex:815
#, elixir-autogen, elixir-format
msgid "Data"
@@ -706,11 +711,13 @@ msgid "Default"
msgstr "Predefinito"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:78
#: lib/bds/ui/settings_form.ex:54
#, elixir-autogen, elixir-format
msgid "Default Author"
msgstr "Autore predefinito"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:119
#: lib/bds/ui/settings_form.ex:88
#, elixir-autogen, elixir-format
msgid "Default Editor Mode"
msgstr "Modalità editor predefinita"
@@ -776,6 +783,7 @@ msgid "Deployment credentials for upload tasks"
msgstr "Credenziali di distribuzione per i task di upload"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:38
#: lib/bds/ui/settings_form.ex:46
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Descrizione"
@@ -798,6 +806,7 @@ msgid "Detect Language"
msgstr "Rileva lingua"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:129
#: lib/bds/ui/settings_form.ex:93
#, elixir-autogen, elixir-format
msgid "Diff View Style"
msgstr "Stile vista diff"
@@ -913,6 +922,7 @@ msgstr "Modifica traduzione"
#: lib/bds/desktop/shell_live/index.html.heex:513
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:114
#: lib/bds/ui/settings_form.ex:87
#: lib/bds/ui/sidebar.ex:800
#, elixir-autogen, elixir-format
msgid "Editor"
@@ -1030,7 +1040,7 @@ msgid "Filename"
msgstr "Nome file"
#: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:1583
#: lib/bds/tui.ex:1813
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr "Completa traduzioni mancanti"
@@ -1041,7 +1051,7 @@ msgid "Find"
msgstr "Trova"
#: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:1586
#: lib/bds/tui.ex:1816
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr "Trova post duplicati"
@@ -1068,14 +1078,14 @@ msgid "Gallery"
msgstr "Galleria"
#: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:1567
#: lib/bds/tui.ex:1797
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr "Genera sito"
#: lib/bds/desktop/shell_live.ex:792
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/tui.ex:1440
#: lib/bds/tui.ex:1662
#: lib/bds/ui/sidebar.ex:826
#, elixir-autogen, elixir-format
msgid "Git"
@@ -1100,6 +1110,7 @@ msgid "Help"
msgstr "Aiuto"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:142
#: lib/bds/ui/settings_form.ex:100
#, elixir-autogen, elixir-format
msgid "Hide Unchanged Regions"
msgstr "Nascondi regioni invariate"
@@ -1321,6 +1332,7 @@ msgid "Links To"
msgstr "Collegato a"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:162
#: lib/bds/ui/settings_form.ex:128
#, elixir-autogen, elixir-format
msgid "List Template"
msgstr "Template della lista"
@@ -1333,6 +1345,7 @@ msgstr "Carica altri"
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:50
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:351
#: lib/bds/ui/settings_form.ex:234
#: lib/bds/ui/sidebar.ex:816
#, elixir-autogen, elixir-format
msgid "MCP"
@@ -1350,6 +1363,7 @@ msgstr "Macro (%{count})"
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#: lib/bds/ui/settings_form.ex:50
#, elixir-autogen, elixir-format
msgid "Main Language"
msgstr "Lingua principale"
@@ -1390,9 +1404,9 @@ msgstr "Numero massimo di post per pagina"
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:1436
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1657
#: lib/bds/tui.ex:1878
#: lib/bds/tui.ex:1881
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:578
@@ -1435,11 +1449,11 @@ msgstr "Metadati"
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:271
#: lib/bds/tui.ex:282
#: lib/bds/tui.ex:1204
#: lib/bds/tui.ex:1564
#: lib/bds/tui.ex:278
#: lib/bds/tui.ex:284
#: lib/bds/tui.ex:295
#: lib/bds/tui.ex:1412
#: lib/bds/tui.ex:1794
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1485,7 +1499,7 @@ msgstr "Nuova pagina"
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:221
#: lib/bds/tui.ex:232
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr "Nuovo post"
@@ -1671,11 +1685,13 @@ msgid "Offline"
msgstr "Offline"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:269
#: lib/bds/ui/settings_form.ex:165
#, elixir-autogen, elixir-format
msgid "Offline API Key"
msgstr "Chiave API offline"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:277
#: lib/bds/ui/settings_form.ex:166
#, elixir-autogen, elixir-format
msgid "Offline Chat Model"
msgstr "Modello chat offline"
@@ -1691,6 +1707,7 @@ msgid "Offline Chat Tools"
msgstr "Strumenti chat offline"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:260
#: lib/bds/ui/settings_form.ex:164
#, elixir-autogen, elixir-format
msgid "Offline Endpoint URL"
msgstr "URL endpoint offline"
@@ -1701,21 +1718,25 @@ msgid "Offline Image Analysis Model"
msgstr "Modello analisi immagini offline"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:297
#: lib/bds/ui/settings_form.ex:179
#, elixir-autogen, elixir-format
msgid "Offline Image Support"
msgstr "Supporto immagini offline"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:289
#: lib/bds/ui/settings_form.ex:173
#, elixir-autogen, elixir-format
msgid "Offline Title Model"
msgstr "Modello titolo offline"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:232
#: lib/bds/ui/settings_form.ex:149
#, elixir-autogen, elixir-format
msgid "Online API Key"
msgstr "Chiave API online"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:236
#: lib/bds/ui/settings_form.ex:150
#, elixir-autogen, elixir-format
msgid "Online Chat Model"
msgstr "Modello di chat online"
@@ -1731,6 +1752,7 @@ msgid "Online Chat Tools"
msgstr "Strumenti chat online"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:223
#: lib/bds/ui/settings_form.ex:148
#, elixir-autogen, elixir-format
msgid "Online Endpoint URL"
msgstr "URL endpoint online"
@@ -1741,11 +1763,13 @@ msgid "Online Image Analysis Model"
msgstr "Modello di analisi immagini online"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:256
#: lib/bds/ui/settings_form.ex:163
#, elixir-autogen, elixir-format
msgid "Online Image Support"
msgstr "Supporto immagini online"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:248
#: lib/bds/ui/settings_form.ex:157
#, elixir-autogen, elixir-format
msgid "Online Title Model"
msgstr "Modello titoli online"
@@ -1763,8 +1787,8 @@ msgid "Open Data Folder"
msgstr "Apri cartella dati"
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:632
#: lib/bds/tui.ex:637
#: lib/bds/tui.ex:792
#: lib/bds/tui.ex:797
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr "Apri blog esistente"
@@ -1776,7 +1800,7 @@ msgid "Open Settings"
msgstr "Apri Impostazioni"
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:1588
#: lib/bds/tui.ex:1818
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr "Apri nel browser"
@@ -1902,6 +1926,7 @@ msgid "Post Slug Conflicts"
msgstr "Conflitti slug articoli"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:161
#: lib/bds/ui/settings_form.ex:122
#, elixir-autogen, elixir-format
msgid "Post Template"
msgstr "Template del post"
@@ -1924,8 +1949,8 @@ msgstr "Articolo salvato"
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:1435
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1656
#: lib/bds/tui.ex:1671
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1967,6 +1992,7 @@ msgstr "Anteprima non disponibile"
#: lib/bds/desktop/shell_live/misc_editor.ex:739
#: lib/bds/desktop/shell_live/misc_editor.ex:765
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27
#: lib/bds/ui/settings_form.ex:44
#: lib/bds/ui/sidebar.ex:799
#, elixir-autogen, elixir-format
msgid "Project"
@@ -1984,8 +2010,8 @@ msgstr "Progetto e pubblicazione"
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:545
#: lib/bds/tui.ex:550
#: lib/bds/tui.ex:705
#: lib/bds/tui.ex:710
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr "Progetti"
@@ -1996,6 +2022,7 @@ msgid "Protected categories cannot be removed"
msgstr "Le categorie protette non possono essere rimosse"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:51
#: lib/bds/ui/settings_form.ex:47
#, elixir-autogen, elixir-format
msgid "Public URL"
msgstr "URL pubblica"
@@ -2029,6 +2056,7 @@ msgstr "Traduzione pubblicata con contenuto nel DB invece del filesystem"
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338
#: lib/bds/ui/settings_form.ex:199
#: lib/bds/ui/sidebar.ex:811
#, elixir-autogen, elixir-format
msgid "Publishing"
@@ -2051,15 +2079,15 @@ msgid "Ready to import:"
msgstr "Pronto per importare:"
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:629
#: lib/bds/tui.ex:1568
#: lib/bds/tui.ex:789
#: lib/bds/tui.ex:1798
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr "Ricostruisci database"
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:1572
#: lib/bds/tui.ex:1802
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr "Ricostruisci indice embeddings"
@@ -2117,7 +2145,7 @@ msgid "Refresh Translation"
msgstr "Aggiorna traduzione"
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:1575
#: lib/bds/tui.ex:1805
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr "Rigenera calendario"
@@ -2128,7 +2156,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr "Rigenera miniature mancanti"
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:1569
#: lib/bds/tui.ex:1799
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr "Reindicizza testo"
@@ -2160,6 +2188,7 @@ msgid "Remove tag"
msgstr "Rimuovi tag"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:159
#: lib/bds/ui/settings_form.ex:118
#, elixir-autogen, elixir-format
msgid "Render in Lists"
msgstr "Mostra nelle liste"
@@ -2237,6 +2266,7 @@ msgid "Run"
msgstr "Esegui"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:340
#: lib/bds/ui/settings_form.ex:203
#, elixir-autogen, elixir-format
msgid "SSH Mode"
msgstr "Modalità SSH"
@@ -2314,7 +2344,7 @@ msgstr "Le capacità di scripting sono configurate a livello applicativo nella r
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:1438
#: lib/bds/tui.ex:1659
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2413,12 +2443,15 @@ msgid "Selected pairs dismissed"
msgstr "Coppie selezionate ignorate"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:324
#: lib/bds/ui/settings_form.ex:78
#: lib/bds/ui/settings_form.ex:189
#, elixir-autogen, elixir-format
msgid "Semantic Similarity"
msgstr "Somiglianza semantica"
#: lib/bds/desktop/shell_live/settings_editor/project_settings.ex:60
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:11
#: lib/bds/tui.ex:1661
#: lib/bds/ui/registry.ex:86
#: lib/bds/ui/registry.ex:101
#: lib/bds/ui/sidebar.ex:795
@@ -2442,9 +2475,9 @@ msgid "Site"
msgstr "Sito"
#: lib/bds/desktop/shell_live/misc_editor.ex:412
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:300
#: lib/bds/tui.ex:1209
#: lib/bds/tui.ex:311
#: lib/bds/tui.ex:313
#: lib/bds/tui.ex:1417
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2508,6 +2541,7 @@ msgstr "Ferma"
#: lib/bds/desktop/shell_live/settings_editor/style_editor.ex:76
#: lib/bds/desktop/shell_live/settings_editor_html/style_editor.html.heex:3
#: lib/bds/ui/registry.ex:102
#: lib/bds/ui/settings_form.ex:241
#: lib/bds/ui/sidebar.ex:817
#, elixir-autogen, elixir-format
msgid "Style"
@@ -2534,6 +2568,7 @@ msgid "Syntax is valid"
msgstr "La sintassi è valida"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:301
#: lib/bds/ui/settings_form.ex:147
#, elixir-autogen, elixir-format
msgid "System Prompt"
msgstr "Prompt di sistema"
@@ -2565,7 +2600,7 @@ msgstr "Nome del tag"
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:1439
#: lib/bds/tui.ex:1660
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2577,12 +2612,13 @@ msgstr "Tag"
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr "Attività"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:321
#: lib/bds/ui/settings_form.ex:186
#: lib/bds/ui/sidebar.ex:805
#, elixir-autogen, elixir-format
msgid "Technology"
@@ -2622,7 +2658,7 @@ msgstr "La sintassi del template è valida"
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:1437
#: lib/bds/tui.ex:1658
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2668,6 +2704,7 @@ msgstr "Questo elemento e referenziato da:"
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:23
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:158
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:22
#: lib/bds/ui/settings_form.ex:117
#, elixir-autogen, elixir-format
msgid "Title"
msgstr "Titolo"
@@ -2845,7 +2882,7 @@ msgid "Updated URLs"
msgstr "URL aggiornati"
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:1587
#: lib/bds/tui.ex:1817
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr "Carica sito"
@@ -2873,13 +2910,13 @@ msgid "Validate"
msgstr "Valida"
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:1565
#: lib/bds/tui.ex:1795
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr "Valida sito"
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:1578
#: lib/bds/tui.ex:1808
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr "Valida traduzioni"
@@ -2923,6 +2960,7 @@ msgid "Working tree and history"
msgstr "Working tree e cronologia"
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:138
#: lib/bds/ui/settings_form.ex:97
#, elixir-autogen, elixir-format
msgid "Wrap Long Lines"
msgstr "A capo per linee lunghe"
@@ -3281,6 +3319,7 @@ msgid "End-user guidance for editorial workflows, media, templates, translation,
msgstr "Guida per l'utente finale per flussi editoriali, media, modelli, traduzioni e pubblicazione in bDS2."
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:86
#: lib/bds/ui/settings_form.ex:62
#, elixir-autogen, elixir-format
msgid "Image Import Concurrency"
msgstr "Importazione simultanea immagini"
@@ -3350,15 +3389,15 @@ msgstr "Modifiche"
#: lib/bds/desktop/shell_live/git_handler.ex:46
#: lib/bds/desktop/shell_live/git_handler.ex:52
#: lib/bds/desktop/shell_live/sidebar_components.ex:556
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:330
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:340
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Commit"
msgstr "Commit"
#: lib/bds/desktop/shell_live/sidebar_components.ex:555
#: lib/bds/tui.ex:1031
#: lib/bds/tui.ex:1239
#, elixir-autogen, elixir-format
msgid "Commit message"
msgstr "Messaggio di commit"
@@ -3382,6 +3421,7 @@ msgid "Fetch"
msgstr "Recupera"
#: lib/bds/desktop/shell_live/sidebar_components.ex:586
#: lib/bds/tui.ex:1074
#, elixir-autogen, elixir-format
msgid "History"
msgstr "Cronologia"
@@ -3429,7 +3469,7 @@ msgstr "Pulisci LFS"
#: lib/bds/desktop/shell_live/git_handler.ex:17
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/tui.ex:800
#: lib/bds/tui.ex:957
#, elixir-autogen, elixir-format
msgid "Pull"
msgstr "Pull"
@@ -3437,7 +3477,7 @@ msgstr "Pull"
#: lib/bds/desktop/shell_live/git_handler.ex:18
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/tui.ex:801
#: lib/bds/tui.ex:958
#, elixir-autogen, elixir-format
msgid "Push"
msgstr "Push"
@@ -3550,7 +3590,7 @@ msgid "Suggested tags"
msgstr "Tag suggeriti"
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:1566
#: lib/bds/tui.ex:1796
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr "Forza la rigenerazione del sito"
@@ -3617,7 +3657,7 @@ msgstr "git pull"
msgid "git push"
msgstr "git push"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:159
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:112
#, elixir-autogen, elixir-format
msgid "AI settings saved."
msgstr "Impostazioni IA salvate."
@@ -3627,12 +3667,12 @@ msgstr "Impostazioni IA salvate."
msgid "Could not load models"
msgstr "Impossibile caricare i modelli"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:190
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:200
#, elixir-autogen, elixir-format
msgid "Could not save AI settings"
msgstr "Impossibile salvare le impostazioni IA"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:194
#, elixir-autogen, elixir-format
msgid "Loaded %{count} models."
msgstr "Caricati %{count} modelli."
@@ -3642,87 +3682,88 @@ msgstr "Caricati %{count} modelli."
msgid "OK"
msgstr "OK"
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:174
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#, elixir-autogen, elixir-format
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr "L'endpoint non ha restituito alcun modello. Puoi comunque digitare manualmente il nome di un modello."
#: lib/bds/tui.ex:1524
#: lib/bds/tui.ex:1754
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr "L'IA non è disponibile in modalità aereo senza un endpoint locale."
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1881
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr "Impossibile caricare questo file."
#: lib/bds/tui.ex:230
#: lib/bds/tui.ex:243
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr "La modifica di questo elemento non è ancora disponibile nell'interfaccia del terminale."
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:940
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr "Nessun suggerimento ricevuto."
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1878
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr "Solo le immagini possono essere visualizzate in anteprima."
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1671
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr "Post non trovato."
#: lib/bds/tui.ex:969
#: lib/bds/tui.ex:1174
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr "Premi Invio per l'anteprima di %{name}."
#: lib/bds/tui.ex:1494
#: lib/bds/tui.ex:1724
#, elixir-autogen, elixir-format
msgid "Published."
msgstr "Pubblicato."
#: lib/bds/tui.ex:1510
#: lib/bds/tui.ex:1740
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr "Salva prima di cambiare lingua."
#: lib/bds/tui.ex:1495
#: lib/bds/tui.ex:524
#: lib/bds/tui.ex:1725
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr "Salvato."
#: lib/bds/tui.ex:972
#: lib/bds/tui.ex:1177
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr "Seleziona una voce e premi Invio per aprirla."
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:937
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr "Suggerimenti applicati."
#: lib/bds/tui.ex:984
#: lib/bds/tui.ex:1189
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr "Titolo (ctrl+t per modificare)"
#: lib/bds/tui.ex:983
#: lib/bds/tui.ex:1188
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr "Titolo (modifica — Invio per confermare)"
#: lib/bds/tui.ex:1033
#: lib/bds/tui.ex:1241
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr "Elaborazione…"
#: lib/bds/tui.ex:1055
#: lib/bds/tui.ex:1263
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr "esc per chiudere"
@@ -3759,158 +3800,263 @@ msgstr "Indirizzo del server (user@host o user@host:port), autenticazione a chia
msgid "Use the form user@host or user@host:port."
msgstr "Usa il formato user@host o user@host:port."
#: lib/bds/tui.ex:1003
#: lib/bds/tui.ex:1208
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr "Anteprima (ctrl+e per modificare)"
#: lib/bds/tui.ex:1305
#: lib/bds/tui.ex:1520
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr "ctrl+s salva · ctrl+p pubblica · ctrl+e anteprima · ctrl+t titolo · ctrl+l lingua · ctrl+g IA · esc indietro"
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr "Tutte le attività sono terminate."
#: lib/bds/tui.ex:1081
#: lib/bds/tui.ex:1289
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr "Comandi — esc per chiudere"
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:814
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr "Comando sconosciuto."
#: lib/bds/tui.ex:1071
#: lib/bds/tui.ex:1279
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr "[report/applicazione nella GUI]"
#: lib/bds/tui.ex:1220
#: lib/bds/tui.ex:1428
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr "%{diffs} differenze · %{orphans} file orfani"
#: lib/bds/tui.ex:1252
#: lib/bds/tui.ex:1460
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr "Attesi %{expected} · Esistenti %{existing}"
#: lib/bds/tui.ex:1269
#: lib/bds/tui.ex:1477
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr "File in eccesso (verranno rimossi):"
#: lib/bds/tui.ex:1265
#: lib/bds/tui.ex:1473
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr "Pagine mancanti (verranno generate):"
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:311
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr "Niente da applicare."
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:278
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr "Niente da riparare."
#: lib/bds/tui.ex:1243
#: lib/bds/tui.ex:1451
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr "File orfani (non presenti nel database):"
#: lib/bds/tui.ex:1259
#: lib/bds/tui.ex:1467
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr "Sitemap modificata."
#: lib/bds/tui.ex:1273
#: lib/bds/tui.ex:1481
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr "Post aggiornati (verranno rigenerati):"
#: lib/bds/tui.ex:1210
#: lib/bds/tui.ex:1418
#, elixir-autogen, elixir-format
msgid "enter apply changes · esc close"
msgstr "invio applica le modifiche · esc chiudi"
#: lib/bds/tui.ex:1205
#: lib/bds/tui.ex:1413
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr "invio ripara tutto dai file · esc chiudi"
#: lib/bds/tui.ex:619
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr "Blog importato"
#: lib/bds/tui.ex:638
#: lib/bds/tui.ex:798
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr "Non è una cartella: %{path}"
#: lib/bds/tui.ex:1147
#: lib/bds/tui.ex:1355
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr "Progetti — invio cambia · o apri esistente · esc chiudi"
#: lib/bds/tui.ex:546
#: lib/bds/tui.ex:706
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr "Passato a %{name}."
#: lib/bds/tui.ex:1175
#: lib/bds/tui.ex:1383
#, elixir-autogen, elixir-format
msgid "Matching folders"
msgstr "Cartelle corrispondenti"
#: lib/bds/tui.ex:1113
#: lib/bds/tui.ex:1321
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · tab complete · enter open · esc back"
msgstr "Apri blog esistente — digita il percorso di una cartella · tab completa · invio apri · esc indietro"
#: lib/bds/tui.ex:1298
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "invio apri · n nuovo post · 1-5 viste · p progetti · / cerca · : comandi (:? aiuto) · r aggiorna · ctrl+q esci"
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:334
#, elixir-autogen, elixir-format
msgid "Commit message required."
msgstr "Messaggio di commit obbligatorio."
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:340
#, elixir-autogen, elixir-format
msgid "Committed."
msgstr "Commit eseguito."
#: lib/bds/tui.ex:960
#: lib/bds/tui.ex:1165
#, elixir-autogen, elixir-format
msgid "Diff (pgup/pgdn scroll)"
msgstr "Diff (pgup/pgdn per scorrere)"
#: lib/bds/tui.ex:1333
#: lib/bds/tui.ex:1548
#, elixir-autogen, elixir-format
msgid "No changes."
msgstr "Nessuna modifica."
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:400
#, elixir-autogen, elixir-format
msgid "No diff for this file."
msgstr "Nessun diff per questo file."
#: lib/bds/tui.ex:375
#: lib/bds/tui.ex:947
#: lib/bds/tui.ex:388
#: lib/bds/tui.ex:1152
#, elixir-autogen, elixir-format
msgid "Not a git repository."
msgstr "Non è un repository git."
#: lib/bds/tui.ex:1291
#: lib/bds/ui/settings_form.ex:73
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-5 views · ctrl+q quit"
msgstr "c commit · u pull · s push · invio vai al file · pgup/pgdn scorri il diff · 1-5 viste · ctrl+q esci"
msgid "Blog Languages (comma-separated)"
msgstr "Lingue del blog (separate da virgola)"
#: lib/bds/ui/settings_form.ex:215
#, elixir-autogen, elixir-format
msgid "Data Folder"
msgstr "Cartella dati"
#: lib/bds/ui/settings_form.ex:218
#, elixir-autogen, elixir-format
msgid "Maintenance"
msgstr "Manutenzione"
#: lib/bds/ui/settings_form.ex:45
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Nome"
#: lib/bds/ui/settings_form.ex:138
#, elixir-autogen, elixir-format
msgid "New Category"
msgstr "Nuova categoria"
#: lib/bds/ui/settings_form.ex:170
#, elixir-autogen, elixir-format
msgid "Offline Chat Disable Reasoning"
msgstr "Chat offline: disattiva il ragionamento"
#: lib/bds/ui/settings_form.ex:167
#, elixir-autogen, elixir-format
msgid "Offline Chat Tool Calls"
msgstr "Chat offline: chiamate agli strumenti"
#: lib/bds/ui/settings_form.ex:176
#, elixir-autogen, elixir-format
msgid "Offline Image Model"
msgstr "Modello immagini offline"
#: lib/bds/ui/settings_form.ex:154
#, elixir-autogen, elixir-format
msgid "Online Chat Disable Reasoning"
msgstr "Chat online: disattiva il ragionamento"
#: lib/bds/ui/settings_form.ex:151
#, elixir-autogen, elixir-format
msgid "Online Chat Tool Calls"
msgstr "Chat online: chiamate agli strumenti"
#: lib/bds/ui/settings_form.ex:160
#, elixir-autogen, elixir-format
msgid "Online Image Model"
msgstr "Modello immagini online"
#: lib/bds/ui/settings_form.ex:57
#, elixir-autogen, elixir-format
msgid "Posts per Page"
msgstr "Post per pagina"
#: lib/bds/ui/settings_form.ex:219
#, elixir-autogen, elixir-format
msgid "Rebuild and maintenance commands are available under the : prompt."
msgstr "I comandi di ricostruzione e manutenzione sono disponibili tramite il prompt :."
#: lib/bds/ui/settings_form.ex:200
#, elixir-autogen, elixir-format
msgid "SSH Host"
msgstr "Host SSH"
#: lib/bds/ui/settings_form.ex:202
#, elixir-autogen, elixir-format
msgid "SSH Remote Path"
msgstr "Percorso remoto SSH"
#: lib/bds/ui/settings_form.ex:201
#, elixir-autogen, elixir-format
msgid "SSH User"
msgstr "Utente SSH"
#: lib/bds/ui/settings_form.ex:119
#, elixir-autogen, elixir-format
msgid "Show Title"
msgstr "Mostra titolo"
#: lib/bds/ui/settings_form.ex:242
#, elixir-autogen, elixir-format
msgid "Theme"
msgstr "Tema"
#: lib/bds/tui.ex:1136
#, elixir-autogen, elixir-format
msgid "enter edit · ctrl+s save · esc close"
msgstr "invio modifica · ctrl+s salva · esc chiudi"
#: lib/bds/tui.ex:1499
#, elixir-autogen, elixir-format
msgid "enter edit/toggle/cycle · ctrl+s save · esc close · ctrl+q quit"
msgstr "invio modifica/attiva/cicla · ctrl+s salva · esc chiudi · ctrl+q esci"
#: lib/bds/ui/settings_form.ex:230
#, elixir-autogen, elixir-format
msgid "not supported yet"
msgstr "non ancora supportato"
#: lib/bds/tui.ex:1506
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-7 views · ctrl+q quit"
msgstr "c commit · u pull · s push · invio vai al file · pgup/pgdn scorri il diff · 1-7 viste · ctrl+q esci"
#: lib/bds/tui.ex:1513
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-7 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr "invio apri · n nuovo post · 1-7 viste · p progetti · / cerca · : comandi (:? aiuto) · r aggiorna · ctrl+q esci"

View File

@@ -72,6 +72,7 @@ msgid "--"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:220
#: lib/bds/ui/settings_form.ex:145
#: lib/bds/ui/sidebar.ex:802
#, elixir-autogen, elixir-format
msgid "AI"
@@ -84,8 +85,8 @@ msgid "AI Assistant"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:93
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:193
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:211
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:203
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:221
#, elixir-autogen, elixir-format
msgid "AI Settings"
msgstr ""
@@ -94,11 +95,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:786
#: lib/bds/tui.ex:794
#: lib/bds/tui.ex:1523
#: lib/bds/tui.ex:937
#: lib/bds/tui.ex:940
#: lib/bds/tui.ex:943
#: lib/bds/tui.ex:951
#: lib/bds/tui.ex:1753
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr ""
@@ -176,6 +177,7 @@ msgid "Agent configuration files for the built-in bDS MCP server"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:273
#: lib/bds/ui/settings_form.ex:146
#, elixir-autogen, elixir-format
msgid "Airplane Mode"
msgstr ""
@@ -427,6 +429,7 @@ msgid "Blogmark Bookmarklet"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:90
#: lib/bds/ui/settings_form.ex:67
#, elixir-autogen, elixir-format
msgid "Blogmark Category"
msgstr ""
@@ -585,7 +588,7 @@ msgid "Collapse unchanged diff hunks"
msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:422
#: lib/bds/tui.ex:1619
#: lib/bds/tui.ex:1849
#, elixir-autogen, elixir-format
msgid "Command completed"
msgstr ""
@@ -603,7 +606,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:1014
#: lib/bds/tui.ex:1219
#: lib/bds/ui/settings_form.ex:137
#: lib/bds/ui/sidebar.ex:801
#, elixir-autogen, elixir-format
msgid "Content"
@@ -691,6 +695,7 @@ msgstr ""
msgid "Dashboard"
msgstr ""
#: lib/bds/ui/settings_form.ex:214
#: lib/bds/ui/sidebar.ex:815
#, elixir-autogen, elixir-format
msgid "Data"
@@ -719,11 +724,13 @@ msgid "Default"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:78
#: lib/bds/ui/settings_form.ex:54
#, elixir-autogen, elixir-format
msgid "Default Author"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:119
#: lib/bds/ui/settings_form.ex:88
#, elixir-autogen, elixir-format
msgid "Default Editor Mode"
msgstr ""
@@ -789,6 +796,7 @@ msgid "Deployment credentials for upload tasks"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:38
#: lib/bds/ui/settings_form.ex:46
#, elixir-autogen, elixir-format
msgid "Description"
msgstr ""
@@ -811,6 +819,7 @@ msgid "Detect Language"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:129
#: lib/bds/ui/settings_form.ex:93
#, elixir-autogen, elixir-format
msgid "Diff View Style"
msgstr ""
@@ -926,6 +935,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:513
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:114
#: lib/bds/ui/settings_form.ex:87
#: lib/bds/ui/sidebar.ex:800
#, elixir-autogen, elixir-format
msgid "Editor"
@@ -1043,7 +1053,7 @@ msgid "Filename"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:254
#: lib/bds/tui.ex:1583
#: lib/bds/tui.ex:1813
#, elixir-autogen, elixir-format
msgid "Fill Missing Translations"
msgstr ""
@@ -1054,7 +1064,7 @@ msgid "Find"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:255
#: lib/bds/tui.ex:1586
#: lib/bds/tui.ex:1816
#, elixir-autogen, elixir-format
msgid "Find Duplicate Posts"
msgstr ""
@@ -1081,14 +1091,14 @@ msgid "Gallery"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:256
#: lib/bds/tui.ex:1567
#: lib/bds/tui.ex:1797
#, elixir-autogen, elixir-format
msgid "Generate Site"
msgstr ""
#: lib/bds/desktop/shell_live.ex:792
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/tui.ex:1440
#: lib/bds/tui.ex:1662
#: lib/bds/ui/sidebar.ex:826
#, elixir-autogen, elixir-format
msgid "Git"
@@ -1113,6 +1123,7 @@ msgid "Help"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:142
#: lib/bds/ui/settings_form.ex:100
#, elixir-autogen, elixir-format
msgid "Hide Unchanged Regions"
msgstr ""
@@ -1334,6 +1345,7 @@ msgid "Links To"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:162
#: lib/bds/ui/settings_form.ex:128
#, elixir-autogen, elixir-format
msgid "List Template"
msgstr ""
@@ -1346,6 +1358,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:50
#: lib/bds/desktop/shell_live/settings_editor/mcp_config.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:351
#: lib/bds/ui/settings_form.ex:234
#: lib/bds/ui/sidebar.ex:816
#, elixir-autogen, elixir-format
msgid "MCP"
@@ -1363,6 +1376,7 @@ msgstr ""
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#: lib/bds/ui/settings_form.ex:50
#, elixir-autogen, elixir-format
msgid "Main Language"
msgstr ""
@@ -1403,9 +1417,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:1436
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1657
#: lib/bds/tui.ex:1878
#: lib/bds/tui.ex:1881
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:578
@@ -1448,11 +1462,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:214
#: lib/bds/desktop/shell_live/misc_editor.ex:226
#: lib/bds/desktop/shell_live/misc_editor.ex:448
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:271
#: lib/bds/tui.ex:282
#: lib/bds/tui.ex:1204
#: lib/bds/tui.ex:1564
#: lib/bds/tui.ex:278
#: lib/bds/tui.ex:284
#: lib/bds/tui.ex:295
#: lib/bds/tui.ex:1412
#: lib/bds/tui.ex:1794
#: lib/bds/ui/registry.ex:111
#, elixir-autogen, elixir-format
msgid "Metadata Diff"
@@ -1498,7 +1512,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:214
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:221
#: lib/bds/tui.ex:232
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr ""
@@ -1684,11 +1698,13 @@ msgid "Offline"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:269
#: lib/bds/ui/settings_form.ex:165
#, elixir-autogen, elixir-format
msgid "Offline API Key"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:277
#: lib/bds/ui/settings_form.ex:166
#, elixir-autogen, elixir-format
msgid "Offline Chat Model"
msgstr ""
@@ -1704,6 +1720,7 @@ msgid "Offline Chat Tools"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:260
#: lib/bds/ui/settings_form.ex:164
#, elixir-autogen, elixir-format
msgid "Offline Endpoint URL"
msgstr ""
@@ -1714,21 +1731,25 @@ msgid "Offline Image Analysis Model"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:297
#: lib/bds/ui/settings_form.ex:179
#, elixir-autogen, elixir-format
msgid "Offline Image Support"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:289
#: lib/bds/ui/settings_form.ex:173
#, elixir-autogen, elixir-format
msgid "Offline Title Model"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:232
#: lib/bds/ui/settings_form.ex:149
#, elixir-autogen, elixir-format
msgid "Online API Key"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:236
#: lib/bds/ui/settings_form.ex:150
#, elixir-autogen, elixir-format
msgid "Online Chat Model"
msgstr ""
@@ -1744,6 +1765,7 @@ msgid "Online Chat Tools"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:223
#: lib/bds/ui/settings_form.ex:148
#, elixir-autogen, elixir-format
msgid "Online Endpoint URL"
msgstr ""
@@ -1754,11 +1776,13 @@ msgid "Online Image Analysis Model"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:256
#: lib/bds/ui/settings_form.ex:163
#, elixir-autogen, elixir-format
msgid "Online Image Support"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:248
#: lib/bds/ui/settings_form.ex:157
#, elixir-autogen, elixir-format
msgid "Online Title Model"
msgstr ""
@@ -1776,8 +1800,8 @@ msgid "Open Data Folder"
msgstr ""
#: lib/bds/desktop/shell_live/index.html.heex:644
#: lib/bds/tui.ex:632
#: lib/bds/tui.ex:637
#: lib/bds/tui.ex:792
#: lib/bds/tui.ex:797
#, elixir-autogen, elixir-format
msgid "Open Existing Blog"
msgstr ""
@@ -1789,7 +1813,7 @@ msgid "Open Settings"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:217
#: lib/bds/tui.ex:1588
#: lib/bds/tui.ex:1818
#, elixir-autogen, elixir-format
msgid "Open in Browser"
msgstr ""
@@ -1915,6 +1939,7 @@ msgid "Post Slug Conflicts"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:161
#: lib/bds/ui/settings_form.ex:122
#, elixir-autogen, elixir-format
msgid "Post Template"
msgstr ""
@@ -1937,8 +1962,8 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:233
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:1435
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1656
#: lib/bds/tui.ex:1671
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1980,6 +2005,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:739
#: lib/bds/desktop/shell_live/misc_editor.ex:765
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:27
#: lib/bds/ui/settings_form.ex:44
#: lib/bds/ui/sidebar.ex:799
#, elixir-autogen, elixir-format
msgid "Project"
@@ -1997,8 +2023,8 @@ msgstr ""
#: lib/bds/desktop/shell_live/chat_surface.ex:15
#: lib/bds/desktop/shell_live/index.html.heex:623
#: lib/bds/tui.ex:545
#: lib/bds/tui.ex:550
#: lib/bds/tui.ex:705
#: lib/bds/tui.ex:710
#, elixir-autogen, elixir-format
msgid "Projects"
msgstr ""
@@ -2009,6 +2035,7 @@ msgid "Protected categories cannot be removed"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:51
#: lib/bds/ui/settings_form.ex:47
#, elixir-autogen, elixir-format
msgid "Public URL"
msgstr ""
@@ -2042,6 +2069,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:40
#: lib/bds/desktop/shell_live/settings_editor/publishing_settings.ex:57
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:338
#: lib/bds/ui/settings_form.ex:199
#: lib/bds/ui/sidebar.ex:811
#, elixir-autogen, elixir-format
msgid "Publishing"
@@ -2064,15 +2092,15 @@ msgid "Ready to import:"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:248
#: lib/bds/tui.ex:629
#: lib/bds/tui.ex:1568
#: lib/bds/tui.ex:789
#: lib/bds/tui.ex:1798
#, elixir-autogen, elixir-format
msgid "Rebuild Database"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:250
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:381
#: lib/bds/tui.ex:1572
#: lib/bds/tui.ex:1802
#, elixir-autogen, elixir-format
msgid "Rebuild Embedding Index"
msgstr ""
@@ -2130,7 +2158,7 @@ msgid "Refresh Translation"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:252
#: lib/bds/tui.ex:1575
#: lib/bds/tui.ex:1805
#, elixir-autogen, elixir-format
msgid "Regenerate Calendar"
msgstr ""
@@ -2141,7 +2169,7 @@ msgid "Regenerate Missing Thumbnails"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:249
#: lib/bds/tui.ex:1569
#: lib/bds/tui.ex:1799
#, elixir-autogen, elixir-format
msgid "Reindex Text"
msgstr ""
@@ -2173,6 +2201,7 @@ msgid "Remove tag"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:159
#: lib/bds/ui/settings_form.ex:118
#, elixir-autogen, elixir-format
msgid "Render in Lists"
msgstr ""
@@ -2250,6 +2279,7 @@ msgid "Run"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:340
#: lib/bds/ui/settings_form.ex:203
#, elixir-autogen, elixir-format
msgid "SSH Mode"
msgstr ""
@@ -2327,7 +2357,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:1438
#: lib/bds/tui.ex:1659
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2426,12 +2456,15 @@ msgid "Selected pairs dismissed"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:324
#: lib/bds/ui/settings_form.ex:78
#: lib/bds/ui/settings_form.ex:189
#, elixir-autogen, elixir-format
msgid "Semantic Similarity"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/project_settings.ex:60
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:11
#: lib/bds/tui.ex:1661
#: lib/bds/ui/registry.ex:86
#: lib/bds/ui/registry.ex:101
#: lib/bds/ui/sidebar.ex:795
@@ -2455,9 +2488,9 @@ msgid "Site"
msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:412
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:300
#: lib/bds/tui.ex:1209
#: lib/bds/tui.ex:311
#: lib/bds/tui.ex:313
#: lib/bds/tui.ex:1417
#: lib/bds/ui/registry.ex:125
#, elixir-autogen, elixir-format
msgid "Site Validation"
@@ -2521,6 +2554,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/style_editor.ex:76
#: lib/bds/desktop/shell_live/settings_editor_html/style_editor.html.heex:3
#: lib/bds/ui/registry.ex:102
#: lib/bds/ui/settings_form.ex:241
#: lib/bds/ui/sidebar.ex:817
#, elixir-autogen, elixir-format
msgid "Style"
@@ -2547,6 +2581,7 @@ msgid "Syntax is valid"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:301
#: lib/bds/ui/settings_form.ex:147
#, elixir-autogen, elixir-format
msgid "System Prompt"
msgstr ""
@@ -2578,7 +2613,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:1439
#: lib/bds/tui.ex:1660
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2590,12 +2625,13 @@ msgstr ""
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "Tasks"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:321
#: lib/bds/ui/settings_form.ex:186
#: lib/bds/ui/sidebar.ex:805
#, elixir-autogen, elixir-format
msgid "Technology"
@@ -2635,7 +2671,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:1437
#: lib/bds/tui.ex:1658
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2681,6 +2717,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:23
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:158
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:22
#: lib/bds/ui/settings_form.ex:117
#, elixir-autogen, elixir-format
msgid "Title"
msgstr ""
@@ -2858,7 +2895,7 @@ msgid "Updated URLs"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:259
#: lib/bds/tui.ex:1587
#: lib/bds/tui.ex:1817
#, elixir-autogen, elixir-format
msgid "Upload Site"
msgstr ""
@@ -2886,13 +2923,13 @@ msgid "Validate"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:258
#: lib/bds/tui.ex:1565
#: lib/bds/tui.ex:1795
#, elixir-autogen, elixir-format
msgid "Validate Site"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:253
#: lib/bds/tui.ex:1578
#: lib/bds/tui.ex:1808
#, elixir-autogen, elixir-format
msgid "Validate Translations"
msgstr ""
@@ -2936,6 +2973,7 @@ msgid "Working tree and history"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:138
#: lib/bds/ui/settings_form.ex:97
#, elixir-autogen, elixir-format
msgid "Wrap Long Lines"
msgstr ""
@@ -3294,6 +3332,7 @@ msgid "End-user guidance for editorial workflows, media, templates, translation,
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:86
#: lib/bds/ui/settings_form.ex:62
#, elixir-autogen, elixir-format
msgid "Image Import Concurrency"
msgstr ""
@@ -3363,15 +3402,15 @@ msgstr ""
#: lib/bds/desktop/shell_live/git_handler.ex:46
#: lib/bds/desktop/shell_live/git_handler.ex:52
#: lib/bds/desktop/shell_live/sidebar_components.ex:556
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:330
#: lib/bds/tui.ex:334
#: lib/bds/tui.ex:340
#: lib/bds/tui.ex:343
#, elixir-autogen, elixir-format
msgid "Commit"
msgstr ""
#: lib/bds/desktop/shell_live/sidebar_components.ex:555
#: lib/bds/tui.ex:1031
#: lib/bds/tui.ex:1239
#, elixir-autogen, elixir-format
msgid "Commit message"
msgstr ""
@@ -3395,6 +3434,7 @@ msgid "Fetch"
msgstr ""
#: lib/bds/desktop/shell_live/sidebar_components.ex:586
#: lib/bds/tui.ex:1074
#, elixir-autogen, elixir-format
msgid "History"
msgstr ""
@@ -3442,7 +3482,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/git_handler.ex:17
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/desktop/shell_live/sidebar_components.ex:543
#: lib/bds/tui.ex:800
#: lib/bds/tui.ex:957
#, elixir-autogen, elixir-format
msgid "Pull"
msgstr ""
@@ -3450,7 +3490,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/git_handler.ex:18
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/desktop/shell_live/sidebar_components.ex:544
#: lib/bds/tui.ex:801
#: lib/bds/tui.ex:958
#, elixir-autogen, elixir-format
msgid "Push"
msgstr ""
@@ -3563,7 +3603,7 @@ msgid "Suggested tags"
msgstr ""
#: lib/bds/desktop/menu_bar.ex:257
#: lib/bds/tui.ex:1566
#: lib/bds/tui.ex:1796
#, elixir-autogen, elixir-format
msgid "Force Render Site"
msgstr ""
@@ -3630,7 +3670,7 @@ msgstr ""
msgid "git push"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:159
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:112
#, elixir-autogen, elixir-format
msgid "AI settings saved."
msgstr ""
@@ -3640,12 +3680,12 @@ msgstr ""
msgid "Could not load models"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:190
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:200
#, elixir-autogen, elixir-format
msgid "Could not save AI settings"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:194
#, elixir-autogen, elixir-format
msgid "Loaded %{count} models."
msgstr ""
@@ -3655,87 +3695,88 @@ msgstr ""
msgid "OK"
msgstr ""
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:174
#: lib/bds/desktop/shell_live/settings_editor/ai_settings.ex:184
#, elixir-autogen, elixir-format
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr ""
#: lib/bds/tui.ex:1524
#: lib/bds/tui.ex:1754
#, elixir-autogen, elixir-format
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr ""
#: lib/bds/tui.ex:1651
#: lib/bds/tui.ex:1881
#, elixir-autogen, elixir-format
msgid "Could not load this file."
msgstr ""
#: lib/bds/tui.ex:230
#: lib/bds/tui.ex:243
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr ""
#: lib/bds/tui.ex:783
#: lib/bds/tui.ex:940
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr ""
#: lib/bds/tui.ex:1648
#: lib/bds/tui.ex:1878
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr ""
#: lib/bds/tui.ex:1447
#: lib/bds/tui.ex:1671
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr ""
#: lib/bds/tui.ex:969
#: lib/bds/tui.ex:1174
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr ""
#: lib/bds/tui.ex:1494
#: lib/bds/tui.ex:1724
#, elixir-autogen, elixir-format
msgid "Published."
msgstr ""
#: lib/bds/tui.ex:1510
#: lib/bds/tui.ex:1740
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr ""
#: lib/bds/tui.ex:1495
#: lib/bds/tui.ex:524
#: lib/bds/tui.ex:1725
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr ""
#: lib/bds/tui.ex:972
#: lib/bds/tui.ex:1177
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr ""
#: lib/bds/tui.ex:780
#: lib/bds/tui.ex:937
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr ""
#: lib/bds/tui.ex:984
#: lib/bds/tui.ex:1189
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr ""
#: lib/bds/tui.ex:983
#: lib/bds/tui.ex:1188
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr ""
#: lib/bds/tui.ex:1033
#: lib/bds/tui.ex:1241
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr ""
#: lib/bds/tui.ex:1055
#: lib/bds/tui.ex:1263
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr ""
@@ -3772,158 +3813,263 @@ msgstr ""
msgid "Use the form user@host or user@host:port."
msgstr ""
#: lib/bds/tui.ex:1003
#: lib/bds/tui.ex:1208
#, elixir-autogen, elixir-format
msgid "Preview (ctrl+e to edit)"
msgstr ""
#: lib/bds/tui.ex:1305
#: lib/bds/tui.ex:1520
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+e preview · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr ""
#: lib/bds/tui.ex:828
#: lib/bds/tui.ex:985
#, elixir-autogen, elixir-format
msgid "All tasks finished."
msgstr ""
#: lib/bds/tui.ex:1081
#: lib/bds/tui.ex:1289
#, elixir-autogen, elixir-format
msgid "Commands — esc to close"
msgstr ""
#: lib/bds/tui.ex:654
#: lib/bds/tui.ex:814
#, elixir-autogen, elixir-format
msgid "Unknown command."
msgstr ""
#: lib/bds/tui.ex:1071
#: lib/bds/tui.ex:1279
#, elixir-autogen, elixir-format
msgid "[report/apply in GUI]"
msgstr ""
#: lib/bds/tui.ex:1220
#: lib/bds/tui.ex:1428
#, elixir-autogen, elixir-format
msgid "%{diffs} differences · %{orphans} orphan files"
msgstr ""
#: lib/bds/tui.ex:1252
#: lib/bds/tui.ex:1460
#, elixir-autogen, elixir-format
msgid "Expected %{expected} · Existing %{existing}"
msgstr ""
#: lib/bds/tui.ex:1269
#: lib/bds/tui.ex:1477
#, elixir-autogen, elixir-format
msgid "Extra files (will be removed):"
msgstr ""
#: lib/bds/tui.ex:1265
#: lib/bds/tui.ex:1473
#, elixir-autogen, elixir-format
msgid "Missing pages (will be rendered):"
msgstr ""
#: lib/bds/tui.ex:298
#: lib/bds/tui.ex:311
#, elixir-autogen, elixir-format
msgid "Nothing to apply."
msgstr ""
#: lib/bds/tui.ex:265
#: lib/bds/tui.ex:278
#, elixir-autogen, elixir-format
msgid "Nothing to repair."
msgstr ""
#: lib/bds/tui.ex:1243
#: lib/bds/tui.ex:1451
#, elixir-autogen, elixir-format
msgid "Orphan files (not in database):"
msgstr ""
#: lib/bds/tui.ex:1259
#: lib/bds/tui.ex:1467
#, elixir-autogen, elixir-format
msgid "Sitemap changed."
msgstr ""
#: lib/bds/tui.ex:1273
#: lib/bds/tui.ex:1481
#, elixir-autogen, elixir-format
msgid "Updated posts (will be re-rendered):"
msgstr ""
#: lib/bds/tui.ex:1210
#: lib/bds/tui.ex:1418
#, elixir-autogen, elixir-format
msgid "enter apply changes · esc close"
msgstr ""
#: lib/bds/tui.ex:1205
#: lib/bds/tui.ex:1413
#, elixir-autogen, elixir-format
msgid "enter repair all from files · esc close"
msgstr ""
#: lib/bds/tui.ex:619
#: lib/bds/tui.ex:779
#, elixir-autogen, elixir-format
msgid "Imported Blog"
msgstr ""
#: lib/bds/tui.ex:638
#: lib/bds/tui.ex:798
#, elixir-autogen, elixir-format
msgid "Not a folder: %{path}"
msgstr ""
#: lib/bds/tui.ex:1147
#: lib/bds/tui.ex:1355
#, elixir-autogen, elixir-format
msgid "Projects — enter switch · o open existing · esc close"
msgstr ""
#: lib/bds/tui.ex:546
#: lib/bds/tui.ex:706
#, elixir-autogen, elixir-format
msgid "Switched to %{name}."
msgstr ""
#: lib/bds/tui.ex:1175
#: lib/bds/tui.ex:1383
#, elixir-autogen, elixir-format
msgid "Matching folders"
msgstr ""
#: lib/bds/tui.ex:1113
#: lib/bds/tui.ex:1321
#, elixir-autogen, elixir-format
msgid "Open Existing Blog — type a folder path · tab complete · enter open · esc back"
msgstr ""
#: lib/bds/tui.ex:1298
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:321
#: lib/bds/tui.ex:334
#, elixir-autogen, elixir-format
msgid "Commit message required."
msgstr ""
#: lib/bds/tui.ex:327
#: lib/bds/tui.ex:340
#, elixir-autogen, elixir-format
msgid "Committed."
msgstr ""
#: lib/bds/tui.ex:960
#: lib/bds/tui.ex:1165
#, elixir-autogen, elixir-format
msgid "Diff (pgup/pgdn scroll)"
msgstr ""
#: lib/bds/tui.ex:1333
#: lib/bds/tui.ex:1548
#, elixir-autogen, elixir-format
msgid "No changes."
msgstr ""
#: lib/bds/tui.ex:387
#: lib/bds/tui.ex:400
#, elixir-autogen, elixir-format
msgid "No diff for this file."
msgstr ""
#: lib/bds/tui.ex:375
#: lib/bds/tui.ex:947
#: lib/bds/tui.ex:388
#: lib/bds/tui.ex:1152
#, elixir-autogen, elixir-format
msgid "Not a git repository."
msgstr ""
#: lib/bds/tui.ex:1291
#: lib/bds/ui/settings_form.ex:73
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-5 views · ctrl+q quit"
msgid "Blog Languages (comma-separated)"
msgstr ""
#: lib/bds/ui/settings_form.ex:215
#, elixir-autogen, elixir-format
msgid "Data Folder"
msgstr ""
#: lib/bds/ui/settings_form.ex:218
#, elixir-autogen, elixir-format
msgid "Maintenance"
msgstr ""
#: lib/bds/ui/settings_form.ex:45
#, elixir-autogen, elixir-format
msgid "Name"
msgstr ""
#: lib/bds/ui/settings_form.ex:138
#, elixir-autogen, elixir-format
msgid "New Category"
msgstr ""
#: lib/bds/ui/settings_form.ex:170
#, elixir-autogen, elixir-format
msgid "Offline Chat Disable Reasoning"
msgstr ""
#: lib/bds/ui/settings_form.ex:167
#, elixir-autogen, elixir-format
msgid "Offline Chat Tool Calls"
msgstr ""
#: lib/bds/ui/settings_form.ex:176
#, elixir-autogen, elixir-format
msgid "Offline Image Model"
msgstr ""
#: lib/bds/ui/settings_form.ex:154
#, elixir-autogen, elixir-format
msgid "Online Chat Disable Reasoning"
msgstr ""
#: lib/bds/ui/settings_form.ex:151
#, elixir-autogen, elixir-format
msgid "Online Chat Tool Calls"
msgstr ""
#: lib/bds/ui/settings_form.ex:160
#, elixir-autogen, elixir-format
msgid "Online Image Model"
msgstr ""
#: lib/bds/ui/settings_form.ex:57
#, elixir-autogen, elixir-format
msgid "Posts per Page"
msgstr ""
#: lib/bds/ui/settings_form.ex:219
#, elixir-autogen, elixir-format
msgid "Rebuild and maintenance commands are available under the : prompt."
msgstr ""
#: lib/bds/ui/settings_form.ex:200
#, elixir-autogen, elixir-format
msgid "SSH Host"
msgstr ""
#: lib/bds/ui/settings_form.ex:202
#, elixir-autogen, elixir-format
msgid "SSH Remote Path"
msgstr ""
#: lib/bds/ui/settings_form.ex:201
#, elixir-autogen, elixir-format
msgid "SSH User"
msgstr ""
#: lib/bds/ui/settings_form.ex:119
#, elixir-autogen, elixir-format
msgid "Show Title"
msgstr ""
#: lib/bds/ui/settings_form.ex:242
#, elixir-autogen, elixir-format
msgid "Theme"
msgstr ""
#: lib/bds/tui.ex:1136
#, elixir-autogen, elixir-format
msgid "enter edit · ctrl+s save · esc close"
msgstr ""
#: lib/bds/tui.ex:1499
#, elixir-autogen, elixir-format
msgid "enter edit/toggle/cycle · ctrl+s save · esc close · ctrl+q quit"
msgstr ""
#: lib/bds/ui/settings_form.ex:230
#, elixir-autogen, elixir-format
msgid "not supported yet"
msgstr ""
#: lib/bds/tui.ex:1506
#, elixir-autogen, elixir-format
msgid "c commit · u pull · s push · enter jump to file · pgup/pgdn scroll diff · 1-7 views · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:1513
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-7 views · p projects · / search · : commands (:? help) · r refresh · ctrl+q quit"
msgstr ""

View File

@@ -4,7 +4,7 @@
-- Distilled from: lib/bds/tui.ex, lib/bds/ui/sidebar.ex, lib/bds/ui/post_editor/*.ex
entity TuiState {
view: posts | media | templates | scripts | tags
view: posts | media | templates | scripts | tags | settings | git
focus: sidebar | editor
selected_index: Integer
editing_post: Boolean
@@ -116,6 +116,24 @@ rule CommandPrompt {
ensures: CommandListShownOrExecuted()
}
rule SettingsPanel {
when: TuiKeyPressed(code: "6")
-- "6" opens the settings panel (issue #29), matching the GUI panel
-- numbering: the sidebar lists the same preference sections as the
-- GUI settings editor (Project, Editor, Content, AI, Technology,
-- Publishing, Data, MCP, Style — from BDS.UI.Sidebar's settings
-- view). Enter on a section opens a section-specific editor in the
-- main area: a generic typed-field form from BDS.UI.SettingsForm.
-- Enter edits a text field in a status-line prompt, toggles a
-- boolean, or cycles an enum through its options; read-only info
-- rows are skipped by the selection. ctrl+s saves the section
-- through the same backends as the GUI editor (BDS.Metadata,
-- BDS.Settings, BDS.AI, BDS.MCP.AgentConfig) and reloads the form;
-- esc cancels the prompt, then closes the form. Category removal
-- and AI model discovery remain GUI-only.
ensures: SettingsFormShownEditedOrSaved()
}
rule GitPanel {
when: TuiKeyPressed(code: "7")
-- "7" opens the git panel (issue #30) for content sync: the sidebar

View File

@@ -862,6 +862,110 @@ defmodule BDS.TUITest do
end
end
describe "settings panel (issue #29)" do
defp open_section(state, title) do
index =
Enum.find_index(state.items, fn
{:item, item} -> item.title == title
_other -> false
end)
moves = index - state.selected
direction = if moves < 0, do: "up", else: "down"
1..abs(moves)//1
|> Enum.reduce(state, fn _step, acc -> press(acc, direction) end)
|> press("enter")
end
defp select_field(state, key) do
index = Enum.find_index(state.settings_form.fields, &(&1.key == key))
moves = index - state.settings_form.selected
direction = if moves < 0, do: "up", else: "down"
Enum.reduce(1..abs(moves)//1, state, fn _step, acc -> press(acc, direction) end)
end
test "6 opens the settings view and lists the sections" do
state = mount!() |> press("6")
assert state.view == "settings"
text = screen_text(state)
assert text =~ "Project"
assert text =~ "Publishing"
assert text =~ "Style"
end
test "enter opens a section form; editing a text field persists on ctrl+s", %{
project: project
} do
state = mount!() |> press("6") |> open_section("Project")
assert state.settings_form != nil
assert state.settings_form.section == "project"
assert screen_text(state, 140, 40) =~ "Posts per Page"
state = select_field(state, "name") |> press("enter")
assert state.settings_form.input != nil
# The prompt is seeded with the current value; replace it.
state =
Enum.reduce(1..3, state, fn _n, acc -> press(acc, "backspace") end)
|> type("TUI Prefs")
|> press("enter")
assert state.settings_form.input == nil
assert state.settings_form.dirty
state = press(state, "s", ["ctrl"])
refute state.settings_form.dirty
{:ok, metadata} = BDS.Metadata.get_project_metadata(project.id)
assert metadata.name == "TUI Prefs"
end
test "enter toggles booleans and cycles enums", %{project: project} do
state = mount!() |> press("6") |> open_section("Publishing")
state = select_field(state, "ssh_mode")
assert current_field(state).value == "scp"
state = press(state, "enter")
assert current_field(state).value == "rsync"
state = state |> select_field("ssh_host") |> press("enter") |> type("example.org") |> press("enter")
state = press(state, "s", ["ctrl"])
{:ok, metadata} = BDS.Metadata.get_project_metadata(project.id)
assert metadata.publishing_preferences["ssh_mode"] == "rsync"
assert metadata.publishing_preferences["ssh_host"] == "example.org"
# Booleans toggle in place.
state = state |> press("esc") |> open_section("Technology")
state = select_field(state, "semantic_similarity_enabled")
refute current_field(state).value
state = press(state, "enter")
assert current_field(state).value
end
test "esc in a prompt cancels only the prompt; esc again closes the form" do
state = mount!() |> press("6") |> open_section("Publishing")
state = select_field(state, "ssh_host") |> press("enter")
assert state.settings_form.input != nil
state = press(state, "esc")
assert state.settings_form != nil
assert state.settings_form.input == nil
state = press(state, "esc")
assert state.settings_form == nil
assert state.view == "settings"
end
defp current_field(state),
do: Enum.at(state.settings_form.fields, state.settings_form.selected)
end
test "local tui mode stops the VM when the app exits" do
parent = self()
state = mount!(stop_vm_on_exit: true, stop_fun: fn -> send(parent, :vm_stopped) end)

View File

@@ -0,0 +1,200 @@
defmodule BDS.UI.SettingsFormTest do
use ExUnit.Case, async: false
alias BDS.UI.SettingsForm
setup do
:ok = Ecto.Adapters.SQL.Sandbox.checkout(BDS.Repo)
Ecto.Adapters.SQL.Sandbox.mode(BDS.Repo, {:shared, self()})
on_exit(fn -> Ecto.Adapters.SQL.Sandbox.mode(BDS.Repo, :manual) end)
temp_dir = Path.join(System.tmp_dir!(), "bds-settings-form-#{System.unique_integer([:positive])}")
File.mkdir_p!(temp_dir)
on_exit(fn -> File.rm_rf(temp_dir) end)
{:ok, project} = BDS.Projects.create_project(%{name: "Prefs", data_path: temp_dir})
{:ok, _} = BDS.Projects.set_active_project(project.id)
%{project: project}
end
defp field(form, key), do: Enum.find(form.fields, &(&1.key == key))
defp values(form, overrides) do
form.fields
|> Map.new(fn f -> {f.key, f.value} end)
|> Map.merge(overrides)
end
describe "project" do
test "load exposes the project metadata as typed fields", %{project: project} do
form = SettingsForm.load("project", project.id)
assert field(form, "name").value == "Prefs"
assert field(form, "name").type == :text
assert field(form, "main_language").type == :enum
assert "de" in field(form, "main_language").options
assert field(form, "semantic_similarity_enabled").type == :bool
end
test "save writes through Metadata and keeps untouched values", %{project: project} do
{:ok, _} = BDS.Metadata.update_project_metadata(project.id, %{pico_theme: "jade"})
form = SettingsForm.load("project", project.id)
:ok =
SettingsForm.save(
"project",
project.id,
values(form, %{
"name" => "Renamed",
"max_posts_per_page" => "25",
"blog_languages" => "en, de",
"semantic_similarity_enabled" => true
})
)
{:ok, metadata} = BDS.Metadata.get_project_metadata(project.id)
assert metadata.name == "Renamed"
assert metadata.max_posts_per_page == 25
assert metadata.blog_languages == ["en", "de"]
assert metadata.semantic_similarity_enabled
assert metadata.pico_theme == "jade"
end
end
describe "editor" do
test "round-trips the global editor settings", %{project: project} do
form = SettingsForm.load("editor", project.id)
assert field(form, "default_mode").type == :enum
:ok =
SettingsForm.save(
"editor",
project.id,
values(form, %{"default_mode" => "preview", "wrap_long_lines" => true})
)
assert BDS.Settings.get_global_setting("ui.preferred_editor_mode") == "preview"
assert BDS.Settings.get_global_setting("ui.git_diff_word_wrap") == "true"
reloaded = SettingsForm.load("editor", project.id)
assert field(reloaded, "default_mode").value == "preview"
assert field(reloaded, "wrap_long_lines").value == true
end
end
describe "content" do
test "edits category settings and adds new categories", %{project: project} do
form = SettingsForm.load("content", project.id)
assert field(form, "cat:aside:show_title").type == :bool
:ok =
SettingsForm.save(
"content",
project.id,
values(form, %{
"new_category" => "linkroll",
"cat:article:render_in_lists" => false,
"cat:article:title" => "Articles"
})
)
{:ok, metadata} = BDS.Metadata.get_project_metadata(project.id)
assert "linkroll" in metadata.categories
assert metadata.category_settings["article"]["render_in_lists"] == false
assert metadata.category_settings["article"]["title"] == "Articles"
end
end
describe "technology" do
test "toggles semantic similarity without wiping the project", %{project: project} do
form = SettingsForm.load("technology", project.id)
refute field(form, "semantic_similarity_enabled").value
:ok =
SettingsForm.save(
"technology",
project.id,
values(form, %{"semantic_similarity_enabled" => true})
)
{:ok, metadata} = BDS.Metadata.get_project_metadata(project.id)
assert metadata.semantic_similarity_enabled
assert metadata.name == "Prefs"
end
end
describe "publishing" do
test "saves the SSH preferences", %{project: project} do
form = SettingsForm.load("publishing", project.id)
assert field(form, "ssh_mode").options == ["scp", "rsync"]
:ok =
SettingsForm.save(
"publishing",
project.id,
values(form, %{"ssh_host" => "example.org", "ssh_mode" => "rsync"})
)
{:ok, metadata} = BDS.Metadata.get_project_metadata(project.id)
assert metadata.publishing_preferences["ssh_host"] == "example.org"
assert metadata.publishing_preferences["ssh_mode"] == "rsync"
end
end
describe "ai" do
test "loads the AI form and saves prompt plus airplane mode", %{project: project} do
form = SettingsForm.load("ai", project.id)
assert field(form, "offline_mode").type == :bool
assert field(form, "system_prompt").type == :text
:ok =
SettingsForm.save(
"ai",
project.id,
values(form, %{"system_prompt" => "be terse", "offline_mode" => true})
)
assert BDS.Settings.get_global_setting("ai.system_prompt") == "be terse"
assert BDS.AI.airplane_mode?()
end
end
describe "style" do
test "applies a theme without wiping other metadata", %{project: project} do
form = SettingsForm.load("style", project.id)
assert "jade" in field(form, "pico_theme").options
:ok = SettingsForm.save("style", project.id, values(form, %{"pico_theme" => "jade"}))
{:ok, metadata} = BDS.Metadata.get_project_metadata(project.id)
assert metadata.pico_theme == "jade"
assert metadata.name == "Prefs"
end
end
describe "data" do
test "shows the data folder read-only and save is a no-op", %{project: project} do
form = SettingsForm.load("data", project.id)
data_field = field(form, "data_path")
assert data_field.type == :info
assert data_field.value =~ "bds-settings-form"
assert SettingsForm.save("data", project.id, %{}) == :ok
end
end
describe "mcp" do
test "lists the agents with supported ones as toggles", %{project: project} do
form = SettingsForm.load("mcp", project.id)
claude = field(form, "mcp:claude_code")
assert claude.type == :bool
assert is_boolean(claude.value)
gemini = field(form, "mcp:gemini_cli")
assert gemini.type == :info
end
end
end