Files
clawpanel/src/locales
晴天 2256c2c711 fix(audit): 复查第三波 — Hermes 安装向导 i18n 化漏网中文
第三轮逐文件复查发现 hermes/pages/setup.js 还有大量用户首屏可见的
中文硬编码(之前两轮主要扫 timer/cleanup/syntax/listener 类 bug)。

## 涉及修复

### setup.js phase 标签(5 处)
phase indicator 是用户最早看到的 UI 元素:
```
{ id: 'detect',    label: '检测' }   →  t('engine.hermesPhaseDetect')
{ id: 'install',   label: '安装' }   →  t('engine.hermesPhaseInstall')
{ id: 'configure', label: '配置' }   →  t('engine.hermesPhaseConfigure')
{ id: 'gateway',   label: '启动' }   →  t('engine.hermesPhaseGateway')
{ id: 'complete',  label: '完成' }   →  t('engine.hermesPhaseComplete')
```
英文用户原本看到的是 5 个汉字,现在按系统语言显示
Detect / Install / Configure / Start / Complete。

### setup.js Provider 分组标题(4 组)
configure 阶段渲染 provider 选择按钮时分组标题:
```
'国际 · API Key'        →  hermesProviderGroupIntl
'国内 · API Key'        →  hermesProviderGroupCn
'聚合 / 路由'           →  hermesProviderGroupAggregator
'OAuth 登录(需终端)'   →  hermesProviderGroupOAuth
'<provider>:需运行'     →  hermesProviderOAuthRunHint
```

### setup.js Provider 加载失败 fallback 文案
Web 模式下 provider 列表加载失败时的 12 行多行 hint,原本只有中文,
现已 11 语言 i18n。

### setup.js 检测异常日志 prefix
```js
logs.push(`检测错误: ${e}`)  →  `[detect error] ${e?.message || e}`
```
日志输出(用户在向导首屏可见)跟其他英文 prefix 一致,便于日志聚合。

## 新增 i18n key(engine 模块)
- hermesPhaseDetect / Install / Configure / Gateway / Complete
- hermesProviderGroupIntl / Cn / Aggregator / OAuth
- hermesProviderOAuthRunHint
- hermesProvidersLoadFallback

11 语言全覆盖(zh-CN / zh-TW / en / ja / ko / vi / es / pt / ru / fr / de)。

## 复查范围(第三轮)
- src-tauri/src/commands/*.rs  unwrap 全 safe(regex / SystemTime / Mutex)
- src/lib/  humanize-error / engine-manager / ws-client / message-db / tts 全部健全
- src/components/  modal / toast 无问题
- scripts/dev-api.js  176 个 handler 无 duplicate / 关键命令全有
- src/pages/  没发现新硬编码(之前的 i18n 覆盖到位)
- src/engines/hermes/pages/  setup.js 是唯一遗漏的中文重灾区,已修

## 验证
- npm run build:PASS(1.46s)
- 总计三轮复查共修 11 个 bug + 5 个 i18n 漏网
2026-05-14 07:41:01 +08:00
..
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00
2026-05-08 04:39:36 +08:00