feat: harden Flow cold-start/force-quit and polish macOS dictation UX

Fix cold-start overlay recursion that overflowed the main-thread stack when
recording began while the ready overlay was still up; also remove temporary
on-screen Flow DEBUG panels after the orange-mic investigation, and land the
macOS overlay/catalog/layout polish plus related Flow recovery hardening.
This commit is contained in:
Rocky
2026-07-10 12:39:41 +08:00
parent dcb66a9849
commit cdf833935a
104 changed files with 5794 additions and 853 deletions
+37 -6
View File
@@ -101,18 +101,25 @@
"keyboard.translation.a11yHint" = "切换翻译或更改目标语言。";
/* macOS 应用 */
"mac.section.dashboard" = "仪表盘";
"mac.section.dashboard" = "首页";
"mac.section.history" = "历史";
"mac.section.dictionary" = "个性词库";
"mac.section.dictionary" = "词库";
"mac.section.settings" = "设置";
"mac.brand.subtitle" = "AI 听写";
"mac.brand.tagline" = "开口即文字。";
"mac.brand.tagline.subtitle" = "本地优先 · 跨端同步 · 一键听写";
"mac.devices" = "设备";
"mac.status.ready" = "准备听写…";
"mac.status.listening" = "录音中…";
"mac.page.history.subtitle" = "每一次听写,按时间妥善保存。";
"mac.page.dictionary.subtitle" = "让识别更懂你的用词。";
"mac.page.settings.subtitle" = "引擎、快捷键与外观。";
"mac.status.ready" = "准备好了,随时开口…";
"mac.status.listening" = "正在聆听…";
"mac.status.transcribing" = "识别中…";
"mac.status.polishing" = "润色中…";
"mac.status.copied" = "已复制到剪贴板";
"mac.status.pasted" = "已插入前台应用";
"mac.status.copiedAndPasted" = "已复制并插入";
"mac.status.deliveryWithNote" = "%@ — %@";
"mac.stat.dictationTime" = "听写时长";
"mac.stat.words" = "听写字数";
"mac.stat.translation" = "翻译字数";
@@ -123,6 +130,12 @@
"mac.stat.customTerms" = "自定义词条";
"mac.status.chipReady" = "就绪";
"mac.status.chipProcessing" = "处理中";
"mac.overlay.listening" = "聆听中";
"mac.overlay.preparing" = "启动中…";
"mac.overlay.transcribing" = "识别中";
"mac.overlay.polishing" = "润色中";
"mac.overlay.live" = "实时";
"mac.overlay.done" = "已完成";
"mac.record.start" = "开始录音";
"mac.record.stop" = "停止";
"mac.record.pressStop" = "点击停止";
@@ -133,8 +146,8 @@
"mac.mode.local" = "本地模式";
"mac.connected" = "已连接";
"mac.offline" = "离线";
"mac.history.recent" = "最近";
"mac.history.empty" = "还没有语音识别记录。";
"mac.history.empty" = "还没有听写记录";
"mac.history.emptyBody" = "在任意应用按住 Option 开口说话,记录会出现在这里。";
"mac.history.select" = "选择一条记录";
"mac.history.clearTitle" = "清空全部历史?";
"mac.history.clearMessage" = "此操作无法撤销。";
@@ -151,6 +164,12 @@
"mac.dict.deleteMessage" = "此操作无法撤销。";
"mac.hint.holdOption" = "长按 Option 开始听写";
"mac.settings.cloudProvider" = "云端服务商";
"mac.settings.polishProvider" = "文本润色(LLM";
"mac.settings.asrProvider" = "语音转写(ASR";
"mac.settings.asrService" = "转写服务";
"mac.settings.asrApiKey" = "转写 API 密钥";
"mac.settings.asrModel" = "转写模型";
"mac.settings.baseURL" = "接口地址";
"mac.settings.service" = "服务商";
"mac.settings.apiKey" = "API 密钥";
"mac.settings.model" = "模型";
@@ -174,6 +193,15 @@
"mac.settings.autoPasteDesc" = "转写完成后向前台应用模拟 ⌘V(需辅助功能权限)。";
"mac.settings.hotkey" = "全局快捷键";
"mac.settings.hotkeyDesc" = "按住 Option (⌥) 键即可从任意应用开始听写。";
"mac.settings.hotkeyTrigger" = "快捷键按键";
"mac.settings.hotkeyTriggerDesc" = "按住哪个 Option (⌥) 键开始听写。";
"mac.hotkeyTrigger.rightOption" = "右 Option (⌥)";
"mac.hotkeyTrigger.leftOption" = "左 Option (⌥)";
"mac.hotkeyTrigger.eitherOption" = "任一 Option 键";
"mac.hint.hold.rightOption" = "长按右 Option(⌥)开始听写";
"mac.hint.hold.leftOption" = "长按左 Option(⌥)开始听写";
"mac.hint.hold.eitherOption" = "长按任一 Option(⌥)开始听写";
"mac.hint.holdOption" = "长按 Option 开始听写";
"mac.settings.qwen3Model" = "Qwen3 模型目录";
"mac.settings.qwen3ModelDesc" = "需包含 config.json、model.safetensors、vocab.json 与 merges.txt。";
"mac.settings.qwen3Browse" = "选择文件夹…";
@@ -241,6 +269,9 @@
"mac.localASR.installed" = "已安装";
"mac.localASR.notInstalled" = "未安装";
"mac.localASR.personalDictionaryTag" = "个性词库";
"mac.localASR.badge.fastest" = "速度最快";
"mac.localASR.badge.balanced" = "最平衡";
"mac.localASR.badge.quality" = "质量最好";
"mac.localASR.hotwordsYes" = "支持热词";
"mac.localASR.hotwordsNo" = "无热词";
"mac.localASR.catalogMissing" = "应用包内缺少本地 ASR 模型目录。";