# Round 2 开发现状检查表 状态:T0 完成 日期:2026-06-03 分支:`codex/round2-language-settings` worktree:`/Users/ar/Projects/VoiceSnap-2.1.1-Round2` 基线 commit:`f4194105fe06baa18f0145cc59e1914f96f2d4cb` ## 1. 当前代码事实 - Round 1 已有 `ModelProfile`、`LanguageProfile`、`ModelRegistry`、`LanguageRegistry` 的基础结构。 - `LanguageProfile` 当前只有 `zh-CN`。 - `Config` 当前有 `SelectedModelID`,没有 `LanguageMode` / `LanguageID`。 - `ConfigService` 当前只有通用设置 API,没有语言设置 API。 - 前端 i18n 当前在 `frontend/src/lib/i18n/index.ts` 内使用 `navigator.language` 自行判断。 - 设置页在 `GeneralPage.svelte`,现有控件风格以设置行、toggle、segmented button 为主。 - Round 2 不需要改 engine、downloader、model resolver 主流程。 ## 2. Round 2 改动入口 后端: - `privatevoice.src/internal/model/profile.go` - `privatevoice.src/internal/model/registry.go` - `privatevoice.src/internal/config/config.go` - `privatevoice.src/services/config_service.go` - 新增 `privatevoice.src/internal/language/` 前端: - `privatevoice.src/frontend/src/lib/i18n/index.ts` - `privatevoice.src/frontend/src/lib/stores/config.ts` - `privatevoice.src/frontend/src/components/settings/GeneralPage.svelte` - `privatevoice.src/frontend/src/lib/i18n/zh.json` - `privatevoice.src/frontend/src/lib/i18n/en.json` ## 3. 不应触碰的范围 - 不接入 Moonshine。 - 不接入 Parakeet。 - 不接入 Qwen3-ASR。 - 不改变 `SelectedModelID` 默认值。 - 不改变 SenseVoice 下载、安装、加载路径逻辑。 - 不改用户词库和历史格式。 ## 4. 开发顺序 - [x] T0 代码现状确认。 - [x] T1 LanguageProfile 扩展。 - [x] T2 Config 语言字段。 - [x] T3 系统语言检测。 - [x] T4 EffectiveLanguage resolver。 - [x] T5 ConfigService 语言 API。 - [x] T6 前端 i18n 初始化。 - [x] T7 设置页语言控件。 - [x] T8 文案补齐。 - [x] T9 自动化测试。 - [x] T10 开发自查。