mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
A first visit resolved to Chinese regardless of the browser: LocaleService read `dsh.locale` and fell straight back to `zh` when nothing was stored, ignoring the languages the browser already states it reads. The initial locale now resolves through three ordered sources — the persisted preference, then `navigator` (first entry of the ordered language list whose primary subtag names a shipped locale, so `zh-Hans-CN` -> zh and `en-GB` -> en), then `FALLBACK_LOCALE`. An explicit choice still wins and nothing writes the detected locale back to storage, so "has the user chosen?" stays a question only the stored value answers. Specs asserting the shipped Chinese copy now state the browser they assume: the web e2e scenarios open their page with `locale: ZH_BROWSER_LOCALE`, and package specs pin it through the new `pinBrowserLanguages` test helper. `settings-chrome.e2e.ts` gains an English-browser scenario as the assembled-app proof.
1.5 KiB
1.5 KiB
@deepseek-ai/dsh-client-locale
English | 中文
locale 插件:LocaleService——浏览器 locale 偏好(zh/en,以 dsh.locale 持久化;未持久化偏好时,全新浏览器以 navigator 请求的语言开场——按主子标签匹配,若其请求的语言本应用都不提供则为 zh;locale/change 仅在切换语言时触发),加上 ns×locale 字典注册表(类型化 register(ns, {zh, en}) 按 LocaleNamespaceMap 校验,bind(ns)→TranslateNS<ns>;查找链 ns → common → zh → key)。该服务实现 slot 系统的 LocaleFace 并经 ctx.slots.installLocale 自行安装,支撑框架注入的 t 标准席位(Translate/TranslateNS 是 ui-slots 的类型;请从那里导入——本包的再导出仅为字典所有者提供便利)。
模型体验
无。locale 注册表为浏览器 UI 文案提供服务;这里没有任何内容进入模型请求。
KV Cache 影响
无;该包(package)既不组装也不发送提供方请求。
已知限制与暂缓事项
- 多数界面仍保留内联文案——标准席位已由设置行、侧边栏、问题作答器和模型选择接入;其余包在后续 PR 中迁移。
- 注册表持有的文本只读取一次翻译——在 slot 渲染路径之外于注册时捕获的文案(例如 command 注册表中的
/model命令描述)在重新注册前保持注册时的语言;slot 渲染的文案随切换实时更新。