true if the active language (or its base) has a message for key.
Resolve key in the active language, or undefined on a miss (the caller then
falls back to its inline English literal).
Optionalparams: Record<string, unknown>Listen for language changes. Returns a remover.
Resolve key in the active language. On a miss returns the key itself —
use lookup when the caller has a better (English) fallback.
Optionalparams: Record<string, unknown>
The translation boundary. Everything user-facing resolves through this interface; nothing in the SDK/UI depends on an i18n framework — only on this surface.
Fallback contract: a missing key falls back to the authored English literal at the call site (via ITranslator.lookup returning
undefined), never to a bare key.