Rewrites the desktop mirror as services/sync/SyncEngine: a persistent outbox, per-account server-clock keyset cursors with paging, pulls that never overwrite unsent local edits, deletions both ways through sync_tombstones and per-row failure isolation. It now covers history titles and favorites, dictionary, every meeting's memos and documents, memo tags, user commands and dictation/meeting templates, and registers the desktop as a device that the phone can disconnect. Fixes shipped defects: the first pull after sign-in fetched nothing, only the first meeting's children were pushed, team meetings leaked into the personal database and lost team_id on re-push, and Realtime never connected because Electron's Node 20 has no global WebSocket (ws is now the transport). Anonymous local-mode records are imported into the first account that signs in. The settings sync section is translated and shows pending/rejected changes; synced screens reload on app:dataChanged.
545 lines
28 KiB
JSON
545 lines
28 KiB
JSON
{
|
||
"app.name": "D3RO Voice",
|
||
"app.tagline": "本地AI语音助手",
|
||
"nav.dashboard": "仪表板",
|
||
"nav.history": "历史记录",
|
||
"nav.dictionary": "词典",
|
||
"nav.commands": "命令",
|
||
"nav.settings": "设置",
|
||
"nav.meetings": "会议",
|
||
"nav.record": "录音",
|
||
"nav.chat": "聊天",
|
||
"nav.knowledge": "知识",
|
||
"nav.actions": "操作",
|
||
"nav.teams": "团队",
|
||
"nav.billing": "账单",
|
||
"nav.logout": "登出",
|
||
"login.subtitle": "AI语音助手",
|
||
"login.google": "使用Google继续",
|
||
"login.github": "使用GitHub继续",
|
||
"login.terms": "继续即表示您同意服务条款和隐私政策。",
|
||
"dashboard.systemStatus": "系统状态",
|
||
"dashboard.sessionsToday": "今日会话",
|
||
"dashboard.pressToRecord": "按下 {{key}} 开始录音",
|
||
"dashboard.hotkeyNotSet": "未设置热键",
|
||
"dashboard.words": "词数",
|
||
"dashboard.total": "总计",
|
||
"dashboard.days": "天",
|
||
"dashboard.sessions": "会话",
|
||
"dashboard.recentTranscriptions": "最近转录",
|
||
"dashboard.noHistory": "暂无历史记录 — 按下热键开始录音",
|
||
"dashboard.entries": "{{count}}条",
|
||
"dashboard.currentBackend": "当前后端",
|
||
"dashboard.backendLocal": "本地 (Ollama)",
|
||
"dashboard.backendPremium": "高级 (Claude)",
|
||
"history.title": "转录历史",
|
||
"history.search": "搜索...",
|
||
"history.entries": "{{count}}条",
|
||
"history.noResults": "无搜索结果",
|
||
"history.noHistory": "暂无历史记录 — 请开始录音",
|
||
"history.count": "{{count}}条",
|
||
"dictionary.title": "自定义词典",
|
||
"dictionary.words": "{{count}}个词",
|
||
"dictionary.add": "添加",
|
||
"dictionary.search": "搜索...",
|
||
"dictionary.noResults": "无搜索结果",
|
||
"dictionary.noWords": "暂无词条 — 添加自定义词汇以提高STT识别精度",
|
||
"dictionary.used": "已使用{{count}}次",
|
||
"dictionary.editTitle": "编辑词条",
|
||
"dictionary.addTitle": "添加词条",
|
||
"dictionary.word": "词汇",
|
||
"dictionary.pronunciation": "发音(可选)",
|
||
"commands.title": "LLM命令",
|
||
"commands.count": "{{count}}个",
|
||
"commands.add": "添加",
|
||
"commands.activeCommand": "当前命令",
|
||
"commands.none": "无",
|
||
"commands.noCommands": "暂无命令 — 点击添加以创建",
|
||
"commands.editTitle": "编辑命令",
|
||
"commands.addTitle": "添加命令",
|
||
"commands.name": "名称",
|
||
"commands.description": "描述",
|
||
"commands.promptTemplate": "提示词模板",
|
||
"commands.promptHelp": "{{text}} 将被替换为转录的文本",
|
||
"commands.defaultPrompt": "请润色以下内容:{{text}}",
|
||
"settings.title": "设置",
|
||
"settings.tabs.general": "通用",
|
||
"settings.tabs.audio": "音频",
|
||
"settings.tabs.stt": "STT",
|
||
"settings.tabs.llm": "LLM",
|
||
"settings.tabs.cloud": "云",
|
||
"settings.tabs.about": "关于",
|
||
"settings.shortcuts": "快捷键",
|
||
"settings.dictation": "听写",
|
||
"settings.dictation.desc": "按住键开始说话,松开键后开始转录。",
|
||
"settings.agent": "Agent模式",
|
||
"settings.agent.descWithKey": "双击 {{key}} 进入Agent模式。",
|
||
"settings.agent.descNoKey": "请先设置听写热键。",
|
||
"settings.oneTouch": "一触即发模式",
|
||
"settings.oneTouch.desc": "按下开始,再次按下停止。需要单独的快捷键。",
|
||
"settings.key": "键",
|
||
"settings.notSet": "未设置",
|
||
"settings.enabled": "已启用",
|
||
"settings.disabled": "已禁用",
|
||
"settings.interface": "界面",
|
||
"settings.theme": "主题",
|
||
"settings.theme.system": "跟随系统",
|
||
"settings.theme.light": "浅色",
|
||
"settings.theme.dark": "深色",
|
||
"settings.language": "语言",
|
||
"settings.appBehavior": "应用行为",
|
||
"settings.closeToTray": "最小化到托盘",
|
||
"settings.autoLaunch": "开机自动启动",
|
||
"settings.autoInsert": "转录后自动插入文本",
|
||
"settings.soundEffects": "音效",
|
||
"settings.microphone": "麦克风",
|
||
"settings.inputDevice": "输入设备",
|
||
"settings.deviceDefault": "(默认)",
|
||
"settings.textInsert": "文本插入",
|
||
"settings.insertMethod": "插入方式",
|
||
"settings.insertClipboard": "剪贴板(Ctrl+V)",
|
||
"settings.insertKeyboard": "键盘输入",
|
||
"settings.whisperModel": "听写模型",
|
||
"settings.model.tiny": "tiny(39 MB,最快)",
|
||
"settings.model.base": "base(74 MB,均衡)",
|
||
"settings.model.small": "small(244 MB,良好)",
|
||
"settings.model.medium": "medium(769 MB,优秀)",
|
||
"settings.model.large": "large-v3(1.5 GB,最佳)",
|
||
"settings.model.largeTurbo": "large-v3-turbo(1.6 GB,快速且准确)",
|
||
"settings.sttLanguage": "识别语言",
|
||
"settings.sttLang.auto": "自动检测",
|
||
"settings.ollamaServer": "Ollama服务器",
|
||
"settings.ollamaUrl": "Ollama服务器URL",
|
||
"settings.ollamaHint": "Ollama运行时将自动连接。请直接在Ollama中pull模型(例如:ollama pull gemma4:e4b)。",
|
||
"settings.postProcess": "语音后处理",
|
||
"settings.defaultAction": "默认后处理命令",
|
||
"settings.action.none": "无(保留原始文本)",
|
||
"settings.action.refine": "润色(语法+自然度)",
|
||
"settings.action.translate": "翻译",
|
||
"settings.action.summarize": "摘要",
|
||
"settings.action.grammar": "语法校正",
|
||
"settings.action.custom": "自定义提示词",
|
||
"settings.actionHint": "通过热键录音后,所选LLM后处理将应用于转录文本。仅在Ollama连接时有效。",
|
||
"settings.about.version": "版本",
|
||
"settings.about.techStack": "技术栈",
|
||
"settings.about.techStackValue": "Electron + React 19 + MUI 7 + TypeScript",
|
||
"settings.about.voiceEngine": "语音引擎",
|
||
"settings.about.voiceEngineValue": "STT: faster-whisper(本地)/ LLM: Ollama(本地)",
|
||
"settings.about.description": "基于Speakly逆向工程经验构建的本地AI语音助手,无需依赖云端,完全在本地运行。",
|
||
"settings.about.restartOnboarding": "重新查看初始设置引导",
|
||
"status.nudge.title": "Ollama未运行",
|
||
"status.nudge.desc": "使用LLM后处理(翻译、摘要等)需要Ollama。",
|
||
"status.nudge.guide": "查看安装指南 →",
|
||
"hotkey.title": "快捷键设置",
|
||
"hotkey.dictationTitle": "设置听写快捷键",
|
||
"hotkey.oneTouchTitle": "设置一触即发模式快捷键",
|
||
"hotkey.prompt": "请按下按键组合...",
|
||
"hotkey.ready": "✓ {{keys}} — 请点击保存",
|
||
"hotkey.noKey": "请输入按键",
|
||
"hotkey.reserved": "{{keys}} 是系统保留快捷键",
|
||
"hotkey.current": "当前: {{keys}}",
|
||
"hotkey.hint": "请输入组合键(例如:Ctrl+Shift+Q)或单个键(例如:F5)",
|
||
"hotkey.reset": "重新输入",
|
||
"ollama.title": "OLLAMA SETUP GUIDE",
|
||
"ollama.step1.title": "STEP 1 — 安装Ollama",
|
||
"ollama.step1.desc": "Ollama是一款在本地运行LLM的免费工具。",
|
||
"ollama.step2.title": "STEP 2 — 下载模型",
|
||
"ollama.step2.desc": "在终端中pull所需模型。推荐中文模型:",
|
||
"ollama.step2.alt": "或更大的模型:ollama pull gemma4:26b(更精准,更慢)",
|
||
"ollama.step3.title": "STEP 3 — 自动连接",
|
||
"ollama.step3.desc": "Ollama启动后,D3RO-VOICE将自动检测。底部状态栏的LED从红色变为绿色即表示准备就绪!",
|
||
"service.sttEngine": "STT ENGINE",
|
||
"service.ollamaLlm": "OLLAMA LLM",
|
||
"service.hotkeyHook": "HOTKEY HOOK",
|
||
"service.audioInput": "AUDIO INPUT",
|
||
"service.ready": "READY",
|
||
"service.connected": "CONNECTED",
|
||
"service.offline": "OFFLINE",
|
||
"service.active": "ACTIVE",
|
||
"service.standby": "STANDBY",
|
||
"service.premiumLlm": "PREMIUM LLM",
|
||
"service.notConfigured": "NOT SET",
|
||
"common.cancel": "取消",
|
||
"common.save": "保存",
|
||
"common.delete": "删除",
|
||
"common.close": "关闭",
|
||
"common.confirm": "确认",
|
||
"common.loading": "加载中...",
|
||
"common.copy": "复制",
|
||
"common.test": "测试",
|
||
"common.stop": "停止",
|
||
"date.today": "今天",
|
||
"date.yesterday": "昨天",
|
||
"settings.theme.nord": "Nord",
|
||
"settings.theme.solarized": "Solarized",
|
||
"settings.theme.catppuccin": "Catppuccin",
|
||
"settings.theme.dracula": "Dracula",
|
||
"settings.sttLang.ko": "韩语",
|
||
"settings.sttLang.en": "English",
|
||
"settings.sttLang.ja": "日语",
|
||
"settings.sttLang.zh": "中文",
|
||
"template.outputHelperText": "使用 {{字段名}} 作为占位符",
|
||
"nav.meeting": "会议",
|
||
"meeting.title": "会议模式",
|
||
"meeting.newMeeting": "新建会议",
|
||
"meeting.stopRecording": "停止录音",
|
||
"meeting.recording": "录音中",
|
||
"meeting.processing": "正在生成会议纪要...",
|
||
"meeting.completed": "已完成",
|
||
"meeting.error": "错误",
|
||
"meeting.memoPlaceholder": "输入备忘(Enter 添加)",
|
||
"meeting.noSessions": "暂无会议录音",
|
||
"meeting.noSessionsDesc": "点击「新建会议」开始录音",
|
||
"meeting.transcript": "原始转录",
|
||
"meeting.memos": "备忘",
|
||
"meeting.sessions": "{{count}} 场会议",
|
||
"meeting.duration": "{{minutes}} 分钟",
|
||
"meeting.editTitle": "编辑标题",
|
||
"meeting.untitled": "无标题会议",
|
||
"meeting.processingStep.merging": "正在合并转录...",
|
||
"meeting.processingStep.generating": "正在用 LLM 生成会议纪要...",
|
||
"meeting.processingStep.parsing": "正在解析会议纪要...",
|
||
"meeting.processingStep.saving": "正在保存...",
|
||
"meeting.processingStep.notifying": "正在发送通知...",
|
||
"meeting.transcriptTab": "转录",
|
||
"meeting.addDocument": "添加文档",
|
||
"meeting.selectTemplate": "选择模板",
|
||
"meeting.generate": "生成",
|
||
"meeting.generating": "正在生成文档...",
|
||
"meeting.editMode": "编辑",
|
||
"meeting.previewMode": "预览",
|
||
"meeting.modified": "已修改",
|
||
"meeting.originalText": "原文",
|
||
"meeting.editedText": "编辑版",
|
||
"meeting.exportDocx": "导出 DOCX",
|
||
"meeting.exportTxt": "导出 TXT",
|
||
"meeting.exportFormat": "导出",
|
||
"meeting.customPrompt": "自定义提示",
|
||
"meeting.templateName": "模板名称",
|
||
"meeting.templatePrompt": "AI 提示",
|
||
"meeting.downloadTranscript": "下载转录",
|
||
"meeting.polish": "AI 润色",
|
||
"meeting.polishing": "AI 正在润色转录...",
|
||
"meeting.chat": "AI 聊天",
|
||
"meeting.chatPlaceholder": "询问关于会议的内容...",
|
||
"meeting.chatClear": "清空聊天",
|
||
"meeting.copyToClipboard": "复制到剪贴板",
|
||
"meeting.chatCollapse": "收起聊天",
|
||
"meeting.chatExpand": "展开聊天",
|
||
"meeting.chatReasoning": "推理中…",
|
||
"meeting.exportMd": "Markdown (.md)",
|
||
"meeting.exportPdfFmt": "PDF (.pdf)",
|
||
"meeting.polishFailed": "AI润色失败",
|
||
"meeting.viewDetailError": "无法加载会议详情",
|
||
"meeting.startRecordingError": "无法开始录音",
|
||
"meeting.diarize": "说话人分离",
|
||
"meeting.diarizing": "正在识别说话人...",
|
||
"settings.hfToken": "HuggingFace令牌",
|
||
"settings.hfTokenHint": "说话人分离需要HuggingFace令牌",
|
||
"settings.diarization": "说话人分离",
|
||
"settings.diarizationHint": "录音结束后自动识别说话人",
|
||
"theme.label": "主题",
|
||
"theme.dark": "深色",
|
||
"theme.light": "浅色",
|
||
"theme.auto": "自动 (系统)",
|
||
"theme.nord": "Nord",
|
||
"theme.solarized": "Solarized",
|
||
"theme.catppuccin": "Catppuccin",
|
||
"theme.dracula": "Dracula",
|
||
"license.signInRequired": "Sign in to manage your subscription",
|
||
"license.signInToUpgrade": "Sign in to upgrade",
|
||
"license.subscriptionManage": "Manage subscription",
|
||
"license.upgradeToProDesc": "Unlock Premium AI models, cloud sync, and more",
|
||
"license.currentPlanActive": "Your current plan",
|
||
"license.premiumQuota": "Premium Quota",
|
||
"license.modelHaiku": "Haiku",
|
||
"license.modelSonnet": "Sonnet",
|
||
"license.modelOpus": "Opus",
|
||
"license.quotaWeekly": "weekly",
|
||
"license.quotaDaily": "daily",
|
||
"mobile.works.title": "WORKS",
|
||
"mobile.works.count": "{{count}} 个功能",
|
||
"mobile.works.searchPlaceholder": "搜索功能",
|
||
"mobile.works.pinned": "已固定",
|
||
"mobile.works.pin": "置顶",
|
||
"mobile.works.unpin": "取消置顶",
|
||
"mobile.works.emptySearch": "没有匹配的功能。",
|
||
"mobile.works.section.meetings": "会议工作",
|
||
"mobile.works.section.team": "团队与知识",
|
||
"mobile.works.section.data": "数据与通知",
|
||
"mobile.works.historyDescription": "搜索和管理录音与导入的转写记录。",
|
||
"mobile.meetings.templateEmpty": "没有可用的会议文档模板。可以不使用模板开始会议。",
|
||
"mobile.meetings.templateNone": "不使用模板开始",
|
||
"mobile.meetings.templateNoneDesc": "稍后生成文档时再选择模板",
|
||
"keybinding.mouse.left": "鼠标左键",
|
||
"keybinding.mouse.right": "鼠标右键",
|
||
"keybinding.mouse.middle": "鼠标中键",
|
||
"keybinding.mouse.back": "鼠标后退键",
|
||
"keybinding.mouse.forward": "鼠标前进键",
|
||
"keybinding.group.mouse": "鼠标",
|
||
"keybinding.group.modifier": "修饰键",
|
||
"keybinding.group.function": "功能键",
|
||
"keybinding.group.letter": "字母",
|
||
"keybinding.group.digit": "数字",
|
||
"keybinding.group.numpad": "小键盘",
|
||
"keybinding.group.navigation": "导航",
|
||
"keybinding.group.editing": "编辑",
|
||
"keybinding.group.punctuation": "符号",
|
||
"keybinding.group.system": "系统",
|
||
"keybinding.action.dictation": "听写",
|
||
"keybinding.action.dictation.desc": "按住期间进行录音。",
|
||
"keybinding.action.handsFree": "一触即发模式",
|
||
"keybinding.action.handsFree.desc": "按两下切换开关。",
|
||
"keybinding.action.command": "语音命令",
|
||
"keybinding.action.command.desc": "用语音执行命令。",
|
||
"keybinding.action.caption": "实时字幕",
|
||
"keybinding.action.caption.desc": "开启或关闭实时字幕。",
|
||
"keybinding.action.historyPopup": "历史记录弹窗",
|
||
"keybinding.action.historyPopup.desc": "打开历史记录弹窗。",
|
||
"keybinding.action.commandPopup": "命令弹窗",
|
||
"keybinding.action.commandPopup.desc": "打开命令弹窗。",
|
||
"keybinding.reject.unknownKey": "不支持该按键",
|
||
"keybinding.reject.systemReserved": "这是系统保留的快捷键",
|
||
"keybinding.reject.modifierRequired": "必须与修饰键(Ctrl/Alt/Shift)组合使用",
|
||
"keybinding.disabled.mouseLeft": "左键用于所有界面操作,无法绑定",
|
||
"keybinding.warning.mousePassthrough": "鼠标按键仍会同时执行其原本的操作",
|
||
"keybinding.ui.add": "添加",
|
||
"keybinding.ui.remove": "删除",
|
||
"keybinding.ui.reset": "恢复默认",
|
||
"keybinding.ui.tabRecord": "直接输入",
|
||
"keybinding.ui.tabList": "从列表选择",
|
||
"keybinding.ui.search": "搜索按键",
|
||
"keybinding.ui.searchEmpty": "没有搜索结果",
|
||
"keybinding.ui.pressKeys": "请按下想要使用的按键或鼠标按键",
|
||
"keybinding.ui.noBindings": "未设置快捷键",
|
||
"keybinding.ui.conflictWith": "与{{action}}冲突",
|
||
"keybinding.ui.modifiers": "修饰键",
|
||
"keybinding.ui.selectedKey": "已选按键",
|
||
"keybinding.ui.sectionVoice": "语音",
|
||
"keybinding.ui.sectionWindow": "窗口 / 弹窗",
|
||
"keybinding.ui.duplicate": "该快捷键已添加",
|
||
"keybinding.ui.holdMode": "长按",
|
||
"keybinding.ui.doublePress": "按两下",
|
||
"keybinding.ui.pickerTitle": "快捷键设置",
|
||
"keybinding.ui.pressToRecord": "按下开始录音",
|
||
"keybinding.ui.recordHint": "请输入组合键(例如:Ctrl+Shift+Q)或单个键(例如:F5)",
|
||
"keybinding.ui.recordAgain": "重新输入",
|
||
"keybinding.ui.saveFailed": "无法保存快捷键",
|
||
"keybinding.ui.globalEnabled": "启用全局快捷键",
|
||
"input.tab": "输入",
|
||
"input.consent.title": "输入数据收集",
|
||
"input.consent.description": "可选功能。我们统计按键与点击次数并测量鼠标移动距离,用于展示你的输入模式。我们从不保存你按下了哪些键。",
|
||
"input.consent.collect": "收集键盘与鼠标统计",
|
||
"input.consent.running": "正在收集。",
|
||
"input.consent.stopped": "收集已关闭,不会记录任何内容。",
|
||
"input.consent.pause": "暂停收集",
|
||
"input.consent.learnText": "学习我输入的文本",
|
||
"input.consent.learnTextHint": "读取当前聚焦的输入框以学习你的措辞。密码框始终跳过。",
|
||
"input.consent.excludedApps": "排除的应用",
|
||
"input.consent.excludedAppsPlaceholder": "keepassxc.exe, 1password.exe",
|
||
"input.consent.excludedAppsHint": "以逗号分隔的可执行文件名。在这些应用中不读取也不统计。",
|
||
"input.consent.clearAll": "删除已收集的数据",
|
||
"input.suggestion.title": "下一句建议",
|
||
"input.suggestion.description": "预测你即将写下的句子并显示在光标旁。接受后即插入。",
|
||
"input.suggestion.enabled": "输入时显示建议",
|
||
"input.suggestion.modelReady": "本地模型已就绪。",
|
||
"input.suggestion.modelMissing": "本地模型未运行 — 建议保持关闭。",
|
||
"input.suggestion.delay": "延迟 (ms)",
|
||
"input.suggestion.minPrefix": "最少字符数",
|
||
"input.suggestion.modelDefault": "使用默认模型",
|
||
"input.suggestion.overlayInteractive": "允许点击建议框",
|
||
"input.suggestion.overlayVisible": "建议正在显示",
|
||
"input.suggestion.keyHint": "接受、切换与关闭都是全局快捷键 — 可在设置 > 快捷键中修改。",
|
||
"input.suggestion.requestNow": "立即建议",
|
||
"input.suggestion.usage": "今天已使用 {{requests}}/{{budget}} 次",
|
||
"input.suggestion.lastSkip": "上次跳过原因:{{reason}}",
|
||
"input.insights.title": "最近 {{days}} 天",
|
||
"input.insights.keystrokes": "按键",
|
||
"input.insights.clicks": "点击",
|
||
"input.insights.words": "输入单词",
|
||
"input.insights.sentences": "句子",
|
||
"input.insights.mouseDistance": "鼠标移动",
|
||
"input.insights.perDayMeters": " 米/天",
|
||
"input.insights.phrases": "个人短语",
|
||
"input.insights.empty": "尚无收集到的活动。",
|
||
"input.insights.topApps": "输入最多的应用",
|
||
"input.insights.appRow": "按键 {{keystrokes}} · 点击 {{clicks}}",
|
||
"input.insights.privacyNote": "本设备仅保存计数与距离。按键内容永不保存。",
|
||
"input.phrases.title": "个人短语",
|
||
"input.phrases.description": "从你的输入与听写中学习的句子,用于贴合你的表达习惯。",
|
||
"input.phrases.empty": "尚未学习任何内容。",
|
||
"input.phrases.delete": "删除短语",
|
||
"input.feedback.excludedSaved": "已保存排除列表。",
|
||
"input.feedback.cleared": "已删除收集的数据。",
|
||
"popup.suggestion.hintAccept": "接受",
|
||
"popup.suggestion.hintNext": "下一个",
|
||
"popup.suggestion.hintDismiss": "关闭",
|
||
"popup.suggestion.hintMove": "移动",
|
||
"popup.suggestion.loading": "生成中…",
|
||
"keybinding.ui.sectionInput": "输入建议",
|
||
"keybinding.action.suggestionAccept": "接受建议",
|
||
"keybinding.action.suggestionAccept.desc": "将建议句插入当前应用。",
|
||
"keybinding.action.suggestionNext": "下一条建议",
|
||
"keybinding.action.suggestionNext.desc": "切换到下一个候选。",
|
||
"keybinding.action.suggestionDismiss": "关闭建议",
|
||
"keybinding.action.suggestionDismiss.desc": "隐藏当前建议。",
|
||
"input.suggestion.timeout": "响应上限 (ms)",
|
||
"input.suggestion.latency": "上次响应:{{ms}} 毫秒",
|
||
"input.suggestion.slowWarning": "比输入速度慢 — 试试更小的模型。",
|
||
"input.diagnostics.title": "实时诊断",
|
||
"input.diagnostics.app": "当前应用:{{app}}",
|
||
"input.diagnostics.unknownApp": "(未知)",
|
||
"input.diagnostics.noSnapshot": "尚未读取输入框 — 请点击文本栏并输入。",
|
||
"input.diagnostics.readable": "输入框可读 ({{source}}, {{length}} 字符) — 建议可用。",
|
||
"input.diagnostics.notReadable": "此应用不公开输入框文本 — 无法读取,因此不生成建议。",
|
||
"input.diagnostics.password": "密码字段 — 按设计阻止读取。",
|
||
"input.diagnostics.caretFallback": "无法获取光标位置,改用文档末尾作为输入位置。",
|
||
"input.diagnostics.composing": "IME 组合中 — 建议会稍后出现,不会被阻止。",
|
||
"input.suggestion.onScreenLabel": "浮层状态",
|
||
"input.suggestion.onScreen": "显示中",
|
||
"input.suggestion.offScreen": "未显示",
|
||
"input.suggestion.generating": "生成中…",
|
||
"input.kbView.knowledge": "知识库",
|
||
"input.kbView.insights": "输入洞察",
|
||
"input.insights.tabs.overview": "概览",
|
||
"input.insights.tabs.keyboard": "键盘",
|
||
"input.insights.tabs.mouse": "鼠标",
|
||
"input.insights.tabs.apps": "应用",
|
||
"input.insights.tabs.phrases": "短语 · 建议",
|
||
"input.insights.chars": "输入字符",
|
||
"input.insights.wordChars": "字符",
|
||
"input.insights.backspaces": "退格",
|
||
"input.insights.shortcuts": "快捷键",
|
||
"input.insights.doubleClicks": "双击",
|
||
"input.insights.scrollTicks": "滚动",
|
||
"input.insights.activeMinutes": "活跃时间",
|
||
"input.insights.activeDays": "记录天数",
|
||
"input.insights.streak": "最长连续",
|
||
"input.insights.peakDay": "最高输入日",
|
||
"input.insights.perDayAverage": "日均",
|
||
"input.insights.mouseDistanceTotal": "移动距离合计",
|
||
"input.insights.hourlyTitle": "按小时 (0-23)",
|
||
"input.insights.dailyTitle": "每日趋势",
|
||
"input.insights.wordsDailyTitle": "每日单词",
|
||
"input.insights.distanceDailyTitle": "每日鼠标移动",
|
||
"input.insights.topHoursHint": "Busiest hours: {{hours}}",
|
||
"input.insights.mouseNote": "Mouse travel is the sum of per-axis absolute deltas (Manhattan), the same measure ActivityWatch uses.",
|
||
"input.insights.appsHint": "Top apps by typing volume. The bar is that app’s share of all keystrokes.",
|
||
"input.insights.suggestions": "建议",
|
||
"input.insights.suggestionsTotal": "已生成",
|
||
"input.insights.suggestionsAccepted": "已接受",
|
||
"input.insights.acceptRate": "接受率",
|
||
"input.insights.avgLatency": "平均响应",
|
||
"input.insights.suggestionHistory": "最近建议",
|
||
"input.insights.accepted": "已接受",
|
||
"input.insights.notAccepted": "未接受",
|
||
"input.insights.noSuggestions": "No suggestions recorded yet.",
|
||
"input.insights.samplesNote": "{{count}} learned samples.",
|
||
"input.insights.collectedAt": "Last capture {{at}}",
|
||
"input.insights.rangeLabel": "区间",
|
||
"input.insights.rangeDays": "{{days}} 天",
|
||
"input.insights.headerSummary": "Last {{days}} days · {{keys}} keystrokes · {{apps}} apps",
|
||
"input.insights.disabledHint": "Input collection is off. Turn it on in Settings > Input and statistics will collect here.",
|
||
"input.insights.statsMovedHint": "详细统计在 知识库 > 输入洞察 中查看。",
|
||
"input.chart.max": "最大 {{value}}",
|
||
"input.chart.noData": "尚无数据。",
|
||
"input.unit.perDay": "/天",
|
||
"input.unit.perDayMeters": "米/天",
|
||
"input.unit.meters": "米",
|
||
"input.unit.ms": "毫秒",
|
||
"input.unit.percent": "%",
|
||
"popup.suggestion.warming": "正在准备模型…",
|
||
"popup.suggestion.hintGenerating": "生成中…",
|
||
"popup.suggestion.hintGeneratingMore": "正在生成更多…(最多 {{max}} 条)",
|
||
"keybinding.action.suggestionPrev": "上一条建议",
|
||
"keybinding.action.suggestionPrev.desc": "移动到上一条候选。",
|
||
"input.insights.tabs.graph": "图谱",
|
||
"input.graph.description": "Your sentences are stored as nodes and their relations as edges (what follows what, which share terms) so suggestions can pull personal context. Local only.",
|
||
"input.graph.nodes": "句子节点",
|
||
"input.graph.followsEdges": "接续关系",
|
||
"input.graph.sharesEdges": "术语共享关系",
|
||
"input.graph.topEdges": "最强关联",
|
||
"input.graph.recentNodes": "最近节点",
|
||
"input.graph.searchLabel": "搜索句子",
|
||
"input.graph.searchPlaceholder": "e.g. meeting schedule",
|
||
"input.graph.searchAction": "搜索",
|
||
"input.graph.neighbors": "关联句子",
|
||
"input.graph.empty": "The graph is empty. Enable \"Learn the text I type\" in Settings > Input and it fills up.",
|
||
"input.graph.kindFollows": "接续",
|
||
"input.graph.kindShares": "术语共享",
|
||
"popup.suggestion.generating": "生成中… ({{seconds}} 秒)",
|
||
"keybinding.ui.auditClear": "没有快捷键冲突或无效设置。",
|
||
"keybinding.ui.auditIssues": "{{count}} 个快捷键问题",
|
||
"keybinding.ui.auditInvalid": "{{action}}:{{reason}}",
|
||
"keybinding.ui.auditConflict": "{{action}} 与 {{conflicts}} 冲突",
|
||
"keybinding.ui.auditUnknown": "未知问题",
|
||
"input.flow.title": "可能的专注时段",
|
||
"input.flow.empty": "按小时的输入数据还不够。",
|
||
"input.flow.hour": "{{hour}}:00",
|
||
"input.flow.window": "分数 {{score}} · 每天活跃 {{minutes}} 分钟 · 编辑 {{friction}}%",
|
||
"input.friction.title": "编辑阻力",
|
||
"input.friction.value": "每 100 个字符 {{count}} 次",
|
||
"input.friction.band.steady": "稳定",
|
||
"input.friction.band.watch": "留意",
|
||
"input.friction.band.high": "高",
|
||
"input.appQuality.title": "按应用划分的建议质量",
|
||
"input.appQuality.empty": "还没有按应用划分的建议记录。",
|
||
"input.appQuality.row": "已接受 {{accepted}}/{{total}} · {{rate}}% · {{latency}}ms",
|
||
"input.phrases.metadata": "{{source}} · {{count}}次 · {{app}}",
|
||
"input.phrases.appUnknown": "通用",
|
||
"input.privacy.title": "本地数据凭据",
|
||
"input.privacy.localOnly": "这些数据仅保存在此设备上。",
|
||
"input.privacy.rawKeys": "不会保留单个按键事件和原始键码。学习文本样本会在下方单独列出。",
|
||
"input.privacy.activityRetention": "活动保留期",
|
||
"input.privacy.suggestionRetention": "建议保留期",
|
||
"input.privacy.learnedRetention": "学习文本保留期",
|
||
"input.privacy.activityBuckets": "活动分桶",
|
||
"input.privacy.typingSamples": "输入样本",
|
||
"input.privacy.personalPhrases": "个人短语",
|
||
"input.privacy.suggestions": "建议记录",
|
||
"input.privacy.days": "{{days}} 天",
|
||
"input.privacy.untilDeleted": "直到删除",
|
||
"input.exclusion.recommendation": "{{app}} 出现了 {{samples}} 次重复不可读输入({{reason}})。",
|
||
"input.exclusion.reason.repeated-unreadable": "反复不可读",
|
||
"input.exclusion.reason.repeated-empty": "反复为空",
|
||
"input.exclusion.addButton": "将 {{app}} 加入排除列表",
|
||
"input.feedback.recommendationSaved": "已将 {{app}} 加入排除列表。",
|
||
"popup.suggestion.sourceModel": "本地模型",
|
||
"popup.suggestion.sourceMemory": "本地记忆",
|
||
"popup.suggestion.continuations": "续写",
|
||
"popup.suggestion.related": "相关",
|
||
"popup.suggestion.phrases": "短语",
|
||
"popup.suggestion.appPhrases": "应用短语",
|
||
"input.privacy.typingSamplesRetention": "输入文本样本保留期",
|
||
"input.privacy.unavailable": "本地数据凭据暂不可用,因此不显示数量和保留期。",
|
||
"input.feedback.clearFailed": "无法删除已收集的数据。",
|
||
"input.feedback.excludedFailed": "无法保存排除列表。",
|
||
"input.feedback.recommendationFailed": "无法将 {{app}} 添加到排除列表。",
|
||
"popup.caption.loading": "正在准备语音模型…",
|
||
"popup.caption.waiting": "正在聆听… 第一条字幕可能需要几秒钟",
|
||
"popup.caption.dragHint": "拖动以移动 · 双击复位",
|
||
"settings.captionRefine": "按上下文润色字幕",
|
||
"settings.captionRefine.desc": "本地 AI 会根据上下文修正已确定字幕的空格、标点和听错的词。",
|
||
"settings.captionModel": "实时字幕模型",
|
||
"settings.captionModel.same": "与听写相同",
|
||
"settings.captionModel.desc": "仅实时字幕使用单独的模型识别,会与听写模型一同加载。",
|
||
"history.favorite": "收藏",
|
||
"history.unfavorite": "取消收藏",
|
||
"cloudSync.title": "云同步",
|
||
"cloudSync.description": "自动与移动端和网页同步历史、词典、会议、备忘标签、命令和模板。在任一设备上删除,其他设备也会一并删除。",
|
||
"cloudSync.signIn": "登录",
|
||
"cloudSync.signedInAs": "已登录:{{email}}",
|
||
"cloudSync.noEmail": "无邮箱",
|
||
"cloudSync.lastSync": "上次同步:{{time}}",
|
||
"cloudSync.never": "尚未同步",
|
||
"cloudSync.upToDate": "所有更改均已上传",
|
||
"cloudSync.pending": "{{count}} 项更改等待上传",
|
||
"cloudSync.failed": "服务器拒绝了 {{count}} 项更改 —「立即同步」会重试",
|
||
"cloudSync.syncNow": "立即同步",
|
||
"cloudSync.syncing": "正在同步…",
|
||
"cloudSync.signOut": "退出登录",
|
||
"cloudSync.browserPending": "请在浏览器中完成登录。",
|
||
"cloudSync.signedOut": "已退出登录。本机上的记录会保留。",
|
||
"cloudSync.done": "同步完成(已应用 {{count}} 项)",
|
||
"cloudSync.doneWithErrors": "同步完成(已应用 {{count}} 项,{{errors}} 项失败 — 下次同步时重试)"
|
||
}
|