READMESource: main@ee9ca676
dsh-uyghurche-ui
DSH Web 界面维吾尔语(UEY)语言包。通过官方 locale API
(ctx.locale.addLanguage + ctx.locale.register)注册 ئۇيغۇرچە,
未翻译的界面文案逐 key 回退英文——任何批次的翻译都可以安全上线。
现状(A1–A5 + C + B1)
| 命名空间 | 键数 | 状态 |
|---|---|---|
common / settings.locale |
39+1 | ✅ |
conversation |
159 | ✅ 输入框、消息流、附件、终端、排队 |
chat |
103 | ✅ 统计、压缩、重试、用量、时间 |
workspace |
63 | ✅ 会话列表、工作区、搜索、状态 |
sidebar / sidebarFiles / sidebarRight |
5+13+21 | ✅ 侧边栏、文件面板、右侧栏 |
model / command / slash.menu |
20+14+9 | ✅ 模型选择、命令面板、斜杠菜单 |
settings |
12 | ✅ 设置外壳、连接状态 |
settings.models |
100 | ✅ 模型设置(API 密钥、提供方、目录) |
settings.plugins |
52 | ✅ 插件设置(终端、Agent 循环、搜索、Subagent 模型) |
settings.agentPreset |
51 | ✅ Agent 预设 |
settings.pluginInventory |
36 | ✅ 插件列表 |
settings.theme |
9 | ✅ 外观/字号 |
settings.permission / permission.access |
12+8 | ✅ 权限预设 |
cordis |
50 | ✅ Cordis 插件面板(运行/审批/回退) |
deliverables |
38 | ✅ 交付物面板、文件操作 |
subagent |
37 | ✅ 子代理视图(时长/状态/只读) |
feedback |
20 | ✅ 消息反馈(分类/详情) |
workflowRun / schedule.catalog |
18+18 | ✅ 工作流运行、定时提醒 |
job / question |
15+15 | ✅ 后台任务、提问组件 |
open-in-app |
39 | ✅ 「在编辑器中打开」菜单(30 款应用名保留原样) |
goal / plan / skill |
12+6+7 | ✅ 目标、计划模式、技能面板 |
reference / approval |
10+5 | ✅ 引用、审批组件 |
session-log-download |
9 | ✅ Session 日志导出 |
documentMarkdown / documentHtml / sidebarImage / sidebarPdf / sidebarCodePreview / sidebarDocumentPreview |
4+4+5+9+3+18 | ✅ 文档预览类(Markdown/HTML/图片/PDF/代码/文本) |
| 合计 | 1069 | 除 trajectory 外全部官方界面维吾尔语化 |
切到 ug 后:上述 1,069 条显示维吾尔语;trajectory(轨迹,175 条,用户暂缓)
由逐 key 回退机制显示英文。
安装(web profile)
// ~/.dsh/profiles/web/package.json
{
"dependencies": { "dsh-uyghurche-ui": "file:D:/Deepseek git/dsh-uyghurche-ui" },
"dsh": { "profile": { "bundles": [ "dsh-uyghurche-ui" ] } }
}
然后 pnpm install 并重启 web profile。设置 → 通用 → 语言,选择
ئۇيغۇرچە 即立即生效并记住。
测试
node scripts/build-client.mjs # 修改 lib/dict/*.js 后必须重新拼接 client.js
node test/smoke.mjs # 包形态 + 宿主半部 + 客户端契约
node test/client.mjs # 用真实上游 LocaleRuntime 跑 apply(ctx) 全流程
node scripts/coverage.mjs # 对照安装版键表审计 1,069 键覆盖率
已知限制
- 逐 key 回退:未翻译的 key 显示英文(不是空白)。
@linxin666/dsh-web-all有 8 处 legacy 语言回退(lang.startsWith("en") ? en : zh), 界面语言为ug时这些子插件显示中文——第三方包自身实现问题,本包无法修正。dsh-better-sidebar的界面文案不走ctx.locale,不跟随界面语言。- 注册期一次性读取的文案(如
/model命令描述)在切换语言后不刷新,重启后生效。 - B1 已知限制:镜像范围只覆盖对话区 + 设置界面,两侧栏与其它浮层(toast、非模态菜单)保持 LTR; 图标镜像不做(属 B2,散落在 77 处方向图标);部分物理属性未逐一覆盖,个别间距仍偏 LTR; 输入框保持 LTR(混排输入安全)。
B1:RTL 镜像(对话区 + 设置界面)
- 范围:对话区与设置界面(含其它
main槽面板与模态)。左右两侧栏保持 LTR—— 不换边、不做边框/内距/面板锚定补偿,列宽拖拽手柄照常可用。 - 实现:不给
<html>设 dir。设 dir 会让三栏 grid 整体换边(左栏被翻到屏幕右侧), 要只留侧栏 LTR 就得逐个补偿 grid 定位,脆弱。改为把direction: rtl打在两个锚点上 ——direction是可继承属性,等价于在该子树设dir="rtl",且纯 CSS 命中,React 重渲染不会掉:[class*="_centerCol"]—— 中栏:对话区 +main槽面板;[role="dialog"][aria-modal="true"]—— 设置模态。它虽是position:fixed的全屏浮层, DOM 上却挂在侧栏的sidebar.settings槽里,只锚中栏会漏掉它。
ug激活时注入覆盖层<style>(lib/rtl.css,随 bundle 内联),切走/卸载时移除,完全恢复 LTR。- 覆盖内容:内容面文字方向与对齐、维语字体栈(全界面)、LTR 反向保护(代码/终端/编辑器/输入框)、 消息标记与重试按钮的物理值换向。
- 带启动自检:
_centerCol锚点未命中时 console 警告。 - 锚点核对:
<hash>_centerCol仅由dsh-client-ui-layout定义(scripts/audit-class-suffixes.mjs)。
C 级:日期/时间/数字
- 上游仅有的显示级
Intl.DateTimeFormat调用(定时任务时间)已传document.documentElement.lang→ 切到ug时自动使用维吾尔语格式(ICU 完整支持: 月份名、相对时间、复数 one/other、numberingSystem=latn)。 - 本包内置 Intl 默认 locale 钩子:
ug激活期间,未显式指定 locale 的Intl.DateTimeFormat/NumberFormat/RelativeTimeFormat、Date.prototype.toLocale*、Number.prototype.toLocaleString、String.prototype.localeCompare默认切到ug, 使 trajectory 的记录时间、日期解析辅助、文件排序等裸调用跟随界面语言; 切换语言或卸载时原样恢复,显式传 locale 的调用零影响。
路线图
- 剩余:trajectory(175 条,用户暂缓);B2 图标镜像(散落在 77 处方向图标)、
scrollLeft语义; 若要把两侧栏也纳入镜像,需要上游把三栏 grid 的换边与dir解耦(或在布局层暴露方向开关)。
术语一致性:与 dsh-uyghurche 的 195 条开发术语表对齐
(copy=كۆچۈرۈش、close=يېپىش、edit=تەھرىرلەش、save=ساقلاش、
delete=ئۆچۈرۈش、search=ئىزدەش、button=كۇنۇپكا、path=يول、
language=تىل …)。
No comments yet. Be the first to write one.