feat: macOS architecture, cloud ASR/LLM providers, and 6-step iOS onboarding

- Add macOS menu-bar dictation app with local ASR models (SenseVoice/Qwen3),
  global Option hotkey, and bottom overlay
- Add cloud ASR/LLM providers (Anthropic, Volcengine, Bailian, and more) with
  provider logos, model listing, and connection checks
- Add shared 7-day usage stats UI (UsageStatsCluster / SevenDayUsageChart)
- Add iOS onboarding step 6 for polish LLM setup; hide custom-language-model
  diagnostic toggle behind DEBUG
- Unify iOS onboarding tagline with the macOS brand line ("开口即文字。")
- Rewrite README (Chinese-first, product-oriented) and refresh GitHub Pages
This commit is contained in:
Rocky
2026-07-11 19:10:20 +08:00
parent cdf833935a
commit cc8dd1070a
116 changed files with 6659 additions and 2634 deletions
+58 -11
View File
@@ -11,11 +11,27 @@
/* LLM providers */
"provider.openai" = "OpenAI";
"provider.ark" = "火山方舟 Ark";
"provider.deepseek" = "DeepSeek";
"provider.qwen" = "通义千问";
"provider.zhipu" = "智谱 GLM";
"provider.moonshot" = "月之暗面";
"provider.siliconflow" = "硅基流动";
"provider.groq" = "Groq";
"provider.minimax" = "MiniMax";
"provider.mimo" = "小米 MiMo";
"provider.openrouter" = "OpenRouter";
"provider.gemini" = "Google Gemini";
"provider.anthropic" = "Anthropic Claude";
"provider.xai" = "xAI Grok";
"provider.mistral" = "Mistral AI";
"provider.cometapi" = "CometAPI";
"provider.alibabaCoding" = "阿里 Coding";
"provider.codingPlanX" = "CodingPlanX";
"provider.volcengine" = "火山引擎 ASR";
"provider.bailian" = "百炼实时 ASR";
"provider.whisper" = "Whisper (OpenAI)";
"provider.codex_oauth" = "Codex OAuth";
"provider.custom" = "自定义";
/* LLM errors */
@@ -44,6 +60,15 @@
"error.cloudASR.emptyTranscript" = "云端识别返回了空文本。";
"error.cloudASR.audioTooLong" = "音频片段超过该云端识别服务的时长限制。";
"error.cloudASR.providerUnsupported" = "该服务商暂不支持云端语音识别。";
"error.cloudASR.streamingNotImplemented" = "该服务商需要流式 ASR(WebSocket),当前版本尚未接入。可改用通义、智谱、Groq 或 OpenAI。";
/* 服务商工具 */
"providerTools.error.invalidURL" = "模型接口地址无效。";
"providerTools.error.missingAPIKey" = "未填写 API Key。";
"providerTools.error.http" = "模型接口返回 HTTP %lld。";
"providerTools.error.empty" = "未返回可用模型。";
"providerTools.error.decoding" = "解析模型列表失败。";
"providerTools.error.transport" = "拉取模型时发生网络错误。";
/* 润色场景 */
"polishScenario.daily_chat" = "日常聊天";
@@ -120,14 +145,17 @@
"mac.status.pasted" = "已插入前台应用";
"mac.status.copiedAndPasted" = "已复制并插入";
"mac.status.deliveryWithNote" = "%@ — %@";
"mac.stat.dictationTime" = "听写时长";
"mac.stat.words" = "听写字数";
"mac.stat.translation" = "翻译字数";
"mac.stat.dictionary" = "词库";
"mac.stat.cumulativeDuration" = "累计时长";
"mac.stat.transcribed" = "累计转写";
"mac.stat.cumulativeTranslation" = "累计翻译";
"mac.stat.customTerms" = "自定义词条";
"stat.dictationTime" = "听写时长";
"stat.words" = "听写字数";
"stat.translation" = "翻译字数";
"stat.dictionary" = "词库";
"stat.cumulativeDuration" = "累计时长";
"stat.transcribed" = "累计转写";
"stat.cumulativeTranslation" = "累计翻译";
"stat.customTerms" = "自定义词条";
"stat.weekChart.title" = "近 7 天";
"stat.weekChart.caption" = "听写字数";
"stat.weekChart.empty" = "本周还没有听写记录";
"mac.status.chipReady" = "就绪";
"mac.status.chipProcessing" = "处理中";
"mac.overlay.listening" = "聆听中";
@@ -173,6 +201,25 @@
"mac.settings.service" = "服务商";
"mac.settings.apiKey" = "API 密钥";
"mac.settings.model" = "模型";
"mac.settings.modelFetchHint" = "填写 API Key 后拉取模型。";
"mac.settings.connectionCheck" = "连接检查";
"mac.settings.validate" = "验证";
"mac.settings.fetchModels" = "拉取模型";
"mac.settings.validating" = "正在验证…";
"mac.settings.validateSuccess" = "成功 · 重试";
"mac.settings.validateFailure" = "失败 · 重试";
"mac.settings.loadingModels" = "正在拉取模型…";
"mac.settings.modelsLoaded" = "已拉取 %lld 个模型。";
"mac.settings.selectModel" = "选择模型";
"mac.settings.modelSelected" = "已选择 %@";
"mac.settings.modelsEmptyHint" = "先点右侧刷新拉取模型";
"mac.settings.thinking" = "思考";
"mac.settings.thinkingSubtitle" = "速度更慢、质量更高,建议关闭";
"mac.settings.thinkingHint" = "默认关闭。仅在需要更慢、更深的推理时开启。";
"mac.settings.volcengineAppId" = "APP ID";
"mac.settings.volcengineAccessToken" = "Access Token";
"mac.settings.volcengineResourceId" = "Resource ID";
"mac.settings.volcengineNote" = "Secret Key 当前无需填写。Resource ID 默认使用 volc.seedasr.sauc.duration。";
"mac.settings.recognition" = "识别方式";
"mac.settings.cloudEngine" = "云端引擎与 AI 润色";
"mac.settings.cloudEngineDesc" = "通过服务商 API 进行高质量转写,并自动润色语法与风格。";
@@ -209,7 +256,7 @@
"mac.settings.mlxModelMissing" = "请在下方选择 Qwen3 MLX 模型目录,或改用其他已安装的模型。";
"mac.settings.selectedModelMissing" = "「%@」尚未安装,暂时使用 Apple Speech。";
"mac.settings.localModelFallbackApple" = "没有可用的本地模型,暂时使用 Apple Speech。";
"mac.settings.accessibility" = "辅助功能";
"mac.settings.accessibility" = "辅助功能权限";
"mac.settings.accessibilityDesc" = "全局快捷键与自动粘贴需要此权限。";
"mac.settings.openAccessibility" = "打开系统设置";
"mac.settings.appearance" = "外观";
@@ -300,8 +347,8 @@
"mac.localASR.phase.completed" = "已完成";
"mac.error.accessibilityRequired" = "请在系统设置中为 OSGKeyboard 启用辅助功能";
"mac.foregroundApp" = "前台应用:%@";
"mac.sync.settingsTitle" = "iCloud 同步";
"mac.sync.settingsSubtitle" = "通过 iCloud 在多台设备同步设置、使用统计、语音历史与 API 密钥。";
"mac.sync.settingsTitle" = "跨设备iCloud 同步";
"mac.sync.settingsSubtitle" = "通过 iCloud 设备同步设置、历史记录、API Key";
"mac.sync.syncNow" = "立即同步";
"mac.sync.dictTitle" = "个人词库 iCloud 同步";
"mac.sync.dictSubtitle" = "在所有设备间同步个人词库。";