feat: sync force-quit Flow teardown and polish macOS local ASR UX

End Live Activities and release the audio session synchronously on
applicationWillTerminate, and continue macOS local-model install,
onboarding, and settings polish on this branch.
This commit is contained in:
Rocky
2026-07-09 17:13:07 +08:00
parent 200265fbd6
commit dcb66a9849
34 changed files with 1936 additions and 340 deletions
+43 -4
View File
@@ -162,6 +162,10 @@
"mac.settings.localSpeechFallback" = "本地识别(Apple Speech";
"mac.settings.localSpeechFallbackDesc" = "未安装 Qwen3 模型时,使用 Apple 本地语音识别。";
"mac.settings.about" = "关于";
"mac.settings.privacyPolicy" = "隐私政策";
"mac.settings.thirdPartyLicenses" = "第三方许可";
"mac.settings.licenses.footer" = "以下为 OSGKeyboard 使用的开源组件。许可正文摘自上游仓库;模型权重在运行时下载并缓存在本机。OSGKeyboard 本身采用源码可见许可,商业授权请联系 rocky.hk@gmail.com。";
"mac.settings.restartOnboarding" = "重新开始首次引导";
"mac.settings.general" = "通用";
"mac.settings.input" = "输入与快捷键";
"mac.settings.recognitionLanguage" = "识别语言";
@@ -185,14 +189,48 @@
"mac.appearance.system" = "跟随系统";
"mac.appearance.light" = "浅色";
"mac.appearance.dark" = "深色";
"mac.onboarding.progress" = "第 %lld 步,共 %lld 步";
"mac.onboarding.back" = "上一步";
"mac.onboarding.next" = "下一步";
"mac.onboarding.finish" = "完成";
"mac.onboarding.skipForNow" = "暂时跳过";
"mac.onboarding.welcome.title" = "欢迎使用 OSGKeyboard";
"mac.onboarding.welcome.subtitle" = "用一分钟完成听写基础配置。这里的选项之后都可以在设置里修改。";
"mac.onboarding.welcome.privacy" = "除非你选择云端服务商,语音会优先留在本机处理。";
"mac.onboarding.welcome.hotkey" = "按住 Option 键即可在任意应用开始听写。";
"mac.onboarding.welcome.local" = "Sherpa 本地识别可以现在准备,也可以稍后下载。";
"mac.onboarding.microphone.title" = "允许麦克风访问";
"mac.onboarding.microphone.subtitle" = "OSGKeyboard 需要麦克风来录制你的听写音频。";
"mac.onboarding.microphone.allow" = "允许麦克风";
"mac.onboarding.microphone.granted" = "麦克风权限已授权。";
"mac.onboarding.microphone.needed" = "录音需要麦克风权限。";
"mac.onboarding.accessibility.title" = "开启辅助功能";
"mac.onboarding.accessibility.subtitle" = "辅助功能用于全局快捷键和向前台应用粘贴文本。你可以先跳过,之后再授权。";
"mac.onboarding.accessibility.open" = "打开系统设置";
"mac.onboarding.accessibility.granted" = "辅助功能权限已授权。";
"mac.onboarding.accessibility.needed" = "尚未开启辅助功能权限。";
"mac.onboarding.engine.title" = "选择识别方式";
"mac.onboarding.engine.subtitle" = "默认可用本地识别以保护隐私,也可以配置自己的云端 API。";
"mac.onboarding.engine.localDesc" = "使用 Sherpa 本地模型进行私密转写;模型未安装前会回退到 Apple 语音识别。";
"mac.onboarding.engine.cloudDesc" = "使用你的 API Key 进行云端语音识别和 AI 润色。";
"mac.onboarding.cloud.title" = "配置 API 访问";
"mac.onboarding.cloud.subtitle" = "选择服务商并填写密钥。此步骤可跳过,之后可在设置中补齐。";
"mac.onboarding.cloud.skipHint" = "可以先留空并完成引导;云端模式使用前会提示需要 API Key。";
"mac.onboarding.model.title" = "准备本地识别";
"mac.onboarding.model.subtitle" = "现在下载基础 Sherpa runtime 和默认模型,或先跳过并使用 Apple Speech 兜底。";
"mac.onboarding.model.download" = "下载默认模型";
"mac.onboarding.model.done" = "本地模型已准备好。";
"mac.onboarding.model.skipHint" = "跳过不会影响使用:设置页保留同样的下载入口。";
"mac.onboarding.popover.title" = "完成首次配置";
"mac.onboarding.popover.subtitle" = "打开主窗口选择权限、API 设置和本地模型下载。";
"mac.error.noAudio" = "没有捕获到音频";
"mac.error.noCloudASR" = "当前服务商不支持云端语音识别";
"mac.error.emptyTranscript" = "没有识别到语音";
"mac.error.qwen3ModelMissing" = "未安装 Qwen3-ASR 模型";
"mac.error.qwen3LoadFailed" = "Qwen3 模型加载失败:%@";
"mac.error.qwen3InferenceFailed" = "Qwen3 转写失败:%@";
"mac.localASR.models" = "本地 ASR 模型";
"mac.localASR.modelsDesc" = "Sherpa 模型可直接下载;MLX Qwen3 请将转换好的权重放入「打开目录」指向的文件夹。三个模型共用同一存储目录。";
"mac.localASR.models" = "本地 ASR 引擎与模型";
"mac.localASR.modelsDesc" = "模型可直接下载。中国大陆优先 ModelScope,其他地区优先 Hugging Face,再回退 GitHub。Qwen3 1.7B 以多文件方式下载。";
"mac.localASR.download" = "下载";
"mac.localASR.selectFolder" = "选择目录";
"mac.localASR.openFolder" = "打开目录";
@@ -202,6 +240,7 @@
"mac.localASR.installDone" = "安装完成。";
"mac.localASR.installed" = "已安装";
"mac.localASR.notInstalled" = "未安装";
"mac.localASR.personalDictionaryTag" = "个性词库";
"mac.localASR.hotwordsYes" = "支持热词";
"mac.localASR.hotwordsNo" = "无热词";
"mac.localASR.catalogMissing" = "应用包内缺少本地 ASR 模型目录。";
@@ -219,8 +258,8 @@
"mac.localASR.redownload" = "重新下载";
"mac.localASR.revealInFinder" = "在 Finder 中显示";
"mac.localASR.openStorage" = "打开模型存储目录";
"mac.localASR.runtime" = "Sherpa 运行时";
"mac.localASR.runtimeDesc" = "Sherpa Qwen3 与 SenseVoice 模型需要此运行时;下载上述模型时会自动安装。";
"mac.localASR.runtime" = "本地识别运行时";
"mac.localASR.runtimeDesc" = "下载上述模型时会自动安装;Qwen3 与 SenseVoice 模型需要此组件。";
"mac.localASR.phase.downloading" = "下载中";
"mac.localASR.phase.paused" = "已暂停";
"mac.localASR.phase.extracting" = "解压中";