背景
在 PR #19 的 review 中发现,desktop 后端会直接向 overlay/frontend 传递中文用户可见错误信息,例如:
show_overlay_error(&app, 没有识别到可输出文本);
这不是单点问题。目前录音、音频处理、转写、pipeline 等流程里还有多处中文硬编码错误文案。由于 TypeX 已经支持 English / zh-CN,本地化逻辑如果继续分散在 Rust 后端,会导致英文界面下仍然出现中文错误。
需要处理的问题
- 后端不应该直接决定用户界面语言。
- 后端传给 frontend/overlay 的用户可见错误应改为结构化信息,例如 error code / message key / optional detail。
- frontend/overlay 根据当前 UI language 做本地化展示。
- 动态错误详情仍可作为 detail 附加显示,例如底层错误字符串、设备名、provider 返回信息等。
建议方向
{
code: no_output_text,
detail: null
}
- frontend 使用 i18n key 映射:
error.no_output_text
error.microphone_unavailable
error.recording_start_failed
error.pipeline_failed
- 等等
- overlay 和主窗口共用同一套错误 key。
- 保留后端日志中的详细错误,避免丢失调试信息。
验收标准
- English UI 下不会再出现中文硬编码错误。
- zh-CN UI 下仍显示自然中文错误文案。
- 后端用户可见错误输出集中使用 error code / translation key。
- 动态错误详情不会泄露敏感信息,例如 API key。
背景
在 PR #19 的 review 中发现,desktop 后端会直接向 overlay/frontend 传递中文用户可见错误信息,例如:
这不是单点问题。目前录音、音频处理、转写、pipeline 等流程里还有多处中文硬编码错误文案。由于 TypeX 已经支持 English / zh-CN,本地化逻辑如果继续分散在 Rust 后端,会导致英文界面下仍然出现中文错误。
需要处理的问题
建议方向
{ code: no_output_text, detail: null }error.no_output_texterror.microphone_unavailableerror.recording_start_failederror.pipeline_failed验收标准