- npm workspaces 루트 (apps/*, packages/*) 세팅 - V1 전체를 apps/desktop/으로 git mv (src, resources, tests, sidecar, scripts, electron.vite.config.ts, electron-builder.yml, vitest.config.ts, tsconfig.node.json, tsconfig.web.json) - apps/desktop/package.json 신규 (name=@d3ro/desktop) - productName: 'd3ro-voice' 명시 — app.getName()을 고정하여 userData 경로 %APPDATA%\d3ro-voice\ 그대로 유지 (기존 DB/설정 연속성 보장) - 루트 package.json을 workspace 루트로 재구성, 공통 devDep만 유지 (typescript, eslint, prettier) - turbo.json, tsconfig.base.json 추가 (Turborepo 자체 설치는 별도 sub-phase) - memory/project_status.md 생성 (규칙 13) 검증: - npm run typecheck 통과 - npm run build 통과 (electron-vite main+preload+renderer) - npm run dev 실제 실행 → DB/핫키/Ollama 자동 실행 모두 정상
483 lines
22 KiB
JSON
483 lines
22 KiB
JSON
{
|
|
"app.name": "D3RO Voice",
|
|
"app.tagline": "Local AI Voice Assistant",
|
|
"nav.dashboard": "Dashboard",
|
|
"nav.history": "History",
|
|
"nav.dictionary": "Dictionary",
|
|
"nav.commands": "Commands",
|
|
"nav.settings": "Settings",
|
|
"dashboard.sessionOverview": "Session Overview",
|
|
"dashboard.systemStatus": "System Status",
|
|
"dashboard.sessionsToday": "Today's Sessions",
|
|
"dashboard.pressToRecord": "Press {{key}} to start recording",
|
|
"dashboard.hotkeyNotSet": "Hotkey not set",
|
|
"dashboard.words": "Words",
|
|
"dashboard.total": "Total",
|
|
"dashboard.streak": "Streak",
|
|
"dashboard.days": "days",
|
|
"dashboard.recording": "Recording",
|
|
"dashboard.sessions": "Sessions",
|
|
"dashboard.today": "Today",
|
|
"dashboard.recentTranscriptions": "Recent Transcriptions",
|
|
"dashboard.noHistory": "No history — press your hotkey to start recording",
|
|
"dashboard.copy": "Copy",
|
|
"dashboard.entries": "{{count}} entries",
|
|
"dashboard.stat": "Stats",
|
|
"dashboard.sys": "System",
|
|
"history.title": "Transcription History",
|
|
"history.search": "Search...",
|
|
"history.entries": "{{count}} entries",
|
|
"history.loading": "Loading...",
|
|
"history.noResults": "No results found",
|
|
"history.noHistory": "No history — start recording",
|
|
"history.count": "{{count}} entries",
|
|
"dictionary.title": "Custom Dictionary",
|
|
"dictionary.words": "{{count}} words",
|
|
"dictionary.add": "Add",
|
|
"dictionary.search": "Search...",
|
|
"dictionary.loading": "Loading...",
|
|
"dictionary.noResults": "No results found",
|
|
"dictionary.noWords": "No words — add custom words to improve STT accuracy",
|
|
"dictionary.used": "Used {{count}} times",
|
|
"dictionary.editTitle": "Edit Word",
|
|
"dictionary.addTitle": "Add Word",
|
|
"dictionary.word": "Word",
|
|
"dictionary.pronunciation": "Pronunciation (optional)",
|
|
"commands.title": "LLM Commands",
|
|
"commands.count": "{{count}} commands",
|
|
"commands.add": "Add",
|
|
"commands.activeCommand": "Active Command",
|
|
"commands.none": "None",
|
|
"commands.loading": "Loading...",
|
|
"commands.noCommands": "No commands — click Add to create one",
|
|
"commands.editTitle": "Edit Command",
|
|
"commands.addTitle": "Add Command",
|
|
"commands.name": "Name",
|
|
"commands.description": "Description",
|
|
"commands.promptTemplate": "Prompt Template",
|
|
"commands.promptHelp": "{{text}} will be replaced with the transcribed text",
|
|
"commands.defaultPrompt": "Please refine the following: {{text}}",
|
|
"settings.title": "Settings",
|
|
"settings.tabs.general": "General",
|
|
"settings.tabs.audio": "Audio",
|
|
"settings.tabs.stt": "STT",
|
|
"settings.tabs.llm": "LLM",
|
|
"settings.tabs.about": "About",
|
|
"settings.shortcuts": "Shortcuts",
|
|
"settings.dictation": "Dictation",
|
|
"settings.dictation.desc": "Hold to speak. Transcription begins when you release the key.",
|
|
"settings.agent": "Agent Mode",
|
|
"settings.agent.descWithKey": "Double-press {{key}} to enter Agent mode.",
|
|
"settings.agent.descNoKey": "Set a dictation hotkey first.",
|
|
"settings.oneTouch": "One-Touch Mode",
|
|
"settings.oneTouch.desc": "Press to start, press again to stop. Requires a separate shortcut.",
|
|
"settings.caption": "Live Caption",
|
|
"settings.caption.desc": "Toggle live caption mode with hotkey. Transcribes microphone input in real-time.",
|
|
"settings.captionAudio": "Caption Audio Source",
|
|
"settings.captionSource": "Audio Source",
|
|
"settings.captionSource.mic": "Microphone only",
|
|
"settings.captionSource.system": "System audio only (desktop sound)",
|
|
"settings.captionSource.both": "Microphone + System audio",
|
|
"settings.key": "Key",
|
|
"settings.notSet": "Not set",
|
|
"settings.enabled": "Enabled",
|
|
"settings.disabled": "Disabled",
|
|
"settings.interface": "Interface",
|
|
"settings.theme": "Theme",
|
|
"settings.theme.system": "System",
|
|
"settings.theme.light": "Light",
|
|
"settings.theme.dark": "Dark",
|
|
"settings.language": "Language",
|
|
"settings.appBehavior": "App Behavior",
|
|
"settings.closeToTray": "Minimize to tray on close",
|
|
"settings.autoLaunch": "Launch at system startup",
|
|
"settings.autoInsert": "Auto-insert text after transcription",
|
|
"settings.soundEffects": "Sound Effects",
|
|
"settings.microphone": "Microphone",
|
|
"settings.inputDevice": "Input Device",
|
|
"settings.deviceDefault": "(Default)",
|
|
"settings.textInsert": "Text Insertion",
|
|
"settings.insertMethod": "Insert Method",
|
|
"settings.insertClipboard": "Clipboard (Ctrl+V)",
|
|
"settings.insertKeyboard": "Keyboard Typing",
|
|
"settings.whisperModel": "Whisper Model",
|
|
"settings.model.tiny": "tiny (39 MB, fastest)",
|
|
"settings.model.base": "base (74 MB, balanced)",
|
|
"settings.model.small": "small (244 MB, good)",
|
|
"settings.model.medium": "medium (769 MB, great)",
|
|
"settings.model.large": "large-v3 (1.5 GB, best)",
|
|
"settings.sttLanguage": "Recognition Language",
|
|
"settings.sttLang.auto": "Auto-detect",
|
|
"settings.ollamaServer": "Ollama Server",
|
|
"settings.ollamaUrl": "Ollama Server URL",
|
|
"settings.ollamaHint": "Connects automatically when Ollama is running. Pull models directly in Ollama (e.g. ollama pull qwen3:4b).",
|
|
"settings.llmModel": "LLM Model",
|
|
"settings.postProcess": "Voice Post-Processing",
|
|
"settings.defaultAction": "Default Post-Processing Command",
|
|
"settings.action.none": "None (raw transcription)",
|
|
"settings.action.refine": "Refine (grammar + fluency)",
|
|
"settings.action.translate": "Translate",
|
|
"settings.action.summarize": "Summarize",
|
|
"settings.action.grammar": "Grammar Correction",
|
|
"settings.action.custom": "Custom Prompt",
|
|
"settings.actionHint": "The selected LLM post-processing will be applied to your transcription after recording. Only works when Ollama is connected.",
|
|
"settings.about.version": "Version",
|
|
"settings.about.techStack": "Tech Stack",
|
|
"settings.about.techStackValue": "Electron + React 19 + MUI 7 + TypeScript",
|
|
"settings.about.voiceEngine": "Voice Engine",
|
|
"settings.about.voiceEngineValue": "STT: faster-whisper (local) / LLM: Ollama (local)",
|
|
"settings.about.description": "A fully local AI voice assistant built on Speakly reverse-engineering insights. Runs entirely offline with no cloud dependencies.",
|
|
"settings.about.restartOnboarding": "Restart Setup Wizard",
|
|
"status.ollama": "OLLAMA",
|
|
"status.offline": "OFFLINE",
|
|
"status.nudge.title": "Ollama is not running",
|
|
"status.nudge.desc": "Ollama is required for LLM post-processing (translation, summarization, etc.).",
|
|
"status.nudge.guide": "View setup guide →",
|
|
"onboarding.welcome.title": "D3RO-VOICE",
|
|
"onboarding.welcome.desc": "No typing needed — just speak. Your local AI voice assistant.",
|
|
"onboarding.welcome.start": "Get Started",
|
|
"onboarding.mic.title": "Microphone Setup",
|
|
"onboarding.mic.desc": "Choose a microphone to use. You can change this later in Settings.",
|
|
"onboarding.hotkey.title": "Shortcut Setup",
|
|
"onboarding.hotkey.desc": "Set your dictation shortcut. Hold the key while speaking to record.",
|
|
"onboarding.hotkey.notSet": "No shortcut set",
|
|
"onboarding.hotkey.change": "Change Shortcut",
|
|
"onboarding.hotkey.set": "Set Shortcut",
|
|
"onboarding.ollama.title": "Install Ollama (Optional)",
|
|
"onboarding.ollama.desc": "Ollama is required for LLM post-processing like translation and summarization. Voice dictation works without it.",
|
|
"onboarding.ollama.download": "Download Ollama",
|
|
"onboarding.ollama.modelHint": "After installation, download a model from your terminal",
|
|
"onboarding.done.title": "You're all set!",
|
|
"onboarding.done.descWithKey": "Hold {{key}} and speak — your voice will be converted to text.",
|
|
"onboarding.done.descNoKey": "Set a shortcut in Settings to start voice dictation.",
|
|
"onboarding.done.start": "Start Using",
|
|
"onboarding.back": "Back",
|
|
"onboarding.next": "Next",
|
|
"hotkey.title": "Set Shortcut",
|
|
"hotkey.dictationTitle": "Set Dictation Shortcut",
|
|
"hotkey.oneTouchTitle": "Set One-Touch Mode Shortcut",
|
|
"hotkey.captionTitle": "Set Live Caption Shortcut",
|
|
"hotkey.prompt": "Press a key combination...",
|
|
"hotkey.ready": "✓ {{keys}} — press Save to confirm",
|
|
"hotkey.noKey": "Please press a key",
|
|
"hotkey.reserved": "{{keys}} is a reserved system shortcut",
|
|
"hotkey.current": "Current: {{keys}}",
|
|
"hotkey.hint": "Enter a combination (e.g. Ctrl+Shift+Q) or a single key (e.g. F5)",
|
|
"hotkey.reset": "Clear",
|
|
"ollama.title": "OLLAMA SETUP GUIDE",
|
|
"ollama.step1.title": "STEP 1 — Install Ollama",
|
|
"ollama.step1.desc": "Ollama is a free tool for running LLMs locally.",
|
|
"ollama.step2.title": "STEP 2 — Download a Model",
|
|
"ollama.step2.desc": "Pull a model from your terminal. Recommended:",
|
|
"ollama.step2.alt": "Or a larger model: ollama pull qwen3:8b (more accurate, slower)",
|
|
"ollama.step3.title": "STEP 3 — Auto-Connect",
|
|
"ollama.step3.desc": "Once Ollama is running, D3RO-VOICE will detect it automatically. When the status bar LED turns from red to green, you're ready!",
|
|
"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": "Cancel",
|
|
"common.save": "Save",
|
|
"common.delete": "Delete",
|
|
"common.add": "Add",
|
|
"common.edit": "Edit",
|
|
"common.close": "Close",
|
|
"common.confirm": "Confirm",
|
|
"common.loading": "Loading...",
|
|
"common.copy": "Copy",
|
|
"common.test": "Test",
|
|
"common.stop": "Stop",
|
|
"memo.tags": "Tags",
|
|
"memo.addTag": "Add Tag",
|
|
"memo.removeTag": "Remove Tag",
|
|
"memo.tagPlaceholder": "Type a tag and press Enter",
|
|
"memo.noTags": "No tags",
|
|
"memo.export": "Export as Markdown",
|
|
"memo.exportSuccess": "Export complete",
|
|
"memo.filterByTag": "Filter by tag",
|
|
"memo.allTags": "All Tags",
|
|
"memo.clearFilter": "Clear filter",
|
|
"voiceCommand.title": "Voice Commands",
|
|
"voiceCommand.enabled": "Voice Keyword Recognition",
|
|
"voiceCommand.enabledDesc": "Detects keywords at the start of transcription to auto-select commands.",
|
|
"voiceCommand.keywords": "Keywords",
|
|
"voiceCommand.keywordPlaceholder": "Type keyword and press Enter",
|
|
"voiceCommand.noKeywords": "No keywords",
|
|
"voiceCommand.matchMode": "Match Mode",
|
|
"voiceCommand.matchMode.prefix": "Starts with",
|
|
"voiceCommand.matchMode.suffix": "Ends with",
|
|
"voiceCommand.matchMode.contains": "Contains",
|
|
"chain.title": "LLM Chains",
|
|
"chain.count": "{{count}} chains",
|
|
"chain.add": "Add Chain",
|
|
"chain.editTitle": "Edit Chain",
|
|
"chain.addTitle": "Add Chain",
|
|
"chain.name": "Chain Name",
|
|
"chain.steps": "Steps",
|
|
"chain.addStep": "Add Step",
|
|
"chain.removeStep": "Remove",
|
|
"chain.inputSource": "Input Source",
|
|
"chain.inputSource.original": "Original Text",
|
|
"chain.inputSource.previous": "Previous Step Result",
|
|
"chain.selectInstruction": "Select Command",
|
|
"chain.execute": "Execute",
|
|
"chain.executing": "Executing...",
|
|
"chain.noChains": "No chains — create a pipeline to run multiple commands in sequence",
|
|
"chain.step": "Step {{n}}",
|
|
"chain.progress": "Processing step {{current}}/{{total}}",
|
|
"context.title": "Screen Context",
|
|
"context.enabled": "Screen Context",
|
|
"context.enabledDesc": "Captures active app and selected text when recording starts, and sends it to the LLM.",
|
|
"dashboard.caption": "Live Caption",
|
|
"dashboard.captionStart": "Start Caption",
|
|
"dashboard.captionStop": "Stop Caption",
|
|
"dashboard.captionActive": "Caption Active",
|
|
"settings.voiceCommands": "Voice Commands",
|
|
"settings.voiceCommands.desc": "Detects keywords in transcription to auto-select commands.",
|
|
"settings.screenContext": "Screen Context",
|
|
"settings.screenContext.desc": "Sends active app info and selected text to the LLM during recording.",
|
|
"date.today": "Today",
|
|
"date.yesterday": "Yesterday",
|
|
"license.title": "License",
|
|
"license.currentTier": "Current Tier",
|
|
"license.free": "FREE",
|
|
"license.pro": "PRO",
|
|
"license.proPlus": "PRO+",
|
|
"license.activate": "Activate License",
|
|
"license.deactivate": "Deactivate",
|
|
"license.keyPlaceholder": "Enter license key...",
|
|
"license.activating": "Activating...",
|
|
"license.activated": "Activated",
|
|
"license.activateError": "Activation failed: {{message}}",
|
|
"license.deactivated": "Deactivated",
|
|
"license.machineId": "Machine ID",
|
|
"license.activatedAt": "Activated At",
|
|
"license.manageLicense": "Manage License",
|
|
"license.upgrade": "Upgrade",
|
|
"license.upgradeTitle": "Upgrade to Pro",
|
|
"license.upgradeDesc": "Unlock all features",
|
|
"license.quotaUsed": "{{used}}/{{limit}} used",
|
|
"license.quotaUnlimited": "Unlimited",
|
|
"license.tierComparison": "Tier Comparison",
|
|
"license.dailyUsage": "Daily Usage",
|
|
"license.feature.dictation": "Dictation",
|
|
"license.feature.llm_process": "LLM Processing",
|
|
"license.feature.live_caption": "Live Caption",
|
|
"license.feature.screen_context": "Screen Context",
|
|
"license.feature.voice_command": "Voice Commands",
|
|
"license.feature.llm_chain": "LLM Chain",
|
|
"license.feature.voice_memo": "Voice Memo",
|
|
"license.feature.history_unlimited": "Unlimited History",
|
|
"license.feature.history_export": "History Export",
|
|
"license.feature.custom_instruction_create": "Custom Instruction",
|
|
"license.feature.file_transcription": "File Transcription",
|
|
"license.feature.voice_conversation": "Voice Conversation",
|
|
"license.feature.dictation_template": "Dictation Template",
|
|
"license.feature.meeting_summary": "Meeting Summary",
|
|
"license.feature.local_rag": "Local RAG",
|
|
"license.feature.os_automation": "OS Automation",
|
|
"license.feature.llmProcess": "LLM Processing",
|
|
"license.feature.liveCaption": "Live Caption",
|
|
"license.feature.screenContext": "Screen Context",
|
|
"license.feature.voiceCommand": "Voice Commands",
|
|
"license.feature.llmChain": "LLM Chain",
|
|
"license.feature.voiceMemo": "Voice Memo",
|
|
"license.feature.historyUnlimited": "Unlimited History",
|
|
"license.feature.historyExport": "History Export",
|
|
"license.feature.customInstruction": "Custom Instruction",
|
|
"license.feature.fileTranscription": "File Transcription",
|
|
"license.feature.voiceConversation": "Voice Conversation",
|
|
"license.feature.dictationTemplate": "Dictation Template",
|
|
"license.feature.meetingSummary": "Meeting Summary",
|
|
"license.feature.localRag": "Local RAG",
|
|
"license.feature.osAutomation": "OS Automation",
|
|
"license.pro.required": "PRO Required",
|
|
"license.proPlus.required": "PRO+ Required",
|
|
"license.included": "Included",
|
|
"license.notIncluded": "Not included",
|
|
"license.keyLabel": "License Key",
|
|
"license.quotaExceeded.title": "You've used all your daily {{feature}}",
|
|
"license.quotaExceeded.desc": "Upgrade to Pro for unlimited usage",
|
|
"license.tierRequired.title": "{{feature}} is a {{tier}} feature",
|
|
"license.tierRequired.desc": "Upgrade to {{tier}} to unlock",
|
|
"license.tryTomorrow": "Try again tomorrow",
|
|
"license.learnMore": "Learn more",
|
|
"license.upgradeBenefits": "Upgrade Benefits",
|
|
"license.benefit.unlimitedDictation": "Unlimited dictation",
|
|
"license.benefit.unlimitedLLM": "Unlimited AI polish",
|
|
"license.benefit.liveCaption": "Live captions",
|
|
"license.benefit.unlimitedHistory": "Unlimited history retention",
|
|
"license.usageToday": "Usage today",
|
|
"license.perDay": "/day",
|
|
"license.unlimited": "Unlimited",
|
|
"license.locked": "Locked",
|
|
"license.nav": "License",
|
|
"fileTranscription.title": "File Transcription",
|
|
"fileTranscription.dropZone": "Drop audio/video file here",
|
|
"fileTranscription.dropZoneHint": "Supports MP3, WAV, M4A, MP4, MKV, WEBM",
|
|
"fileTranscription.converting": "Converting...",
|
|
"fileTranscription.processing": "Transcribing...",
|
|
"fileTranscription.progress": "Chunk {{current}} / {{total}}",
|
|
"fileTranscription.complete": "Transcription complete",
|
|
"fileTranscription.copyAll": "Copy All",
|
|
"fileTranscription.cancel": "Cancel",
|
|
"fileTranscription.retry": "Retry",
|
|
"fileTranscription.error.invalidFormat": "Unsupported file format",
|
|
"fileTranscription.error.unknown": "Unknown error",
|
|
"meetingSummary.title": "Meeting Summary",
|
|
"meetingSummary.generating": "Generating summary...",
|
|
"meetingSummary.summary": "Summary",
|
|
"meetingSummary.decisions": "Key Decisions",
|
|
"meetingSummary.actionItems": "Action Items",
|
|
"meetingSummary.exportMarkdown": "Export as Markdown",
|
|
"meetingSummary.noSummary": "No summary available",
|
|
"meetingSummary.generate": "Generate Summary",
|
|
"template.title": "Dictation Templates",
|
|
"template.create": "New Template",
|
|
"template.edit": "Edit Template",
|
|
"template.delete": "Delete",
|
|
"template.name": "Template Name",
|
|
"template.description": "Description",
|
|
"template.fields": "Fields",
|
|
"template.addField": "Add Field",
|
|
"template.fieldName": "Field Name",
|
|
"template.fieldLabel": "Label",
|
|
"template.fieldPrompt": "Voice Prompt",
|
|
"template.outputFormat": "Output Format",
|
|
"template.startSession": "Start",
|
|
"template.cancelSession": "Cancel Session",
|
|
"template.empty": "No templates",
|
|
"nav.conversation": "Talk",
|
|
"conversation.title": "Voice Conversation",
|
|
"conversation.idle": "Idle",
|
|
"conversation.listening": "Listening",
|
|
"conversation.thinking": "Thinking",
|
|
"conversation.speaking": "Speaking",
|
|
"conversation.empty": "Talk to D3RO",
|
|
"conversation.emptyHint": "Press the mic button or type a message",
|
|
"conversation.inputPlaceholder": "Type a message...",
|
|
"conversation.end": "End",
|
|
"conversation.clearHistory": "Clear history",
|
|
"nav.knowledge": "Knowledge",
|
|
"rag.title": "Knowledge Base",
|
|
"rag.addDocument": "Add Document",
|
|
"rag.documents": "Documents",
|
|
"rag.noDocuments": "No documents",
|
|
"rag.chunks": "chunks",
|
|
"rag.indexed": "Indexed",
|
|
"rag.pending": "Pending",
|
|
"rag.indexing": "Indexing",
|
|
"rag.reindex": "Reindex",
|
|
"rag.askQuestion": "Ask a Question",
|
|
"rag.queryPlaceholder": "Ask about your documents...",
|
|
"rag.searching": "Searching...",
|
|
"rag.sources": "Sources",
|
|
"rag.adding": "Adding...",
|
|
"rag.parsing": "Parsing document...",
|
|
"voiceAction.title": "Voice Actions",
|
|
"voiceAction.execute": "Execute",
|
|
"voiceAction.presets": "Preset Commands",
|
|
"voiceAction.history": "Action History",
|
|
"voiceAction.noHistory": "No action history",
|
|
"voiceAction.blocked": "Blocked (unsafe)",
|
|
"voiceAction.executed": "Executed",
|
|
"settings.theme.nord": "Nord",
|
|
"settings.theme.solarized": "Solarized",
|
|
"settings.theme.catppuccin": "Catppuccin",
|
|
"settings.theme.dracula": "Dracula",
|
|
"settings.sttLang.ko": "한국어 (Korean)",
|
|
"settings.sttLang.en": "English",
|
|
"settings.sttLang.ja": "日本語 (Japanese)",
|
|
"settings.sttLang.zh": "中文 (Chinese)",
|
|
"template.outputHelperText": "Use {{fieldName}} for placeholders",
|
|
"nav.meeting": "Meeting",
|
|
"meeting.title": "Meeting Mode",
|
|
"meeting.newMeeting": "New Meeting",
|
|
"meeting.startRecording": "Start Recording",
|
|
"meeting.stopRecording": "Stop Recording",
|
|
"meeting.recording": "Recording",
|
|
"meeting.processing": "Generating minutes...",
|
|
"meeting.completed": "Completed",
|
|
"meeting.error": "Error",
|
|
"meeting.elapsed": "Elapsed",
|
|
"meeting.memoPlaceholder": "Type a memo (Enter to add)",
|
|
"meeting.memoAdded": "Memo added",
|
|
"meeting.noSessions": "No meeting recordings",
|
|
"meeting.noSessionsDesc": "Press New Meeting to start recording",
|
|
"meeting.summary": "Summary",
|
|
"meeting.decisions": "Decisions",
|
|
"meeting.actionItems": "Action Items",
|
|
"meeting.timeline": "Timeline",
|
|
"meeting.transcript": "Raw Transcript",
|
|
"meeting.memos": "Memos",
|
|
"meeting.exportPdf": "Export PDF",
|
|
"meeting.exportMarkdown": "Export Markdown",
|
|
"meeting.delete": "Delete",
|
|
"meeting.deleteConfirm": "Delete this meeting record?",
|
|
"meeting.backToList": "Back to List",
|
|
"meeting.notificationTitle": "Minutes Ready",
|
|
"meeting.notificationBody": "Meeting minutes have been generated.",
|
|
"meeting.sessions": "{{count}} sessions",
|
|
"meeting.duration": "{{minutes}} min",
|
|
"meeting.editTitle": "Edit Title",
|
|
"meeting.untitled": "Untitled Meeting",
|
|
"meeting.processingStep.merging": "Merging transcript...",
|
|
"meeting.processingStep.generating": "Generating minutes with LLM...",
|
|
"meeting.processingStep.parsing": "Parsing minutes...",
|
|
"meeting.processingStep.saving": "Saving...",
|
|
"meeting.processingStep.notifying": "Sending notification...",
|
|
"meeting.transcriptTab": "Transcript",
|
|
"meeting.addDocument": "Add Document",
|
|
"meeting.selectTemplate": "Select Template",
|
|
"meeting.generate": "Generate",
|
|
"meeting.generating": "Generating document...",
|
|
"meeting.editMode": "Edit",
|
|
"meeting.previewMode": "Preview",
|
|
"meeting.modified": "Modified",
|
|
"meeting.originalText": "Original",
|
|
"meeting.editedText": "Edited",
|
|
"meeting.exportDocx": "Export DOCX",
|
|
"meeting.exportTxt": "Export TXT",
|
|
"meeting.exportFormat": "Export",
|
|
"meeting.customPrompt": "Custom Prompt",
|
|
"meeting.templateName": "Template Name",
|
|
"meeting.templatePrompt": "AI Prompt",
|
|
"meeting.templateSave": "Save Template",
|
|
"meeting.documentDeleted": "Document deleted",
|
|
"meeting.autoSaved": "Auto-saved",
|
|
"meeting.minutesTemplate": "Meeting Minutes",
|
|
"meeting.reportTemplate": "Report",
|
|
"meeting.ideaNoteTemplate": "Idea Note",
|
|
"meeting.customTemplate": "Custom",
|
|
"meeting.downloadTranscript": "Download Transcript",
|
|
"meeting.polish": "AI Polish",
|
|
"meeting.polishing": "AI is polishing transcript...",
|
|
"meeting.polished": "AI Polish complete",
|
|
"meeting.mindmapTemplate": "Mind Map",
|
|
"meeting.chat": "AI Chat",
|
|
"meeting.chatPlaceholder": "Ask about the meeting...",
|
|
"meeting.chatSend": "Send",
|
|
"meeting.chatClear": "Clear Chat",
|
|
"meeting.copyToClipboard": "Copy to Clipboard",
|
|
"meeting.copied": "Copied",
|
|
"meeting.chatCollapse": "Collapse Chat",
|
|
"meeting.chatExpand": "Expand Chat",
|
|
"meeting.exportMd": "Markdown (.md)",
|
|
"meeting.exportPdfFmt": "PDF (.pdf)",
|
|
"meeting.polishFailed": "AI polishing failed",
|
|
"meeting.viewDetailError": "Failed to load meeting details",
|
|
"meeting.startRecordingError": "Failed to start recording",
|
|
"meeting.diarize": "Diarize",
|
|
"meeting.diarizing": "Identifying speakers...",
|
|
"meeting.diarizeComplete": "Diarization complete",
|
|
"meeting.speaker": "Speaker",
|
|
"settings.hfToken": "HuggingFace Token",
|
|
"settings.hfTokenHint": "A HuggingFace token is required for speaker diarization",
|
|
"settings.diarization": "Speaker Diarization",
|
|
"settings.diarizationHint": "Automatically identify speakers after recording ends"
|
|
}
|