@qingchencloud/openclaw-zh 2026.1.29-zh.202601301427 → 2026.1.30-zh.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +353 -16
- package/dist/agents/auth-health.js +5 -1
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/cli/program/help.js +1 -1
- package/dist/cli/skills-cli.js +5 -5
- package/dist/cli/update-cli.js +13 -13
- package/dist/commands/channels/list.js +2 -2
- package/dist/commands/status.command.js +10 -10
- package/dist/commands/uninstall.js +6 -6
- package/dist/config/schema.js +379 -379
- package/dist/control-ui/assets/{index-DFDgq9AK.js → index-CNKLKKXX.js} +582 -561
- package/dist/control-ui/assets/index-CNKLKKXX.js.map +1 -0
- package/dist/control-ui/index.html +1 -1
- package/dist/tui/commands.js +22 -22
- package/dist/tui/tui-waiting.js +10 -10
- package/dist/wizard/onboarding.finalize.js +5 -5
- package/dist/wizard/onboarding.js +3 -3
- package/extensions/line/src/channel.ts +21 -13
- package/package.json +2 -2
- package/dist/control-ui/assets/index-DFDgq9AK.js.map +0 -1
package/README.md
CHANGED
|
@@ -43,36 +43,112 @@
|
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
46
|
+
## 📸 汉化效果预览
|
|
47
|
+
|
|
48
|
+
<p align="center">
|
|
49
|
+
<img src="docs/image/5.png" alt="概览仪表板" width="100%">
|
|
50
|
+
<br>
|
|
51
|
+
<em>📊 概览仪表板 - 网关状态、实例监控、快捷操作一目了然</em>
|
|
52
|
+
</p>
|
|
53
|
+
|
|
54
|
+
<details>
|
|
55
|
+
<summary><b>🖼️ 查看更多截图</b></summary>
|
|
56
|
+
|
|
57
|
+
<p align="center">
|
|
58
|
+
<img src="docs/image/1.png" alt="对话界面" width="100%">
|
|
59
|
+
<br>
|
|
60
|
+
<em>💬 对话界面 - 与 AI 助手实时交互</em>
|
|
61
|
+
</p>
|
|
62
|
+
|
|
63
|
+
<p align="center">
|
|
64
|
+
<img src="docs/image/4.png" alt="渠道管理" width="100%">
|
|
65
|
+
<br>
|
|
66
|
+
<em>📱 渠道管理 - WhatsApp、Telegram、Discord 等全平台支持</em>
|
|
67
|
+
</p>
|
|
68
|
+
|
|
69
|
+
<p align="center">
|
|
70
|
+
<img src="docs/image/2.png" alt="配置中心" width="100%">
|
|
71
|
+
<br>
|
|
72
|
+
<em>⚙️ 配置中心 - 30+ 配置项完整汉化</em>
|
|
73
|
+
</p>
|
|
74
|
+
|
|
75
|
+
<p align="center">
|
|
76
|
+
<img src="docs/image/3.png" alt="节点配置" width="100%">
|
|
77
|
+
<br>
|
|
78
|
+
<em>🖥️ 节点配置 - 执行审批、安全策略管理</em>
|
|
79
|
+
</p>
|
|
80
|
+
|
|
81
|
+
<p align="center">
|
|
82
|
+
<img src="docs/image/6.png" alt="技能插件" width="100%">
|
|
83
|
+
<br>
|
|
84
|
+
<em>🔌 技能插件 - 1Password、Apple Notes 等丰富扩展</em>
|
|
85
|
+
</p>
|
|
86
|
+
|
|
87
|
+
</details>
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
46
91
|
## ⚡ 一键安装汉化版
|
|
47
92
|
|
|
48
93
|
### Windows (PowerShell)
|
|
49
94
|
|
|
50
95
|
```powershell
|
|
51
|
-
|
|
96
|
+
# 下载并执行安装脚本
|
|
97
|
+
Invoke-WebRequest -Uri "https://cdn.jsdelivr.net/gh/1186258278/OpenClawChineseTranslation@main/install.ps1" -OutFile "install.ps1"; .\install.ps1
|
|
52
98
|
```
|
|
53
99
|
|
|
54
100
|
### Linux / macOS
|
|
55
101
|
|
|
56
102
|
```bash
|
|
57
|
-
|
|
103
|
+
# 下载并执行安装脚本
|
|
104
|
+
curl -fsSL -o install.sh https://cdn.jsdelivr.net/gh/1186258278/OpenClawChineseTranslation@main/install.sh && bash install.sh
|
|
58
105
|
```
|
|
59
106
|
|
|
60
|
-
> 💡 使用 jsDelivr CDN
|
|
107
|
+
> 💡 使用 jsDelivr CDN 加速 | 🔒 [查看脚本源码](https://github.com/1186258278/OpenClawChineseTranslation/blob/main/install.sh)
|
|
61
108
|
|
|
62
109
|
---
|
|
63
110
|
|
|
64
111
|
## 📦 其他安装方式
|
|
65
112
|
|
|
113
|
+
### 版本选择
|
|
114
|
+
|
|
115
|
+
我们提供两个版本源,根据需求选择:
|
|
116
|
+
|
|
117
|
+
| 版本 | npm 标签 | 更新频率 | 适用场景 |
|
|
118
|
+
|------|----------|----------|----------|
|
|
119
|
+
| **稳定版** | `@latest` | 手动发布 | 生产环境,经过测试,推荐使用 |
|
|
120
|
+
| **最新版** | `@nightly` | 每小时自动 | 测试新功能,追踪上游最新代码 |
|
|
121
|
+
|
|
66
122
|
### 方式 1: npm 安装
|
|
67
123
|
|
|
68
124
|
```bash
|
|
125
|
+
# 稳定版(推荐)
|
|
69
126
|
npm install -g @qingchencloud/openclaw-zh@latest
|
|
127
|
+
|
|
128
|
+
# 最新版(每小时更新,追踪上游)
|
|
129
|
+
npm install -g @qingchencloud/openclaw-zh@nightly
|
|
70
130
|
```
|
|
71
131
|
|
|
72
132
|
### 方式 2: 手动下载
|
|
73
133
|
|
|
74
134
|
访问 [Releases 页面](https://github.com/1186258278/OpenClawChineseTranslation/releases) 下载最新版本。
|
|
75
135
|
|
|
136
|
+
### 方式 3: Docker 部署
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# 拉取并运行 (推荐)
|
|
140
|
+
docker run -d \
|
|
141
|
+
--name openclaw \
|
|
142
|
+
-p 18789:18789 \
|
|
143
|
+
-v openclaw-data:/home/node/.openclaw \
|
|
144
|
+
ghcr.io/qingchencloud/openclaw-zh:latest
|
|
145
|
+
|
|
146
|
+
# 访问 Dashboard
|
|
147
|
+
# http://localhost:18789
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
> 📖 详细 Docker 配置请参考下方 [Docker 部署指南](#-docker-部署指南)
|
|
151
|
+
|
|
76
152
|
---
|
|
77
153
|
|
|
78
154
|
## 🚀 快速开始
|
|
@@ -107,15 +183,76 @@ openclaw --help # 查看帮助
|
|
|
107
183
|
|
|
108
184
|
## ✨ 汉化内容
|
|
109
185
|
|
|
110
|
-
|
|
186
|
+
我们提供了**深度汉化**,覆盖 **CLI 命令行** + **Dashboard 网页控制台** 两大核心界面。
|
|
187
|
+
|
|
188
|
+
### 📊 汉化统计
|
|
189
|
+
|
|
190
|
+
| 指标 | 数量 |
|
|
191
|
+
|------|------|
|
|
192
|
+
| 📁 翻译文件 | **35+** 个 |
|
|
193
|
+
| 📝 翻译规则 | **970+** 条 |
|
|
194
|
+
| 🎯 覆盖模块 | **45+** 个 |
|
|
195
|
+
|
|
196
|
+
### 🖥️ CLI 命令行 (14 个模块)
|
|
111
197
|
|
|
112
|
-
|
|
|
198
|
+
| 分类 | 模块 | 说明 |
|
|
199
|
+
|------|------|------|
|
|
200
|
+
| **CLI** | 启动横幅 | 标题、版本信息、有趣的标语口号 |
|
|
201
|
+
| **CLI** | 帮助信息 | 命令说明、参数提示、汉化官网链接 |
|
|
202
|
+
| **向导** | 初始化引导 | 完整的 onboard 流程 |
|
|
203
|
+
| **向导** | 安全警告 | 权限警告、风险确认对话框 |
|
|
204
|
+
| **向导** | 完成提示 | 汉化版官网引导 |
|
|
205
|
+
| **TUI** | 等待动画 | 有趣的中文等待短语(如"神游八方中") |
|
|
206
|
+
| **TUI** | 斜杠命令 | /help, /status 等命令说明 |
|
|
207
|
+
| **命令** | status | 状态概览、安全审计、通道、会话 |
|
|
208
|
+
| **命令** | update | 更新进度、结果显示 |
|
|
209
|
+
| **命令** | skills | 技能列表、详情、安装选项 |
|
|
210
|
+
| **命令** | channels | 聊天通道、认证提供商列表 |
|
|
211
|
+
| **命令** | doctor | 诊断命令、安全审计警告 |
|
|
212
|
+
| **命令** | uninstall | 卸载提示、清理选项 |
|
|
213
|
+
| **命令** | 认证配置 | API 密钥、模型选择提示 |
|
|
214
|
+
|
|
215
|
+
### 🌐 Dashboard 网页控制台 (31 个模块)
|
|
216
|
+
|
|
217
|
+
| 分类 | 模块 | 说明 |
|
|
113
218
|
|------|------|------|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
116
|
-
|
|
|
117
|
-
|
|
|
118
|
-
|
|
|
219
|
+
| **主布局** | 顶栏/侧栏 | 品牌标识、健康状态、导航菜单 |
|
|
220
|
+
| **主布局** | 资源链接 | **汉化官网**、GitHub 仓库链接 |
|
|
221
|
+
| **导航** | 顶部标签页 | 对话、概览、渠道、实例、会话等 |
|
|
222
|
+
| **对话** | 聊天界面 | 消息输入、发送按钮、工具卡片 |
|
|
223
|
+
| **概览** | 系统状态 | 运行时间、活跃会话、模型列表 |
|
|
224
|
+
| **会话** | 会话管理 | 会话列表、详情、存档操作 |
|
|
225
|
+
| **渠道** | 消息渠道 | WhatsApp、Telegram、Discord 等全部渠道卡片 |
|
|
226
|
+
| **技能** | 技能管理 | 已安装、可用技能、详情页 |
|
|
227
|
+
| **节点** | 节点管理 | 本地/远程节点、浏览器配置、审批策略 |
|
|
228
|
+
| **配置** | 配置页面 | **31 个配置分区**完整翻译 |
|
|
229
|
+
| **配置** | 表单元素 | 所有字段标签、帮助文本、占位符 |
|
|
230
|
+
| **配置** | 动态标签 | 300+ 动态生成的标签翻译映射 |
|
|
231
|
+
| **定时任务** | 调度器 | 任务列表、运行状态、操作按钮 |
|
|
232
|
+
| **日志** | 日志查看 | 筛选、搜索、导出功能 |
|
|
233
|
+
| **调试** | 调试工具 | 快照、手动 RPC、事件日志 |
|
|
234
|
+
| **实例** | 实例管理 | 已连接实例、存在信标 |
|
|
235
|
+
|
|
236
|
+
### 📋 配置页面完整翻译 (31 个分区)
|
|
237
|
+
|
|
238
|
+
| 分区 | 中文名 | 分区 | 中文名 |
|
|
239
|
+
|------|--------|------|--------|
|
|
240
|
+
| env | 环境 | update | 更新 |
|
|
241
|
+
| agents | 代理 | auth | 身份验证 |
|
|
242
|
+
| channels | 渠道 | messages | 消息 |
|
|
243
|
+
| commands | 命令 | hooks | 钩子 |
|
|
244
|
+
| skills | 技能 | tools | 工具 |
|
|
245
|
+
| gateway | 网关 | wizard | 设置向导 |
|
|
246
|
+
| meta | 元数据 | diagnostics | 诊断 |
|
|
247
|
+
| logging | 日志 | browser | 浏览器 |
|
|
248
|
+
| ui | 界面 | models | 模型 |
|
|
249
|
+
| nodeHost | 节点主机 | bindings | 绑定 |
|
|
250
|
+
| broadcast | 广播 | audio | 音频 |
|
|
251
|
+
| media | 媒体 | approvals | 审批 |
|
|
252
|
+
| session | 会话 | cron | 定时任务 |
|
|
253
|
+
| web | 网页 | discovery | 发现 |
|
|
254
|
+
| canvasHost | 画布主机 | talk | 语音 |
|
|
255
|
+
| plugins | 插件 | | |
|
|
119
256
|
|
|
120
257
|
**注意**:与 AI 的对话内容取决于你使用的模型,不在汉化范围内。
|
|
121
258
|
|
|
@@ -131,6 +268,178 @@ openclaw --help # 查看帮助
|
|
|
131
268
|
|
|
132
269
|
---
|
|
133
270
|
|
|
271
|
+
## 🐳 Docker 部署指南
|
|
272
|
+
|
|
273
|
+
### 快速启动
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# 基础运行
|
|
277
|
+
docker run -d \
|
|
278
|
+
--name openclaw \
|
|
279
|
+
-p 18789:18789 \
|
|
280
|
+
ghcr.io/qingchencloud/openclaw-zh:latest
|
|
281
|
+
|
|
282
|
+
# 带数据持久化
|
|
283
|
+
docker run -d \
|
|
284
|
+
--name openclaw \
|
|
285
|
+
-p 18789:18789 \
|
|
286
|
+
-v openclaw-data:/home/node/.openclaw \
|
|
287
|
+
ghcr.io/qingchencloud/openclaw-zh:latest
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### 使用 Docker Compose
|
|
291
|
+
|
|
292
|
+
创建 `docker-compose.yml`:
|
|
293
|
+
|
|
294
|
+
```yaml
|
|
295
|
+
version: '3.8'
|
|
296
|
+
services:
|
|
297
|
+
openclaw:
|
|
298
|
+
image: ghcr.io/qingchencloud/openclaw-zh:latest
|
|
299
|
+
container_name: openclaw
|
|
300
|
+
ports:
|
|
301
|
+
- "18789:18789"
|
|
302
|
+
volumes:
|
|
303
|
+
- openclaw-data:/home/node/.openclaw
|
|
304
|
+
environment:
|
|
305
|
+
- OPENCLAW_GATEWAY_TOKEN=your-secure-token # 可选:设置访问令牌
|
|
306
|
+
restart: unless-stopped
|
|
307
|
+
|
|
308
|
+
volumes:
|
|
309
|
+
openclaw-data:
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
启动:
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
docker-compose up -d
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### 自行构建 Docker 镜像
|
|
319
|
+
|
|
320
|
+
如果需要自定义或使用最新代码:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# 1. 克隆汉化项目
|
|
324
|
+
git clone https://github.com/1186258278/OpenClawChineseTranslation.git
|
|
325
|
+
cd OpenClawChineseTranslation
|
|
326
|
+
|
|
327
|
+
# 2. 克隆上游源码
|
|
328
|
+
git clone https://github.com/openclaw/openclaw.git openclaw
|
|
329
|
+
|
|
330
|
+
# 3. 应用汉化
|
|
331
|
+
npm run cli -- apply
|
|
332
|
+
|
|
333
|
+
# 4. 构建 Docker 镜像
|
|
334
|
+
cd openclaw
|
|
335
|
+
docker build -t openclaw-zh:local .
|
|
336
|
+
|
|
337
|
+
# 5. 运行
|
|
338
|
+
docker run -d --name openclaw -p 18789:18789 openclaw-zh:local
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### 常用 Docker 命令
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# 查看日志
|
|
345
|
+
docker logs -f openclaw
|
|
346
|
+
|
|
347
|
+
# 停止容器
|
|
348
|
+
docker stop openclaw
|
|
349
|
+
|
|
350
|
+
# 重启容器
|
|
351
|
+
docker restart openclaw
|
|
352
|
+
|
|
353
|
+
# 进入容器
|
|
354
|
+
docker exec -it openclaw sh
|
|
355
|
+
|
|
356
|
+
# 删除容器
|
|
357
|
+
docker stop openclaw && docker rm openclaw
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### 访问 Dashboard
|
|
361
|
+
|
|
362
|
+
启动后访问:`http://localhost:18789`
|
|
363
|
+
|
|
364
|
+
如果设置了令牌,使用:`http://localhost:18789/?token=your-secure-token`
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## 🔧 手动汉化安装
|
|
369
|
+
|
|
370
|
+
适用于想要自定义翻译、测试最新代码或参与贡献的用户。
|
|
371
|
+
|
|
372
|
+
### 完整流程
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
# 1. 克隆汉化项目
|
|
376
|
+
git clone https://github.com/1186258278/OpenClawChineseTranslation.git
|
|
377
|
+
cd OpenClawChineseTranslation
|
|
378
|
+
|
|
379
|
+
# 2. 克隆上游 OpenClaw 源码
|
|
380
|
+
git clone https://github.com/openclaw/openclaw.git openclaw
|
|
381
|
+
|
|
382
|
+
# 3. 查看汉化状态
|
|
383
|
+
npm run cli -- status
|
|
384
|
+
|
|
385
|
+
# 4. 应用汉化补丁
|
|
386
|
+
npm run cli -- apply
|
|
387
|
+
|
|
388
|
+
# 5. 验证汉化结果
|
|
389
|
+
npm run cli -- verify
|
|
390
|
+
|
|
391
|
+
# 6. 构建 OpenClaw
|
|
392
|
+
cd openclaw
|
|
393
|
+
pnpm install
|
|
394
|
+
pnpm run build
|
|
395
|
+
|
|
396
|
+
# 7. 全局安装
|
|
397
|
+
npm install -g .
|
|
398
|
+
|
|
399
|
+
# 8. 验证安装
|
|
400
|
+
openclaw --version
|
|
401
|
+
openclaw --help
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### 汉化 CLI 完整命令
|
|
405
|
+
|
|
406
|
+
| 命令 | 说明 |
|
|
407
|
+
|------|------|
|
|
408
|
+
| `npm run cli -- status` | 查看当前汉化状态 |
|
|
409
|
+
| `npm run cli -- apply` | 应用汉化补丁 |
|
|
410
|
+
| `npm run cli -- apply --dry-run` | 预览汉化(不实际修改) |
|
|
411
|
+
| `npm run cli -- apply --verbose` | 详细输出汉化过程 |
|
|
412
|
+
| `npm run cli -- verify` | 验证汉化结果 |
|
|
413
|
+
| `npm run cli -- restore` | 恢复原版(使用 git checkout) |
|
|
414
|
+
|
|
415
|
+
### 自定义翻译
|
|
416
|
+
|
|
417
|
+
1. **找到目标文件**:确定需要翻译的源文件位置
|
|
418
|
+
|
|
419
|
+
2. **创建翻译规则**:在 `translations/` 对应目录创建 JSON 文件
|
|
420
|
+
```json
|
|
421
|
+
{
|
|
422
|
+
"file": "src/path/to/file.ts",
|
|
423
|
+
"description": "文件说明",
|
|
424
|
+
"replacements": {
|
|
425
|
+
"\"English Text\"": "\"中文翻译\""
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
3. **注册翻译文件**:在 `translations/config.json` 中添加
|
|
431
|
+
|
|
432
|
+
4. **测试**:
|
|
433
|
+
```bash
|
|
434
|
+
npm run cli -- apply --dry-run --verbose
|
|
435
|
+
npm run cli -- apply
|
|
436
|
+
npm run cli -- verify
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
5. **提交 PR**:欢迎贡献你的翻译!
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
134
443
|
## 🛠️ 开发者 / 贡献者指南
|
|
135
444
|
|
|
136
445
|
如果你想参与翻译或本地开发:
|
|
@@ -158,12 +467,34 @@ OpenClawChineseTranslation/
|
|
|
158
467
|
├── cli/ # 汉化 CLI 工具
|
|
159
468
|
│ ├── index.mjs # 入口
|
|
160
469
|
│ ├── commands/ # 命令实现
|
|
161
|
-
│ └── utils/ #
|
|
470
|
+
│ └── utils/ # 工具函数(i18n 引擎)
|
|
162
471
|
├── translations/ # 翻译配置(JSON 格式)
|
|
163
|
-
│ ├── config.json #
|
|
472
|
+
│ ├── config.json # 主配置(加载所有翻译文件)
|
|
164
473
|
│ ├── cli/ # CLI 界面翻译
|
|
474
|
+
│ │ ├── banner.json # 启动横幅
|
|
475
|
+
│ │ ├── tagline.json # 有趣标语
|
|
476
|
+
│ │ └── help.json # 帮助信息
|
|
165
477
|
│ ├── wizard/ # 向导翻译
|
|
166
|
-
│
|
|
478
|
+
│ │ ├── onboarding.json # 初始化向导
|
|
479
|
+
│ │ ├── security.json # 安全警告
|
|
480
|
+
│ │ └── finalize.json # 完成提示
|
|
481
|
+
│ ├── tui/ # TUI 界面翻译
|
|
482
|
+
│ │ ├── waiting.json # 等待动画
|
|
483
|
+
│ │ └── commands.json # 斜杠命令
|
|
484
|
+
│ ├── commands/ # 命令翻译
|
|
485
|
+
│ │ ├── status.json # status 命令
|
|
486
|
+
│ │ ├── update.json # update 命令
|
|
487
|
+
│ │ ├── skills.json # skills 命令
|
|
488
|
+
│ │ └── ... # 更多命令
|
|
489
|
+
│ └── dashboard/ # Dashboard UI 翻译 (20+ 文件)
|
|
490
|
+
│ ├── navigation.json # 导航菜单
|
|
491
|
+
│ ├── app-render.json # 主布局
|
|
492
|
+
│ ├── chat.json # 聊天界面
|
|
493
|
+
│ ├── config.json # 配置页面
|
|
494
|
+
│ ├── schema.json # 配置 schema
|
|
495
|
+
│ ├── config-form-*.json # 表单元素
|
|
496
|
+
│ ├── channels-*.json # 各渠道翻译
|
|
497
|
+
│ └── ... # 更多模块
|
|
167
498
|
├── docs/ # 文档
|
|
168
499
|
├── .github/workflows/ # 自动化工作流
|
|
169
500
|
├── install.sh # Linux/macOS 安装脚本
|
|
@@ -173,9 +504,10 @@ OpenClawChineseTranslation/
|
|
|
173
504
|
### 添加新翻译
|
|
174
505
|
|
|
175
506
|
1. 在 `translations/` 目录下创建或编辑 JSON 文件
|
|
176
|
-
2.
|
|
177
|
-
3. 运行 `npm run cli --
|
|
178
|
-
4.
|
|
507
|
+
2. 在 `translations/config.json` 中注册新文件
|
|
508
|
+
3. 运行 `npm run cli -- apply --dry-run` 预览
|
|
509
|
+
4. 运行 `npm run cli -- verify` 验证
|
|
510
|
+
5. 提交 PR
|
|
179
511
|
|
|
180
512
|
详见 [贡献指南](docs/CONTRIBUTING.md) 和 [翻译规范](docs/TRANSLATION_GUIDE.md)
|
|
181
513
|
|
|
@@ -214,6 +546,10 @@ npm uninstall -g @qingchencloud/openclaw-zh
|
|
|
214
546
|
npm install -g openclaw
|
|
215
547
|
```
|
|
216
548
|
|
|
549
|
+
### Q: Dashboard 如何访问?
|
|
550
|
+
|
|
551
|
+
启动 OpenClaw 后,访问 `http://localhost:18789` 即可打开网页控制台(全中文界面)。
|
|
552
|
+
|
|
217
553
|
---
|
|
218
554
|
|
|
219
555
|
## 🔗 相关链接
|
|
@@ -225,6 +561,7 @@ npm install -g openclaw
|
|
|
225
561
|
| 🔥 [openclaw.qt.cool](https://openclaw.qt.cool/) | **汉化版官网**(推荐) |
|
|
226
562
|
| 📦 [GitHub Pages](https://1186258278.github.io/OpenClawChineseTranslation/) | 备用下载页 |
|
|
227
563
|
| 📚 [npm 包](https://www.npmjs.com/package/@qingchencloud/openclaw-zh) | npm 安装源 |
|
|
564
|
+
| 💻 [GitHub 仓库](https://github.com/1186258278/OpenClawChineseTranslation) | 源代码 |
|
|
228
565
|
|
|
229
566
|
### 上游项目
|
|
230
567
|
|
|
@@ -70,7 +70,11 @@ function buildProfileHealth(params) {
|
|
|
70
70
|
label,
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
const
|
|
73
|
+
const hasRefreshToken = typeof credential.refresh === "string" && credential.refresh.length > 0;
|
|
74
|
+
const { status: rawStatus, remainingMs } = resolveOAuthStatus(credential.expires, now, warnAfterMs);
|
|
75
|
+
// OAuth credentials with a valid refresh token auto-renew on first API call,
|
|
76
|
+
// so don't warn about access token expiration.
|
|
77
|
+
const status = hasRefreshToken && (rawStatus === "expired" || rawStatus === "expiring") ? "ok" : rawStatus;
|
|
74
78
|
return {
|
|
75
79
|
profileId,
|
|
76
80
|
provider: credential.provider,
|
package/dist/build-info.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2026.1.
|
|
3
|
-
"commit": "
|
|
4
|
-
"builtAt": "2026-01-
|
|
2
|
+
"version": "2026.1.30-zh.1",
|
|
3
|
+
"commit": "6522de6ce045e0166d3136880b26004a04e44f91",
|
|
4
|
+
"builtAt": "2026-01-30T18:27:27.253Z"
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
6bca341722b482e79a5e38480c148b710a49dc6632213f89ca397a239fc3d770
|
package/dist/cli/program/help.js
CHANGED
|
@@ -66,6 +66,6 @@ export function configureProgramHelp(program, ctx) {
|
|
|
66
66
|
if (command !== program)
|
|
67
67
|
return "";
|
|
68
68
|
const docs = formatDocsLink("/cli", "docs.openclaw.ai/cli");
|
|
69
|
-
return `\n${theme.heading("
|
|
69
|
+
return `\n${theme.heading("示例:")}\n${fmtExamples}\n\n${theme.muted("文档:")} ${docs}\n${theme.muted("汉化版:")} ${theme.info("https://openclaw.qt.cool/")}\n`;
|
|
70
70
|
});
|
|
71
71
|
}
|
package/dist/cli/skills-cli.js
CHANGED
|
@@ -96,7 +96,7 @@ export function formatSkillsList(report, opts) {
|
|
|
96
96
|
columns.push({ key: "Missing", header: "Missing", minWidth: 18, flex: true });
|
|
97
97
|
}
|
|
98
98
|
const lines = [];
|
|
99
|
-
lines.push(`${theme.heading("
|
|
99
|
+
lines.push(`${theme.heading("技能")} ${theme.muted(`(${eligible.length}/${skills.length} ready)`)}`);
|
|
100
100
|
lines.push(renderTable({
|
|
101
101
|
width: tableWidth,
|
|
102
102
|
columns,
|
|
@@ -132,7 +132,7 @@ export function formatSkillInfo(report, skillName, opts) {
|
|
|
132
132
|
lines.push(skill.description);
|
|
133
133
|
lines.push("");
|
|
134
134
|
// Details
|
|
135
|
-
lines.push(theme.heading("
|
|
135
|
+
lines.push(theme.heading("详情:"));
|
|
136
136
|
lines.push(`${theme.muted(" Source:")} ${skill.source}`);
|
|
137
137
|
lines.push(`${theme.muted(" Path:")} ${shortenHomePath(skill.filePath)}`);
|
|
138
138
|
if (skill.homepage) {
|
|
@@ -149,7 +149,7 @@ export function formatSkillInfo(report, skillName, opts) {
|
|
|
149
149
|
skill.requirements.os.length > 0;
|
|
150
150
|
if (hasRequirements) {
|
|
151
151
|
lines.push("");
|
|
152
|
-
lines.push(theme.heading("
|
|
152
|
+
lines.push(theme.heading("依赖条件:"));
|
|
153
153
|
if (skill.requirements.bins.length > 0) {
|
|
154
154
|
const binsStatus = skill.requirements.bins.map((bin) => {
|
|
155
155
|
const missing = skill.missing.bins.includes(bin);
|
|
@@ -190,7 +190,7 @@ export function formatSkillInfo(report, skillName, opts) {
|
|
|
190
190
|
// Install options
|
|
191
191
|
if (skill.install.length > 0 && !skill.eligible) {
|
|
192
192
|
lines.push("");
|
|
193
|
-
lines.push(theme.heading("
|
|
193
|
+
lines.push(theme.heading("安装选项:"));
|
|
194
194
|
for (const inst of skill.install) {
|
|
195
195
|
lines.push(` ${theme.warn("→")} ${inst.label}`);
|
|
196
196
|
}
|
|
@@ -225,7 +225,7 @@ export function formatSkillsCheck(report, opts) {
|
|
|
225
225
|
}, null, 2);
|
|
226
226
|
}
|
|
227
227
|
const lines = [];
|
|
228
|
-
lines.push(theme.heading("
|
|
228
|
+
lines.push(theme.heading("技能状态检查"));
|
|
229
229
|
lines.push("");
|
|
230
230
|
lines.push(`${theme.muted("Total:")} ${report.skills.length}`);
|
|
231
231
|
lines.push(`${theme.success("✓")} ${theme.muted("Eligible:")} ${eligible.length}`);
|
package/dist/cli/update-cli.js
CHANGED
|
@@ -320,7 +320,7 @@ export async function updateStatusCommand(opts) {
|
|
|
320
320
|
Value: updateAvailability.available ? theme.warn(`available · ${updateLine}`) : updateLine,
|
|
321
321
|
},
|
|
322
322
|
];
|
|
323
|
-
defaultRuntime.log(theme.heading("OpenClaw
|
|
323
|
+
defaultRuntime.log(theme.heading("OpenClaw 更新状态"));
|
|
324
324
|
defaultRuntime.log("");
|
|
325
325
|
defaultRuntime.log(renderTable({
|
|
326
326
|
width: tableWidth,
|
|
@@ -405,7 +405,7 @@ function printResult(result, opts) {
|
|
|
405
405
|
}
|
|
406
406
|
const statusColor = result.status === "ok" ? theme.success : result.status === "skipped" ? theme.warn : theme.error;
|
|
407
407
|
defaultRuntime.log("");
|
|
408
|
-
defaultRuntime.log(`${theme.heading("
|
|
408
|
+
defaultRuntime.log(`${theme.heading("更新结果:")} ${statusColor(result.status.toUpperCase())}`);
|
|
409
409
|
if (result.root) {
|
|
410
410
|
defaultRuntime.log(` Root: ${theme.muted(result.root)}`);
|
|
411
411
|
}
|
|
@@ -422,7 +422,7 @@ function printResult(result, opts) {
|
|
|
422
422
|
}
|
|
423
423
|
if (!opts.hideSteps && result.steps.length > 0) {
|
|
424
424
|
defaultRuntime.log("");
|
|
425
|
-
defaultRuntime.log(theme.heading("
|
|
425
|
+
defaultRuntime.log(theme.heading("步骤:"));
|
|
426
426
|
for (const step of result.steps) {
|
|
427
427
|
const status = formatStepStatus(step.exitCode);
|
|
428
428
|
const duration = theme.muted(`(${formatDuration(step.durationMs)})`);
|
|
@@ -543,7 +543,7 @@ export async function updateCommand(opts) {
|
|
|
543
543
|
}
|
|
544
544
|
const showProgress = !opts.json && process.stdout.isTTY;
|
|
545
545
|
if (!opts.json) {
|
|
546
|
-
defaultRuntime.log(theme.heading("
|
|
546
|
+
defaultRuntime.log(theme.heading("正在更新 OpenClaw..."));
|
|
547
547
|
defaultRuntime.log("");
|
|
548
548
|
}
|
|
549
549
|
const { progress, stop } = createUpdateProgress(showProgress);
|
|
@@ -685,7 +685,7 @@ export async function updateCommand(opts) {
|
|
|
685
685
|
};
|
|
686
686
|
if (!opts.json) {
|
|
687
687
|
defaultRuntime.log("");
|
|
688
|
-
defaultRuntime.log(theme.heading("
|
|
688
|
+
defaultRuntime.log(theme.heading("正在更新插件..."));
|
|
689
689
|
}
|
|
690
690
|
const syncResult = await syncPluginsForUpdateChannel({
|
|
691
691
|
config: activeConfig,
|
|
@@ -750,7 +750,7 @@ export async function updateCommand(opts) {
|
|
|
750
750
|
if (shouldRestart) {
|
|
751
751
|
if (!opts.json) {
|
|
752
752
|
defaultRuntime.log("");
|
|
753
|
-
defaultRuntime.log(theme.heading("
|
|
753
|
+
defaultRuntime.log(theme.heading("正在重启服务..."));
|
|
754
754
|
}
|
|
755
755
|
try {
|
|
756
756
|
const { runDaemonRestart } = await import("./daemon-cli.js");
|
|
@@ -937,23 +937,23 @@ export function registerUpdateCli(program) {
|
|
|
937
937
|
.map(([cmd, desc]) => ` ${theme.command(cmd)} ${theme.muted(`# ${desc}`)}`)
|
|
938
938
|
.join("\n");
|
|
939
939
|
return `
|
|
940
|
-
${theme.heading("
|
|
940
|
+
${theme.heading("此命令功能:")}
|
|
941
941
|
- Git checkouts: fetches, rebases, installs deps, builds, and runs doctor
|
|
942
942
|
- npm installs: updates via detected package manager
|
|
943
943
|
|
|
944
|
-
${theme.heading("
|
|
944
|
+
${theme.heading("切换更新通道:")}
|
|
945
945
|
- Use --channel stable|beta|dev to persist the update channel in config
|
|
946
946
|
- Run openclaw update status to see the active channel and source
|
|
947
947
|
- Use --tag <dist-tag|version> for a one-off npm update without persisting
|
|
948
948
|
|
|
949
|
-
${theme.heading("
|
|
949
|
+
${theme.heading("非交互模式:")}
|
|
950
950
|
- Use --yes to accept downgrade prompts
|
|
951
951
|
- Combine with --channel/--tag/--restart/--json/--timeout as needed
|
|
952
952
|
|
|
953
|
-
${theme.heading("
|
|
953
|
+
${theme.heading("示例:")}
|
|
954
954
|
${fmtExamples}
|
|
955
955
|
|
|
956
|
-
${theme.heading("
|
|
956
|
+
${theme.heading("注意事项:")}
|
|
957
957
|
- Switch channels with --channel stable|beta|dev
|
|
958
958
|
- For global installs: auto-updates via detected package manager when possible (see docs/install/updating.md)
|
|
959
959
|
- Downgrades require confirmation (can break configuration)
|
|
@@ -996,11 +996,11 @@ ${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/up
|
|
|
996
996
|
.description("Show update channel and version status")
|
|
997
997
|
.option("--json", "Output result as JSON", false)
|
|
998
998
|
.option("--timeout <seconds>", "Timeout for update checks in seconds (default: 3)")
|
|
999
|
-
.addHelpText("after", () => `\n${theme.heading("
|
|
999
|
+
.addHelpText("after", () => `\n${theme.heading("示例:")}\n${formatHelpExamples([
|
|
1000
1000
|
["openclaw update status", "Show channel + version status."],
|
|
1001
1001
|
["openclaw update status --json", "JSON output."],
|
|
1002
1002
|
["openclaw update status --timeout 10", "Custom timeout."],
|
|
1003
|
-
])}\n\n${theme.heading("
|
|
1003
|
+
])}\n\n${theme.heading("注意事项:")}\n${theme.muted("- Shows current update channel (stable/beta/dev) and source")}\n${theme.muted("- Includes git tag/branch/SHA for source checkouts")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/update", "docs.openclaw.ai/cli/update")}`)
|
|
1004
1004
|
.action(async (opts) => {
|
|
1005
1005
|
try {
|
|
1006
1006
|
await updateStatusCommand({
|
|
@@ -100,7 +100,7 @@ export async function channelsListCommand(opts, runtime = defaultRuntime) {
|
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
const lines = [];
|
|
103
|
-
lines.push(theme.heading("
|
|
103
|
+
lines.push(theme.heading("聊天通道:"));
|
|
104
104
|
for (const plugin of plugins) {
|
|
105
105
|
const accounts = plugin.config.listAccountIds(cfg);
|
|
106
106
|
if (!accounts || accounts.length === 0)
|
|
@@ -118,7 +118,7 @@ export async function channelsListCommand(opts, runtime = defaultRuntime) {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
lines.push("");
|
|
121
|
-
lines.push(theme.heading("
|
|
121
|
+
lines.push(theme.heading("认证提供商(OAuth + API 密钥):"));
|
|
122
122
|
if (authProfiles.length === 0) {
|
|
123
123
|
lines.push(theme.muted("- none"));
|
|
124
124
|
}
|