- EditableSegment: readOnly prop 추가, hover 배경색 효과 - MeetingDetailTabs: useMemo(parseSegments), 이중 debounce 제거, cleanup - MeetingChatPanel: sessionId deps, 에러 표시, key=timestamp - ExportMenu: i18n 위반 수정 (하드코딩 → t()) - MeetingModePage: 에러 Snackbar 피드백 (startRecording, viewDetail) - TranscriptTab: polish 실패 피드백 - 12개 locale i18n 키 5개 추가
274 lines
15 KiB
JSON
274 lines
15 KiB
JSON
{
|
||
"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": "エージェントモード",
|
||
"settings.agent.descWithKey": "{{key}} を2回クリックするとエージェントモードに入ります。",
|
||
"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": "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.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": "昨日",
|
||
"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": "通知を送信中...",
|
||
"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.templateSave": "テンプレートを保存",
|
||
"meeting.documentDeleted": "ドキュメントが削除されました",
|
||
"meeting.autoSaved": "自動保存済み",
|
||
"meeting.minutesTemplate": "議事録",
|
||
"meeting.reportTemplate": "レポート",
|
||
"meeting.ideaNoteTemplate": "アイデアノート",
|
||
"meeting.customTemplate": "カスタム",
|
||
"meeting.downloadTranscript": "文字起こしをダウンロード",
|
||
"meeting.polish": "AI で整える",
|
||
"meeting.polishing": "AI が文字起こしを整えています...",
|
||
"meeting.polished": "AI 整形完了",
|
||
"meeting.mindmapTemplate": "マインドマップ",
|
||
"meeting.chat": "AI チャット",
|
||
"meeting.chatPlaceholder": "会議について質問してください...",
|
||
"meeting.chatSend": "送信",
|
||
"meeting.chatClear": "チャットをクリア",
|
||
"meeting.copyToClipboard": "クリップボードにコピー",
|
||
"meeting.copied": "コピーしました",
|
||
"meeting.chatCollapse": "チャットを折り畳む",
|
||
"meeting.chatExpand": "チャットを展開",
|
||
"meeting.exportMd": "Markdown (.md)",
|
||
"meeting.exportPdfFmt": "PDF (.pdf)",
|
||
"meeting.polishFailed": "AI磨き上げに失敗しました",
|
||
"meeting.viewDetailError": "会議の詳細を読み込めませんでした",
|
||
"meeting.startRecordingError": "録音を開始できませんでした"
|
||
}
|