{ "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", "nav.meetings": "Meetings", "nav.record": "Record", "nav.chat": "Chat", "nav.actions": "Actions", "nav.teams": "Teams", "nav.billing": "Billing", "nav.logout": "Logout", "login.subtitle": "AI Voice Assistant", "login.google": "Continue with Google", "login.github": "Continue with GitHub", "login.terms": "By continuing, you agree to the Terms of Service and Privacy Policy.", "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.cloud": "Cloud", "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 gemma4:e4b).", "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.cloud.title": "Cloud Sync (Optional)", "onboarding.cloud.tagline": "D3RO works great offline. Sign in whenever you want to unlock more.", "onboarding.cloud.benefit1": "Sync history & meetings across all your devices", "onboarding.cloud.benefit2": "Premium LLMs (Claude, GPT-4 class)", "onboarding.cloud.benefit3": "Team sharing · backups · web app access", "onboarding.cloud.signInLater": "Sign in later from Settings", "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 gemma4:26b (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.loginRequired.title": "{{feature}} requires sign in", "license.loginRequired.desc": "Sign in to use cloud features. Local features continue to work without signing in.", "license.loginRequired.signIn": "Sign in", "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", "conversation.recording.hint": "SPEAK NOW · PRESS ⏹ TO SEND", "conversation.thinking.placeholder": "Waiting for response…", "conversation.state.recording": "RECORDING", "conversation.error.phase.stt": "Speech Recognition", "conversation.error.phase.llm": "Response", "conversation.error.phase.tts": "Voice Playback", "conversation.error.noSpeech": "No speech detected. Check your microphone and try again.", "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", "theme.label": "Theme", "theme.dark": "Dark", "theme.light": "Light", "theme.auto": "Auto (system)", "theme.nord": "Nord", "theme.solarized": "Solarized", "theme.catppuccin": "Catppuccin", "theme.dracula": "Dracula" }