mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Registrations declare a dictionary namespace (locale: NS) and the renderer
synthesizes a typed t prop for the entry's component from the installed
LocaleFace; the seat binding is re-derived per locale revision, so a language
switch hands out fresh t references and memoized consumers re-render through
ordinary shallow comparison. LocaleNamespaceMap is the declare-merge table
(namespace -> dictionary key union); TranslateNS<'ns'> is the
namespace-addressed translate type (namespace keys plus the shared common
vocabulary), carried by the t seat and by the locale service's typed bind.
LocaleService implements the face (lookup ns -> common -> zh -> key,
revision-carrying snapshots with subscriber isolation) and installs it
through the boot-once slots.installLocale seam, mirroring the renderer
install. The typed register(ns, {zh, en}) overload checks each dictionary
against the namespace's key union and requires every shipped locale, so a
missing or extra key and an unbalanced translation are compile errors.
Dictionary registration bumps the face revision without emitting
locale/change — the event now means exactly 'the active locale switched',
so registration-heavy boot cannot storm event listeners.
43 lines
629 B
JSON
43 lines
629 B
JSON
{
|
|
"extends": "../../../tsconfig.base.client.json",
|
|
"compilerOptions": {
|
|
"rootDir": "src",
|
|
"outDir": "lib/types"
|
|
},
|
|
"include": [
|
|
"src"
|
|
],
|
|
"references": [
|
|
{
|
|
"path": "../../../vendor/cordis"
|
|
},
|
|
{
|
|
"path": "../connection"
|
|
},
|
|
{
|
|
"path": "../locale"
|
|
},
|
|
{
|
|
"path": "../runtime"
|
|
},
|
|
{
|
|
"path": "../ui-command"
|
|
},
|
|
{
|
|
"path": "../ui-conversation"
|
|
},
|
|
{
|
|
"path": "../ui-primitives"
|
|
},
|
|
{
|
|
"path": "../ui-slash"
|
|
},
|
|
{
|
|
"path": "../ui-slots"
|
|
},
|
|
{
|
|
"path": "../../support/invariants"
|
|
}
|
|
]
|
|
}
|