refactor(i18n): route planning-pane labels through the catalog (T-467)

Migrate the user-facing strings in builtin.tickets, builtin.pql,
builtin.decisions, and builtin.problems (list/detail views, section headers,
filters, empty/loading/error states, type chips) to ClideSettings.i18n; extend
each extension's catalog. The detail/links tabs that had a bare title now wire
titleKey + i18nNamespace so the tab title resolves too. Context threaded into
the static label helpers. No en_US behaviour change (D-21).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 22:14:01 +02:00
co-authored by Claude Opus 4.8
parent f33cd603be
commit 17d22b9571
16 changed files with 337 additions and 64 deletions
@@ -1,3 +1,16 @@
{
"tab.title": { "translation": "Decisions" }
"tab.title": { "translation": "Decisions" },
"tab.detail.title": { "translation": "Decision" },
"loading": { "translation": "Loading decisions..." },
"error.load": { "translation": "failed to load decisions" },
"empty": { "translation": "No decisions found.\nRun `pql decisions sync` to index." },
"filter.hint": { "translation": "Filter decisions…" },
"refresh.tooltip": { "translation": "Refresh decisions" },
"section.confirmed": { "translation": "CONFIRMED" },
"section.questions": { "translation": "QUESTIONS" },
"section.rejected": { "translation": "REJECTED" },
"badge.resolved": { "translation": "resolved" },
"detail.loading": { "translation": "Loading…" },
"detail.empty": { "translation": "Select a decision to view details." },
"detail.section.refs": { "translation": "CROSS-REFERENCES" }
}
@@ -1,3 +1,16 @@
{
"tab.title": { "translation": "pql" }
"tab.title": { "translation": "pql" },
"tab.links.title": { "translation": "Links" },
"filter.markdown.hint": { "translation": "Filter markdown…" },
"loading": { "translation": "Loading…" },
"empty.markdown": { "translation": "No markdown files found." },
"search.vault.hint": { "translation": "Search vault…" },
"search.query.hint": { "translation": "PQL query…" },
"backlinks.empty": { "translation": "Open a file to see its links." },
"backlinks.loading": { "translation": "Loading…" },
"backlinks.semantics": { "translation": "backlinks for {path}" },
"group.backlinks": { "translation": "Backlinks" },
"group.outlinks": { "translation": "Outlinks" },
"group.label": { "translation": "{label} ({count})" },
"group.none": { "translation": "None" }
}
@@ -1,3 +1,10 @@
{
"tab.title": { "translation": "Problems" }
"tab.title": { "translation": "Problems" },
"semantics.panel": { "translation": "problems panel" },
"filter.hint": { "translation": "Filter problems…" },
"count": { "translation": "Problems ({count})" },
"refresh.label": { "translation": "Refresh" },
"refresh.semantics": { "translation": "refresh problems" },
"scanning": { "translation": "Scanning…" },
"empty": { "translation": "No problems found." }
}
@@ -1,3 +1,36 @@
{
"tab.title": { "translation": "Tickets" }
"tab.title": { "translation": "Tickets" },
"tab.detail.title": { "translation": "Ticket" },
"type.initiative": { "translation": "Initiative" },
"type.epic": { "translation": "Epic" },
"type.story": { "translation": "Story" },
"type.task": { "translation": "Task" },
"type.bug": { "translation": "Bug" },
"loading": { "translation": "Loading tickets..." },
"error.load": { "translation": "failed to load tickets" },
"empty": { "translation": "No tickets.\nRun `pql ticket new` to create one." },
"filter.hint": { "translation": "Filter tickets…" },
"refresh.tooltip": { "translation": "Refresh tickets" },
"section.in_progress": { "translation": "IN PROGRESS" },
"section.review": { "translation": "REVIEW" },
"section.ready": { "translation": "READY" },
"section.backlog": { "translation": "BACKLOG" },
"section.done": { "translation": "DONE" },
"section.cancelled": { "translation": "CANCELLED" },
"chip.label": { "translation": "{type} type filter" },
"chip.tooltip": { "translation": "Click to toggle · double-click to isolate" },
"badge.wip": { "translation": "WIP" },
"badge.review": { "translation": "REVIEW" },
"badge.cancelled": { "translation": "CANCELLED" },
"pickUp.tooltip": { "translation": "Pick up — hand this ticket to the Claude pane" },
"detail.loading": { "translation": "Loading…" },
"detail.empty": { "translation": "Select a ticket to view details." },
"detail.assigned": { "translation": "assigned: {name}" },
"detail.section.parents": { "translation": "PARENT TREE" },
"detail.section.decisions": { "translation": "REFERENCED DECISIONS" },
"status.backlog": { "translation": "BACKLOG" },
"status.ready": { "translation": "READY" },
"status.in_progress": { "translation": "WIP" },
"status.review": { "translation": "REVIEW" },
"status.done": { "translation": "DONE" }
}