docs(i18n): record D-102 (i18n routing) + ui-design skill rule

Document the T-462 i18n architecture: ext-id namespaces auto-loaded on
activation, a 'core' catalog for framework chrome, the null-safe
ClideSettings.i18n read facade, contribution titleKey/labelKey fields, and the
assets/i18n/<locale>/<namespace>.json locale-dir layout. Add the "route
user-facing strings through the catalog" rule to the ui-design skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-19 15:57:05 +02:00
co-authored by Claude Opus 4.8
parent 1bdfd1be1c
commit bee7f98e45
3 changed files with 19 additions and 0 deletions
+7
View File
@@ -45,6 +45,13 @@ These apply across every reference and every surface:
widget must set it explicitly. `clideMonoFamily` / `clideUiFamily` are the
facade's defaults — don't read them directly in new widgets (D-101). Same
facade exposes `ClideSettings.theme.of(context)` and `.i18n.of(context)`.
- User-facing strings resolve through the catalog, never a hardcoded literal
(D-21/D-102): `ClideSettings.i18n.string(context, 'dotted.key', namespace:
<ext id or 'core'>, placeholder: '<English>')` (or `.interpolated` for
templated). Add the key→English to `assets/i18n/en_us/<namespace>.json`. The
`placeholder` is the English fallback; the extension's own id is its
namespace (framework chrome uses `core`). Contribution manifests carry
`titleKey`/`labelKey` for the same reason.
## Conversation-panel cards (T-305)