diff --git a/src/lib/views/Settings.svelte b/src/lib/views/Settings.svelte index 6763b2d..b20e0b5 100644 --- a/src/lib/views/Settings.svelte +++ b/src/lib/views/Settings.svelte @@ -706,16 +706,18 @@ {t("nav.about")} - {#if settings.backendStub && section === "sync"} -

- Preview mode — the sync backend isn't implemented yet (Phase 9). Changes are kept in the UI - only. -

+

{t("settings.sync.stub")}

{/if} {#if section === "recording"} @@ -1261,51 +1263,52 @@ {:else if section === "sync"}
-

Sync & upload

+

{t("settings.sync.title")}

-

- Off by default. Nothing is uploaded unless this is on and a target is enabled. Self-hosted - targets keep data on your own server; third-party clouds are clearly labeled. -

+

{t("settings.sync.enable_hint")}

-

Targets

+

{t("settings.sync.targets_title")}

{#if settings.targets.length === 0} -

No targets yet. Add one below.

+

{t("settings.sync.no_targets")}

{:else} {/if} -

{editingId ? "Edit target" : "Add a target"}

+

{editingId ? t("settings.sync.edit_target") : t("settings.sync.add_target")}

{#if !editingId}
{#each ["webdav", "onedrive", "dropbox", "box"] as k (k)} @@ -1317,20 +1320,22 @@ {/if} {#if form.kind === "webdav"} -

- WebDAV covers Nextcloud, ownCloud, Cloudreve, Seafile, and Synology. (Seafile: enable - SeafDAV server-side.) -

+

{t("settings.sync.webdav_hint")}

- + - - + +
- Upload - - - + {t("settings.sync.upload_legend")} + {t("settings.sync.artifact_transcript")} + + +
+ {t("settings.sync.allow_plaintext")}
- + {editingId + ? t("settings.sync.save_changes") + : t("settings.sync.add_target_btn")} {#if editingId} - + {/if} {#if testResult} @@ -1399,27 +1417,28 @@ {:else}
- +
- - Opens an OAuth sign-in (loopback redirect); the token is stored in your OS credential - store.{t("settings.sync.link_account", { kind: form.kind })} + {t("settings.sync.oauth_hint")}
{#if settings.linkMessage}

{settings.linkMessage}

{/if} {/if} -

- Credentials are never written to settings or the database — only the OS credential store. - TLS is required for non-LAN targets. -

+

{t("settings.sync.footnote")}

{:else if section === "ai"}