edit | blame | history | raw

Round 2 QA Handoff

状态:研发自测完成,待 QA
日期:2026-06-03
分支:codex/round2-language-settings
worktree:/Users/ar/Projects/VoiceSnap-2.1.1-Round2
基线 commit:f4194105fe06baa18f0145cc59e1914f96f2d4cb

1. 交付内容

本轮实现:

  • 新增 LanguageMode / LanguageID 配置字段。
  • 扩展 LanguageProfile,新增 en
  • 新增 internal/language 包:
  • 系统语言检测。
  • locale normalize。
  • effective language resolver。
  • 新增 ConfigService 语言 API:
  • GetLanguageSettings
  • SetLanguageAuto
  • SetLanguageManual
  • 前端 i18n 改为优先使用后端 effective language。
  • 设置页新增语言版本控件:
  • 自动
  • 中文
  • English
  • 语言切换不改变 SelectedModelID,不触发模型下载、删除或迁移。

2. 变更文件

后端:

  • privatevoice.src/app.go
  • privatevoice.src/internal/config/config.go
  • privatevoice.src/internal/config/config_test.go
  • privatevoice.src/internal/language/
  • privatevoice.src/internal/model/profile.go
  • privatevoice.src/internal/model/registry.go
  • privatevoice.src/services/config_service.go

前端:

  • privatevoice.src/frontend/src/App.svelte
  • privatevoice.src/frontend/src/components/settings/GeneralPage.svelte
  • privatevoice.src/frontend/src/lib/i18n/index.ts
  • privatevoice.src/frontend/src/lib/i18n/zh.json
  • privatevoice.src/frontend/src/lib/i18n/en.json
  • privatevoice.src/frontend/src/lib/stores/config.ts

项目资料:

  • 02-P-NBL/round-2/

3. 自测结果

已执行:

cd privatevoice.src/frontend
npm run build

结果:PASS。

日志:

/Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/npm-run-build-20260603.log

已执行:

cd privatevoice.src
go test ./... -count=1

结果:PASS。

日志:

/Users/ar/Projects/VoiceSnap-2.1.1-Round2/02-P-NBL/round-2/logs/go-test-all-20260603.log

已执行:

git diff --check

结果:PASS。

4. QA 重点

必须重点验证:

  • 老用户缺少 LanguageMode / LanguageID 的旧 config 可正常升级。
  • 中文系统 auto 解析为中文 UI。
  • English 系统 auto 解析为 English UI。
  • 其他系统语言 auto 解析为 English UI。
  • 设置页选择中文后立即中文。
  • 设置页选择 English 后立即 English。
  • 设置页选择自动后跟随系统语言。
  • 重启后语言设置持久化。
  • 语言切换不改变 SelectedModelID
  • 语言切换不触发模型下载。
  • 语言切换不删除或迁移 models/sensevoice
  • 语言切换后 replacement、history、热键、音频设备、Dock 设置仍保留。
  • 断网已有模型识别仍通过。

5. 已知风险

  • 前端 build 仍有既有 Svelte a11y warning,来源为 UpdateDialog.svelteToggleSwitch.svelte,非本轮新增控件。
  • npm audit 仍报告 6 个问题,沿用 Round 1 已知风险。
  • 新用户 English UI 本轮仍使用 SenseVoice;Moonshine 要等 Round 3。
  • macOS 系统语言检测使用系统 locale / fallback 环境变量,QA 应优先用 mock 或构造配置覆盖确定性路径。

6. 不属于本轮

  • Moonshine。
  • Parakeet。
  • Qwen3-ASR。
  • 模型选择页。
  • 模型删除/回滚。
  • 30+ 语言列表。
  • Developer ID 签名和 notarization。