Files
2026-08-25 13:42:00 +08:00

363 lines
19 KiB
Plaintext

/* OSGKeyboard · 简体中文翻译 */
"OSGKeyboard" = "OSGKeyboard";
/* Onboarding */
"onboarding.welcome.subtitle" = "点按麦克风说话,再点一次结束,文字即出现。";
"onboarding.enable.title" = "启用 OSGKeyboard";
"onboarding.enable.step1" = "设置 → 通用 → 键盘 → 键盘";
"onboarding.enable.step2" = "点击「添加新键盘…」并选择 OSGKeyboard";
"onboarding.enable.step3" = "点击 OSGKeyboard 并启用「允许完全访问」";
"onboarding.enable.step4" = "允许完全访问是麦克风和网络调用的前提。";
"onboarding.enable.openSettings" = "打开 iOS 设置";
"onboarding.api.title" = "选择引擎";
"onboarding.api.subtitle" = "本地识别无需 Key;填写 API Key 后可开启 AI 润色。";
"onboarding.api.localReady.title" = "本地识别已就绪";
"onboarding.api.localReady.body" = "识别在端侧完成。请在设置中填写 API Key 以开启 AI 润色。";
"keyboard.onboarding.practice.mic" = "点按麦克风,说完后再点一次";
"keyboard.onboarding.practice.translate" = "点击「翻译」,再插入生成的文字";
"keyboard.onboarding.practice.reply" = "点击「回复」,让 AI 起草可发送的回复";
"keyboard.onboarding.practice.askAI" = "长按麦克风,说出你想问的问题";
/* Common navigation */
"common.back" = "返回";
"common.next" = "下一步";
"common.done" = "完成";
"common.continue" = "继续";
"common.reset" = "重置";
"common.cancel" = "取消";
"common.delete" = "删除";
"common.space" = "空格";
"common.newline" = "回车";
"common.send" = "发送";
"keyboard.return.go" = "前往";
"keyboard.return.search" = "搜索";
"keyboard.return.join" = "加入";
"keyboard.return.next" = "下一项";
"keyboard.return.route" = "路线";
"keyboard.return.google" = "Google";
"keyboard.return.yahoo" = "Yahoo";
"keyboard.return.emergencyCall" = "紧急电话";
/* Privacy footnote (onboarding welcome page) */
"privacy.audio.title" = "支持本地转写";
"privacy.audio.body" = "支持 iOS 本地引擎转录";
"privacy.network.title" = "文字自动润色";
"privacy.network.body" = "通过 AI 自动对文字进行排版润色";
"privacy.universal.title" = "处处可用";
"privacy.universal.body" = "聊天、邮件、Vibe Coding 动嘴就行";
/* Home */
"home.status.ready" = "就绪";
"home.status.setupIncomplete" = "未完成配置";
"home.hero.label" = "点此配置";
"home.action.enableInSettings" = "在 iOS 设置中启用";
"home.action.editApi" = "编辑 API 配置";
"home.action.keyboardPreview" = "键盘预览(Debug)";
"home.action.openSettingsA11y" = "打开 OSGKeyboard 设置";
/* API settings */
"api.baseUrl" = "接口地址";
"api.model" = "模型";
"api.getKey" = "获取 API Key";
"api.key" = "API Key";
"api.key.placeholder" = "sk-…";
"api.key.show" = "显示";
"api.key.hide" = "隐藏";
"api.connection" = "连接测试";
"api.test.idle" = "测试连接";
"api.test.running" = "测试中…";
"api.test.success" = "成功 · 重试";
"api.test.failure" = "失败 · 重试";
"api.test.connected" = "连接成功";
"api.test.missing" = "未填写 API Key";
"api.test.rateLimited" = "API 限流 (429)";
"api.test.http" = "HTTP %d";
"api.test.network" = "网络错误";
"api.test.connectedWith" = "“%@”";
"api.test.transportWith" = "%@";
/* Settings */
"settings.title" = "设置";
"settings.reset.title" = "重置所有设置?";
"settings.reset.message" = "API key、model 和 base URL 都会被清空。";
"settings.reset.confirm" = "重置所有设置";
"settings.engine.title" = "语音转写方式";
"settings.engine.subtitle" = "本地:系统内置转写;云端:ASR 转写,可用 LLM 润色。";
"settings.engine.local.title" = "本地转写";
"settings.engine.local.ios26" = "始终端侧,无需联网。";
"settings.engine.local.legacy" = "通过系统内置服务语音转写";
"settings.engine.cloud.title" = "云端转写";
"settings.engine.cloud.subtitle" = "通过云端 ASR 转写,可用 LLM 润色";
"settings.provider.title" = "云端引擎";
"settings.provider.subtitle" = "选择 LLM 提供商。";
"settings.api.title" = "接口";
"settings.language.title" = "语言";
"settings.language.subtitle.cloud" = "选择识别语言和文字处理模式。";
"settings.language.subtitle.local" = "选择识别语言。";
"settings.mode.title" = "模式";
"settings.mode.off" = "关闭";
"settings.mode.transcribe" = "转写";
"settings.mode.polish" = "润色";
"settings.systemPrompt.title" = "系统提示";
"settings.systemPrompt.reset" = "重置";
"settings.asrLocale" = "识别语言";
"settings.engineBadge.ios26" = "SpeechAnalyzer — 始终端侧";
"settings.engineRow.title" = "识别引擎";
"settings.onDeviceOnly.title" = "仅端侧识别";
"settings.onDeviceOnly.body" = "禁用云端回退,识别失败时会报错而非联网。";
"settings.legend.onDevice" = "端侧识别";
"settings.legend.cloudFallback" = "需联网";
/* App group error */
"appGroup.error.title" = "App Group 未配置";
"appGroup.error.body" = "OSGKeyboard 需要 App Group 才能在键盘扩展和主 App 之间共享配置。";
"appGroup.error.step1" = "在 Apple Developer 后台创建 group.com.osgkeyboard.shared";
"appGroup.error.step2" = "主 App 和键盘扩展都启用该 App Group";
"appGroup.error.step3" = "重新生成 provisioning profile 并下载";
/* Keyboard preview */
"preview.title" = "键盘预览";
"preview.subtitle" = "点击「开始录音」/「停止录音」按钮测试;真实键盘为长按麦克风圆盘。";
"preview.placeholder" = "试着输入或点击按钮录音";
"preview.clear" = "清空";
"preview.openSettingsA11y" = "打开 OSGKeyboard 设置";
"preview.modeChip.cycle" = "切换输入模式";
"preview.localeChip.cycle" = "切换识别语言";
/* Keyboard (ext) */
"keyboard.tab.ai" = "AI";
"keyboard.tab.voice" = "语音";
"keyboard.tab.chinese" = "中文";
"keyboard.tab.english" = "EN";
"keyboard.tab.ai.a11y" = "切换到 AI 问答";
"keyboard.tab.voice.a11y" = "切换到语音输入";
"keyboard.tab.chinese.a11y" = "切换到中文输入";
"keyboard.tab.english.a11y" = "切换到英文输入";
"keyboard.placeholder.idle" = "点按说话";
"keyboard.placeholder.preparing" = "准备中…";
"keyboard.placeholder.preparingRecording" = "准备录音…";
"keyboard.placeholder.processing" = "处理中…";
"keyboard.placeholder.error" = "润色失败";
"keyboard.models.notDownloaded" = "本地模型尚未下载";
"keyboard.models.downloadHint" = "打开 OSGKeyboard 下载模型";
"keyboard.rec" = "REC";
"keyboard.space" = "空格";
"keyboard.denied.mic" = "麦克风被拒绝";
"keyboard.denied.speech" = "语音识别被拒绝";
"keyboard.openSettingsA11y" = "打开 OSGKeyboard 设置";
"keyboard.deniedHint" = "打开 OSGKeyboard 设置,可授予麦克风 / 语音识别权限。";
"keyboard.tapToTalkA11y" = "点按说话";
"keyboard.undoA11y" = "撤销上次输入";
"keyboard.redoA11y" = "重做";
"keyboard.copyA11y" = "拷贝";
"keyboard.cutA11y" = "剪切";
"keyboard.nextKeyboardA11y" = "切换键盘";
"keyboard.nextKeyboardA11yHint" = "轻点切换到下一个键盘;长按查看全部键盘。";
"keyboard.typing.setupA11yHint" = "打开 OSGKeyboard 完成输入法初始化。";
"keyboard.typing.preparingA11y" = "正在准备中文输入";
/* Flow session (keyboard) */
"keyboard.flow.sessionInactive" = "语音会话未启动";
"keyboard.flow.start" = "启动";
"keyboard.flow.startA11y" = "启动语音会话";
"keyboard.flow.sessionExpired" = "语音会话已结束,请打开 OSGKeyboard 重新启动";
"keyboard.flow.startingSession" = "正在启动语音会话…";
"keyboard.flow.transcribing" = "识别中…";
"keyboard.flow.resultTimeout" = "等待识别结果超时,请重试";
"keyboard.flow.hostDisconnected" = "语音会话已断开,请打开 OSGKeyboard 重新启动";
"keyboard.flow.manualOpenHost" = "无法自动跳转,请从主屏幕打开 OSGKeyboard 后返回";
/* Keyboard status badges */
"keyboard.status.rec" = "录音";
"keyboard.status.recWarning" = "录音";
"keyboard.status.processing" = "···";
"keyboard.status.error" = "!";
/* Keyboard errors */
"keyboard.error.appGroupUnavailable" = "App Group 未配置";
"keyboard.error.appGroupCommunication" = "App Group 未配置,请重新安装并检查签名";
"keyboard.error.fullAccessRequired" = "请在系统设置中为 OSGKeyboard 开启「允许完全访问」";
"keyboard.error.fullAccessForJump" = "请先开启「允许完全访问」,否则键盘无法跳转到 App";
"keyboard.error.manualOpenSettings" = "系统拒绝了跳转,请手动打开 OSGKeyboard 进入设置";
"keyboard.error.manualOpenForFlow" = "语音会话未启动,请打开 OSGKeyboard 后再点麦克风";
"keyboard.error.manualOpenDictateLocal" = "系统拒绝了跳转,请手动打开 OSGKeyboard 完成本地转写";
"keyboard.error.manualOpenDictate" = "系统拒绝了跳转,请手动打开 OSGKeyboard 录音";
"keyboard.error.llm.noApiKey" = "未配置 API Key · 请在主 App 设置中填写";
"keyboard.mic.disabled.missingApiKey" = "请先在设置中填写 API Key";
"keyboard.mic.hint.missingPolishApiKey" = "请先在设置中填写 API Key,才能润色";
"keyboard.error.llm.localPolishUnavailable" = "未填写 API Key · 已插入原始文本";
"keyboard.error.llm.unauthorized" = "API Key 无效 (401) · 请检查主 App 设置";
"keyboard.error.llm.rateLimited" = "API 限流 (429) · 请稍后再试";
/* Legacy dictation handoff progress */
"keyboard.dictation.opening" = "正在打开 OSGKeyboard…";
"keyboard.dictation.openingLocal" = "正在打开 OSGKeyboard(本地转写)…";
"keyboard.dictation.recording" = "正在录音,请完成后返回当前输入页";
"keyboard.dictation.recordingLocal" = "正在本地录音,请完成后返回当前输入页";
"keyboard.dictation.transcribing" = "识别中,请稍候并返回输入页";
"keyboard.dictation.transcribingLocal" = "本地识别中,请稍候并返回输入页";
"keyboard.dictation.failed" = "录音失败,请重试";
"keyboard.dictation.resultTimeout" = "等待录音结果超时,请返回 OSGKeyboard 完成录音后重试";
/* 翻译菜单 */
"keyboard.translation.offMenu" = "不翻译";
"keyboard.translation.a11y" = "翻译";
"keyboard.translation.a11yHint" = "切换翻译开关或修改目标语言。";
"keyboard.clipboard.a11y" = "剪贴板";
"keyboard.clipboard.a11yHint" = "查看剪贴板历史或开启剪贴板功能。";
"keyboard.clipboard.guide.body" = "请先在设置中开启剪贴板历史。";
"keyboard.clipboard.guide.cta" = "去设置开启";
"keyboard.clipboard.panel.title" = "剪贴板";
"keyboard.clipboard.panel.empty" = "暂无历史记录";
"keyboard.clipboard.panel.fullAccessHint" = "「允许完全访问」已关闭,新复制内容将暂停采集,已有历史仍可使用。";
"keyboard.clipboard.panel.delete" = "删除";
"keyboard.clipboard.panel.close" = "关闭剪贴板";
"keyboard.clipboard.panel.closeHint" = "返回键盘输入界面。";
"keyboard.clipboard.clear.title" = "清空剪贴板历史?";
"keyboard.clipboard.clear.message" = "将从本机永久删除全部剪贴板历史,且无法撤销。";
"keyboard.clipboard.clear.confirm" = "清空历史";
"keyboard.clipboard.suggestion.dismissA11y" = "关闭剪贴板建议";
"keyboard.clipboard.suggestion.dismissHint" = "隐藏本次剪贴板建议条。";
"keyboard.voice.cancel" = "取消本次语音输入";
"keyboard.voice.cancelHint" = "放弃当前录音、识别和润色结果。";
"keyboard.scenario.a11y" = "润色场景";
"keyboard.scenario.a11yHint" = "选择润色风格或使用场景。";
/* Mode chip labels */
"mode.off" = "关闭";
"mode.transcribe" = "转写";
"mode.polish" = "润色";
/* Locale chip labels (preview stub) */
"locale.zh-Hans" = "简体";
/* Locale menu items (settings) */
"locale.auto" = "跟随系统";
"locale.zh-Hans" = "中文(简体)";
"locale.zh-Hant" = "中文(繁體)";
"locale.en-US" = "English (US)";
"locale.ja-JP" = "日本語";
"locale.ko-KR" = "한국어";
/* 未完成主 App 引导时,语音入口提示 */
"keyboard.hint.finishSetupInApp" = "请在 OSGKeyboard App 中完成设置后再使用语音输入。";
/* v0.3.0:键盘顶栏的输入场景芯片 */
"keyboard.appContext.a11y" = "润色场景";
"keyboard.appContext.a11yHint" = "点击可手动切换输入场景(代码/邮件/聊天/文档),覆盖自动检测结果。";
"keyboard.appContext.chip.code" = "代码";
"keyboard.appContext.chip.email" = "邮件";
"keyboard.appContext.chip.chat" = "聊天";
"keyboard.appContext.chip.document" = "文档";
"keyboard.appContext.chip.unknown" = "通用";
"keyboard.appContext.menu.code" = "代码 — 保留标识符、不做自然语言化";
"keyboard.appContext.menu.email" = "邮件 — 礼貌专业、合理分段";
"keyboard.appContext.menu.chat" = "聊天 — 简短随意、保留口语";
"keyboard.appContext.menu.document" = "文档 — 长文、结构化";
"keyboard.appContext.menu.unknown" = "通用 — 中性口吻";
/* 长按编辑上一条输入 */
"keyboard.edit.hint.available" = "长按编辑上一条";
"keyboard.edit.error.noTarget" = "没有可编辑的上一条输入";
"keyboard.edit.error.llmUnavailable" = "请先在主 App 配置可用的 AI 服务";
"keyboard.edit.error.startTimeout" = "麦克风启动超时,点击重试";
"keyboard.edit.error.processing" = "编辑失败,请重试";
"keyboard.edit.error.processingTimeout" = "编辑超时,请重试";
"keyboard.edit.error.unchanged" = "内容没有变化,请换一种说法";
"keyboard.edit.status.preparing" = "正在启动麦克风…";
"keyboard.edit.status.listening" = "正在聆听编辑指令";
"keyboard.edit.status.processing" = "正在编辑…";
"keyboard.edit.status.review" = "左右滑动对比原文和结果";
"keyboard.edit.status.applying" = "正在应用编辑…";
"keyboard.edit.page.original" = "原文";
"keyboard.edit.page.edited" = "编辑后";
"keyboard.edit.helper.speak" = "说话编辑文字";
"keyboard.edit.helper.finish" = "点击完成编辑";
"keyboard.edit.helper.compare" = "左右滑动对比";
"keyboard.edit.helper.apply" = "点击应用编辑";
"keyboard.edit.helper.append" = "插入当前位置";
"keyboard.edit.close" = "关闭编辑模式";
"keyboard.edit.closeHint" = "放弃本次编辑并返回语音输入。";
"keyboard.edit.apply" = "应用编辑";
"keyboard.edit.append" = "插入当前位置";
"keyboard.edit.stop" = "完成编辑指令";
/* AI 问答模式 */
"keyboard.ai.placeholder" = "点击麦克风向 AI 提问";
"keyboard.ai.hintA11yPrefix" = "建议:";
"keyboard.ai.hint" = "先插入 AI 回答,再按发送";
"keyboard.ai.listening" = "正在聆听…";
"keyboard.ai.recognizing" = "正在识别问题…";
"keyboard.ai.generating" = "AI 正在回答…";
"keyboard.ai.thinking" = "AI 正在思考…";
"keyboard.ai.send" = "发送";
"keyboard.ai.insert" = "插入";
"keyboard.ai.inserted" = "已插入";
"keyboard.ai.sent" = "已发送";
"keyboard.ai.cancel" = "取消 AI 问答";
"keyboard.ai.cancelHint" = "取消当前录音、识别或 AI 请求。";
"keyboard.ai.sendA11y" = "首次点击插入 AI 回答;在支持发送的输入框中再次点击发送";
"keyboard.ai.startA11y" = "开始向 AI 提问";
"keyboard.ai.stopA11y" = "结束提问并发送给 AI";
"keyboard.assistant.longPressCoach" = "轻点听写 · 长按问 AI";
"keyboard.assistant.micA11y" = "语音与 AI";
"keyboard.assistant.micHint" = "轻点开始语音听写,长按向 AI 提问。";
"keyboard.assistant.dictationAction" = "开始语音听写";
"keyboard.assistant.aiAction" = "向 AI 提问";
"keyboard.assistant.space" = "空格";
"keyboard.assistant.delete" = "删除";
"keyboard.assistant.sendHint" = "执行当前输入框的发送、搜索、完成或前往操作。";
"keyboard.assistant.insertPending" = "插入保留的 AI 回答";
"keyboard.assistant.discardPending" = "丢弃 AI 回答";
"keyboard.assistant.discardPendingHint" = "丢弃因光标或输入框变化而保留的回答。";
"keyboard.assistant.dismissClipboard" = "关闭剪贴板建议";
"keyboard.assistant.dismissClipboardHint" = "隐藏当前剪贴板摘要和技能。";
"keyboard.ai.error.missingAPIKey" = "请先在主 App 配置可用的 AI 服务";
"keyboard.ai.error.pipelineBusy" = "语音服务正忙,请稍后重试";
"keyboard.ai.error.startTimeout" = "麦克风启动超时,请重试";
"keyboard.ai.error.requestTimeout" = "AI 回答超时,请重试";
"keyboard.ai.error.requestFailed" = "AI 回答失败,请重试";
"keyboard.ai.error.clipboardUnavailable" = "剪贴板建议已过期,请重新复制文本";
"keyboard.ai.skill.reply" = "回复";
"keyboard.ai.skill.playfulReply" = "俏皮回复";
"keyboard.ai.skill.replyInSourceLanguage" = "回复";
"keyboard.ai.skill.summarize" = "总结要点";
"keyboard.ai.skill.openLink" = "打开";
"keyboard.ai.skill.summarizeWebPage" = "总结网页";
"keyboard.ai.skill.callPhone" = "拨打";
"keyboard.ai.skill.createContact" = "新建联系人";
"keyboard.ai.skill.extractConclusions" = "提取结论";
"keyboard.ai.skill.translate" = "翻译";
"keyboard.ai.skill.acceptInvitation" = "接受邀约";
"keyboard.ai.skill.declineInvitation" = "委婉拒绝";
"keyboard.ai.skill.acceptTask" = "确认任务";
"keyboard.ai.skill.clarifyRequest" = "澄清追问";
"keyboard.ai.skill.empathyReply" = "共情回复";
"keyboard.ai.skill.askForDetails" = "询问细节";
"keyboard.ai.skill.businessReply" = "商务回复";
"keyboard.ai.skill.organizeList" = "整理清单";
"keyboard.ai.skill.extractTodos" = "待办";
"keyboard.ai.skill.extractEvents" = "日程";
"keyboard.ai.skill.saveToNotes" = "备忘录";
"keyboard.ai.skill.navigate" = "导航";
"keyboard.ai.skill.previewPolish" = "润色";
"keyboard.ai.skill.previewIdeas" = "点子";
"keyboard.ai.skill.previewTone" = "语气";
"keyboard.ai.skill.noTodos" = "剪贴板内容没有待办事项";
"keyboard.ai.skill.noEvents" = "剪贴板内容没有日期或时间";
"keyboard.ai.skill.noAddress" = "剪贴板内容没有可导航的地址";
"keyboard.ai.skill.noNote" = "剪贴板没有可保存的内容";
"keyboard.ai.skill.noExportItems" = "没有可发给捷径的内容";
"keyboard.ai.skill.extracting" = "正在提取待办…";
"keyboard.ai.skill.extractingEvents" = "正在提取日程…";
"keyboard.ai.skill.extractingAddress" = "正在识别地址…";
"keyboard.ai.skill.namingNote" = "正在生成标题…";
"keyboard.ai.skill.runningShortcut" = "正在运行捷径…";
"keyboard.ai.skill.openingMaps" = "正在打开地图…";
"keyboard.ai.skill.shortcutMissing" = "找不到配套捷径,请在技能页重新安装";
"keyboard.ai.skill.handoffFailed" = "无法打开 App 运行捷径";
"keyboard.ai.skill.openLinkFailed" = "无法打开该链接";
"keyboard.ai.skill.callPhoneFailed" = "无法拨打该号码";
"keyboard.ai.skill.createContactFailed" = "无法打开新建联系人页面";