993784d223
Streamline the five-step flow with smarter skip logic, a centered welcome intro, clearer zh copy, keyboard setup detection via the extension, and home tips when permissions are still missing after onboarding completes.
191 lines
8.6 KiB
Plaintext
191 lines
8.6 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" = "Local 不需要 API Key;Cloud 用 LLM 润色文字。";
|
|
"onboarding.api.localReady.title" = "无需配置 API Key";
|
|
"onboarding.api.localReady.body" = "本地识别直接可用,按 Done 即可开始使用。";
|
|
|
|
/* Common navigation */
|
|
"common.back" = "返回";
|
|
"common.next" = "下一步";
|
|
"common.done" = "完成";
|
|
"common.continue" = "继续";
|
|
"common.reset" = "重置";
|
|
"common.cancel" = "取消";
|
|
"common.delete" = "删除";
|
|
"common.space" = "空格";
|
|
"common.newline" = "换行";
|
|
|
|
/* 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" = "选择识别方式。本地引擎无需 API Key,仅做语音转录。";
|
|
"settings.engine.local.title" = "本地识别";
|
|
"settings.engine.local.ios26" = "始终端侧,无需联网。";
|
|
"settings.engine.local.legacy" = "端侧 ASR,仅转录,无润色。";
|
|
"settings.engine.cloud.title" = "云端润色";
|
|
"settings.engine.cloud.subtitle" = "ASR 转录 + LLM 润色,需要 API Key。";
|
|
"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.placeholder.idle" = "点按说话";
|
|
"keyboard.placeholder.preparing" = "准备中…";
|
|
"keyboard.placeholder.processing" = "处理中…";
|
|
"keyboard.placeholder.error" = "润色失败";
|
|
"keyboard.placeholder.localBadge" = "本地";
|
|
"keyboard.rec" = "REC";
|
|
"keyboard.space" = "空格";
|
|
"keyboard.denied.mic" = "麦克风被拒绝";
|
|
"keyboard.denied.speech" = "语音识别被拒绝";
|
|
"keyboard.openSettingsA11y" = "打开 OSGKeyboard 设置";
|
|
"keyboard.deniedHint" = "打开 OSGKeyboard 设置,可授予麦克风 / 语音识别权限。";
|
|
"keyboard.tapToTalkA11y" = "点按说话";
|
|
|
|
/* 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.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.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 完成录音后重试";
|
|
|
|
/* Locale chip (short labels) */
|
|
"locale.chip.auto" = "自动";
|
|
"locale.chip.zh-Hans" = "简";
|
|
"locale.chip.zh-Hant" = "繁";
|
|
"locale.chip.en-US" = "EN";
|
|
"locale.chip.ja-JP" = "日";
|
|
"locale.chip.ko-KR" = "韩";
|
|
|
|
/* 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" = "한국어";
|