edit | blame | history | raw

2026-06-23 输入页签拆分

用户目标

将当前设置页中拥挤的语言选择独立出来,先做“阶段 1:拆出语言 / 输入页签,不改每语言配置结构”。

当前起点

  • 分支:codex/x-asr-experiment-2.1.29
  • 工作区已有大量未提交改动,本轮只围绕前端设置页拆分。
  • 原状态:GeneralPage.svelte 同时承载热键、设备、通用开关、语言选择和模型选择。

已完成事项

  • 新增 LanguagePage.svelte,承接输入语言选择和识别模型列表 / 下载 / 切换逻辑。
  • SettingsWindow.svelte 新增“输入”页签,并接入新页面。
  • GeneralPage.svelte 移除语言 / 模型相关状态、后端调用、页面区块和样式,只保留首页通用设置。
  • 中英文 i18n 新增输入页签和页面标题 / 描述文案。

关键决策

  • 本轮只做 UI 信息架构拆分。
  • 不新增每语言模型偏好字段。
  • 不改配置结构。
  • 不触碰 X-ASR 识别链路、上屏逻辑、构建发布规则。

文件变更

  • privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
  • privatevoice.src/frontend/src/components/settings/GeneralPage.svelte
  • privatevoice.src/frontend/src/components/settings/SettingsWindow.svelte
  • privatevoice.src/frontend/src/lib/i18n/zh.json
  • privatevoice.src/frontend/src/lib/i18n/en.json

验证结果

  • npm run build 通过。
  • npx svelte-check --tsconfig ./tsconfig.json 通过,0 errors。
  • 仍有 3 个既有 Svelte 可访问性 warning,位于 ToggleSwitch.svelteUpdateDialog.svelte,不是本轮改动引入。
  • git diff --check 通过。

未决问题

  • 尚未做真实 App 窗口视觉 QA。
  • 尚未打测试包。
  • 后续阶段如果要做“每语言默认模型 / 备用模型 / 自动选择最佳模型 / 模型删除”,需要另起配置结构设计。