2cc81c4628
Add local clipboard intent recommendations, webpage and phone actions, and safer host handoffs. Refine managed gateway, catalog refresh, onboarding, and adaptive polish behavior.
956 lines
58 KiB
Plaintext
956 lines
58 KiB
Plaintext
/* OSGKeyboard · 简体中文翻译 */
|
||
|
||
"OSGKeyboard" = "OSGKeyboard";
|
||
|
||
/* Onboarding */
|
||
"onboarding.progress" = "第 %1$d / %2$d 步";
|
||
"onboarding.welcome.tagline" = "开口即文字。";
|
||
"onboarding.permission.preface" = "接下来系统会分别请求麦克风与语音识别权限。";
|
||
"onboarding.permission.mic.title" = "麦克风";
|
||
"onboarding.permission.mic.body" = "用于录制语音。";
|
||
/* 系统弹窗前的引导按钮须用「下一步/继续」,勿用「允许」(App Store 5.1.1(iv))。 */
|
||
"onboarding.permission.mic.allow" = "下一步";
|
||
"onboarding.permission.mic.deniedHint" = "去设置打开,或先点「下一步」。";
|
||
"onboarding.permission.speech.title" = "语音识别";
|
||
"onboarding.permission.speech.body" = "把你说的话转成文字。";
|
||
"onboarding.permission.speech.allow" = "下一步";
|
||
"onboarding.permission.speech.deniedHint" = "去设置打开,或先点「下一步」。";
|
||
"onboarding.permission.openSettings" = "打开设置";
|
||
"onboarding.permission.status.undetermined" = "尚未请求";
|
||
"onboarding.permission.status.granted" = "已允许";
|
||
"onboarding.permission.status.denied" = "已拒绝";
|
||
"legal.privacyPolicy" = "隐私政策";
|
||
"onboarding.enable.title" = "添加键盘";
|
||
"onboarding.enable.fullAccessNote" = "记得打开「允许完全访问」,不然麦克风用不了。";
|
||
"onboarding.enable.step1" = "设置 → 通用 → 键盘 → 添加新键盘";
|
||
"onboarding.enable.step2" = "选择 OSGKeyboard,打开「允许完全访问」";
|
||
"onboarding.enable.step3.prefix" = "长按";
|
||
"onboarding.enable.step3.suffix" = ",选中 OSGKeyboard";
|
||
"onboarding.enable.openSettings" = "去设置";
|
||
"onboarding.enable.resources.preparing" = "正在准备中文输入资源…";
|
||
"onboarding.enable.resources.ready" = "中文输入资源已就绪";
|
||
"onboarding.enable.resources.failed" = "中文输入资源准备失败";
|
||
"onboarding.enable.resources.retry" = "重试";
|
||
"onboarding.api.title" = "选择语音转文字 AI 引擎";
|
||
"onboarding.api.localModels.hint" = "本地引擎使用系统语音识别。填写下方 API Key 即可开启 AI 润色。";
|
||
"onboarding.polish.title" = "文本润色(LLM)";
|
||
"onboarding.polish.subtitle" = "识别完成后整理文字,可与 ASR 服务商不同。";
|
||
"onboarding.polish.localHint" = "填写 API Key 才能开启 AI 润色;未填写时将直接插入原始识别结果。";
|
||
"onboarding.experience.intro.eyebrow" = "AI AGENT 语音输入法";
|
||
"onboarding.experience.intro.title" = "开口,即成文";
|
||
"onboarding.experience.intro.subtitle" = "不只是语音输入。OSGKeyboard 能听懂、成文、翻译和编辑,也能调用 AI Agent 帮你处理下一步。";
|
||
"onboarding.experience.intro.action" = "开始设置";
|
||
"onboarding.experience.privacy.local.title" = "支持设备端转写";
|
||
"onboarding.experience.privacy.local.body" = "使用本地引擎时,语音识别在你的设备上完成。";
|
||
"onboarding.experience.privacy.cloud.title" = "明确的云端边界";
|
||
"onboarding.experience.privacy.cloud.body" = "只有选择云端识别或 AI 功能时,相应的语音或文字才会发送给已配置的服务。";
|
||
"onboarding.experience.privacy.anywhere.title" = "AI Agent,随处可用";
|
||
"onboarding.experience.privacy.anywhere.body" = "在聊天、邮件、笔记或代码编辑中,随时口述、翻译、编辑和处理任务。";
|
||
"onboarding.experience.permissions.title" = "让我们听见你";
|
||
"onboarding.experience.permissions.subtitle" = "语音输入需要麦克风和语音识别。接下来会依次出现两个系统提示。";
|
||
"onboarding.experience.permissions.systemHint" = "权限只在你主动使用语音输入时生效。";
|
||
"onboarding.experience.permissions.later" = "暂时跳过";
|
||
"onboarding.experience.keyboard.title" = "添加键盘";
|
||
"onboarding.experience.keyboard.subtitle" = "在 iOS 设置中添加键盘,并打开「允许完全访问」。";
|
||
"onboarding.experience.keyboard.ready" = "OSGKeyboard 与完全访问均已就绪";
|
||
"onboarding.experience.keyboard.fullAccess" = "完全访问用于连接主 App 的麦克风和可选 AI 服务";
|
||
"onboarding.experience.keyboard.openAgain" = "再次打开设置";
|
||
"onboarding.experience.keyboard.practiceAction" = "开始体验";
|
||
"onboarding.experience.keyboard.previewTitle" = "键盘";
|
||
"onboarding.experience.keyboardSwitch.title" = "切换键盘";
|
||
"onboarding.experience.keyboardSwitch.subtitle" = "激活键盘后,我们会自动验证是否已开启完整访问。";
|
||
"onboarding.experience.keyboardSwitch.instruction" = "点击下方输入框,长按地球键,然后选择 OSGKeyboard。";
|
||
"onboarding.experience.keyboardSwitch.placeholder" = "在这里切换并验证键盘";
|
||
"onboarding.experience.keyboardSwitch.waiting" = "等待 OSGKeyboard 出现…";
|
||
"onboarding.experience.keyboardSwitch.ready" = "OSGKeyboard 与完整访问均已验证";
|
||
"onboarding.experience.keyboardSwitch.fullAccessMissing" = "已检测到 OSGKeyboard,但尚未检测到完整访问";
|
||
"onboarding.experience.keyboardSwitch.timeout" = "尚未检测到 OSGKeyboard,请确认已完成切换";
|
||
"onboarding.experience.keyboardSwitch.checkSettings" = "返回设置检查完整访问";
|
||
"onboarding.experience.keyboardSwitch.waitingAction" = "等待验证";
|
||
"onboarding.experience.practice.skip" = "暂时跳过体验";
|
||
"onboarding.experience.practice.sample" = "我明天下午到,到了以后给你消息。";
|
||
"onboarding.experience.practice.editorTitle" = "新消息";
|
||
"onboarding.experience.practice.permissionsTitle" = "开启语音权限";
|
||
"onboarding.experience.practice.permissionsSubtitle" = "返回上一步完成权限设置,然后开始第一次语音输入。";
|
||
"onboarding.experience.practice.switchTitle" = "切换键盘";
|
||
"onboarding.experience.practice.switchSubtitle" = "点一下下面的文本框,长按地球键,然后选择 OSGKeyboard。";
|
||
"onboarding.experience.practice.fullAccessTitle" = "开启完全访问";
|
||
"onboarding.experience.practice.fullAccessSubtitle" = "OSGKeyboard 已启用。打开「允许完全访问」后就能使用语音。";
|
||
"onboarding.experience.practice.fullAccessAction" = "去设置打开完全访问";
|
||
"onboarding.experience.practice.cloudTitle" = "开始体验";
|
||
"onboarding.experience.practice.cloudSubtitle" = "四项教学无需账号,也不会消耗积分。";
|
||
"onboarding.experience.practice.cloudBody" = "语音在设备端转写;只有本次教学所需的转写文字、示例文本和问题会发送到 OSG 托管 AI。匿名体验凭证将在教学结束后失效。";
|
||
"onboarding.experience.practice.cloudAction" = "同意并开始体验";
|
||
"onboarding.experience.practice.creditsTitle" = "准备体验";
|
||
"onboarding.experience.practice.creditsSubtitle" = "正在验证 App 并获取短时、限权的教学凭证。";
|
||
"onboarding.experience.practice.preparingCredits" = "正在安全连接 OSG AI…";
|
||
"onboarding.experience.practice.creditsFailed" = "暂时无法准备匿名体验。请检查网络后重试,不会产生任何费用。";
|
||
"onboarding.experience.practice.retry" = "重试";
|
||
"onboarding.experience.practice.progress.voice" = "1 / 4 · 语音输入";
|
||
"onboarding.experience.practice.progress.translate" = "2 / 4 · AI 翻译";
|
||
"onboarding.experience.practice.progress.reply" = "3 / 4 · AI 回复";
|
||
"onboarding.experience.practice.progress.askAI" = "4 / 4 · 询问 AI";
|
||
"onboarding.experience.practice.speakTitle" = "跟着念一句";
|
||
"onboarding.experience.practice.speakSubtitle" = "点按键盘上的麦克风,照着下方文字念,说完后再点一次。";
|
||
"onboarding.experience.practice.readAloud" = "请照着念";
|
||
"onboarding.experience.practice.voiceSample" = "今天是礼拜四,你打算去哪里玩?";
|
||
"onboarding.experience.practice.translateTitle" = "试试翻译";
|
||
"onboarding.experience.practice.translateSubtitle" = "先复制下面的示例,再在 OSGKeyboard 中点击「翻译」。确认结果后插入文本框。";
|
||
"onboarding.experience.practice.replyTitle" = "试试回复";
|
||
"onboarding.experience.practice.replySubtitle" = "使用同一段示例文字,点击键盘中的「回复」,然后插入生成的回复。";
|
||
"onboarding.experience.practice.askAITitle" = "问问 AI";
|
||
"onboarding.experience.practice.askAISubtitle" = "长按键盘麦克风,说出一个问题;再次点击结束录音并等待回答,然后将结果插入文本框。";
|
||
"onboarding.experience.practice.copyAction" = "复制示例文字";
|
||
"onboarding.experience.practice.copied" = "已复制,请切换到 OSGKeyboard";
|
||
"onboarding.experience.practice.waiting" = "等待你在键盘中完成这一步…";
|
||
"onboarding.experience.login.title" = "登录领 1000 积分";
|
||
"onboarding.experience.login.subtitle" = "四项体验已经完成。登录后可继续使用 OSG 托管 AI,无需填写 API Key。";
|
||
"onboarding.experience.login.body" = "符合首次注册资格时,1000 积分会自动到账。设备完整性检查用于防止重复领取。";
|
||
"onboarding.experience.login.skip" = "暂不登录";
|
||
"onboarding.experience.login.signedIn" = "登录成功,积分已刷新";
|
||
"onboarding.experience.login.balance %lld" = "当前余额:%lld 积分";
|
||
"onboarding.experience.complete.verifiedTitle" = "已经准备好了";
|
||
"onboarding.experience.complete.title" = "已经准备好了";
|
||
"onboarding.experience.complete.subtitle" = "点击开始使用";
|
||
"onboarding.experience.complete.dictate" = "语音成文";
|
||
"onboarding.experience.complete.translate" = "翻译";
|
||
"onboarding.experience.complete.reply" = "智能回复";
|
||
"onboarding.experience.complete.agent" = "询问 AI";
|
||
"onboarding.experience.complete.action" = "开始使用";
|
||
"settings.onboarding.replay" = "重新开始权限引导";
|
||
|
||
/* Common navigation */
|
||
"common.back" = "返回";
|
||
"common.next" = "下一步";
|
||
"common.done" = "完成";
|
||
"common.continue" = "继续";
|
||
"common.reset" = "重置";
|
||
"common.cancel" = "取消";
|
||
"common.save" = "保存";
|
||
"common.clear" = "清空";
|
||
"common.delete" = "删除";
|
||
"common.space" = "空格";
|
||
"common.newline" = "回车";
|
||
"common.send" = "发送";
|
||
|
||
/* Privacy footnote (onboarding engine 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.appLanguage.title" = "界面语言";
|
||
"settings.appLanguage.auto" = "自动";
|
||
"settings.appLanguage.english" = "英文";
|
||
"settings.appLanguage.chinese" = "中文";
|
||
"settings.appearance.title" = "外观";
|
||
"settings.appearance.system" = "跟随系统";
|
||
"settings.appearance.light" = "浅色";
|
||
"settings.appearance.dark" = "深色";
|
||
"settings.reset.title" = "重置所有设置?";
|
||
"settings.reset.message" = "将清空 API Key、模型、接口地址、语音历史及云端确认状态;剪贴板历史会保留。";
|
||
"settings.reset.confirm" = "重置所有设置";
|
||
"settings.engine.title" = "语音转写与润色";
|
||
"settings.aiService.title" = "AI 服务";
|
||
"settings.aiService.credits.title" = "使用积分";
|
||
"settings.aiService.credits.subtitle" = "由 OSG 使用积分完成语音转写和文本润色。";
|
||
"settings.aiService.credits.signIn" = "请先在上方登录账号后使用 OSG 积分。";
|
||
"settings.aiService.credits.consent.title" = "使用 OSG 托管云服务?";
|
||
"settings.aiService.credits.consent.message" = "使用积分时,录音会经 OSG 托管网关发送到托管语音服务商;转写文字、光标附近上下文和 AI 问题也可能经网关发送,用于润色或生成回答。请求会关联你的 OSG 账号,用于授权和积分扣费。本地识别和你自己的 API Key 不受影响。";
|
||
"settings.aiService.credits.consent.accept" = "同意并使用积分";
|
||
"settings.aiService.byok.title" = "我有 API Key";
|
||
"settings.aiService.byok.subtitle" = "使用 Apple 设备端识别或你自己的云服务。";
|
||
"settings.asr.apple.title" = "Apple 设备端识别";
|
||
"settings.asr.apple.subtitle" = "在本机私密转写,无需 ASR API Key。";
|
||
"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.engine.cloud.badge" = "云端引擎";
|
||
"settings.provider.title" = "云端引擎";
|
||
"settings.provider.personalDictionaryBadge" = "个性词库";
|
||
"settings.provider.streamingBadge" = "流式识别";
|
||
"settings.provider.subtitle" = "选择 LLM 提供商。";
|
||
"settings.polishProvider.title" = "文本润色(LLM)";
|
||
"settings.polishProvider.subtitle" = "识别完成后整理文字,可与 ASR 服务商不同。";
|
||
"settings.polishApi.title" = "润色接口";
|
||
"settings.asrProvider.title" = "语音转写(ASR)";
|
||
"settings.asrProvider.subtitle" = "云端模式下负责听写转文字,可与润色模型分开配置。";
|
||
"settings.asrApi.title" = "转写接口";
|
||
"settings.asr.model" = "ASR 模型";
|
||
"settings.asr.testConnection" = "测试转写";
|
||
"settings.provider.supplier" = "供应商";
|
||
"settings.provider.tools" = "连接检查";
|
||
"settings.provider.validate" = "验证";
|
||
"settings.provider.fetchModels" = "拉取模型";
|
||
"settings.provider.loadingModels" = "正在拉取模型…";
|
||
"settings.provider.modelsLoaded" = "已拉取 %lld 个模型";
|
||
"settings.provider.selectModel" = "选择模型";
|
||
"settings.provider.modelSelected" = "已选择 %@";
|
||
"settings.provider.modelsEmptyHint" = "先点右侧刷新拉取模型";
|
||
"settings.provider.fillDefault" = "填入默认值";
|
||
"settings.provider.thinking" = "思考";
|
||
"settings.provider.thinkingSubtitle" = "速度更慢、质量更高,建议关闭";
|
||
"settings.provider.thinkingOn" = "开启";
|
||
"settings.provider.thinkingOff" = "关闭";
|
||
"settings.provider.thinkingHint" = "默认关闭。仅在需要更慢、更深的推理时开启。";
|
||
"settings.provider.note" = "提示";
|
||
"settings.asr.volcengine.appId" = "APP ID";
|
||
"settings.asr.volcengine.accessToken" = "Access Token";
|
||
"settings.asr.volcengine.apiKey" = "API Key";
|
||
"settings.asr.volcengine.apiKeyMode.title" = "使用新版 API Key";
|
||
"settings.asr.volcengine.apiKeyMode.subtitle" = "新控制台用 API Key;旧版请关闭并用 APP ID + Token。";
|
||
"settings.asr.volcengine.note.appToken" = "旧版控制台:填写 APP ID 与 Access Token。Secret Key 无需填写。识别资源固定为豆包流式 2.0(volc.seedasr.sauc.duration)。";
|
||
"settings.asr.volcengine.note.apiKey" = "新版控制台:只需填写 API Key。识别资源固定为豆包流式 2.0(volc.seedasr.sauc.duration)。";
|
||
"provider.openai" = "OpenAI";
|
||
"provider.deepseek" = "DeepSeek";
|
||
"provider.qwen" = "通义千问";
|
||
"provider.zhipu" = "智谱 GLM";
|
||
"provider.moonshot" = "月之暗面";
|
||
"provider.mimo" = "小米 MiMo";
|
||
"provider.custom" = "自定义";
|
||
"settings.api.title" = "接口";
|
||
"settings.language.title" = "语言";
|
||
"settings.languageAndPolish.title" = "语言与润色";
|
||
// v0.2.1: 翻译功能
|
||
"settings.translation.afterPolish" = "润色后翻译";
|
||
"settings.translation.off" = "不翻译";
|
||
"settings.polishScenario.section" = "润色";
|
||
"settings.polishScenario.title" = "润色场景";
|
||
"settings.polishScenario.hint" = "选择适合的使用场景。选「自定义」可编辑完整润色指令。";
|
||
"settings.polishScenario.customHint" = "自定义场景:在下方编辑完整润色指令。";
|
||
"settings.languageModels.title" = "语言与模型";
|
||
"settings.localModels.title" = "本地模型";
|
||
"settings.localModels.speechRole" = "语音识别";
|
||
"settings.localModels.polishRole" = "润色";
|
||
"settings.localModels.builtIn" = "内置";
|
||
"settings.localModels.speechEngine" = "Apple iOS Speech";
|
||
"settings.localModels.polishEngine" = "设置中的模型";
|
||
"settings.localModels.polishNeedsKey" = "请填写 API Key";
|
||
"settings.localModels.allReady" = "已就绪";
|
||
"settings.localModels.readiness %lld %lld" = "%lld/%lld 已就绪";
|
||
"settings.localModels.cloudPolish.title" = "识别后云端润色";
|
||
"settings.localModels.cloudPolish.subtitle" = "将识别文本发送给已配置的云端大模型(默认 DeepSeek)进行润色。仅在 iOS 语音识别效果不理想时(远场、噪声、方言)开启,需提前在设置中填入 DeepSeek API Key。";
|
||
"settings.localEngine.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.edit" = "编辑系统提示";
|
||
"settings.systemPrompt.hint" = "云端润色时使用。本地识别模式不会用到此提示词。";
|
||
"settings.about.title" = "关于";
|
||
"settings.version.title" = "版本";
|
||
"releaseNotes.title" = "更新说明";
|
||
"releaseNotes.openHint" = "查看本版本更新说明";
|
||
"releaseNotes.unavailable.title" = "无法加载页面";
|
||
"releaseNotes.unavailable.message" = "无法打开更新说明,请检查网络连接后重试。";
|
||
"settings.daily.title" = "日常";
|
||
"settings.config.title" = "配置";
|
||
"settings.general.title" = "通用";
|
||
"settings.general.appearanceLanguage.title" = "外观与语言";
|
||
"settings.general.keyboard.title" = "键盘与操作";
|
||
"settings.general.sync.title" = "同步";
|
||
"settings.aiAgent.title" = "AI Agent";
|
||
"settings.aiAgent.responseLength.section" = "回答";
|
||
"settings.aiAgent.responseLength.title" = "回复篇幅";
|
||
"settings.clipboard.title" = "剪贴板";
|
||
"settings.clipboard.section" = "功能";
|
||
"settings.clipboard.subtitle.on" = "已开启";
|
||
"settings.clipboard.subtitle.off" = "已关闭";
|
||
"settings.clipboard.history.title" = "历史记录";
|
||
"settings.clipboard.history.footer" = "在本机保存最近 15 条复制文字,默认关闭。";
|
||
"settings.clipboard.candidate.title" = "建议条";
|
||
"settings.clipboard.candidate.footer" = "在键盘上方显示最新复制,轻点即可插入。";
|
||
"settings.clipboard.paste.section" = "系统授权";
|
||
"settings.clipboard.paste.body" = "允许剪贴板技能读取你主动复制的文字。";
|
||
"settings.clipboard.paste.request" = "验证粘贴访问";
|
||
"settings.clipboard.paste.verified" = "已验证";
|
||
"settings.clipboard.paste.open" = "打开系统设置";
|
||
"settings.clipboard.storage.section" = "本机历史";
|
||
"settings.clipboard.storage.body" = "历史仅保存在本机,不经 iCloud 同步,也不会自动发送给 AI。关闭历史不会删除已有记录。";
|
||
"clipboard.paste.noText.title" = "请先复制文字";
|
||
"clipboard.paste.noText.message" = "复制一小段文字后,再试一次。";
|
||
"settings.clipboard.clear.button" = "清空剪贴板历史";
|
||
"settings.clipboard.clear.title" = "清空剪贴板历史?";
|
||
"settings.clipboard.clear.message" = "将从本机永久删除全部剪贴板历史,且无法撤销。";
|
||
"settings.clipboard.clear.confirm" = "清空历史";
|
||
"settings.typingInput.title" = "拼音输入";
|
||
"settings.typingInput.default.title" = "默认输入方式";
|
||
"settings.typingInput.default.description" = "打开键盘时使用此方式";
|
||
"settings.typingInput.default.mode.voice" = "语音";
|
||
"settings.typingInput.default.mode.pinyin" = "拼音";
|
||
"settings.typingInput.default.mode.english" = "英文";
|
||
"settings.typingInput.rememberLast.title" = "记住上次选择";
|
||
"settings.typingInput.rememberLast.description" = "下次打开时恢复上次界面";
|
||
"settings.typingInput.schema.section" = "输入方案";
|
||
"settings.typingInput.schema.picker" = "拼音方案";
|
||
"typing.schema.fullPinyin" = "全拼";
|
||
"typing.schema.microsoftDoublePinyin" = "微软双拼";
|
||
"typing.schema.sogouDoublePinyin" = "搜狗双拼";
|
||
"settings.typingInput.fuzzy.section" = "模糊音";
|
||
"settings.typingInput.fuzzy.footer" = "默认全部关闭。只开启你需要的组合,避免候选噪音。";
|
||
"settings.typingInput.resources.section" = "输入法资源";
|
||
"settings.typingInput.resources.status" = "状态";
|
||
"settings.typingInput.resources.ready" = "已就绪";
|
||
"settings.typingInput.resources.pending" = "待初始化";
|
||
"settings.typingInput.resources.redeploy" = "重新部署输入法资源";
|
||
"settings.typingInput.habits.clear" = "清除打字习惯";
|
||
"settings.typingInput.habits.clear.title" = "清除打字习惯?";
|
||
"settings.typingInput.habits.clear.confirm" = "清除";
|
||
"settings.typingInput.habits.clear.message" = "将重置中文和英文的学习词序。个性词库中的词条会保留。";
|
||
"settings.typingInput.habits.footer" = "只清除使用频度。你手动加入个性词库的词不会受影响。";
|
||
"settings.speechRecognition.title" = "语音识别";
|
||
"settings.textPolish.title" = "文本润色";
|
||
"settings.preferences.title" = "偏好设置";
|
||
"settings.dictionaryAndPolish.title" = "词库与润色";
|
||
"settings.polishPreferences.title" = "润色偏好";
|
||
"settings.handedness.title" = "握持偏好";
|
||
"settings.handedness.left" = "左手";
|
||
"settings.handedness.right" = "右手";
|
||
"settings.keyboardHaptic.title" = "按键震动";
|
||
"settings.keyboardHaptic.off" = "关";
|
||
"settings.keyboardHaptic.light" = "轻";
|
||
"settings.keyboardHaptic.strong" = "强";
|
||
"settings.cursorDragNavigation.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" = "需联网";
|
||
"settings.privacy.title" = "隐私";
|
||
"settings.privacy.policy" = "隐私政策";
|
||
"settings.privacy.fullAccess.title" = "关于完全访问";
|
||
"settings.privacy.fullAccess.body" = "用来调用麦克风和读取 API Key;不会读取或上传你的输入内容。";
|
||
"settings.privacy.cloud.body" = "使用自备 API Key 时,云端请求会直接发送到你配置的服务商;选择 OSG 积分时,音频和文字请求会经 OSG 托管网关发送到托管服务商。";
|
||
"settings.privacy.cloud.alert.title" = "云端处理会将数据发送到设备外";
|
||
"settings.privacy.cloud.alert.message" = "所选云端路径会把录音和相关文字发送到设备外,用于转写、润色或 AI 回答。用户自备请求直达所选服务商;托管积分请求经 OSG 托管网关处理。";
|
||
"settings.link.support" = "帮助与反馈";
|
||
"settings.link.github" = "GitHub";
|
||
"settings.support.footer" = "OSGKeyboard 为开源项目,欢迎在 GitHub 提交问题与建议。";
|
||
"settings.support.intro" = "获取帮助或反馈问题的最快方式是提交 GitHub Issue,我们会阅读每一条反馈。";
|
||
"settings.support.issuesHint" = "提交前请先搜索是否已有相同问题。反馈 Bug 时请附上 iOS 版本、引擎模式(本地/云端)以及复现步骤。";
|
||
"settings.support.openIssues" = "打开 GitHub Issues";
|
||
"settings.support.unavailable.title" = "无法加载页面";
|
||
"settings.support.unavailable.message" = "无法打开 GitHub Issues,请检查网络连接后重试。";
|
||
"settings.link.licenses" = "第三方许可";
|
||
"settings.link.models" = "本地模型管理";
|
||
"settings.models.link.subtitle" = "下载源、模型文件与存储管理";
|
||
"settings.licenses.title" = "第三方许可";
|
||
"settings.licenses.footer" = "以下为 OSGKeyboard 使用的开源组件。许可正文摘自上游仓库;模型权重在运行时下载并缓存在本机。OSGKeyboard 本身采用源码可见许可,商业授权请联系 rocky.hk@gmail.com。";
|
||
|
||
/* 本地模型管理(设置 → "本地模型管理") */
|
||
"settings.models.title" = "本地模型管理";
|
||
"settings.models.intro.title" = "完全在 iPhone 上跑语音识别";
|
||
"settings.models.intro.body" = "使用本地 Qwen3-ASR 前请先点「下载」。文件缓存在本 App 存储,可随时删除以释放空间。";
|
||
"settings.models.mirror.title" = "下载源";
|
||
"settings.models.source.modelScope" = "ModelScope";
|
||
"settings.models.source.huggingface" = "Hugging Face";
|
||
"settings.models.action.downloadSize %@" = "下载 - %@";
|
||
"settings.models.action.deleteSize %@" = "删除 - %@";
|
||
"settings.models.action.downloadingPercent %lld" = "%lld%%";
|
||
"settings.models.status.notDownloaded" = "未下载";
|
||
"settings.models.status.downloading" = "下载中…";
|
||
"settings.models.status.downloadingPercent %lld" = "下载中… %lld%%";
|
||
"settings.models.status.downloaded" = "已下载";
|
||
"settings.models.status.failed" = "下载失败";
|
||
"settings.models.action.download" = "下载";
|
||
"settings.models.action.cancel" = "取消";
|
||
"settings.models.action.cancelDownload" = "取消下载";
|
||
"settings.models.action.delete" = "删除";
|
||
|
||
/* 本地识别引擎选择(本地识别模式) */
|
||
"asr.backend.speechAnalyzer.label" = "iOS SpeechAnalyzer";
|
||
"asr.backend.speechAnalyzer.blurb" = "iOS 26 内置,全程在本地,延迟最低。";
|
||
"asr.backend.speechAnalyzer.hint" = "无需下载,直接可用。";
|
||
"asr.backend.qwen3.label" = "Qwen3-ASR 0.6B (CoreML)";
|
||
"asr.backend.qwen3.blurb" = "对方言和嘈杂环境更友好,需下载约 1.6 GB CoreML 模型,支持后台转写。";
|
||
"asr.backend.qwen3.downloadHint" = "请先在上方「本地模型管理」中下载 CoreML 模型,再开始录音。";
|
||
"asr.error.modelNotDownloaded" = "Qwen3-ASR 尚未下载,请先在设置中的「本地模型管理」下载。";
|
||
"asr.error.unsupportedOS" = "Qwen3-ASR CoreML 需要 iOS 18 或更高版本。请改用 iOS SpeechAnalyzer 或云端引擎。";
|
||
|
||
/* 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.openSettings" = "设置";
|
||
"preview.record.start" = "开始录音";
|
||
"preview.record.stop" = "停止录音";
|
||
"preview.status.field" = "输入框";
|
||
"preview.status.recording" = "正在录音…";
|
||
"preview.status.processing" = "识别中…";
|
||
|
||
/* 语音输入(键盘跳转主 App) */
|
||
"dictation.title" = "语音输入";
|
||
"dictation.status.ready" = "准备录音…";
|
||
"dictation.status.listening" = "正在听…";
|
||
"dictation.status.listeningLive" = "正在实时识别…";
|
||
"dictation.status.processing" = "处理中…";
|
||
"dictation.status.requestingPermission" = "请求权限中…";
|
||
"dictation.status.waitingResult" = "等待识别结果…";
|
||
"dictation.status.saving" = "保存中…";
|
||
"preview.modeChip.cycle" = "切换输入模式";
|
||
"preview.localeChip.cycle" = "切换识别语言";
|
||
"preview.error.audioSession" = "音频会话错误: %@";
|
||
"preview.error.micUnavailable" = "麦克风不可用 (硬件格式 %.0f Hz / %d 声道)";
|
||
"preview.error.formatCreate" = "无法创建 16 kHz 音频格式。";
|
||
"preview.error.converterCreate" = "无法创建音频转换器。";
|
||
"preview.error.engineStart" = "无法启动音频引擎: %@";
|
||
|
||
/* Keyboard (ext) */
|
||
"keyboard.placeholder.idle" = "按住说话";
|
||
"keyboard.placeholder.preparing" = "准备中…";
|
||
"keyboard.placeholder.processing" = "处理中…";
|
||
"keyboard.placeholder.error" = "润色失败";
|
||
"keyboard.rec" = "REC";
|
||
"keyboard.space" = "空格";
|
||
"keyboard.denied.mic" = "麦克风被拒绝";
|
||
"keyboard.denied.speech" = "语音识别被拒绝";
|
||
"keyboard.openSettingsA11y" = "打开 OSGKeyboard 设置";
|
||
"keyboard.deniedHint" = "打开 OSGKeyboard 设置,可授予麦克风 / 语音识别权限。";
|
||
"keyboard.tapToTalkA11y" = "点按说话";
|
||
|
||
/* 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" = "한국어";
|
||
|
||
/* Flow session */
|
||
"flow.error.noSpeech" = "未检测到语音,请重试。";
|
||
"flow.error.recognitionInterrupted" = "识别未完成,请再试一次。";
|
||
"keyboard.denied.mic" = "麦克风权限被拒绝";
|
||
"keyboard.denied.speech" = "语音识别权限被拒绝";
|
||
|
||
/* Home · Flow session */
|
||
"home.flow.active" = "语音会话进行中";
|
||
"home.flow.label" = "就绪";
|
||
"home.flow.inactive" = "语音会话未启动";
|
||
"home.flow.notReady" = "未就绪";
|
||
"home.flow.recording" = "录音中…";
|
||
"home.flow.processing" = "处理中…";
|
||
"home.flow.hint" = "切到别的 App,点键盘麦克风就能说。";
|
||
"home.setup.permission.mic" = "麦克风还没授权,语音输入用不了。";
|
||
"home.setup.permission.speech" = "语音识别还没授权,语音输入用不了。";
|
||
"home.setup.permission.both" = "麦克风和语音识别还没授权,语音输入用不了。";
|
||
"home.setup.permission.request" = "下一步";
|
||
"home.setup.cloudIncomplete" = "选了云端引擎,先去「设置」填 API Key。";
|
||
"home.setup.polishKeyMissing" = "请先在「设置」填写 API Key 才能润色;未填写时会直接插入原始识别结果。";
|
||
"home.setup.keyboardHint" = "列表里没有?去系统设置里添加键盘。";
|
||
"home.setup.keyboardHint.dismiss" = "知道了";
|
||
"home.flow.starting" = "正在启动语音会话…";
|
||
"home.flow.preparingProgress" = "正在准备后台会话(%d/%d)…";
|
||
"home.flow.recoveringProgress" = "正在恢复后台会话(%d/%d)…";
|
||
"home.flow.waitingForForeground" = "后台会话已暂停,重新打开本 App 后自动恢复";
|
||
"home.flow.recoveryFailed" = "后台会话需要恢复";
|
||
"home.flow.retry" = "重试";
|
||
"home.flow.openSettings" = "去设置打开权限";
|
||
"home.flow.start" = "启动语音会话";
|
||
"home.flow.end" = "结束语音会话";
|
||
"home.flow.endShort" = "结束";
|
||
"home.flow.startShort" = "开启";
|
||
"home.preview.label" = "输入测试";
|
||
"home.preview.placeholder" = "点这里试试键盘";
|
||
"home.card.history.empty" = "还没有语音识别记录";
|
||
"home.card.dictionary.empty" = "还没有词条";
|
||
"home.card.dictionary.smart.subtitle" = "从 Rime 输入习惯中发现的高频新词";
|
||
"home.card.dictionary.smart.empty" = "暂无推荐词";
|
||
"home.card.dictionary.smart.accessibilityHint" = "已使用 %lld 次,轻点两次加入个性词库。";
|
||
"home.card.dictionary.confirm.title" = "将“%@”加入个性词库?";
|
||
"home.card.dictionary.confirm.message" = "Rime 已记录这个词 %lld 次。加入后也会用于提升语音识别和 AI 润色效果。";
|
||
"home.card.dictionary.confirm.add" = "加入词库";
|
||
"home.wide.tagline.subtitle" = "切换到任意 App,点键盘麦克风即可听写。";
|
||
"home.wide.mode.cloud" = "云端";
|
||
"home.wide.mode.local" = "本机";
|
||
"home.wide.devices" = "iPhone 与 iPad";
|
||
"home.engine.unsupportedOS" = "Qwen3-ASR CoreML 需要 iOS 18 或更高版本";
|
||
"home.engine.warming" = "正在加载语音识别模型…";
|
||
"home.engine.downloading" = "正在下载语音识别模型…";
|
||
"home.engine.loadFailed" = "模型已下载,但加载失败。请重启应用后再试。";
|
||
"home.engine.modelsReady" = "语音识别模型已就绪";
|
||
"home.engine.setupRequired" = "本地语音识别模型未就绪";
|
||
"home.engine.downloadFirst" = "请先在设置中下载本地语音识别模型";
|
||
"home.engine.attentionBanner" = "本地语音识别模型尚未就绪,请先下载并等待加载完成后再使用语音输入。";
|
||
|
||
/* Tabs */
|
||
"tab.keyboard" = "首页";
|
||
"tab.history" = "历史";
|
||
"tab.dictionary" = "词库";
|
||
"tab.styles" = "风格";
|
||
"tab.skills" = "技能";
|
||
"tab.settings" = "设置";
|
||
|
||
/* AI Agent 技能 */
|
||
"skills.title" = "技能";
|
||
"skills.installed.section" = "已安装(%d)";
|
||
"skills.installed.empty" = "暂无已安装技能。";
|
||
"skills.uninstalled.section" = "未安装";
|
||
"skills.clipboard.guide.title" = "启用剪贴板技能";
|
||
"skills.clipboard.guide.body" = "复制文字后,可直接总结、翻译或提取事项。";
|
||
"skills.clipboard.guide.enableHistory" = "开启历史记录";
|
||
"skills.clipboard.guide.verify.title" = "还差一步";
|
||
"skills.clipboard.guide.verify.body" = "允许 OSGKeyboard 读取你主动复制的文字。";
|
||
"skills.clipboard.guide.verify.action" = "验证粘贴访问";
|
||
"skills.clipboard.guide.recovery.title" = "粘贴访问未开启";
|
||
"skills.clipboard.guide.recovery.body" = "在系统设置中允许「从其他 App 粘贴」,返回后再验证。";
|
||
"skills.clipboard.guide.success.title" = "剪贴板技能已就绪";
|
||
"skills.clipboard.guide.success.body" = "复制文字后,即可从键盘使用这些技能。";
|
||
"skills.clipboard.guide.openSystemSettings" = "打开系统设置";
|
||
"skills.detail.title" = "技能";
|
||
"skills.badge.default" = "默认技能";
|
||
"skills.action.install" = "安装";
|
||
"skills.action.uninstall" = "卸载";
|
||
"skills.action.reinstallShortcut" = "重新安装捷径";
|
||
"skills.reply.name" = "原语言回复";
|
||
"skills.reply.description" = "理解复制内容,并使用原文的主要语言自然回复。";
|
||
"skills.playfulReply.name" = "俏皮回复";
|
||
"skills.playfulReply.description" = "用简短、有梗但不冒犯的方式接住这句话。";
|
||
"skills.replyInSourceLanguage.name" = "用原语言回复";
|
||
"skills.replyInSourceLanguage.description" = "理解复制内容,并使用相同语言自然回复。";
|
||
"skills.summarize.name" = "总结要点";
|
||
"skills.summarize.description" = "总结核心内容,并按需提炼事实、决定、结论和下一步。";
|
||
"skills.openLink.name" = "打开链接";
|
||
"skills.openLink.description" = "使用系统默认浏览器打开复制内容中的唯一网页链接。";
|
||
"skills.summarizeWebPage.name" = "总结网页";
|
||
"skills.summarizeWebPage.description" = "安全提取公开网页正文,再总结其中的关键事实与结论。";
|
||
"skills.callPhone.name" = "拨打电话";
|
||
"skills.callPhone.description" = "拨打复制内容中识别出的唯一电话号码。";
|
||
"skills.createContact.name" = "新建联系人";
|
||
"skills.createContact.description" = "打开系统联系人编辑页,并预填识别出的电话号码。";
|
||
"skills.extractConclusions.name" = "提取结论";
|
||
"skills.extractConclusions.description" = "从长文提取决定、结论和下一步。";
|
||
"skills.translate.name" = "翻译";
|
||
"skills.translate.description" = "将不同语言的复制文本翻译为设备当前的首选系统语言。";
|
||
"skills.acceptInvitation.name" = "接受邀约";
|
||
"skills.acceptInvitation.description" = "起草简洁的接受回复,并确认重要信息。";
|
||
"skills.declineInvitation.name" = "委婉拒绝";
|
||
"skills.declineInvitation.description" = "真诚婉拒邀约,不虚构理由。";
|
||
"skills.acceptTask.name" = "确认任务";
|
||
"skills.acceptTask.description" = "确认收到的事项和原文写明的截止时间。";
|
||
"skills.clarifyRequest.name" = "澄清与追问";
|
||
"skills.clarifyRequest.description" = "针对问题、任务或故障描述,只追问最关键的信息。";
|
||
"skills.empathyReply.name" = "共情回复";
|
||
"skills.empathyReply.description" = "理解投诉或负面反馈,并给出稳妥下一步。";
|
||
"skills.askForDetails.name" = "询问细节";
|
||
"skills.askForDetails.description" = "询问定位或解决问题所需的信息。";
|
||
"skills.businessReply.name" = "商务回复";
|
||
"skills.businessReply.description" = "起草专业清晰、承诺边界明确的回复。";
|
||
"skills.organizeList.name" = "整理清单";
|
||
"skills.organizeList.description" = "整理清单、议程和步骤,不新增任务。";
|
||
"skills.extractTodos.name" = "提取待办";
|
||
"skills.extractTodos.description" = "从复制内容提取待办,写入提醒事项。";
|
||
"skills.extractEvents.name" = "提取日程";
|
||
"skills.extractEvents.description" = "从复制内容提取日程,写入日历。";
|
||
"skills.saveToNotes.name" = "存入备忘录";
|
||
"skills.saveToNotes.description" = "根据复制内容和当前时间生成标题,写入一条新的备忘录;正文保持原文。";
|
||
"skills.navigate.name" = "导航";
|
||
"skills.navigate.description" = "从复制内容识别地址并开始驾车导航。优先高德,其次百度,最后 Apple 地图。";
|
||
"skills.install.lead" = "添加后点「我已添加」,请勿改名。";
|
||
"skills.install.openShortcuts" = "添加捷径";
|
||
"skills.install.confirmAdded" = "我已添加";
|
||
"skills.add" = "添加技能";
|
||
"skills.edit" = "编辑技能";
|
||
"skills.custom.description" = "自定义剪贴板技能";
|
||
"skills.editor.name" = "名称";
|
||
"skills.editor.namePlaceholder" = "技能名称";
|
||
"skills.editor.summary" = "介绍";
|
||
"skills.editor.summaryPlaceholder" = "显示在技能卡片上";
|
||
"skills.editor.icon" = "图标";
|
||
"skills.editor.iconChoose" = "选择 SF Symbol";
|
||
"skills.editor.iconSearch" = "搜索符号";
|
||
"skills.editor.prompt" = "文本处理提示词";
|
||
"skills.editor.thinking" = "思考";
|
||
"skills.editor.thinkingHint" = "默认关闭。仅在需要该技能更慢、更深的推理时开启。";
|
||
"skills.editor.shortcut" = "捷径(可选)";
|
||
"skills.editor.linkPlaceholder" = "https://www.icloud.com/shortcuts/…";
|
||
"skills.editor.shortcutNamePlaceholder" = "捷径名称(填写链接时必填)";
|
||
"skills.editor.shortcutHint" = "不填链接时仅处理文字,结果确认后插入。填写链接时会自动读取捷径名称;添加到「快捷指令」后请勿改名。";
|
||
"skills.editor.lookingUp" = "正在读取捷径名称…";
|
||
"skills.editor.resolvedName" = "将运行:%@";
|
||
"skills.editor.lookupFailed" = "无法读取捷径名称。请检查链接,或手动填写名称。";
|
||
"skills.delete.title" = "删除此技能?";
|
||
"skills.delete.message" = "会从本机移除。快捷指令 App 里的捷径不会被删除。";
|
||
"skills.error.title" = "无法保存技能";
|
||
"skills.error.emptyName" = "请输入技能名称。";
|
||
"skills.error.emptyPrompt" = "提示词不能为空。";
|
||
"skills.error.emptyShortcutName" = "请填写用于运行的捷径名称。";
|
||
"skills.error.invalidLink" = "请输入有效的 iCloud 捷径链接。";
|
||
"skills.error.emptyIcon" = "请选择图标。";
|
||
"skills.error.promptTooLong" = "提示词最多 6,000 字。";
|
||
"skills.error.generic" = "请再试一次。";
|
||
|
||
/* 润色风格包 */
|
||
"polishStyles.title" = "润色风格";
|
||
"polishStyles.add" = "添加风格";
|
||
"polishStyles.edit" = "编辑风格";
|
||
"polishStyles.viewPrompt" = "查看完整提示词";
|
||
"polishStyles.duplicate" = "创建副本";
|
||
"polishStyles.builtin.section" = "内置风格";
|
||
"polishStyles.fun.section" = "趣味风格";
|
||
"polishStyles.custom.section" = "我的风格";
|
||
"polishStyles.intro.title" = "选择完整写作人格";
|
||
"polishStyles.intro.body" = "选中的风格会影响每次听写润色。开启设置同步后,自定义风格会通过 iCloud 保存。";
|
||
"polishStyles.learn.title" = "生成专属风格";
|
||
"polishStyles.learn.body" = "从历史听写中学习你的表达习惯。";
|
||
"polishStyles.learn.progress" = "%lld / %lld 字";
|
||
"polishStyles.learn.remaining" = "还差 %lld 字";
|
||
"polishStyles.learn.ready" = "可以生成";
|
||
"polishStyles.learn.action" = "生成风格";
|
||
"polishStyles.learn.generating" = "生成中…";
|
||
"polishStyles.learn.privacy" = "仅在生成时发送给你配置的 AI,保存前可预览和修改。";
|
||
"polishStyles.learn.limit" = "请先删除一个自定义风格,再生成新风格。";
|
||
"polishStyles.learn.error.insufficient" = "请继续听写,累积到 5,000 个有效字符后再生成。";
|
||
"polishStyles.learn.error.invalidResponse" = "AI 没有返回有效的润色风格,请重试。";
|
||
"polishStyles.learn.error.promptTooLong" = "生成的 Prompt 超过 6,000 个字符,请重试。";
|
||
"polishStyles.learn.error.requestTooLarge" = "学习语料超过当前 AI 服务的请求上限,请缩短异常过长的历史记录后重试。";
|
||
"polishStyles.learn.error.request" = "无法通过当前配置的 AI 服务生成风格,请检查网络和 AI 设置后重试。";
|
||
"polishStyles.light.description" = "修正识别错误与标点,尽量少改原话。";
|
||
"polishStyles.structured.description" = "将多个事项整理为清晰段落与列表。";
|
||
"polishStyles.formal.description" = "适合邮件和工作的专业、克制表达。";
|
||
"polishStyles.dating.description" = "有态度、好接,偶尔带一点巧思的恋爱聊天。";
|
||
"polishStyles.chat.description" = "简短自然的聊天消息,避免公文腔。";
|
||
"polishStyles.flex.description" = "中英夹杂的 4A / 留学装逼腔,偶尔点缀品牌格调。";
|
||
"polishStyles.corp.description" = "大厂开会黑话:汇报、吵架、甩锅都像那么回事。";
|
||
"polishStyles.diba.description" = "不脏字的逻辑碾压回复,让对方接不住。";
|
||
"polishStyles.xhs.description" = "姐妹向小红书笔记体:有钩子、可种草、可直接发帖。";
|
||
"polishStyles.custom.description" = "自定义完整写作人格";
|
||
"polishStyles.copyName" = "%@副本";
|
||
"polishStyles.editor.name" = "名称";
|
||
"polishStyles.editor.namePlaceholder" = "风格名称";
|
||
"polishStyles.editor.allowsAddedEmoji" = "允许按情绪添加 emoji";
|
||
"polishStyles.editor.allowsAddedEmoji.hint" = "开启后,润色可按原文情绪点缀少量 emoji,并保留上屏。默认关闭。";
|
||
"polishStyles.editor.prompt" = "完整提示词";
|
||
"polishStyles.editor.hint" = "只需描述角色、语气、风格边界和示例。系统会自动追加个人词典、安全边界和输出契约。";
|
||
"polishStyles.error.title" = "无法保存风格";
|
||
"polishStyles.error.emptyName" = "请输入风格名称。";
|
||
"polishStyles.error.emptyPrompt" = "提示词不能为空。";
|
||
"polishStyles.error.limit" = "最多可保存 8 个自定义风格。";
|
||
"polishStyles.error.promptTooLong" = "提示词最多可输入 6,000 个字符。";
|
||
"polishStyles.error.builtin" = "内置风格不能直接修改,请创建副本后自定义。";
|
||
"polishStyles.error.generic" = "请重试。";
|
||
|
||
/* History */
|
||
"history.title" = "历史";
|
||
"history.subtitle" = "仅保存在本机。";
|
||
"history.empty" = "还没有语音识别记录。";
|
||
"history.clear.title" = "清空全部历史?";
|
||
"history.clear.message" = "此操作无法撤销。";
|
||
"history.clear.confirm" = "全部清空";
|
||
"history.clear.button" = "清空全部历史";
|
||
"history.clearDay.title" = "删除这一天的记录?";
|
||
"history.clearDay.message" = "将删除该日全部语音记录,此操作无法撤销。";
|
||
"history.clearDay.confirm" = "删除当天";
|
||
"history.clearDay.button" = "删除当天历史";
|
||
"flow.error.speechRequired" = "需要语音识别权限才能使用语音会话。";
|
||
"flow.error.micRequired" = "需要麦克风权限才能维持后台语音会话。";
|
||
"flow.error.micUnavailable" = "当前设备无法使用麦克风。";
|
||
"flow.error.audioUnavailable" = "无法启动后台音频。";
|
||
|
||
"settings.models.error.metadata" = "下载缓存损坏或不完整。请更换下载源后重试。";
|
||
"settings.models.error.offline" = "无法连接模型服务器,请检查网络或更换下载源。";
|
||
"settings.models.confirm.downloadTitle %@" = "下载 %@";
|
||
"settings.models.confirm.downloadingTitleFormat %@" = "正在下载 %@";
|
||
"settings.models.confirm.body %lld" = "下载后约占用 %lld MB 空间。建议在 Wi-Fi 下下载,避免消耗蜂窝流量。随时可以在本设置页删除模型文件以释放空间。";
|
||
"settings.models.confirm.cancel" = "取消";
|
||
"settings.models.confirm.download %lld" = "下载 %lld MB";
|
||
|
||
/* v0.3.0: 个性化词库 */
|
||
"settings.personalDictionary.sectionTitle" = "个性化词库";
|
||
"settings.personalDictionary.title" = "个性词库";
|
||
"settings.personalDictionary.summary" = "AI 润色时必须原样保留的词汇。";
|
||
"settings.personalDictionary.intro.title" = "关于词库";
|
||
"settings.personalDictionary.intro.body" = "手动添加词条;保存后会自动生成常见误识别写法。点击词条可编辑。";
|
||
"settings.personalDictionary.empty.title" = "还没有词条";
|
||
"settings.personalDictionary.empty.body" = "添加个性化词库,提升识别准确性\n词库将通过 iCloud 实现跨设备同步";
|
||
"settings.personalDictionary.search.prompt" = "搜索词条";
|
||
"settings.personalDictionary.usageCount" = "使用 %lld 次";
|
||
"settings.personalDictionary.add.title" = "添加词条";
|
||
"settings.personalDictionary.edit.title" = "编辑词条";
|
||
"settings.personalDictionary.add.field" = "词条";
|
||
"settings.personalDictionary.add.footer" = "保存后会自动用 DeepSeek 生成常见误识别写法,用于 ASR 纠错。";
|
||
"settings.personalDictionary.aliases.generating" = "正在生成别名…";
|
||
"settings.personalDictionary.clearAll" = "清空词库";
|
||
"settings.personalDictionary.clearAll.confirmTitle" = "清空全部词条?";
|
||
"settings.personalDictionary.clearAll.message" = "这会移除所有受保护的词汇,且无法撤销。";
|
||
"settings.personalDictionary.clearAll.confirm" = "全部清空";
|
||
"settings.personalDictionary.iCloudSync.title" = "通过 iCloud 同步";
|
||
"settings.personalDictionary.iCloudSync.settingsTitle" = "个性词库 iCloud 同步";
|
||
"settings.personalDictionary.iCloudSync.subtitle" = "在 iPhone、iPad 和 Mac 之间同步词库。数据仅保存在你的私人 iCloud 账户中,不会用于训练。";
|
||
"settings.personalDictionary.iCloudSync.error.tooLarge" = "词库过大,无法通过 iCloud 同步。请删除部分词条后重试。";
|
||
"settings.personalDictionary.iCloudSync.error.generic" = "无法与 iCloud 同步词库,请稍后重试。";
|
||
|
||
"settings.iCloudSync.title" = "跨设备iCloud 同步";
|
||
"settings.appSettings.iCloudSync.title" = "跨设备iCloud 同步";
|
||
"settings.appSettings.iCloudSync.subtitle" = "通过 iCloud 跨设备同步设置、历史记录、API Key";
|
||
"settings.appSettings.iCloudSync.syncNow" = "立即同步";
|
||
"settings.appSettings.iCloudSync.syncing" = "同步中…";
|
||
"settings.appSettings.iCloudSync.synced" = "已同步";
|
||
"settings.appSettings.iCloudSync.error.generic" = "无法与 iCloud 同步设置,请稍后重试。";
|
||
|
||
|
||
/* 润色强度 */
|
||
"settings.polishIntensity.title" = "润色强度";
|
||
|
||
/* Flow 会话(内部策略字段仍可能同步;设置页已不再展示保活选项) */
|
||
"settings.localModels.customLM.title" = "使用自定义语言模型";
|
||
"settings.localModels.customLM.subtitle" = "诊断开关。本地识别卡住或提示未识别时,可关闭它测试纯 Apple 端侧识别。";
|
||
|
||
/* 冷启动 / 会话错误(用户可见文案不出现「画中画」) */
|
||
"flow.coldStart.error.audioTimeout" = "麦克风未能及时就绪,可能正被通话或其他 App 占用。请稍后重试。";
|
||
"flow.session.error.unsupported" = "此设备无法维持语音会话。";
|
||
"flow.session.error.hostNotReady" = "语音会话尚未就绪,请留在 App 内稍后重试。";
|
||
"flow.session.error.notPossible" = "系统暂时无法启动语音会话,请保持 App 在前台后重试。";
|
||
"flow.session.error.systemRejected" = "语音会话启动被系统拒绝,请稍后重试。";
|
||
"flow.session.error.timedOut" = "语音会话未能及时启动,请留在 App 内重试。";
|
||
|
||
/* 宿主 App 显示名(方案 C 白名单) */
|
||
"hostApp.wechat" = "微信";
|
||
"hostApp.qq" = "QQ";
|
||
"hostApp.wecom" = "企业微信";
|
||
"hostApp.dingtalk" = "钉钉";
|
||
"hostApp.lark" = "飞书";
|
||
"hostApp.telegram" = "Telegram";
|
||
"hostApp.whatsapp" = "WhatsApp";
|
||
"hostApp.line" = "LINE";
|
||
"hostApp.messenger" = "Messenger";
|
||
"hostApp.slack" = "Slack";
|
||
"hostApp.teams" = "Microsoft Teams";
|
||
"hostApp.discord" = "Discord";
|
||
"hostApp.notion" = "Notion";
|
||
"hostApp.bear" = "Bear";
|
||
"hostApp.obsidian" = "Obsidian";
|
||
"hostApp.drafts" = "Drafts";
|
||
"hostApp.gmail" = "Gmail";
|
||
"hostApp.outlook" = "Outlook";
|
||
"hostApp.chrome" = "Chrome";
|
||
"hostApp.weibo" = "微博";
|
||
"hostApp.xiaohongshu" = "小红书";
|
||
"hostApp.signal" = "Signal";
|
||
"hostApp.kakaotalk" = "KakaoTalk";
|
||
"hostApp.viber" = "Viber";
|
||
"hostApp.zalo" = "Zalo";
|
||
"hostApp.skype" = "Skype";
|
||
"hostApp.zoom" = "Zoom";
|
||
"hostApp.things" = "Things";
|
||
"hostApp.todoist" = "Todoist";
|
||
"hostApp.evernote" = "印象笔记";
|
||
"hostApp.onenote" = "OneNote";
|
||
"hostApp.spark" = "Spark";
|
||
"hostApp.firefox" = "Firefox";
|
||
"hostApp.edge" = "Edge";
|
||
"hostApp.facebook" = "Facebook";
|
||
"hostApp.instagram" = "Instagram";
|
||
"hostApp.x" = "X";
|
||
"hostApp.threads" = "Threads";
|
||
"hostApp.snapchat" = "Snapchat";
|
||
"hostApp.reddit" = "Reddit";
|
||
"hostApp.pinterest" = "Pinterest";
|
||
"hostApp.zhihu" = "知乎";
|
||
"hostApp.bilibili" = "哔哩哔哩";
|
||
"hostApp.douyin" = "抖音";
|
||
"hostApp.tiktok" = "TikTok";
|
||
"flow.warning.polishDegradedQuality" = "本次润色结果未通过校验,已插入保守处理版本。";
|
||
"flow.error.editLastInputFailed" = "未能完成编辑,请重试。";
|
||
"flow.error.aiQuestionFailed" = "AI 回答失败,请重试。";
|
||
"flow.error.clipboardUnavailable" = "没有可用的剪贴板内容。请开启剪贴板历史并先复制文本。";
|
||
"flow.error.webPageInvalid" = "该链接无法用于网页总结。";
|
||
"flow.error.webPageUnavailable" = "无法读取该网页,页面可能要求登录或禁止自动读取。";
|
||
"flow.error.webPageEmpty" = "网页中没有可读取的正文内容。";
|
||
|
||
/* 可选账号中心 */
|
||
"account.title" = "账号";
|
||
"account.settings.section" = "账号";
|
||
"account.settings.restoring" = "检查中…";
|
||
"account.settings.signedOut" = "未登录";
|
||
"account.settings.signedIn" = "已登录";
|
||
"account.settings.balance %lld" = "%lld 积分";
|
||
"account.loading.session" = "正在检查账号状态…";
|
||
"account.loading.center" = "正在加载账号…";
|
||
"account.signedOut.title" = "OSG 账号";
|
||
"account.signedOut.body" = "登录后可使用托管积分与邀请功能。";
|
||
"account.signedOut.localUnaffected" = "本地功能与自有 API Key 无需账号也可继续使用。";
|
||
"account.signIn.apple" = "通过 Apple 登录";
|
||
"account.signIn.hint" = "创建或打开可选的 OSG 账号。";
|
||
"account.signIn.loading" = "正在登录…";
|
||
"account.error.sessionExpired" = "登录状态已过期,请重新登录后继续。";
|
||
"account.summary.section" = "账号";
|
||
"account.summary.signedIn" = "已登录";
|
||
"account.summary.protected" = "账号已安全保护";
|
||
"account.profile.section" = "个人资料";
|
||
"account.profile.fallbackName" = "OSG 用户";
|
||
"account.profile.nickname" = "昵称";
|
||
"account.profile.save" = "保存昵称";
|
||
"account.profile.editTitle" = "编辑";
|
||
"account.profile.editMessage" = "请输入账号中显示的昵称。";
|
||
"account.error.updateProfile" = "无法更新昵称。";
|
||
"account.summary.identifier" = "账号标识";
|
||
"account.credits.section" = "积分";
|
||
"account.credits.balance" = "可用积分";
|
||
"account.credits.unit" = "可用积分";
|
||
"account.credits.remaining" = "还剩余";
|
||
"account.credits.used" = "已使用";
|
||
"account.credits.total" = "总积分";
|
||
"account.credits.remainingCompact" = "%@";
|
||
"account.credits.usedCompact" = "已用 %@";
|
||
"account.credits.totalValueCompact" = "总量 %@";
|
||
"account.credits.updating" = "正在更新积分…";
|
||
"account.credits.updatedAt" = "更新于 %@";
|
||
"account.credits.updateFailedAt" = "更新失败 · 显示 %@ 的数据";
|
||
"account.credits.notUpdated" = "积分尚未更新";
|
||
"account.storekit.section" = "购买积分";
|
||
"account.storekit.credits" = "积分";
|
||
"account.storekit.purchase" = "购买";
|
||
"account.storekit.loading" = "正在加载 App Store 商品…";
|
||
"account.storekit.pending" = "购买正在等待批准。";
|
||
"account.storekit.succeeded" = "已增加 %lld 积分";
|
||
"account.storekit.noRestore" = "积分包为消耗型商品,不支持恢复购买。";
|
||
"account.storekit.error.productUnavailable" = "App Store 暂未提供此积分包。";
|
||
"account.storekit.error.verification" = "App Store 无法验证这笔交易。";
|
||
"account.storekit.error.server" = "账号服务器暂时无法记录这笔购买。";
|
||
"account.storekit.error.session" = "请重新登录后再购买积分。";
|
||
"account.storekit.error.network" = "请联网后重试。";
|
||
"account.storekit.error.conflict" = "这笔交易无法应用到当前账号。";
|
||
"account.storekit.error.unknown" = "购买未能完成。";
|
||
"account.purchaseHistory.title" = "购买记录";
|
||
"account.purchaseHistory.loading" = "正在加载购买记录…";
|
||
"account.purchaseHistory.empty" = "暂无购买记录";
|
||
"account.purchaseHistory.error" = "无法加载购买记录,请重试。";
|
||
"account.purchaseHistory.loadMoreError" = "加载更多记录失败,点击重试";
|
||
"account.purchaseHistory.balanceAfter" = "入账后 %@";
|
||
"account.purchaseHistory.status.credited" = "已入账";
|
||
"account.ledger.section" = "积分记录";
|
||
"account.ledger.empty" = "还没有积分记录";
|
||
"account.ledger.defaultReason" = "积分变动";
|
||
"account.rates.section" = "费率";
|
||
"account.rates.empty" = "暂无托管服务费率";
|
||
"account.rate.asr.seconds" = "%lld 积分 / %lld 秒";
|
||
"account.rate.asr.milliseconds" = "%lld 积分 / %lld 毫秒";
|
||
"account.rate.llm" = "输入:%lld 积分 / %lld tokens · 输出:%lld 积分 / %lld tokens";
|
||
"account.referral.section" = "邀请";
|
||
"account.referral.yourCode" = "你的邀请码";
|
||
"account.referral.notCreated" = "尚未生成";
|
||
"account.rewards.title" = "积分与邀请";
|
||
"account.rewards.details" = "查看积分与邀请详情";
|
||
"account.referral.share" = "分享邀请";
|
||
"account.referral.inviteAction" = "邀请好友赚积分";
|
||
"account.referral.rewardExplanation" = "好友通过链接注册并完成一次有效使用后,你和好友均可获得积分。";
|
||
"account.referral.rewardGeneric" = "邀请好友赚积分";
|
||
"account.referral.rewardPerFriend" = "每成功邀请 1 位好友,你可获得 %@ 积分";
|
||
"account.referral.qualification" = "好友完成首次有效使用后发放";
|
||
"account.referral.friendRewardQualification" = "好友也可获得 %@ 积分,完成首次有效使用后发放";
|
||
"account.referral.shareShort" = "分享";
|
||
"account.referral.inviteTitle" = "邀请";
|
||
"account.referral.equalRewardDescription" = "每成功邀请一位好友,你和好友各获得 1000 积分。";
|
||
"account.referral.equalRewardGeneric" = "每成功邀请一位好友,双方均可获得积分。";
|
||
"account.referral.summaryCompact" = "已奖励 %d · 待确认 %d";
|
||
"account.referral.preparingLink" = "正在加载邀请链接…";
|
||
"account.referral.createCode" = "加载邀请链接";
|
||
"account.referral.loadLink" = "加载邀请链接";
|
||
"account.referral.loadingLink" = "正在加载邀请链接…";
|
||
"account.referral.refreshingLink" = "正在刷新邀请链接…";
|
||
"account.referral.error.load" = "无法加载邀请链接。";
|
||
"account.referral.error.session" = "请重新登录后加载邀请链接。";
|
||
"account.referral.error.network" = "请检查网络连接后重试。";
|
||
"account.referral.error.notFound" = "邀请链接暂不可用。";
|
||
"account.referral.error.conflict" = "邀请链接暂时不可用。";
|
||
"account.referral.error.unavailable" = "邀请服务暂时不可用。";
|
||
"account.referral.status.pending" = "待确认";
|
||
"account.referral.status.rewarded" = "已奖励";
|
||
"account.referral.status.ineligible" = "不符合条件";
|
||
"account.referral.pendingAfterSignIn" = "邀请已暂存,登录后会自动兑换。";
|
||
"account.security.section" = "账号操作";
|
||
"account.signOut.action" = "退出登录";
|
||
"account.signOut.confirmTitle" = "退出登录?";
|
||
"account.signOut.confirmMessage" = "本地功能与自有 API Key 仍可继续使用。";
|
||
"account.delete.action" = "注销账号";
|
||
"account.delete.confirmTitle" = "永久注销此账号?";
|
||
"account.delete.confirmMessage" = "积分、邀请状态及服务端账号数据都会被删除,且无法撤销。";
|
||
"account.delete.continue" = "继续重新认证";
|
||
"account.delete.reauthenticateTitle" = "通过 Apple 确认";
|
||
"account.delete.reauthenticateBody" = "永久注销账号前,OSGKeyboard 需要通过 Apple 重新认证。";
|
||
"account.delete.reauthenticate" = "通过 Apple 继续";
|
||
"account.delete.reauthenticateHint" = "重新认证并永久注销 OSG 账号。";
|
||
"account.delete.loading" = "正在注销账号…";
|
||
"account.retry" = "重试";
|
||
"account.error.title" = "账号暂不可用";
|
||
"account.error.unavailable" = "当前构建尚未接入账号服务。";
|
||
"account.error.restore" = "无法恢复账号会话。";
|
||
"account.error.signIn" = "登录失败,请重试。";
|
||
"account.error.load" = "无法加载账号详情。";
|
||
"account.error.invalidReferralCode" = "服务端返回了无效的邀请码。";
|
||
"account.error.createReferralCode" = "无法生成邀请码。";
|
||
"account.error.signOut" = "退出失败,请重试。";
|
||
"account.error.delete" = "无法注销账号。";
|
||
"account.error.redeemReferral" = "邀请已暂存,但暂时无法兑换。";
|
||
"account.error.appleAuthorization" = "未能完成 Apple 授权。";
|
||
"account.error.managedGateway" = "无法准备托管服务,请检查积分后重试。";
|
||
"account.managed.section" = "服务凭证";
|
||
"account.managed.credentialSource" = "凭证来源";
|
||
"account.managed.byok" = "我的 API 密钥";
|
||
"account.managed.accountCredits" = "账号积分";
|
||
"account.managed.explanation" = "该选择与本地或云端语音识别相互独立。账号会话仅保存在主 App,键盘只能获得短时、受限的网关授权。";
|
||
"account.managed.preparing" = "正在准备托管服务…";
|
||
"settings.analytics.section" = "隐私";
|
||
"settings.analytics.title" = "产品分析";
|
||
"settings.analytics.description" = "通过有限的第一方事件帮助改进可靠性。绝不收集键盘输入、音频、转录、Prompt、模型输出、凭证或个人标识。关闭后会删除本机尚未上传的事件。";
|