Phase 10~11 전체 구현: 킬러 피처 5종 + 수익화 시스템

Phase 10 킬러 피처:
- MemoService: 태그 CRUD + 마크다운 내보내기 (memo_tags DB)
- VoiceCommandService: 키워드→명령어 매칭, 프리셋 4종
- ScreenContextService: PowerShell 활성 윈도우 + Ctrl+C 선택 텍스트
- ChainService: LLM 명령어 순차 실행 파이프라인
- CaptionService: 6초 청크 연속 전사 + 시스템 오디오 루프백

VoiceModeService 파이프라인 통합:
- 녹음 시작 → 컨텍스트 캡처 → STT → 키워드 매칭 → LLM(체인/컨텍스트 주입) → 삽입

시스템 오디오 캡처:
- setDisplayMediaRequestHandler + audio: 'loopback' (IPC 브릿지)
- electron-audio-loopback 패키지 contextIsolation 호환 불가 → 직접 구현

Phase 11 수익화:
- LicenseService: Free/Pro/Pro+ 3티어, LemonSqueezy API
- Feature Gate: requireFeature/checkFeature/consumeFeature
- 일일 쿼터: Free dictation 20/일, LLM 10/일 (SQLite daily_usage)
- LicenseModal, ProBadge, UpgradePromptModal UI

디자인 보강:
- d3roTypo(13종), d3roShadow(10종), d3roRadius(7종) 토큰 시스템
- ScreenPanel, ButtonGroup DS 컴포넌트 신규
- PhosphorText 4→13종 변형, MetalDial conic-gradient 광택
- 공유 컴포넌트: EmptyStateCard, SearchInput, PageHeader, HistoryEntryCard

기타:
- 자막 핫키 SSOT 전체 연동 (Config→Hotkey→VoiceMode→Caption→Settings)
- StatusBar 자막 LED + 효과음, 자막 로딩 UI
- LLM 상태 이벤트 전파 수정 (폴링 제거 → onStatusChanged)
- 커맨드 팝업 "선택 해제" 항목 추가
This commit is contained in:
Yun Chan 2026-04-05 21:36:09 +09:00
parent 36d77ca224
commit a31f96bbb8
97 changed files with 11853 additions and 1143 deletions

208
src/renderer/i18n/zh.json Normal file
View file

@ -0,0 +1,208 @@
{
"app.name": "D3RO Voice",
"app.tagline": "本地AI语音助手",
"nav.dashboard": "仪表板",
"nav.history": "历史记录",
"nav.dictionary": "词典",
"nav.commands": "命令",
"nav.settings": "设置",
"dashboard.sessionOverview": "会话概览",
"dashboard.systemStatus": "系统状态",
"dashboard.sessionsToday": "今日会话",
"dashboard.pressToRecord": "按下 {{key}} 开始录音",
"dashboard.hotkeyNotSet": "未设置热键",
"dashboard.words": "词数",
"dashboard.total": "总计",
"dashboard.streak": "连续",
"dashboard.days": "天",
"dashboard.recording": "录音",
"dashboard.sessions": "会话",
"dashboard.today": "今天",
"dashboard.recentTranscriptions": "最近转录",
"dashboard.noHistory": "暂无历史记录 — 按下热键开始录音",
"dashboard.copy": "复制",
"dashboard.entries": "{{count}}条",
"dashboard.stat": "统计",
"dashboard.sys": "系统",
"history.title": "转录历史",
"history.search": "搜索...",
"history.entries": "{{count}}条",
"history.loading": "加载中...",
"history.noResults": "无搜索结果",
"history.noHistory": "暂无历史记录 — 请开始录音",
"history.count": "{{count}}条",
"dictionary.title": "自定义词典",
"dictionary.words": "{{count}}个词",
"dictionary.add": "添加",
"dictionary.search": "搜索...",
"dictionary.loading": "加载中...",
"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.loading": "加载中...",
"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.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": "Whisper模型",
"settings.model.tiny": "tiny39 MB最快",
"settings.model.base": "base74 MB均衡",
"settings.model.small": "small244 MB良好",
"settings.model.medium": "medium769 MB优秀",
"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。",
"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.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": "开始",
"onboarding.mic.title": "麦克风设置",
"onboarding.mic.desc": "选择要使用的麦克风,之后可在设置中更改。",
"onboarding.hotkey.title": "快捷键设置",
"onboarding.hotkey.desc": "设置听写快捷键,按住该键时进行录音。",
"onboarding.hotkey.notSet": "尚未设置快捷键",
"onboarding.hotkey.change": "更改快捷键",
"onboarding.hotkey.set": "设置快捷键",
"onboarding.ollama.title": "安装Ollama可选",
"onboarding.ollama.desc": "使用翻译、摘要等LLM后处理功能需要Ollama。语音听写本身无需Ollama即可使用。",
"onboarding.ollama.download": "下载Ollama",
"onboarding.ollama.modelHint": "安装后在终端中下载模型",
"onboarding.done.title": "设置完成!",
"onboarding.done.descWithKey": "按住 {{key}} 键说话,语音即可转换为文本。",
"onboarding.done.descNoKey": "在设置中指定快捷键后即可开始语音听写。",
"onboarding.done.start": "开始",
"onboarding.back": "返回",
"onboarding.next": "下一步",
"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 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",
"service.audioInput": "AUDIO INPUT",
"service.ready": "READY",
"service.connected": "CONNECTED",
"service.offline": "OFFLINE",
"service.active": "ACTIVE",
"service.standby": "STANDBY",
"common.cancel": "取消",
"common.save": "保存",
"common.delete": "删除",
"common.add": "添加",
"common.edit": "编辑",
"common.close": "关闭",
"common.confirm": "确认",
"common.loading": "加载中...",
"common.copy": "复制",
"common.test": "测试",
"common.stop": "停止",
"date.today": "今天",
"date.yesterday": "昨天"
}