Phase 14 구현: 회의 모드 (Meeting Mode)

실시간 녹음 + 타임스탬프 메모 + STT 전사 + LLM 구조화 회의록 + PDF/MD 내보내기.
CaptionService 연동, 동시 사용 충돌 방지, 긴 회의 2-pass 요약 지원.
DB 2테이블, IPC 15채널, UI 3뷰(목록/녹음/상세), 12개 locale i18n.
This commit is contained in:
Yun Chan 2026-04-08 01:16:52 +09:00
parent dd68fc9ccd
commit d0c4f9ee53
38 changed files with 2550 additions and 769 deletions

View file

@ -1,13 +1,11 @@
{
"app.name": "D3RO Voice",
"app.tagline": "本地AI语音助手",
"nav.dashboard": "仪表板",
"nav.history": "历史记录",
"nav.dictionary": "词典",
"nav.commands": "命令",
"nav.settings": "设置",
"dashboard.sessionOverview": "会话概览",
"dashboard.systemStatus": "系统状态",
"dashboard.sessionsToday": "今日会话",
@ -26,7 +24,6 @@
"dashboard.entries": "{{count}}条",
"dashboard.stat": "统计",
"dashboard.sys": "系统",
"history.title": "转录历史",
"history.search": "搜索...",
"history.entries": "{{count}}条",
@ -34,7 +31,6 @@
"history.noResults": "无搜索结果",
"history.noHistory": "暂无历史记录 — 请开始录音",
"history.count": "{{count}}条",
"dictionary.title": "自定义词典",
"dictionary.words": "{{count}}个词",
"dictionary.add": "添加",
@ -47,7 +43,6 @@
"dictionary.addTitle": "添加词条",
"dictionary.word": "词汇",
"dictionary.pronunciation": "发音(可选)",
"commands.title": "LLM命令",
"commands.count": "{{count}}个",
"commands.add": "添加",
@ -62,14 +57,12 @@
"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.about": "关于",
"settings.shortcuts": "快捷键",
"settings.dictation": "听写",
"settings.dictation.desc": "按住键开始说话,松开键后开始转录。",
@ -82,20 +75,17 @@
"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": "(默认)",
@ -103,7 +93,6 @@
"settings.insertMethod": "插入方式",
"settings.insertClipboard": "剪贴板Ctrl+V",
"settings.insertKeyboard": "键盘输入",
"settings.whisperModel": "Whisper模型",
"settings.model.tiny": "tiny39 MB最快",
"settings.model.base": "base74 MB均衡",
@ -112,7 +101,6 @@
"settings.model.large": "large-v31.5 GB最佳",
"settings.sttLanguage": "识别语言",
"settings.sttLang.auto": "自动检测",
"settings.ollamaServer": "Ollama服务器",
"settings.ollamaUrl": "Ollama服务器URL",
"settings.ollamaHint": "Ollama运行时将自动连接。请直接在Ollama中pull模型例如ollama pull qwen3:4b。",
@ -125,7 +113,6 @@
"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",
@ -133,13 +120,11 @@
"settings.about.voiceEngineValue": "STT: faster-whisper本地/ LLM: Ollama本地",
"settings.about.description": "基于Speakly逆向工程经验构建的本地AI语音助手无需依赖云端完全在本地运行。",
"settings.about.restartOnboarding": "重新查看初始设置引导",
"status.ollama": "OLLAMA",
"status.offline": "OFFLINE",
"status.nudge.title": "Ollama未运行",
"status.nudge.desc": "使用LLM后处理翻译、摘要等需要Ollama。",
"status.nudge.guide": "查看安装指南 →",
"onboarding.welcome.title": "D3RO-VOICE",
"onboarding.welcome.desc": "无需打字用声音操作。本地AI语音助手。",
"onboarding.welcome.start": "开始",
@ -160,7 +145,6 @@
"onboarding.done.start": "开始",
"onboarding.back": "返回",
"onboarding.next": "下一步",
"hotkey.title": "快捷键设置",
"hotkey.dictationTitle": "设置听写快捷键",
"hotkey.oneTouchTitle": "设置一触即发模式快捷键",
@ -171,7 +155,6 @@
"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的免费工具。",
@ -180,7 +163,6 @@
"ollama.step2.alt": "或更大的模型ollama pull qwen3:8b更精准更慢",
"ollama.step3.title": "STEP 3 — 自动连接",
"ollama.step3.desc": "Ollama启动后D3RO-VOICE将自动检测。底部状态栏的LED从红色变为绿色即表示准备就绪",
"service.sttEngine": "STT ENGINE",
"service.ollamaLlm": "OLLAMA LLM",
"service.hotkeyHook": "HOTKEY HOOK",
@ -190,7 +172,6 @@
"service.offline": "OFFLINE",
"service.active": "ACTIVE",
"service.standby": "STANDBY",
"common.cancel": "取消",
"common.save": "保存",
"common.delete": "删除",
@ -202,7 +183,51 @@
"common.copy": "复制",
"common.test": "测试",
"common.stop": "停止",
"date.today": "今天",
"date.yesterday": "昨天"
"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.startRecording": "开始录音",
"meeting.stopRecording": "停止录音",
"meeting.recording": "录音中",
"meeting.processing": "正在生成会议纪要...",
"meeting.completed": "已完成",
"meeting.error": "错误",
"meeting.elapsed": "已用时",
"meeting.memoPlaceholder": "输入备忘Enter 添加)",
"meeting.memoAdded": "备忘已添加",
"meeting.noSessions": "暂无会议录音",
"meeting.noSessionsDesc": "点击「新建会议」开始录音",
"meeting.summary": "摘要",
"meeting.decisions": "决议",
"meeting.actionItems": "待办事项",
"meeting.timeline": "时间轴",
"meeting.transcript": "原始转录",
"meeting.memos": "备忘",
"meeting.exportPdf": "导出 PDF",
"meeting.exportMarkdown": "导出 Markdown",
"meeting.delete": "删除",
"meeting.deleteConfirm": "删除此会议记录?",
"meeting.backToList": "返回列表",
"meeting.notificationTitle": "会议纪要已就绪",
"meeting.notificationBody": "会议纪要已生成。",
"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": "正在发送通知..."
}