From 12388b8bd936f7cba4f429155b360eea7fd3b730 Mon Sep 17 00:00:00 2001 From: iamdoubz <> Date: Sun, 12 Jul 2026 12:29:25 -0500 Subject: [PATCH] feat(i18n): convert Settings storage section to t() (Batch E) --- src/lib/views/Settings.svelte | 53 ++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/lib/views/Settings.svelte b/src/lib/views/Settings.svelte index 7d03615..b34e4d4 100644 --- a/src/lib/views/Settings.svelte +++ b/src/lib/views/Settings.svelte @@ -526,14 +526,17 @@ let ioError = $state(false); async function exportAllMeetings() { - const dir = await open({ directory: true, title: "Export all meetings into…" }); + const dir = await open({ directory: true, title: t("settings.storage.export_dialog_title") }); if (typeof dir !== "string") return; exportBusy = true; ioStatus = null; ioError = false; try { const n = await api.bulkExportMeetings(dir, "bundle"); - ioStatus = `Exported ${n} meeting${n === 1 ? "" : "s"}.`; + ioStatus = + n === 1 + ? t("settings.storage.exported_one", { n }) + : t("settings.storage.exported_many", { n }); } catch (e) { ioStatus = errorMessage(e); ioError = true; @@ -543,7 +546,7 @@ } async function importMeetings() { - const dir = await open({ directory: true, title: "Import a bundle (or a folder of bundles)…" }); + const dir = await open({ directory: true, title: t("settings.storage.import_dialog_title") }); if (typeof dir !== "string") return; importBusy = true; ioStatus = null; @@ -551,7 +554,10 @@ try { const n = await api.importMeetingBundle(dir); await meetings.load(); - ioStatus = `Imported ${n} meeting${n === 1 ? "" : "s"}.`; + ioStatus = + n === 1 + ? t("settings.storage.imported_one", { n }) + : t("settings.storage.imported_many", { n }); } catch (e) { ioStatus = errorMessage(e); ioError = true; @@ -1069,53 +1075,48 @@ {:else if section === "storage"}
-

Storage

-
Location{settings.settings.storage_root}
-

- Changing the storage location isn't supported yet — this is where meetings, models, and - the database currently live. -

-

Retention

-

- Automatically delete the oldest meetings past a limit. Checked once at startup; empty - means no limit. Never touches a meeting that's currently recording. -

+

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

+
+ {t("settings.storage.location_label")}{settings.settings.storage_root} +
+

{t("settings.storage.location_hint")}

+

{t("settings.storage.retention_title")}

+

{t("settings.storage.retention_hint")}

-

Export & import

+

{t("settings.storage.export_import_title")}

- Move recordings between computers as portable bundle folders (audio, transcript, notes, - summary, and a meeting.json manifest). Export to any folder — a synced drive, a - USB stick, or a sync target's local mount — then import it on the other machine. Imported meetings - get a fresh id, so re-importing never overwrites anything. + {t("settings.storage.export_hint_1")} + meeting.json + {t("settings.storage.export_hint_2")}

{#if ioStatus}