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": "tiny (39 MB, 最速)",
"settings.model.base": "base (74 MB, バランス)",
@ -112,7 +101,6 @@
"settings.model.large": "large-v3 (1.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": "通知を送信中..."
}