947d6220ff
Resolved real conflicts introduced by translation-polish-2 (#3) and docs refresh (#4) being merged to main during development: - OSGKeyboardShared/Models/ProviderConfig.swift Add polishIntensity field alongside translationTargetLocaleId / polishScenarioId / handednessPreference. Both new fields coexist. - OSGKeyboardShared/Services/AppGroupStore.swift Keep main's translation setters; add polishIntensity setter, detectedAppContext setter, and personalDictionary getter/setter. - OSGKeyboardShared/Services/PolishingService.swift Merge v0.2.1 translate-and-polish path with v0.3.0 context-aware intelligent prompt. New polish() entry point accepts both modes; translation mode still uses TranslationPrompt, polish mode now uses buildPrompt(for:context:). - OSGKeyboard/Views/SettingsView.swift Compose localEngineSettingsSection (main) with polishIntensitySection, languageAndModelsSection, systemPromptLinkSection, personalDictionaryLinkSection (feature). - OSGKeyboardShared/{en,zh-Hans}.lproj/Shared.strings Concat scenario keys + polish intensity / app context / dictionary keys. Auto-merged without conflict: - AppGroupStore new methods (localASRBackend, etc.) - FlowSessionManager, KeyboardViewController (auto-merged) - MaterialIcon, HistoryView (auto-merged, my icons added on top) Co-authored-by: Mavis <Mavis@hkgood.dev>
81 lines
3.4 KiB
Plaintext
81 lines
3.4 KiB
Plaintext
/* Engine status labels */
|
|
"engine.summary.local" = "本地 · %@";
|
|
"engine.summary.cloud" = "当前:%@";
|
|
"engine.summary.cloudWithModel" = "当前:%1$@ · %2$@";
|
|
"engine.asr.appleSpeech" = "Apple 语音识别";
|
|
|
|
/* v0.2.0: flow-level warnings surfaced alongside the final transcript. */
|
|
"flow.warning.cloudPolishMissingKey" = "云端润色/翻译需要 DeepSeek API Key,本次已插入原始识别结果。本地引擎请在 PreconfiguredKeys.swift 配置;云端引擎请在设置中填写 API Key。";
|
|
|
|
/* LLM providers */
|
|
"provider.openai" = "OpenAI";
|
|
"provider.deepseek" = "DeepSeek";
|
|
"provider.qwen" = "通义千问";
|
|
"provider.zhipu" = "智谱 GLM";
|
|
"provider.moonshot" = "月之暗面";
|
|
"provider.custom" = "自定义";
|
|
|
|
/* LLM errors */
|
|
"error.llm.invalidURL" = "API 地址无效。请在设置中检查 Base URL。";
|
|
"error.llm.noAPIKey" = "未填写 API Key。";
|
|
"error.llm.http" = "API 返回 HTTP %lld。请稍后重试或联系服务方。";
|
|
"error.llm.decoding" = "解析 API 响应失败。";
|
|
"error.llm.transport" = "网络错误,请检查连接后重试。";
|
|
"error.llm.rateLimited" = "API 调用过于频繁,请稍候再试。";
|
|
"error.llm.cancelled" = "请求已取消。";
|
|
|
|
/* ASR errors */
|
|
"error.asr.localeUnsupported" = "当前系统未分配可用语音语言模型,请稍后重试或切换语言。";
|
|
"error.asr.assetsNotReady" = "语音语言资源未就绪,请稍后重试。";
|
|
"error.asr.formatUnsupported" = "当前设备不支持该语音输入格式。";
|
|
"error.asr.noSpeech" = "未识别到语音内容,请重试。";
|
|
"error.asr.chunkFailed" = "第 %lld 段识别失败:%@";
|
|
|
|
/* 润色场景 */
|
|
"polishScenario.daily_chat" = "日常聊天";
|
|
"polishScenario.social_lifestyle" = "小红书";
|
|
"polishScenario.social_short" = "微博";
|
|
"polishScenario.goofy" = "逗比";
|
|
"polishScenario.work" = "工作";
|
|
"polishScenario.document" = "文档写作";
|
|
"polishScenario.todo" = "TODO 记录";
|
|
"polishScenario.custom" = "自定义";
|
|
"polishScenario.chip.daily_chat" = "聊天";
|
|
"polishScenario.chip.social_lifestyle" = "小红书";
|
|
"polishScenario.chip.social_short" = "微博";
|
|
"polishScenario.chip.goofy" = "逗比";
|
|
"polishScenario.chip.work" = "工作";
|
|
"polishScenario.chip.document" = "文档";
|
|
"polishScenario.chip.todo" = "TODO";
|
|
"polishScenario.chip.custom" = "自定义";
|
|
|
|
/* v0.3.0: 润色档位 */
|
|
"polish.intensity.off" = "关闭";
|
|
"polish.intensity.light" = "轻度";
|
|
"polish.intensity.medium" = "中度";
|
|
"polish.intensity.heavy" = "深度";
|
|
"polish.intensity.off.desc" = "不调用 LLM,直接插入识别原文。";
|
|
"polish.intensity.light.desc" = "仅清除孤立语气词和重复口误。";
|
|
"polish.intensity.medium.desc" = "纠正识别错误、清除语气词、润色语句。推荐默认。";
|
|
"polish.intensity.heavy.desc" = "可重组段落、拆长句、自动编号。适合会议纪要与报告。";
|
|
|
|
/* v0.3.0: 输入场景标签 */
|
|
"appContext.code" = "代码";
|
|
"appContext.email" = "邮件";
|
|
"appContext.chat" = "聊天";
|
|
"appContext.document" = "长文";
|
|
"appContext.unknown" = "通用";
|
|
|
|
/* v0.3.0: 词库类别 */
|
|
"dict.category.properNoun" = "人名地名";
|
|
"dict.category.technical" = "技术名词";
|
|
"dict.category.acronym" = "缩写";
|
|
"dict.category.productName" = "产品名";
|
|
"dict.category.custom" = "自定义";
|
|
|
|
/* v0.3.0: 词库来源 */
|
|
"dict.source.manual" = "手动添加";
|
|
"dict.source.history" = "自动学习";
|
|
"dict.source.contacts" = "来自通讯录";
|
|
"dict.source.recentEdit" = "来自最近编辑";
|