feat: add language support and onboard configuration wizard (v0.2.0)

- Add language code intelligent parsing module (internal/lang)
- Support --lang parameter for target language specification
- Support multiple language code formats (BCP47, aliases, Chinese names)
- Implement interactive onboard configuration wizard
- Update Config struct with language fields
- Add survey library dependency for interactive UI
- Improve CLI command interface
- Add comprehensive unit tests for language module
- Update documentation (AGENTS.md, changelog.md, taolun.md, memory.md)

Supported language codes:
- Standard: zh-CN, zh-TW, en-US, en-GB, ja, ko, es, fr, de
- Aliases: cn, en, jp, kr, es, fr, de
- Chinese names: chinese, english, japanese

Commands:
- yoyo "Hello world" - basic translation
- yoyo --lang=cn "Hello world" - specify target language
- yoyo onboard - start configuration wizard
- yoyo onboard --force - force reconfiguration

Version: 0.2.0
This commit is contained in:
2026-03-29 01:30:42 +08:00
parent cd305a62ef
commit 24ba405d55
11 changed files with 1164 additions and 6 deletions

View File

@@ -148,4 +148,80 @@
**关联文档**:
- [memory.md#环境变量加载问题](memory.md#环境变量加载问题)
- [changelog.md#0.0.3](changelog.md#003)
- [changelog.md#0.0.3](changelog.md#003)
---
### [2026-03-29 10:00] 版本 0.2.0 - 语言代码解析设计
**原因**: 用户需要通过 `--lang` 参数指定目标语言,支持多种语言代码格式
**分析**:
- 需要支持标准BCP47格式`zh-CN``en-US`
- 需要支持简短别名(如 `cn``en`
- 需要支持中文名称(如 `chinese``english`
- 需要智能解析和错误提示
**解决方案**:
1. 创建 `internal/lang/lang.go` 模块
2. 实现语言代码映射表和解析函数
3. 支持大小写不敏感和模糊匹配
4. 提供语言名称获取和建议功能
**技术细节**:
- 使用 `map[string]string` 存储语言代码映射
- 实现 `ParseLanguageCode()` 函数进行智能解析
- 支持30+种语言和变体
- 添加完整的单元测试
**关联文档**:
- [AGENTS.md#语言代码处理](AGENTS.md#语言代码处理)
- [changelog.md#0.2.0](changelog.md#020)
---
### [2026-03-29 10:30] 版本 0.2.0 - onboard配置向导
**原因**: 用户需要友好的配置界面,特别是第一次使用时
**分析**:
- 需要交互式配置向导
- 需要支持选择厂商、输入API密钥、设置默认值
- 需要生成标准的YAML配置文件
- 需要支持强制重新配置
**解决方案**:
1. 使用 `github.com/AlecAivazis/survey/v2`
2. 实现分步配置流程:选择厂商 → 配置厂商 → 全局设置 → 保存
3. 提供友好的错误处理和用户提示
4. 支持 `--force` 参数强制重新配置
**技术细节**:
- 使用 `survey.Select``survey.Input``survey.Confirm` 组件
- 实现厂商默认配置和自定义选项
- 生成完整的配置文件包含所有必要字段
- 支持配置文件存在性检查
**关联文档**:
- [AGENTS.md#Onboard配置向导](AGENTS.md#onboard配置向导)
- [changelog.md#0.2.0](changelog.md#020)
---
### [2026-03-29 11:00] 版本 0.2.0 - 分阶段迁移策略
**原因**: 需要平衡开发便利性和最终上线需求
**分析**:
- 开发阶段需要简单配置方式(`.env` + `configs/config.yaml`
- 上线前需要迁移到用户配置目录(`~/.config/yoo/yoo.yml`
- 需要平滑的迁移路径和向后兼容性
**解决方案**:
1. **第一阶段(当前)**: 继续使用 `.env` + `configs/config.yaml`
2. **第二阶段(上线前)**: 实现配置文件路径查找和迁移工具
3. **第三阶段(最终)**: 移除 `.env` 依赖,完全使用配置文件
**技术细节**:
- 配置文件路径优先级:命令行 > 环境变量 > 用户目录 > 当前目录
- 保持向后兼容性,支持旧配置格式
- 提供配置验证和错误提示
- 实现配置迁移工具(计划)
**关联文档**:
- [AGENTS.md#分阶段迁移策略](AGENTS.md#分阶段迁移策略)
- [changelog.md#0.2.0](changelog.md#020)