Install
openclaw skills install @ebandao777-oss/github-desktop-zhGithub Desktop 汉化工具 — 自动探测安装目录(支持 loose 与 asar 打包模式),使用内置词典对 JS 源文件执行字符串字面量替换,完成界面汉化。支持预览、部署、回滚、语法校验。
openclaw skills install @ebandao777-oss/github-desktop-zh调用内置脚本自动探测 Github Desktop 安装目录,识别 loose 或 asar 打包模式,使用内置词典执行 JS 字符串字面量替换。
GitHubDesktop-zh/
├── SKILL.md # 本文件
├── dict/
│ └── dictionary.txt # 汉化词典(首行可声明 # @gh-version: 3.*)
└── scripts/
└── apply_zh.py # 汉化脚本 v1.1.0
脚本自动识别目标为 resources\app(loose 模式)或 resources\app.asar(asar 模式):
| 模式 | 目标 | 替换流程 | 部署方式 | 依赖 |
|---|---|---|---|---|
| loose | app\main.js 等 loose 文件 | 直接读写 | 复制覆盖 | 无 |
| asar | app.asar 打包文件 | extract → 替换 → pack | 重新打包覆盖 | 需 asar 工具 |
asar 工具安装:npm install -g @electron/asar
在执行任何命令前,Agent 应检查:
# ① Python 版本
python --version
# ② 脚本存在性
Test-Path "{技能根目录}/scripts/apply_zh.py"
# ③ 词典存在性
Test-Path "{技能根目录}/dict/dictionary.txt"
以上任一失败即中断,告知用户缺失项。
python "{技能根目录}/scripts/apply_zh.py" --deploy
python "{技能根目录}/scripts/apply_zh.py" --dry-run
python "{技能根目录}/scripts/apply_zh.py" --rollback
python "{技能根目录}/scripts/apply_zh.py" --deploy --dict "{用户提供的词典路径}"
python "{技能根目录}/scripts/apply_zh.py" --deploy --src "D:\...\app"
python "{技能根目录}/scripts/apply_zh.py" --deploy --src "D:\...\app.asar"
python "{技能根目录}/scripts/apply_zh.py" --deploy --force
脚本内部每个步骤失败时均会 sys.exit(1) 并打印 [ERROR]。Agent 应在执行后检查退出码和 stdout:
| 断点 | 关键输出 | 失败动作 |
|---|---|---|
| 依赖 | (无显式输出,通过即继续) | 缺 reg/tasklist → 中断;asar 模式缺 asar → 中断并提示安装 |
| 探测 | Github Desktop 版本: x.x.x + 模式: LOOSE/ASAR | 无此输出 → 探测失败,提示用户提供 --src |
| 词典 | 词典条目: N + 词典声明版本: x.* | 无此输出 → 词典加载失败;版本不匹配且未 --force → 中断 |
| 解包 | 解包 asar 到临时目录... | 仅 asar 模式;失败 → 中断 |
| 备份 | 已备份: N 个文件 | 无此输出 → 备份失败,脚本已中断 |
| 替换 | 应用结果: N/N 已替换 (x.x%) | 含"未匹配"行 → 部分条目未命中;匹配率 <80% → WARN 提示更新词典 |
| 部署 | 已部署到: | 无此输出 → 部署失败,检查权限/进程占用 |
| 验证 | 文件名 (N KB) ✓ 语法✓ | 语法✗ → 替换破坏 JS,需回滚并更新词典 |
| 验收 | [提示] 请启动 Github Desktop 目视确认... | Agent 应建议用户启动 GH 目视检查 |
| 场景 | 处理 |
|---|---|
| Python 不可用 | 提示安装 Python ≥ 3.6 |
| 无法定位 GH | 提示用户确认已安装,或提供 --src 路径(loose 目录或 asar 文件) |
| GH 正在运行 | 检测 GitHubDesktop.exe / Update.exe,提示关闭后重试,或询问是否 --force |
| asar 模式缺 asar 工具 | 提示 npm install -g @electron/asar |
| 词典版本不匹配 | 打印 WARN,非 --force 时中断,提示更新词典或加 --force |
| 大量条目未匹配 (≥20%) | 可能版本升级,提示用户提供新版词典 |
| 替换后语法校验失败 | 提示词典含危险条目,建议回滚并修正词典 |
| --no-backup --deploy 组合 | 脚本拒绝执行,提示加 --force 确认风险 |
| 回滚无备份 | 提示无法回滚,建议重装 Github Desktop |
| 脚本执行报错 | 将完整 stderr 反馈给用户 |
每行一条:源串>*.*<译串>*.*<分组>*.*<目标文件
# @gh-version: 3.*(可选)(["'])source\1,仅命中被相同引号包裹的完整字符串字面量);字面量未命中时,对长度 ≥10 且含空格的 source 回退到子串匹配(UI 文本特征,误伤变量名/注释概率低);短串保持严格字面量匹配node --check,语法错误时告警.pre_rollback_*