Feature chore bug 007 #21

Merged
iamdoubz merged 68 commits from feature_chore_bug_007 into main 2026-07-12 12:59:04 -05:00
Showing only changes of commit 2181aa5b0e - Show all commits
+16 -7
View File
@@ -4,6 +4,12 @@ Working doc for the incremental UI-string translation effort. The i18n **mechani
is done; this tracks moving the app's remaining hardcoded strings into the translation
files, one batch at a time. Tick boxes as views are converted.
> **Status (2026-07-12): migration complete.** All views and components (Batches A–F) are
> converted; `en.json` holds ~506 keys. Every user-facing English string flows through
> `t()`. What remains is intentionally-untranslated data (see the "Not translated" section)
> — plus the actual work of adding a second language, which is now just translating
> `en.json` into a new `<code>.json`.
- **Engine:** hand-rolled, zero-dependency. `src/lib/i18n/index.svelte.ts`
- **Baseline dictionary:** `src/lib/i18n/en.json` (English is the source-of-truth key set
**and** the fallback for any missing key)
@@ -79,8 +85,15 @@ a list whose rows are pure user data.
OLLAMA_OPTIONS param catalog labels/help left as data (config catalog, like model
ids); example URLs/model-id placeholders left literal.
- [x] Components (Batch F): `ConsentNotice` + `HostedAiBanner` (legal/consent copy,
`consent.*` / `hosted.*`), `ThemeToggle` (`theme.*`), `ImportMeeting` (`import.*`),
`TagChip` (`tagchip.*`), `LevelMeter` (`levelmeter.*`). `Splitter`'s `label` is
caller-supplied and already translated by the parent; no strings of its own.
## Outstanding — suggested batches
_None — all batches complete._ The section below is kept as a record of the plan.
Ordered roughly by user-visibility ÷ effort. Sizes are rough (line count / labeled
attributes) to help portion the work, not exact string counts. A file isn't "done" until
its visible text **and** its `title`/`aria-label`/`placeholder` attributes are keyed.
@@ -101,13 +114,8 @@ Moved to the Done list above.
All nine sections + the modal shell converted, one commit per section. Moved to the Done
list above.
### Batch F — components
- [ ] `ConsentNotice.svelte` (~72 lines) — **legal/consent copy; translate carefully**
- [ ] `HostedAiBanner.svelte` (~93 lines) — third-party-egress disclosure copy
- [ ] `ImportMeeting.svelte` (~229 lines, ~5 attrs) — import dialog
- [ ] `ThemeToggle.svelte` (~72 lines) — one aria-label
- [ ] `TagChip.svelte`, `LevelMeter.svelte`, `Splitter.svelte` — check for any stray
user-facing strings (likely minimal)
### ~~Batch F — components~~ ✅ done (branch `feature_chore_bug_007`)
Moved to the Done list above.
## Not translated (intentional)
@@ -131,3 +139,4 @@ Record each landed batch here (date / branch / commit) so progress is auditable.
| 2026-07-12 | Batch A (App shell) + Batch B (MeetingsList) | `feature_chore_bug_007` | +~60 keys; `app.*`, `meetings.*` |
| 2026-07-12 | Batch C (TranscriptNotes) + Batch D (SummaryPanel) | `feature_chore_bug_007` | +~120 keys; `transcript.*`, `notes.*`, `summary.*`; en.json now 198 keys |
| 2026-07-12 | Batch E (Settings, all 9 sections + shell) | `feature_chore_bug_007` | +~270 keys; `settings.*`; en.json now 470 keys; one commit per section |
| 2026-07-12 | Batch F (components) | `feature_chore_bug_007` | +~36 keys; `consent.*`/`hosted.*`/`theme.*`/`import.*`/`tagchip.*`/`levelmeter.*`; en.json now 506 keys — migration complete |