d3ro-voice/packages/i18n/src/locales/en.json
Yun Chan fd46ac7b14 fix(voice): 받아쓰기 파이프라인 4버그 수정 + 실시간 부분 전사
- press가 STT 초기화를 await하며 action queue 점유 → release 수십 초 지연·
  유령 세션 반복 버그 수정 (initSTT fire-and-forget)
- 프리플라이트: STT 모델 미설치 시 즉시 에러 + 메인 UI 경고 + 온보딩 오픈
- 사이드카: 기동 중 프로세스 사망 시 30초 대기 없이 즉시 실패,
  restartCount 리셋, error 리스너 부재 미처리 예외 방지
- 실시간 부분 전사: 1.5s 간격 interim → RecordingTip에 말하는 내용 미리보기
- Ollama 미가용 후처리 스킵 시 warning 배너, voice:error 브로드캐스트 신설
2026-07-21 20:56:40 +09:00

669 lines
31 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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.heroIdle": "Ready for voice recognition",
"dashboard.viewStats": "View Stats",
"dashboard.systemSettings": "System Settings",
"dashboard.keySetup": "Key Setup",
"dashboard.systemOk": "System OK",
"dashboard.systemIssue": "Needs Attention",
"dashboard.captionPlaceholder": "Recognized text will appear here in real time.",
"dashboard.captionStandby": "Standby",
"dashboard.inputLevel": "Input Level",
"dashboard.recordingTime": "Recording Time",
"dashboard.recognizedWords": "Words Recognized",
"dashboard.streakUse": "Streak",
"dashboard.modelLabel": "Model",
"dashboard.statusLabel": "Status",
"dashboard.localConnected": "Local",
"dashboard.planFree": "Free Plan",
"dashboard.planFeatureLocal": "Unlimited local backend",
"dashboard.planFeatureDaily": "Unlimited daily transcription",
"dashboard.stat": "Stats",
"dashboard.sys": "System",
"dashboard.currentBackend": "Current Backend",
"dashboard.backendLocal": "Local (Ollama)",
"dashboard.backendPremium": "Premium (Claude)",
"dashboard.loginRequired": "Login Required",
"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.model.largeTurbo": "large-v3-turbo (1.6 GB, fast & accurate)",
"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.llmBackend": "LLM Engine",
"settings.backend.local": "Local (Ollama, Free)",
"settings.backend.premium": "Premium (Claude AI, Subscription)",
"settings.backend.localHint": "Polish text with local Ollama server. Fully free, no internet needed.",
"settings.backend.premiumHint": "High-quality polishing with Anthropic Claude AI. Login + subscription required. Auto-fallback to Local on network failure.",
"settings.conversationBackend": "Voice Chat Engine",
"settings.convBackend.local": "Local (STT→LLM→TTS, Free)",
"settings.convBackend.realtime": "Live (OpenAI gpt-realtime, Subscription)",
"settings.convBackend.localHint": "Converse via the local pipeline. Fully free, no internet needed.",
"settings.convBackend.realtimeHint": "Real-time voice conversation with OpenAI Realtime models. Sub-second responses + interruption support. Login + Pro subscription required. Auto-fallback to Local on failure.",
"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",
"voice.error.modelMissing": "Speech model is not installed. Please download it first.",
"voice.error.engine": "Failed to start the speech engine. Please try again.",
"voice.warning.llmSkipped": "Ollama is unavailable — inserted the raw transcription.",
"status.localTime": "Local Time",
"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",
"service.premiumLlm": "PREMIUM LLM",
"service.notConfigured": "NOT SET",
"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.subscribe": "Subscribe",
"license.upgrade": "Upgrade",
"license.currentPlan": "Current Plan",
"license.proPlan": "Pro — ₩9,900/mo",
"license.proPlusPlan": "Pro+ — ₩29,900/mo",
"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.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",
"license.signInRequired": "Sign in to manage your subscription",
"license.signInToUpgrade": "Sign in to upgrade",
"license.subscriptionActive": "Subscription active",
"license.subscriptionManage": "Manage subscription",
"license.upgradeToProDesc": "Unlock Premium AI models, cloud sync, and more",
"license.currentPlanActive": "Your current plan",
"license.openBillingPage": "Open billing page",
"license.premiumQuota": "Premium Quota",
"license.modelHaiku": "Haiku",
"license.modelSonnet": "Sonnet",
"license.modelOpus": "Opus",
"license.quotaWeekly": "weekly",
"license.quotaDaily": "daily",
"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.",
"conversation.realtime.badge": "LIVE",
"conversation.realtime.connecting": "Connecting",
"conversation.realtime.fallback": "Live connection failed — switched to local conversation.",
"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.chatReasoning": "Reasoning…",
"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",
"mobile.dash.title": "D3RO-VOICE",
"mobile.dash.sessionOverview": "SESSION OVERVIEW",
"mobile.dash.today": "TODAY",
"mobile.dash.words": "WORDS",
"mobile.dash.streak": "STREAK",
"mobile.dash.rec": "REC",
"mobile.dash.min": "MIN",
"mobile.dash.backend": "BACKEND",
"mobile.dash.tier": "TIER",
"mobile.dash.free": "FREE",
"mobile.dash.tapToRecord": "Tap REC to start recording",
"mobile.dash.usage": "USAGE",
"mobile.dash.dictation": "Dictation",
"mobile.dash.llmProcess": "LLM Process",
"mobile.dash.premiumQuota": "Premium Quota",
"mobile.dash.unlimited": "Unlimited",
"mobile.hist.title": "HISTORY",
"mobile.hist.all": "ALL",
"mobile.hist.saved": "SAVED",
"mobile.hist.processing": "PROC",
"mobile.hist.empty": "No history yet. Start recording!",
"mobile.rec.title": "RECORDER",
"mobile.rec.session": "REC_SESSION",
"mobile.rec.ready": "READY",
"mobile.rec.recording": "RECORDING",
"mobile.rec.processing": "PROCESSING",
"mobile.rec.done": "DONE",
"mobile.rec.error": "ERROR",
"mobile.rec.start": "START RECORDING",
"mobile.rec.stop": "STOP",
"mobile.rec.cancel": "CANCEL",
"mobile.rec.newRecording": "NEW RECORDING",
"mobile.rec.listening": "LISTENING_",
"mobile.rec.realtime": "REAL-TIME TRANSCRIPT",
"mobile.rec.initLog": "> initializing voice recording protocol...",
"mobile.rec.micDenied": "Microphone permission denied",
"mobile.rec.supabaseNotConfigured": "Supabase not configured",
"mobile.rec.loginRequired": "Login required",
"mobile.talk.title": "TALK",
"mobile.talk.live": "LIVE",
"mobile.talk.you": "YOU",
"mobile.talk.claude": "CLAUDE",
"mobile.talk.placeholder": "Type or speak...",
"mobile.talk.greeting": "Hello! How can I help you today?",
"mobile.set.title": "Settings",
"mobile.set.accountPlan": "ACCOUNT & PLAN",
"mobile.set.backendConfig": "BACKEND CONFIG",
"mobile.set.preferences": "PREFERENCES",
"mobile.set.llmModel": "LLM Model",
"mobile.set.llmDesc": "AI processing backend",
"mobile.set.cloudStt": "Cloud STT",
"mobile.set.cloudSttDesc": "Google Cloud Speech",
"mobile.set.language": "Language",
"mobile.set.autoPolish": "Auto Polish",
"mobile.set.haptic": "Haptic Feedback",
"mobile.set.logout": "LOGOUT",
"mobile.set.logoutConfirm": "Are you sure you want to log out?",
"mobile.set.connected": "CLOUD CONNECTED",
"mobile.login.title": "D3RO-VOICE",
"mobile.login.subtitle": "PRECISION VOICE INTELLIGENCE",
"mobile.login.google": "Sign in with Google",
"mobile.login.apple": "Sign in with Apple",
"mobile.login.github": "Sign in with GitHub",
"mobile.login.or": "or",
"mobile.login.email": "EMAIL",
"mobile.login.password": "PASSWORD",
"mobile.login.signIn": "Sign In",
"mobile.login.noAccount": "Don't have an account?",
"mobile.login.signUp": "Sign Up",
"mobile.login.notConfigured": "Supabase not configured. Set EXPO_PUBLIC_SUPABASE_URL in .env",
"mobile.status.model": "CLOUD CLAUDE",
"mobile.status.link": "PRECISION DATA LINK",
"date.today": "TODAY",
"date.yesterday": "YESTERDAY",
"onboarding.title": "D3RO Voice Initial Setup",
"onboarding.subtitle": "Download the model required to use the voice assistant.",
"onboarding.llmModelMissing": "AI model ({{model}}) is not installed.",
"onboarding.llmModelSize": "Size: ~9.6GB — takes 1030 min depending on network speed",
"onboarding.download": "Start Download",
"onboarding.cancel": "Later",
"onboarding.close": "Close",
"onboarding.downloading": "Downloading…",
"onboarding.status": "Status: {{status}}",
"onboarding.success": "Setup complete! You can now use the app.",
"onboarding.failed": "Download failed: {{message}}",
"onboarding.retry": "Retry",
"onboarding.statusPreparing": "Preparing download…",
"onboarding.statusVerifying": "Verifying integrity… (large models may take a few minutes)",
"onboarding.statusFinalizing": "Finalizing…",
"onboarding.sttModelMissing": "Speech recognition model ({{model}}) is not installed.",
"onboarding.sttModelSize": "Size: ~1.6GB — takes 210 min depending on network speed",
"onboarding.step": "Step {{current}}/{{total}}",
"onboarding.progressDetail": "{{downloaded}} / {{total}} MB",
"onboarding.ollamaNotRunning": "Ollama server is not running. Please retry shortly."
}