refactor(i18n): route consumer reads through ClideSettings.i18n (T-474)

Migrate widget i18n reads from ClideKernel.of(context).i18n to the unified
ClideSettings.i18n.of(context) facade (D-101), so settings/theme/fonts/i18n
share one widget-facing entry point. The facade delegates to the same I18n
service, so behaviour is unchanged. Infra plumbing (KernelServices /
ExtensionManager fields, the slot-host Listenable.merge) keeps its direct
kernel reference.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 21:37:51 +02:00
co-authored by Claude Opus 4.8
parent c4248e3228
commit 1c79c9c4dc
8 changed files with 12 additions and 11 deletions
+1 -1
View File
@@ -368,5 +368,5 @@ String resolveTabTitle(BuildContext context, TabContribution t) {
final key = t.titleKey;
final ns = t.i18nNamespace;
if (key == null || ns == null) return t.title;
return ClideKernel.of(context).i18n.string(key, namespace: ns, placeholder: t.title);
return ClideSettings.i18n.of(context).string(key, namespace: ns, placeholder: t.title);
}