edit | blame | history | raw

Round 2 开发现状检查表

状态:T0 完成
日期:2026-06-03
分支:codex/round2-language-settings
worktree:/Users/ar/Projects/VoiceSnap-2.1.1-Round2
基线 commit:f4194105fe06baa18f0145cc59e1914f96f2d4cb

1. 当前代码事实

  • Round 1 已有 ModelProfileLanguageProfileModelRegistryLanguageRegistry 的基础结构。
  • 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 开发自查。