feat: 实现模块6 - TUI集成翻译 (Enter翻译/异步执行/加载状态)
This commit is contained in:
39
taolun.md
39
taolun.md
@@ -543,5 +543,44 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
|
||||
**下一步**: 实现模块6: 集成翻译
|
||||
|
||||
**关联文档**:
|
||||
- [changelog.md#0.6.0](changelog.md#060)
|
||||
|
||||
---
|
||||
|
||||
### [2026-04-06 13:00] 版本 0.6.0 - 模块6: 集成翻译 (已完成)
|
||||
**原因**: 将Translator集成到TUI,实现真正的翻译功能
|
||||
**分析**:
|
||||
- 需要在Enter键时调用翻译API
|
||||
- 需要异步执行避免阻塞UI
|
||||
- 需要显示loading状态和错误处理
|
||||
|
||||
**解决方案**:
|
||||
1. 添加translateMsg消息类型处理异步结果
|
||||
2. 添加loading和errMsg字段
|
||||
3. 实现doTranslate()函数执行异步翻译
|
||||
4. Update中处理translateMsg消息
|
||||
5. View中显示loading状态或错误信息
|
||||
|
||||
**技术实现**:
|
||||
```go
|
||||
type translateMsg struct {
|
||||
result string
|
||||
err error
|
||||
}
|
||||
|
||||
func (m model) doTranslate(text, toLang string) tea.Cmd {
|
||||
return func() tea.Msg {
|
||||
result, err := m.translator.Translate(...)
|
||||
if err != nil {
|
||||
return translateMsg{err: err}
|
||||
}
|
||||
return translateMsg{result: result.Translated}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**下一步**: 测试TUI界面、优化体验
|
||||
|
||||
**关联文档**:
|
||||
- [changelog.md#0.6.0](changelog.md#060)
|
||||
Reference in New Issue
Block a user