|
23 | 23 | | `ui-welcome.json` | 🟢 | 🟢 | Phase 2 | WelcomeScreen | ✅ 完成 | |
24 | 24 | | `ui-mcp.json` | 🟢 | 🟢 | Phase 2 | McpStatusList | ✅ 完成 | |
25 | 25 | | `ui-slash-commands.json` | 🟢 | 🟢 | Phase 2 | slashCommands.ts | ✅ 完成 | |
26 | | -| `ui-session-list.json` | 🟢 | 🟢 | Phase 2 | SessionList | ✅ 完成 | |
| 26 | +| `ui-session-list.json` | 🟢 | 🟢 | Phase 2 | SessionList | ⚠️ 部分(6处硬编码提示未翻译,见下方 §8 更新) | |
27 | 27 | | `ui-ask-question.json` | 🟢 | 🟢 | Phase 2 | AskUserQuestionPrompt | ✅ 完成 | |
28 | 28 | | `ui-process-stdout.json` | 🟢 | 🟢 | Phase 2 | ProcessStdoutView | ✅ 完成 | |
29 | 29 | | `ui-update-prompt.json` | 🟢 | 🟢 | Phase 2 | UpdatePrompt | ✅ 完成 | |
|
379 | 379 |
|
380 | 380 | **文件**: `src/ui/SessionList.tsx` |
381 | 381 |
|
| 382 | +> **更新 (2026-05-26)**:以下原始遗漏项已通过 `t()` 调用修复:escBack、total、matched、noMatch、untitled、above、below、footerHelp、statusDone/Running/Pending/Waiting/Failed/Stopped。✅ |
| 383 | +
|
| 384 | +**仍为硬编码的 tips(以下文本未经翻译)**: |
| 385 | + |
| 386 | +**8a. 会话行内删除确认提示** |
382 | 387 | | 行号 | 硬编码文本 | 建议 key | |
383 | 388 | |------|-----------|---------| |
384 | | -| 162 | `"Press Esc to go back."` | `ui.sessionList.escBack` | |
385 | | -| 185 | `"total"` | `ui.sessionList.total` | |
386 | | -| 186 | `", {n} matched"`(参数化) | `ui.sessionList.matched` | |
387 | | -| 213 | `'No sessions match "{query}".'`(参数化) | `ui.sessionList.noMatch` | |
388 | | -| 229 | `"Untitled"` | `ui.sessionList.untitled` | |
389 | | -| 243 | `"sessions above."`(参数化) | `ui.sessionList.above` | |
390 | | -| 245 | `"sessions below."`(参数化) | `ui.sessionList.below` | |
391 | | -| 253-259 | Footer 帮助文本 | `ui.sessionList.footerHelp` | |
392 | | -| 284-301 | `formatSessionStatus()` 状态值 | `ui.sessionList.statusDone`/`Running`/`Pending`/`Waiting`/`Failed`/`Stopped` | |
| 389 | +| 254 | `" [Delete? Enter=yes, Esc=no]"` | `ui.sessionList.deleteConfirmHint` | |
| 390 | + |
| 391 | +**8b. Footer 删除确认帮助文本** |
| 392 | +| 行号 | 硬编码文本 | 建议 key | |
| 393 | +|------|-----------|---------| |
| 394 | +| 282 | `"Delete this session? "` | `ui.sessionList.deleteTitle` | |
| 395 | +| 286 | `" to confirm · "` | `ui.sessionList.confirmAction` | |
| 396 | +| 290 | `" to cancel"` | `ui.sessionList.cancelAction` | |
| 397 | + |
| 398 | +**8c. `formatSessionStatus()` 状态值 — 这两个未走 `t()` 翻译** |
| 399 | +| 行号 | 硬编码文本 | 建议 key | |
| 400 | +|------|-----------|---------| |
| 401 | +| 338 | `"waiting"`(`ask_permission` 状态) | `ui.sessionList.statusPermission` | |
| 402 | +| 340 | `"denied"`(`permission_denied` 状态) | `ui.sessionList.statusDenied` | |
| 403 | + |
| 404 | +> **共计 6 处硬编码字符串**,建议新增 6 个 translation key 到 `ui-session-list.json`。 |
393 | 405 |
|
394 | 406 | ### 9. UndoSelector (`/undo` 命令二级页面) — 几乎完全未翻译 |
395 | 407 |
|
|
424 | 436 | | 176 | `"timeout {duration}"` | `ui.processStdout.timeoutHint` | |
425 | 437 | | 183 | `"Timeout set to {duration}"` | `ui.processStdout.timeoutSet` | |
426 | 438 |
|
| 439 | +### 11. WelcomeScreen Tips 组件 — 遗漏翻译 |
| 440 | + |
| 441 | +**文件**: `src/ui/WelcomeScreen.tsx` |
| 442 | + |
| 443 | +> **背景**:`buildWelcomeTips()` 生成的随机快捷键提示行,"Tips:" 前缀为硬编码英文。 |
| 444 | +
|
| 445 | +| 行号 | 硬编码文本 | 建议 key | |
| 446 | +|------|-----------|---------| |
| 447 | +| 82 | `"Tips: "`(第82行 `Tips: {tip.label} - {tip.description}`) | `ui.welcome.tipsPrefix` | |
| 448 | + |
| 449 | +> 快捷键描述已全部通过 `t("ui.welcome.*")` 翻译 ✅,仅前缀 "Tips:" 遗漏。 |
| 450 | +
|
| 451 | +### 12. PermissionPrompt(权限请求弹窗)— 完全未翻译 |
| 452 | + |
| 453 | +**文件**: `src/ui/PermissionPrompt.tsx` |
| 454 | + |
| 455 | +> 该组件整体未接入 i18n,所有用户可见文本均为硬编码英文。 |
| 456 | +
|
| 457 | +| 行号 | 硬编码文本 | 建议 key | |
| 458 | +|------|-----------|---------| |
| 459 | +| 131 | `"Permission required"`(标题) | `ui.permissionPrompt.title` | |
| 460 | +| 142 | `"Do you want to proceed?"`(询问文案) | `ui.permissionPrompt.proceedQuestion` | |
| 461 | +| 153 | `"↑/↓ move · Enter select · Esc interrupt"`(底部帮助) | `ui.permissionPrompt.footerHelp` | |
| 462 | +| 182 | `"Yes"`(允许按钮) | `ui.permissionPrompt.allowLabel` | |
| 463 | +| 186 | `"Yes, and always allow "`(始终允许按钮) | `ui.permissionPrompt.alwaysAllowLabel` | |
| 464 | +| 191 | `"No"`(拒绝按钮) | `ui.permissionPrompt.denyLabel` | |
| 465 | +| 252 | `"reads inside this workspace"` | `ui.permissionPrompt.scopeReadInCwd` | |
| 466 | +| 254 | `"reads outside this workspace"` | `ui.permissionPrompt.scopeReadOutCwd` | |
| 467 | +| 256 | `"writes inside this workspace"` | `ui.permissionPrompt.scopeWriteInCwd` | |
| 468 | +| 258 | `"writes outside this workspace"` | `ui.permissionPrompt.scopeWriteOutCwd` | |
| 469 | +| 260 | `"deletes inside this workspace"` | `ui.permissionPrompt.scopeDeleteInCwd` | |
| 470 | +| 262 | `"deletes outside this workspace"` | `ui.permissionPrompt.scopeDeleteOutCwd` | |
| 471 | +| 264 | `"Git history queries"` | `ui.permissionPrompt.scopeQueryGitLog` | |
| 472 | +| 266 | `"Git history changes"` | `ui.permissionPrompt.scopeMutateGitLog` | |
| 473 | +| 268 | `"network access"` | `ui.permissionPrompt.scopeNetwork` | |
| 474 | +| 270 | `"MCP tool access"` | `ui.permissionPrompt.scopeMcp` | |
| 475 | + |
| 476 | +### 13. App.tsx — 遗漏状态消息 |
| 477 | + |
| 478 | +**文件**: `src/ui/App.tsx` |
| 479 | + |
| 480 | +| 行号 | 硬编码文本 | 建议 key | |
| 481 | +|------|-----------|---------| |
| 482 | +| 706 | `"Permission denied. Add a reply, then press Enter to continue."` | `ui.app.permissionDenied` | |
| 483 | + |
427 | 484 | --- |
428 | 485 |
|
429 | 486 | ## 已解决的已知问题 |
|
464 | 521 | | `ui.app.*` | 16 | 3 | 19% | 🔴 | |
465 | 522 | | `ui.askUserQuestion.*` | 3 | 0 | 0% | 🔴 | |
466 | 523 | | `ui.processStdout.*` | 4 | 0 | 0% | 🔴 | |
467 | | -| `ui.sessionList.*` | 2 | 0 | 0% | 🔴 | |
| 524 | +| `ui.sessionList.*` | 19 | 19 | 100% | ✅ 全部使用;另有 6 处硬编码需新增 key(删除确认+waiting/denied) | |
468 | 525 | | `ui.updatePrompt.*` | 1 | 0 | 0% | 🔴 | |
469 | 526 | | `session.skillPromptHeader` | 1 | 0 | 0% | 🔴 | |
470 | 527 |
|
|
492 | 549 | | `ui.mcp.serverList` | McpStatusList 使用字面量 `"server-list"` | |
493 | 550 | | `ui.mcp.statusConnecting` | McpStatusList 字面量 | |
494 | 551 | | `ui.slashCommands.continueDesc` | slashCommands.ts 第 62 行硬编码英文 | |
495 | | -| `ui.sessionList.title` | SessionList 硬编码 | |
496 | | -| `ui.sessionList.empty` | SessionList 硬编码 | |
497 | 552 | | `ui.askUserQuestion.submit` | AskUserQuestionPrompt 硬编码 | |
498 | 553 | | `ui.askUserQuestion.cancel` | AskUserQuestionPrompt 硬编码 | |
499 | 554 | | `ui.askUserQuestion.selectOption` | AskUserQuestionPrompt 硬编码 | |
|
0 commit comments