{ "app.name": "D3RO Voice", "app.tagline": "로컬 AI 음성 어시스턴트", "nav.dashboard": "대시보드", "nav.history": "히스토리", "nav.dictionary": "사전", "nav.commands": "명령어", "nav.settings": "설정", "nav.meetings": "회의", "nav.record": "녹음", "nav.chat": "채팅", "nav.knowledge": "지식 베이스", "nav.actions": "액션", "nav.teams": "팀", "nav.billing": "결제", "nav.logout": "로그아웃", "login.subtitle": "AI 음성 어시스턴트", "login.google": "Google로 로그인", "login.apple": "Apple로 로그인", "login.github": "GitHub로 로그인", "login.or": "또는", "login.email": "EMAIL", "login.password": "PASSWORD", "login.signIn": "로그인", "login.noAccount": "계정이 없으신가요?", "login.signUp": "회원가입", "login.terms": "계속 진행하면 이용약관 및 개인정보 처리방침에 동의합니다.", "dashboard.systemStatus": "시스템 상태", "dashboard.sessionsToday": "오늘 세션", "dashboard.pressToRecord": "{{key}}를 눌러 녹음 시작", "dashboard.hotkeyNotSet": "핫키 미설정", "dashboard.words": "단어", "dashboard.total": "전체", "dashboard.days": "일", "dashboard.sessions": "세션", "dashboard.recentTranscriptions": "최근 전사", "dashboard.noHistory": "히스토리 없음 — 핫키를 눌러 녹음을 시작하세요", "dashboard.entries": "{{count}}건", "dashboard.heroIdle": "실시간 음성 인식 대기 중", "dashboard.viewStats": "통계 보기", "dashboard.systemSettings": "시스템 설정", "dashboard.keySetup": "키 설정", "dashboard.systemOk": "시스템 정상", "dashboard.systemIssue": "점검 필요", "dashboard.captionPlaceholder": "여기에 실시간 인식된 텍스트가 표시됩니다.", "dashboard.captionStandby": "대기 중", "dashboard.inputLevel": "입력 레벨", "dashboard.recordingTime": "녹음 시간", "dashboard.recognizedWords": "인식 단어 수", "dashboard.streakUse": "연속 사용", "dashboard.modelLabel": "모델", "dashboard.statusLabel": "상태", "dashboard.localConnected": "로컬 연결", "dashboard.planFree": "무료 플랜", "dashboard.planFeatureLocal": "로컬 백엔드 무제한", "dashboard.planFeatureDaily": "일일 전사 무제한", "dashboard.currentBackend": "현재 백엔드", "dashboard.backendLocal": "로컬 (Ollama)", "dashboard.backendPremium": "프리미엄 (Claude)", "history.title": "전사 기록", "history.search": "검색...", "history.entries": "{{count}}건", "history.noResults": "검색 결과 없음", "history.noHistory": "히스토리 없음 — 녹음을 시작하세요", "history.count": "{{count}}건", "dictionary.title": "커스텀 사전", "dictionary.words": "{{count}}개", "dictionary.add": "추가", "dictionary.search": "검색...", "dictionary.noResults": "검색 결과 없음", "dictionary.noWords": "단어 없음 — STT 정확도 향상을 위해 커스텀 단어를 추가하세요", "dictionary.used": "{{count}}회 사용", "dictionary.export": "내보내기", "dictionary.import": "가져오기", "dictionary.exported": "사전을 내보냈습니다.", "dictionary.exportFailed": "사전 내보내기에 실패했습니다.", "dictionary.importedCount": "가져오기 {{imported}}건, 건너뜀 {{skipped}}건, 오류 {{errors}}건.", "dictionary.importFailed": "사전 가져오기에 실패했습니다.", "dictionary.editTitle": "단어 편집", "dictionary.addTitle": "단어 추가", "dictionary.word": "단어", "dictionary.pronunciation": "발음 (선택)", "commands.title": "LLM 명령어", "commands.count": "{{count}}개", "commands.add": "추가", "commands.activeCommand": "활성 명령어", "commands.none": "없음", "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.cloud": "클라우드", "settings.tabs.about": "정보", "settings.shortcuts": "단축키", "settings.dictation": "받아쓰기", "settings.dictation.desc": "누른 상태에서 말하기. 키를 놓으면 전사가 시작됩니다.", "settings.agent": "Agent 모드", "settings.agent.descWithKey": "{{key}}를 두 번 클릭하면 Agent 모드에 진입합니다.", "settings.agent.descNoKey": "받아쓰기 핫키를 먼저 설정하세요.", "settings.oneTouch": "원터치 모드", "settings.oneTouch.desc": "눌러서 시작, 다시 눌러서 중지. 별도 단축키가 필요합니다.", "settings.caption": "실시간 자막", "settings.caption.desc": "핫키로 자막 모드를 토글합니다. 마이크 입력을 실시간 전사합니다.", "settings.captionAudio": "자막 오디오 소스", "settings.captionSource": "오디오 소스", "settings.captionSource.mic": "마이크만", "settings.captionSource.system": "시스템 오디오만 (데스크톱 소리)", "settings.captionSource.both": "마이크 + 시스템 오디오", "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.sttProvider": "STT 음성 인식 엔진", "settings.sttProvider.local": "Local Whisper (오프라인/무료)", "settings.sttProvider.openai": "OpenAI Whisper (고품질 표준)", "settings.sttProvider.groq": "Groq Whisper (LPU 초고속 ~200ms)", "settings.sttProvider.deepgram": "Deepgram Nova-3 (최고 정확도)", "settings.sttProvider.assemblyai": "AssemblyAI Universal-2 (음향 모델)", "settings.sttProvider.google": "Google Gemini 2.0 Flash Audio", "settings.sttProvider.custom": "커스텀 OpenAI 호환 엔드포인트", "settings.sttFallbackToLocal": "로컬 Whisper 자동 폴백", "settings.sttFallbackToLocalHint": "클라우드 STT 실패 시 오프라인 로컬 Whisper로 자동 전환", "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.model.largeTurbo": "large-v3-turbo (1.6 GB, 빠르고 정확)", "settings.sttLanguage": "인식 언어", "settings.sttLang.auto": "자동 감지", "settings.ollamaServer": "Ollama 서버", "settings.ollamaUrl": "Ollama 서버 URL", "settings.ollamaHint": "Ollama가 실행 중이면 자동으로 연결됩니다. 모델은 Ollama에서 직접 pull하세요 (예: ollama pull gemma4:e4b).", "settings.llmBackend": "LLM 엔진", "settings.backend.local": "Local (Ollama, 무료)", "settings.backend.premium": "Premium (Claude AI, 구독)", "settings.backend.localHint": "로컬 Ollama 서버로 텍스트를 다듬습니다. 완전 무료, 인터넷 불필요.", "settings.backend.premiumHint": "Anthropic Claude AI로 고품질 다듬기. 로그인 + 구독 필요. 네트워크 실패 시 Local로 자동 전환.", "settings.conversationBackend": "음성 대화 엔진", "settings.convBackend.local": "Local (STT→LLM→TTS, 무료)", "settings.convBackend.realtime": "Live (OpenAI gpt-realtime, 구독)", "settings.convBackend.localHint": "로컬 파이프라인으로 대화합니다. 완전 무료, 인터넷 불필요.", "settings.convBackend.realtimeHint": "OpenAI Realtime 모델과 실시간 음성 대화. 1초 미만 응답 + 말 끊기 지원. 로그인 + Pro 구독 필요. 연결 실패 시 Local로 자동 전환.", "settings.llmModel": "LLM 모델", "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": "초기 설정 안내 다시 보기", "voice.error.modelMissing": "음성 인식 모델이 설치되지 않았습니다. 모델을 다운로드해 주세요.", "voice.error.engine": "음성 인식 엔진을 시작하지 못했습니다. 잠시 후 다시 시도해 주세요.", "voice.warning.llmSkipped": "Ollama에 연결할 수 없어 원문 그대로 삽입했습니다.", "status.localTime": "로컬 시간", "status.nudge.title": "Ollama가 실행되지 않고 있어요", "status.nudge.desc": "LLM 후처리(번역, 요약 등)를 사용하려면 Ollama가 필요합니다.", "status.nudge.guide": "설치 안내 보기 →", "hotkey.title": "단축키 설정", "hotkey.dictationTitle": "받아쓰기 단축키 설정", "hotkey.oneTouchTitle": "원터치 모드 단축키 설정", "hotkey.captionTitle": "실시간 자막 단축키 설정", "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 gemma4:26b (더 정확, 더 느림)", "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", "service.premiumLlm": "PREMIUM LLM", "service.notConfigured": "NOT SET", "common.cancel": "취소", "common.back": "뒤로", "common.edit": "편집", "common.save": "저장", "common.delete": "삭제", "common.close": "닫기", "common.confirm": "확인", "common.loading": "로딩...", "common.copy": "복사", "common.test": "테스트", "common.stop": "중지", "memo.addTag": "태그 추가", "memo.tagPlaceholder": "태그 입력 후 Enter", "memo.export": "마크다운 내보내기", "memo.clearFilter": "필터 해제", "voiceCommand.title": "음성 명령어", "voiceCommand.keywordPlaceholder": "키워드 입력 후 Enter", "voiceCommand.noKeywords": "키워드 없음", "chain.title": "LLM 체인", "chain.add": "체인 추가", "chain.editTitle": "체인 편집", "chain.addTitle": "체인 추가", "chain.name": "체인 이름", "chain.steps": "단계", "chain.addStep": "단계 추가", "chain.inputSource": "입력 소스", "chain.inputSource.original": "원본 텍스트", "chain.inputSource.previous": "이전 단계 결과", "chain.selectInstruction": "명령어 선택", "chain.noChains": "체인 없음 — 여러 명령어를 순차 실행하는 파이프라인을 만들어 보세요", "dashboard.caption": "실시간 자막", "dashboard.captionStart": "자막 시작", "dashboard.captionStop": "자막 종료", "dashboard.captionActive": "자막 활성", "settings.voiceCommands": "음성 명령어", "settings.voiceCommands.desc": "전사된 텍스트에서 키워드를 감지하여 명령어를 자동 선택합니다.", "settings.screenContext": "화면 컨텍스트", "settings.screenContext.desc": "녹음 시 활성 앱 정보와 선택된 텍스트를 LLM에 함께 전달합니다.", "date.today": "오늘", "date.yesterday": "어제", "license.title": "라이선스", "license.currentTier": "현재 등급", "license.free": "FREE", "license.pro": "PRO", "license.proPlus": "PRO+", "license.subscribe": "구독하기", "license.upgrade": "업그레이드", "license.proPlan": "Pro 플랜", "license.proPlusPlan": "Pro+ 플랜", "license.quotaUsed": "{{used}}/{{limit}} 사용", "license.tierComparison": "등급 비교", "license.dailyUsage": "일일 사용량", "license.feature.dictation": "받아쓰기", "license.feature.llm_process": "LLM 처리", "license.feature.live_caption": "실시간 자막", "license.feature.screen_context": "화면 컨텍스트", "license.feature.voice_command": "음성 명령어", "license.feature.llm_chain": "LLM 체인", "license.feature.voice_memo": "음성 메모", "license.feature.history_unlimited": "무제한 히스토리", "license.feature.history_export": "히스토리 내보내기", "license.feature.custom_instruction_create": "커스텀 명령어 생성", "license.feature.file_transcription": "파일 전사", "license.feature.voice_conversation": "음성 대화", "license.feature.dictation_template": "받아쓰기 템플릿", "license.feature.meeting_summary": "회의 요약", "license.feature.local_rag": "로컬 RAG", "license.feature.os_automation": "OS 자동화", "license.feature.llmProcess": "LLM 처리", "license.feature.liveCaption": "실시간 자막", "license.feature.screenContext": "화면 컨텍스트", "license.feature.voiceCommand": "음성 명령어", "license.feature.llmChain": "LLM 체인", "license.feature.voiceMemo": "음성 메모", "license.feature.historyUnlimited": "무제한 히스토리", "license.feature.historyExport": "히스토리 내보내기", "license.feature.customInstruction": "커스텀 명령어 생성", "license.feature.fileTranscription": "파일 전사", "license.feature.voiceConversation": "음성 대화", "license.feature.dictationTemplate": "받아쓰기 템플릿", "license.feature.meetingSummary": "회의 요약", "license.feature.localRag": "로컬 RAG", "license.feature.osAutomation": "OS 자동화", "license.pro.required": "PRO 필요", "license.quotaExceeded.title": "오늘의 {{feature}}을(를) 모두 사용했습니다", "license.quotaExceeded.desc": "Pro로 업그레이드하면 무제한으로 사용할 수 있습니다", "license.tierRequired.title": "{{feature}}은(는) {{tier}} 기능입니다", "license.tierRequired.desc": "{{tier}}로 업그레이드하여 잠금을 해제하세요", "license.loginRequired.title": "{{feature}}은(는) 로그인이 필요합니다", "license.loginRequired.desc": "클라우드 기능을 사용하려면 로그인하세요. 로컬 기능은 로그인 없이도 계속 사용할 수 있습니다.", "license.loginRequired.signIn": "로그인하기", "license.tryTomorrow": "내일 다시 사용하기", "license.learnMore": "알아보기", "license.upgradeBenefits": "업그레이드 혜택", "license.benefit.unlimitedDictation": "무제한 받아쓰기", "license.benefit.unlimitedLLM": "무제한 AI 다듬기", "license.benefit.liveCaption": "실시간 자막", "license.benefit.unlimitedHistory": "히스토리 무제한 보존", "license.usageToday": "오늘 사용량", "license.unlimited": "무제한", "license.nav": "라이선스", "license.signInRequired": "구독을 관리하려면 로그인하세요", "license.signInToUpgrade": "로그인 후 업그레이드", "license.subscriptionManage": "구독 관리", "license.upgradeToProDesc": "프리미엄 AI 모델, 클라우드 동기화 등 모든 기능을 사용하세요", "license.currentPlanActive": "현재 구독 중", "license.premiumQuota": "프리미엄 쿼터", "license.modelHaiku": "Haiku", "license.modelSonnet": "Sonnet", "license.modelOpus": "Opus", "license.quotaWeekly": "주간", "license.quotaDaily": "일간", "fileTranscription.title": "파일 전사", "fileTranscription.dropZone": "오디오/비디오 파일을 여기에 드래그하세요", "fileTranscription.dropZoneHint": "MP3, WAV, M4A, MP4, MKV, WEBM 지원", "fileTranscription.converting": "변환 중...", "fileTranscription.processing": "전사 중...", "fileTranscription.progress": "청크 {{current}} / {{total}}", "fileTranscription.complete": "전사 완료", "fileTranscription.copyAll": "전체 복사", "fileTranscription.cancel": "취소", "fileTranscription.retry": "다시 시도", "fileTranscription.error.invalidFormat": "지원하지 않는 파일 형식입니다", "fileTranscription.error.unknown": "알 수 없는 오류", "meetingSummary.title": "회의록 요약", "meetingSummary.generating": "요약 생성 중...", "meetingSummary.summary": "요약", "meetingSummary.decisions": "핵심 결정사항", "meetingSummary.actionItems": "할 일 목록", "meetingSummary.exportMarkdown": "마크다운 내보내기", "meetingSummary.noSummary": "요약이 없습니다", "meetingSummary.generate": "요약 생성", "template.title": "딕테이션 템플릿", "template.create": "새 템플릿", "template.edit": "템플릿 편집", "template.delete": "삭제", "template.name": "템플릿 이름", "template.description": "설명", "template.fields": "필드", "template.addField": "필드 추가", "template.fieldName": "필드명", "template.fieldLabel": "라벨", "template.fieldPrompt": "음성 안내", "template.outputFormat": "출력 포맷", "template.startSession": "시작", "template.cancelSession": "세션 취소", "template.empty": "템플릿이 없습니다", "nav.conversation": "대화", "conversation.title": "음성 대화", "conversation.idle": "대기", "conversation.listening": "듣는 중", "conversation.thinking": "생각 중", "conversation.speaking": "말하는 중", "conversation.empty": "D3RO에게 말을 걸어보세요", "conversation.emptyHint": "마이크 버튼을 누르거나 텍스트를 입력하세요", "conversation.inputPlaceholder": "메시지 입력...", "conversation.end": "종료", "conversation.clearHistory": "대화 초기화", "conversation.recording.hint": "말씀하세요 · ⏹로 전송", "conversation.thinking.placeholder": "응답 대기 중…", "conversation.state.recording": "녹음 중", "conversation.error.phase.stt": "음성 인식", "conversation.error.phase.llm": "응답 생성", "conversation.error.phase.tts": "음성 재생", "conversation.error.noSpeech": "음성이 감지되지 않았습니다. 마이크를 확인하고 다시 말씀해 주세요.", "conversation.realtime.badge": "LIVE", "conversation.realtime.connecting": "연결 중", "conversation.realtime.fallback": "라이브 연결 실패 — 로컬 대화로 전환했습니다.", "rag.title": "지식 베이스", "rag.addDocument": "문서 추가", "rag.documents": "문서", "rag.noDocuments": "문서가 없습니다", "rag.chunks": "청크", "rag.indexed": "인덱싱 완료", "rag.pending": "대기 중", "rag.indexing": "인덱싱 중", "rag.reindex": "재인덱싱", "rag.askQuestion": "질문하기", "rag.queryPlaceholder": "문서에 대해 질문하세요...", "rag.searching": "검색 중...", "rag.sources": "참조 문서", "rag.adding": "추가 중...", "rag.parsing": "문서 분석 중...", "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.stopRecording": "녹음 종료", "meeting.recording": "녹음 중", "meeting.processing": "회의록 생성 중...", "meeting.completed": "완료", "meeting.error": "오류", "meeting.memoPlaceholder": "메모 입력 (Enter로 추가)", "meeting.noSessions": "회의 녹음이 없습니다", "meeting.noSessionsDesc": "새 회의 버튼을 눌러 녹음을 시작하세요", "meeting.transcript": "원문 전사", "meeting.memos": "메모", "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.downloadTranscript": "전사 다운로드", "meeting.polish": "AI 다듬기", "meeting.polishing": "AI가 전사를 다듬는 중...", "meeting.chat": "AI 채팅", "meeting.chatPlaceholder": "회의 내용에 대해 질문하세요...", "meeting.chatClear": "대화 초기화", "meeting.copyToClipboard": "클립보드 복사", "meeting.chatCollapse": "채팅 접기", "meeting.chatExpand": "채팅 펼치기", "meeting.chatReasoning": "추론 중…", "meeting.exportMd": "Markdown (.md)", "meeting.exportPdfFmt": "PDF (.pdf)", "meeting.polishFailed": "AI 다듬기에 실패했습니다", "meeting.viewDetailError": "회의 상세 정보를 불러오지 못했습니다", "meeting.startRecordingError": "녹음을 시작하지 못했습니다", "meeting.diarize": "화자 구분", "meeting.diarizing": "화자를 구분하는 중...", "settings.hfToken": "HuggingFace 토큰", "settings.hfTokenHint": "화자 구분을 위해 HuggingFace 토큰이 필요합니다", "settings.diarization": "화자 구분", "settings.diarizationHint": "녹음 종료 후 화자를 자동으로 구분합니다", "theme.label": "테마", "theme.dark": "다크", "theme.light": "라이트", "theme.auto": "자동 (시스템)", "theme.nord": "노드", "theme.solarized": "솔라라이즈드", "theme.catppuccin": "카푸치노", "theme.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": "REC 탭을 눌러 녹음 시작", "mobile.dash.usage": "USAGE", "mobile.dash.dictation": "받아쓰기", "mobile.dash.llmProcess": "LLM 처리", "mobile.dash.premiumQuota": "프리미엄 쿼터", "mobile.dash.unlimited": "무제한", "mobile.dash.sessions": "세션", "mobile.dash.synced": "동기화됨", "mobile.dash.syncError": "동기화 오류", "mobile.dash.cloudSynced": "클라우드 동기화됨", "mobile.dash.loading": "대시보드를 불러오고 있습니다...", "mobile.dash.loadError": "대시보드 데이터를 불러오지 못했습니다. 기존 수치를 임의로 표시하지 않습니다.", "mobile.dash.retry": "다시 시도", "mobile.dash.rewardsTitle": "PRO 및 리워드", "mobile.dash.paidSummary": "서버에서 확인된 유료 플랜입니다. 광고 없이 이용할 수 있습니다.", "mobile.dash.freeSummary": "리워드 광고로 AI 크레딧을 받거나 광고 없는 플랜을 구독할 수 있습니다.", "mobile.dash.openPlans": "요금제 및 리워드 열기 →", "mobile.dash.usedToday": "오늘 {{count}}회", "mobile.dash.rewardCredits": "리워드 크레딧", "mobile.dash.recent": "최근 전사", "mobile.dash.items": "{{count}}건", "mobile.dash.noHistory": "완료된 전사 기록이 없습니다. 녹음 또는 파일 가져오기를 시작하세요.", "mobile.status.cloudModel": "클라우드 AI", "mobile.status.secureDataLink": "보안 데이터 연결", "mobile.hist.title": "HISTORY", "mobile.hist.all": "ALL", "mobile.hist.saved": "SAVED", "mobile.hist.processing": "PROC", "mobile.hist.empty": "아직 기록이 없습니다. 녹음을 시작해보세요!", "mobile.hist.emptySearch": "조건에 맞는 기록이 없습니다.", "mobile.hist.searchPlaceholder": "제목과 전사 내용 검색", "mobile.hist.entries": "{{count}}개 기록", "mobile.hist.wordsShort": "{{count}}단어", "mobile.hist.offline": "오프라인 — 암호화된 기기 캐시를 표시 중", "mobile.hist.cachedAt": "마지막 동기화 {{time}}", "mobile.hist.cacheWarning": "보안 캐시를 갱신하지 못했습니다. 온라인 데이터는 정상입니다.", "mobile.hist.realtimeWaiting": "실시간 동기화 재연결 중 — 당겨서 새로고침은 계속 사용할 수 있습니다.", "mobile.hist.loadError": "기록을 불러오지 못했습니다.", "mobile.hist.retry": "다시 시도", "mobile.hist.favorite": "즐겨찾기", "mobile.hist.unfavorite": "즐겨찾기 해제", "mobile.hist.delete": "삭제", "mobile.hist.deleteTitle": "기록 삭제", "mobile.hist.deleteBody": "이 기록을 삭제할까요? 연결된 원본 오디오 파일은 유지됩니다.", "mobile.hist.deleteFailed": "서버에서 삭제를 확정하지 못해 기록을 복원했습니다.", "mobile.hist.favoriteFailed": "서버에서 변경을 확정하지 못해 이전 상태로 되돌렸습니다.", "mobile.hist.processingProgress": "처리 중 {{progress}}%", "mobile.hist.loadMore": "이전 기록 불러오는 중", "mobile.hist.detailTitle": "기록 상세", "mobile.hist.back": "뒤로", "mobile.hist.detailLoading": "기록을 불러오는 중입니다...", "mobile.hist.notFound": "이 기록이 없거나 접근 권한이 없습니다.", "mobile.hist.edit": "편집", "mobile.hist.save": "저장", "mobile.hist.saving": "저장 중...", "mobile.hist.cancel": "취소", "mobile.hist.titleLabel": "제목", "mobile.hist.originalLabel": "원문", "mobile.hist.polishedLabel": "교정문", "mobile.hist.summaryLabel": "요약", "mobile.hist.metadata": "메타데이터", "mobile.hist.mode": "모드", "mobile.hist.status": "상태", "mobile.hist.language": "언어", "mobile.hist.duration": "길이", "mobile.hist.model": "모델", "mobile.hist.created": "생성", "mobile.hist.updated": "수정", "mobile.hist.revision": "리비전", "mobile.hist.audio": "원본 오디오", "mobile.hist.audioNone": "연결된 오디오 파일이 없습니다.", "mobile.hist.audioPlay": "재생", "mobile.hist.audioPause": "일시정지", "mobile.hist.audioResume": "계속 재생", "mobile.hist.audioStop": "정지", "mobile.hist.audioPending": "업로드 상태: {{status}}", "mobile.hist.audioError": "오디오를 안전하게 열지 못했습니다.", "mobile.hist.jobs": "처리 작업", "mobile.hist.jobsNone": "연결된 처리 작업이 없습니다.", "mobile.hist.share": "공유", "mobile.hist.shareFailed": "공유 시트를 열지 못했습니다.", "mobile.hist.editFailed": "서버에서 편집을 확정하지 못했습니다.", "mobile.hist.conflict": "다른 기기에서 먼저 수정했습니다. 초안을 유지했으니 최신 내용을 확인하세요.", "mobile.hist.reloadLatest": "서버 최신 내용 불러오기", "mobile.hist.savedSuccess": "서버에 저장했습니다.", "mobile.hist.validationTitle": "제목은 160자 이하여야 합니다.", "mobile.hist.validationOriginal": "원문은 비워둘 수 없습니다.", "mobile.dictionary.title": "CUSTOM DICTIONARY", "mobile.dictionary.count": "{{count}}개 단어", "mobile.dictionary.add": "단어 추가", "mobile.dictionary.search": "단어 또는 발음 검색", "mobile.dictionary.loading": "서버 사전을 불러오는 중...", "mobile.dictionary.loadingMore": "이전 단어를 불러오는 중", "mobile.dictionary.retry": "다시 시도", "mobile.dictionary.empty": "등록된 단어가 없습니다. 자주 틀리는 고유명사나 기술 용어를 추가하세요.", "mobile.dictionary.emptySearch": "검색 및 카테고리 조건에 맞는 단어가 없습니다.", "mobile.dictionary.realtimeWaiting": "실시간 동기화 재연결 중 — 당겨서 새로고침은 계속 사용할 수 있습니다.", "mobile.dictionary.category": "카테고리", "mobile.dictionary.category.all": "전체", "mobile.dictionary.category.user": "사용자", "mobile.dictionary.category.technical": "기술 용어", "mobile.dictionary.category.auto": "자동", "mobile.dictionary.usage": "{{count}}회 사용", "mobile.dictionary.addTitle": "새 단어 추가", "mobile.dictionary.editTitle": "단어 편집", "mobile.dictionary.word": "단어", "mobile.dictionary.pronunciation": "발음 (선택)", "mobile.dictionary.edit": "편집", "mobile.dictionary.delete": "삭제", "mobile.dictionary.deleting": "삭제 중...", "mobile.dictionary.deleteTitle": "사전 단어 삭제", "mobile.dictionary.deleteBody": "‘{{word}}’ 단어를 삭제할까요? 다른 기기에서도 삭제됩니다.", "mobile.dictionary.cancel": "취소", "mobile.dictionary.save": "서버에 저장", "mobile.dictionary.saving": "저장 중...", "mobile.dictionary.error.auth": "로그인 세션 또는 이 단어의 소유권을 확인할 수 없습니다.", "mobile.dictionary.error.conflict": "다른 기기에서 이 단어를 먼저 수정하거나 삭제했습니다. 최신 목록을 확인하세요.", "mobile.dictionary.error.duplicate": "같은 카테고리에 이미 등록된 단어입니다.", "mobile.dictionary.error.network": "네트워크 연결을 확인하고 다시 시도하세요.", "mobile.dictionary.error.notFound": "이 단어가 없거나 접근 권한이 없습니다.", "mobile.dictionary.error.validation": "단어는 1~120자, 발음은 200자 이하로 입력하세요.", "mobile.dictionary.error.server": "서버에서 사전 작업을 확정하지 못했습니다.", "mobile.commands.title": "AI COMMANDS", "mobile.commands.count": "{{count}}개 서버 실행 프리셋", "mobile.commands.readOnlyBadge": "READ ONLY", "mobile.commands.contractNotice": "현재 서버에는 사용자 명령 저장 스키마가 없습니다. 이 화면은 변경 가능한 목록으로 위장하지 않으며, 검증된 기본 명령을 인증된 Cloud AI에 실제로 실행하는 테스트 벤치만 제공합니다. 녹음 후 자동 실행과는 아직 연결되지 않았습니다.", "mobile.commands.available": "AVAILABLE SERVER COMMANDS", "mobile.commands.translate.name": "영문 번역", "mobile.commands.translate.description": "입력 텍스트를 자연스러운 영어로 번역하고 번역문만 반환합니다.", "mobile.commands.summarize.name": "핵심 요약", "mobile.commands.summarize.description": "핵심 내용을 3줄 이내로 요약합니다.", "mobile.commands.formal.name": "전문 리라이트", "mobile.commands.formal.description": "원래 의미를 유지하며 격식 있는 비즈니스 문체로 다듬습니다.", "mobile.commands.explain.name": "코드 설명", "mobile.commands.explain.description": "코드의 역할과 주의점을 한국어로 설명합니다.", "mobile.commands.testBench": "AUTHENTICATED TEST BENCH", "mobile.commands.selected": "선택: {{name}}", "mobile.commands.inputPlaceholder": "서버 명령으로 처리할 실제 텍스트를 입력하세요.", "mobile.commands.run": "서버에서 실행", "mobile.commands.running": "실행 중...", "mobile.commands.cancel": "취소", "mobile.commands.serverProcessing": "인증 및 사용량 확인 후 Cloud AI가 처리 중입니다.", "mobile.commands.serverResult": "SERVER RESULT", "mobile.commands.retry": "다시 실행", "mobile.commands.error.auth": "로그인 세션이 만료됐습니다. 다시 로그인하세요.", "mobile.commands.error.invalid": "입력 내용이 비어 있거나 허용 길이를 초과했습니다.", "mobile.commands.error.quota": "오늘 사용할 수 있는 Cloud AI 한도를 모두 사용했습니다.", "mobile.commands.error.model": "현재 요금제에서 선택한 AI 모델을 사용할 수 없습니다.", "mobile.commands.error.provider": "AI 공급자가 설정되지 않았거나 잠시 사용할 수 없습니다.", "mobile.commands.error.timeout": "AI 응답 시간이 초과됐습니다.", "mobile.commands.error.network": "네트워크 연결을 확인하고 다시 시도하세요.", "mobile.commands.error.response": "AI가 유효한 결과를 반환하지 않았습니다.", "mobile.commands.error.cancelled": "명령 실행을 취소했습니다.", "mobile.commands.error.notFound": "지원되지 않는 명령입니다.", "mobile.commands.error.server": "서버 명령을 완료하지 못했습니다.", "mobile.commands.syncedCount": "{{count}}개 동기화 명령", "mobile.commands.add": "추가", "mobile.commands.syncNotice": "기본 명령과 사용자 명령은 계정에 동기화됩니다. 활성 명령은 녹음 후 처리에 사용할 서버 정본입니다.", "mobile.commands.loading": "서버 명령을 불러오는 중...", "mobile.commands.active": "활성", "mobile.commands.activate": "활성화", "mobile.commands.deactivate": "비활성화", "mobile.commands.deleteTitle": "사용자 명령 삭제", "mobile.commands.deleteConfirm": "‘{{name}}’ 명령을 삭제할까요? 모든 기기에서 제거됩니다.", "mobile.commands.noSelection": "실행할 명령을 선택하세요.", "mobile.commands.addTitle": "사용자 명령 추가", "mobile.commands.editTitle": "사용자 명령 편집", "mobile.commands.name": "이름", "mobile.commands.descriptionLabel": "설명", "mobile.commands.prompt": "서버 프롬프트", "mobile.commands.saving": "저장 중...", "mobile.commands.save": "저장", "mobile.commands.syncError.auth": "로그인 세션 또는 명령 소유권을 확인할 수 없습니다.", "mobile.commands.syncError.validation": "이름 1~80자, 설명 240자 이하, 프롬프트 1~4000자로 입력하세요.", "mobile.commands.syncError.duplicate": "같은 이름의 명령이 이미 있습니다.", "mobile.commands.syncError.conflict": "다른 기기에서 먼저 수정했습니다. 최신 목록을 다시 불러왔습니다.", "mobile.commands.syncError.notFound": "명령이 없거나 접근 권한이 없습니다.", "mobile.commands.syncError.server": "서버에서 명령 변경을 확정하지 못했습니다.", "mobile.knowledge.title": "KNOWLEDGE", "mobile.knowledge.description": "모바일 파일과 텍스트를 지식 문서로 동기화하고 실제 검색을 실행합니다.", "mobile.knowledge.count": "{{count}}개 문서", "mobile.knowledge.import": "텍스트 파일 가져오기", "mobile.knowledge.importing": "가져오는 중", "mobile.knowledge.contractNotice": "UTF-8 TXT·Markdown 파일의 본문을 계정의 지식 청크로 저장한 뒤 서버 임베딩이 모든 청크를 확인해야 검색 준비 상태가 됩니다. PDF·DOCX를 텍스트로 가장하거나 원문을 검색 답변으로 대신 표시하지 않습니다.", "mobile.knowledge.realtimeWaiting": "지식 문서 실시간 동기화에 다시 연결하는 중입니다. 아래로 당겨 서버 상태를 새로 확인할 수 있습니다.", "mobile.knowledge.documentSearch": "문서 제목 검색", "mobile.knowledge.searchDocuments": "목록 검색", "mobile.knowledge.queryTitle": "시맨틱 검색", "mobile.knowledge.queryNotice": "인증된 search-knowledge 서버가 실제 임베딩 검색을 완료한 결과만 표시합니다.", "mobile.knowledge.queryPlaceholder": "지식 베이스에 질문하거나 검색어 입력", "mobile.knowledge.query": "검색", "mobile.knowledge.querying": "검색 중", "mobile.knowledge.cancel": "취소", "mobile.knowledge.resultCount": "검색 결과 {{count}}개", "mobile.knowledge.queryEmpty": "유사도 기준을 통과한 지식 청크가 없습니다.", "mobile.knowledge.importReady": "파일 저장과 전체 청크 인덱싱을 완료했습니다.", "mobile.knowledge.importSavedPending": "파일과 청크는 저장됐지만 인덱싱은 완료되지 않았습니다. 문서의 인덱스 재시도를 사용하세요.", "mobile.knowledge.cleanupWarning": "가져오기 임시 파일을 지우지 못했습니다. 앱 캐시는 운영체제에서 정리될 수 있습니다.", "mobile.knowledge.indexReady": "서버가 모든 청크의 인덱싱 완료를 확인했습니다.", "mobile.knowledge.deleteTitle": "지식 문서 삭제", "mobile.knowledge.deleteBody": "‘{{title}}’ 문서와 모든 지식 청크를 계정에서 삭제할까요? 되돌릴 수 없습니다.", "mobile.knowledge.delete": "삭제", "mobile.knowledge.deleting": "삭제 중", "mobile.knowledge.retry": "다시 불러오기", "mobile.knowledge.library": "DOCUMENT LIBRARY", "mobile.knowledge.loading": "서버 지식 문서를 불러오는 중", "mobile.knowledge.empty": "저장된 지식 문서가 없습니다. UTF-8 TXT 또는 Markdown 파일을 가져오세요.", "mobile.knowledge.emptySearch": "제목 검색 조건에 맞는 문서가 없습니다.", "mobile.knowledge.noFileName": "파일 이름 없음", "mobile.knowledge.chunkCount": "{{count}}개 청크", "mobile.knowledge.teamShared": "팀에서 공유한 문서 · 소유자만 인덱싱하거나 삭제할 수 있습니다.", "mobile.knowledge.indexing": "인덱싱 중", "mobile.knowledge.retryIndex": "인덱스 재시도", "mobile.knowledge.statusProcessing": "PROCESSING", "mobile.knowledge.statusReady": "READY", "mobile.knowledge.statusPending": "PENDING", "mobile.knowledge.unknownDocument": "접근 가능한 문서", "mobile.knowledge.error.auth": "지식 베이스를 사용하려면 다시 로그인해야 합니다.", "mobile.knowledge.error.conflict": "다른 기기에서 문서가 먼저 변경되거나 삭제됐습니다. 최신 목록을 확인하세요.", "mobile.knowledge.error.forbidden": "이 문서를 변경할 권한이 없습니다.", "mobile.knowledge.error.indexUnavailable": "지식 임베딩 서버가 설정되지 않았습니다. 문서는 보류 상태로 유지됩니다.", "mobile.knowledge.error.indexFailed": "서버가 모든 지식 청크의 임베딩을 완료하지 못했습니다. 준비 완료로 표시하지 않았습니다.", "mobile.knowledge.error.response": "서버가 완전하고 검증 가능한 지식 결과를 반환하지 않았습니다.", "mobile.knowledge.error.network": "네트워크 연결을 확인하고 다시 시도하세요.", "mobile.knowledge.error.notFound": "문서를 찾을 수 없거나 접근 권한이 없습니다.", "mobile.knowledge.error.timeout": "지식 서버 응답 시간이 초과됐습니다. 미완료 문서는 보류 상태로 유지됩니다.", "mobile.knowledge.error.validation": "1MB 이하의 유효한 UTF-8 TXT·Markdown 파일과 올바른 입력을 사용하세요.", "mobile.knowledge.error.cancelled": "지식 작업을 취소했습니다.", "mobile.knowledge.error.server": "지식 서버가 작업 완료를 확인하지 못했습니다.", "mobile.actions.title": "ACTIONS", "mobile.actions.description": "자연어 명령을 안전한 모바일 작업으로 분석하고 확인 후 실행합니다.", "mobile.actions.subtitle": "확인 후 실행하는 모바일 안전 액션", "mobile.actions.confirmBadge": "CONFIRM FIRST", "mobile.actions.contractNotice": "Cloud AI는 명령을 엄격한 JSON으로 파싱만 합니다. 회의 생성·지식 검색·회의 메모 저장만 모바일 허용 목록에 있으며 항상 사용자가 확인해야 실행됩니다. 팀 초대와 OS·외부 앱 부작용은 자동 실행하지 않습니다. 실행 기록은 현재 이 기기에 계정별로 저장되며 서버 감사 로그는 아직 없습니다.", "mobile.actions.commandTitle": "자연어 명령", "mobile.actions.inputPlaceholder": "실행하려는 작업을 구체적으로 입력하세요", "mobile.actions.parse": "서버에서 분석", "mobile.actions.parsing": "분석 중", "mobile.actions.cancel": "취소", "mobile.actions.serverParsing": "인증된 Cloud AI가 액션 계약을 분석하고 있습니다.", "mobile.actions.executing": "실행 중", "mobile.actions.reviewTitle": "실행 전 확인", "mobile.actions.allowed": "ALLOWLISTED", "mobile.actions.blocked": "BLOCKED", "mobile.actions.type": "작업 유형", "mobile.actions.arguments": "서버가 해석한 값", "mobile.actions.rationale": "해석 근거", "mobile.actions.confirmWarning": "확인을 누르면 표시된 계정 데이터 작업이 실제로 실행됩니다. 내용을 확인하세요.", "mobile.actions.reject": "실행하지 않음", "mobile.actions.confirmExecute": "확인하고 실행", "mobile.actions.externalBlocked": "팀 초대는 외부 메시지 부작용과 권한 검증이 필요하므로 모바일 자동 실행 목록에서 차단했습니다.", "mobile.actions.unknownBlocked": "필수 정보가 없거나 지원하지 않는 작업이므로 실행하지 않습니다.", "mobile.actions.historyNotRecorded": "실패 결과를 이 기기의 실행 기록에 저장하지 못했습니다.", "mobile.actions.resultTitle": "실제 실행 결과", "mobile.actions.resultWithoutHistory": "작업은 완료됐지만 로컬 기록 저장에 실패했습니다. 중복 실행하지 말고 결과를 먼저 확인하세요.", "mobile.actions.historyTitle": "이 기기의 실행 기록", "mobile.actions.refreshHistory": "기록 새로고침", "mobile.actions.historyEmpty": "이 계정으로 확인 후 실행한 모바일 액션이 없습니다.", "mobile.actions.historySucceeded": "성공", "mobile.actions.historyFailed": "실패", "mobile.actions.type.createMeeting": "회의 공간 생성", "mobile.actions.type.searchKnowledge": "지식 베이스 검색", "mobile.actions.type.createMemo": "회의 메모 저장", "mobile.actions.type.sendTeamInvite": "팀 초대", "mobile.actions.type.unknown": "지원하지 않는 작업", "mobile.actions.memoArgs": "회의 {{meetingId}} · {{content}}", "mobile.actions.inviteArgs": "{{email}} · 권한 {{role}}", "mobile.actions.noArguments": "실행 인자 없음", "mobile.actions.meetingCreated": "‘{{title}}’ 회의 공간을 서버에 생성했습니다.", "mobile.actions.knowledgeSearched": "서버 지식 검색에서 {{count}}개 결과를 확인했습니다.", "mobile.actions.memoCreated": "회의 {{meetingId}}에 메모를 서버 저장했습니다.", "mobile.actions.error.blocked": "이 작업은 모바일 안전 실행 목록에 없거나 사용자 확인을 거치지 않았습니다.", "mobile.actions.error.auth": "액션을 사용하려면 다시 로그인해야 합니다.", "mobile.actions.error.cancelled": "액션 요청을 취소했습니다.", "mobile.actions.error.forbidden": "이 계정에는 요청한 데이터 작업을 실행할 권한이 없습니다.", "mobile.actions.error.history": "이 기기의 액션 기록을 읽거나 저장하지 못했습니다.", "mobile.actions.error.invalid": "명령 또는 실행 인자가 서버 계약 범위를 벗어났습니다.", "mobile.actions.error.response": "Cloud AI가 엄격한 액션 JSON 계약을 반환하지 않아 실행을 차단했습니다.", "mobile.actions.error.model": "현재 요금제에서 선택한 Cloud AI 모델을 사용할 수 없습니다.", "mobile.actions.error.network": "네트워크 연결을 확인하고 다시 시도하세요.", "mobile.actions.error.provider": "Cloud AI 또는 지식 임베딩 제공자를 현재 사용할 수 없습니다.", "mobile.actions.error.quota": "오늘 사용할 수 있는 Cloud AI 한도를 초과했습니다.", "mobile.actions.error.timeout": "서버 응답 시간이 초과됐습니다. 실행 결과를 확인한 뒤 재시도하세요.", "mobile.actions.error.server": "서버가 액션 완료를 확인하지 못했습니다.", "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": "마이크 권한이 거부되었습니다", "mobile.rec.supabaseNotConfigured": "Supabase가 설정되지 않았습니다", "mobile.rec.loginRequired": "로그인이 필요합니다", "mobile.rec.stateSelecting": "오디오 파일 선택 중", "mobile.rec.stateStarting": "녹음기 시작 중", "mobile.rec.stateRecording": "녹음 중", "mobile.rec.statePaused": "녹음 일시정지", "mobile.rec.stateStopping": "녹음 마무리 중", "mobile.rec.stateValidating": "오디오 확인 중", "mobile.rec.stateUploading": "안전하게 업로드 중", "mobile.rec.stateTranscribing": "전사 중", "mobile.rec.stateSaving": "저장 및 동기화 중", "mobile.rec.stateCancelling": "취소 중", "mobile.rec.stateDone": "기록에 저장됨", "mobile.rec.stateError": "처리 실패", "mobile.rec.stateReady": "준비됨", "mobile.rec.startFailed": "녹음을 시작하지 못했습니다.", "mobile.rec.stateChangeFailed": "녹음 상태를 변경하지 못했습니다.", "mobile.rec.processFailed": "녹음 파일을 처리하지 못했습니다.", "mobile.rec.importFailed": "오디오 파일을 가져오지 못했습니다.", "mobile.rec.sharedImportFailed": "공유된 오디오 또는 비디오를 가져오지 못했습니다.", "mobile.rec.cancelFailed": "녹음을 취소하지 못했습니다.", "mobile.rec.shareTitle": "D3RO Voice 전사", "mobile.rec.shareDialogTitle": "전사 내용 공유", "mobile.rec.shareFailed": "전사 내용을 공유하지 못했습니다.", "mobile.rec.noSpeech": "이 오디오에서 음성을 감지하지 못했습니다.", "mobile.rec.syncedCopy": "동기화된 사본", "mobile.rec.paused": "일시정지됨", "mobile.rec.importAudio": "오디오 파일 가져오기", "mobile.rec.shareTranscript": "전사 내용 공유", "mobile.rec.sharing": "공유 중...", "mobile.rec.pause": "일시정지", "mobile.rec.resume": "계속 녹음", "mobile.rec.cancelling": "취소 중...", "mobile.rec.cancelProcessing": "처리 취소", "mobile.rec.stateQueued": "재시도 대기 중", "mobile.rec.stateRecoverable": "복구된 녹음", "mobile.rec.interrupted": "Android가 녹음을 일시정지했습니다: {{reason}}", "mobile.rec.recoveredReason": "중단된 녹음을 복구했습니다: {{reason}}", "mobile.rec.recoveryFailed": "중단된 녹음 상태를 확인하지 못했습니다.", "mobile.rec.queuedRetry": "검증된 로컬 오디오는 안전하게 보관되며 네트워크와 세션이 준비되면 다시 처리됩니다.", "mobile.rec.processingCancelled": "이 기기의 오디오 처리를 취소했습니다.", "mobile.rec.meetingRecording": "회의 녹음", "mobile.rec.recoveredHelp": "유효한 부분 WAV를 확인한 뒤 처리하거나 명시적으로 삭제하세요.", "mobile.rec.queuedHelp": "업로드 진행 위치를 저장했습니다. 앱을 다시 열면 같은 파일부터 이어지며 완료를 거짓 표시하지 않습니다.", "mobile.rec.viewMeeting": "회의 보기", "mobile.rec.processRecovered": "복구 오디오 처리", "mobile.rec.discardRecovered": "복구 오디오 삭제", "mobile.rec.retryNow": "지금 다시 시도", "mobile.talk.title": "TALK", "mobile.talk.live": "LIVE", "mobile.talk.you": "YOU", "mobile.talk.claude": "CLAUDE", "mobile.talk.placeholder": "입력하거나 말하세요...", "mobile.talk.greeting": "안녕하세요! 무엇을 도와드릴까요?", "mobile.talk.cloudEngine": "보안 클라우드 AI", "mobile.talk.clear": "지우기", "mobile.talk.empty": "새 대화를 시작해.", "mobile.talk.thinking": "답변을 생성하고 있습니다...", "mobile.talk.transcribing": "기기 또는 보안 클라우드에서 음성을 전사하고 있습니다...", "mobile.talk.recording": "녹음 중", "mobile.talk.releaseToSend": "손을 떼면 전사 후 전송해", "mobile.talk.holdToTalk": "누르고 말하기", "mobile.talk.pttHint": "마이크를 누른 채 말하고, 손을 떼면 전송해.", "mobile.talk.cancel": "취소", "mobile.talk.playSpeech": "이 답변 음성으로 재생", "mobile.talk.stopSpeech": "음성 재생 중지", "mobile.talk.phase.idle": "보안 클라우드 AI · 준비", "mobile.talk.phase.recording": "마이크 · 녹음 중", "mobile.talk.phase.transcribing": "음성 인식 중", "mobile.talk.phase.thinking": "AI 스트리밍 중", "mobile.talk.phase.speaking": "안드로이드 음성 · 재생 중", "mobile.talk.send": "메시지 보내기", "mobile.talk.retry": "다시 시도", "mobile.talk.error.auth": "세션이 만료되었습니다. 다시 로그인해 주세요.", "mobile.talk.error.invalid": "보낼 수 없는 메시지야. 내용을 줄여서 다시 시도해.", "mobile.talk.error.quota": "오늘 사용할 수 있는 AI 대화 한도를 모두 사용했습니다.", "mobile.talk.error.model": "현재 요금제에서 선택한 AI 모델을 사용할 수 없습니다.", "mobile.talk.error.provider": "AI 공급자가 설정되지 않았거나 잠시 사용할 수 없습니다.", "mobile.talk.error.timeout": "AI 응답 시간이 초과되었습니다.", "mobile.talk.error.network": "네트워크 연결을 확인하고 다시 시도해.", "mobile.talk.error.noSpeech": "음성이 인식되지 않았습니다. 마이크에 가까이에서 다시 말씀해 주세요.", "mobile.talk.error.response": "AI가 유효한 답변을 반환하지 않았습니다.", "mobile.talk.error.cancelled": "요청이 취소되었습니다.", "mobile.talk.error.micPermission": "눌러서 말하려면 마이크 권한이 필요해.", "mobile.talk.error.recording": "마이크 녹음을 완료하지 못했습니다.", "mobile.talk.error.tooShort": "마이크를 조금 더 오래 누른 뒤 손을 떼 주세요.", "mobile.talk.error.sttQuota": "오늘 사용할 수 있는 음성 전사 한도를 모두 사용했습니다.", "mobile.talk.error.stt": "보안 클라우드와 기기 음성 인식이 모두 실패했습니다.", "mobile.talk.error.ttsUnavailable": "안드로이드 음성 엔진이 없거나 이 언어를 지원하지 않아.", "mobile.talk.error.tts": "안드로이드가 이 답변을 음성으로 재생하지 못했습니다.", "mobile.talk.debugAudioE2e": "실제 오디오 E2E 실행", "mobile.talk.error.server": "AI 요청을 처리하지 못했습니다.", "mobile.report.action": "신고", "mobile.report.title": "AI 응답 신고", "mobile.report.body": "문제가 있는 응답을 D3RO Voice 운영팀에 안전하게 알려주세요.", "mobile.report.selectedOutput": "신고에 포함되는 AI 응답", "mobile.report.reason.harmful": "유해하거나 위험한 조언", "mobile.report.reason.sexual": "성적 콘텐츠", "mobile.report.reason.hateful": "혐오 또는 괴롭힘", "mobile.report.reason.violent": "폭력적인 콘텐츠", "mobile.report.reason.selfHarm": "자해 또는 자살 관련 콘텐츠", "mobile.report.reason.misinformation": "명백히 잘못된 정보", "mobile.report.reason.privacy": "개인정보 노출", "mobile.report.reason.spam": "스팸 또는 무관한 응답", "mobile.report.reason.other": "기타", "mobile.report.commentLabel": "추가 설명(선택)", "mobile.report.commentPlaceholder": "검토에 필요한 내용만 입력해 주세요. 개인정보는 넣지 마세요.", "mobile.report.privacyNote": "선택한 AI 응답과 신고 사유만 전송합니다. 음성, 전체 대화와 질문 원문은 자동으로 포함하지 않습니다.", "mobile.report.submit": "신고 보내기", "mobile.report.submitting": "전송 중", "mobile.report.cancel": "취소", "mobile.report.done": "완료", "mobile.report.successTitle": "신고를 접수했습니다", "mobile.report.successBody": "운영팀이 정책과 안전 기준에 따라 검토합니다.", "mobile.report.receipt": "접수 번호 {{id}}", "mobile.report.error.auth": "로그인 상태를 확인한 뒤 다시 시도해 주세요.", "mobile.report.error.invalid": "신고 사유를 선택하고 입력 내용을 확인해 주세요.", "mobile.report.error.source": "이 AI 응답의 신고 가능 기간이 끝났거나 확인할 수 없습니다.", "mobile.report.error.alreadyReported": "이 AI 응답은 이미 신고가 접수되었습니다.", "mobile.report.error.rateLimited": "짧은 시간에 신고가 너무 많습니다. 잠시 후 다시 시도해 주세요.", "mobile.report.error.conflict": "이 신고 요청의 재시도 정보를 확인할 수 없습니다. 창을 닫고 다시 시도해 주세요.", "mobile.report.error.network": "신고를 전송하지 못했습니다. 연결을 확인하고 다시 시도해 주세요.", "mobile.report.error.server": "서버가 신고 접수를 확인하지 못했습니다. 다시 시도해 주세요.", "mobile.set.title": "설정", "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": "정말 로그아웃 하시겠습니까?", "mobile.set.loggingOut": "로그아웃 중...", "mobile.set.openAccount": "계정 정보 열기", "mobile.set.openAccountHint": "프로필, 로그인 방식, 비밀번호와 계정 삭제 설정으로 이동합니다.", "mobile.set.openPlans": "요금제와 리워드 열기", "mobile.set.openPlansHint": "구독 요금제와 리워드 충전 화면으로 이동합니다.", "mobile.set.planAndRewards": "PRO 요금제와 리워드 토큰 충전", "mobile.set.userFallback": "사용자", "mobile.set.edit": "편집", "mobile.set.appearance": "화면과 언어", "mobile.set.theme": "테마", "mobile.set.themeDesc": "시스템 설정을 따르거나 라이트·다크 테마를 고정합니다.", "mobile.set.languageDesc": "앱의 주요 화면에 사용할 언어를 선택합니다.", "mobile.set.autoPolishDesc": "전사 뒤 지원되는 문장 다듬기를 기본으로 사용합니다.", "mobile.set.hapticDesc": "지원되는 조작에서 진동 피드백을 사용합니다.", "mobile.set.automatic": "자동", "mobile.set.cloudSttManagedDesc": "현재 모바일 전사는 계정의 서버 정책에 따라 안전하게 처리됩니다.", "mobile.set.serverManaged": "서버 관리", "mobile.set.replayTutorial": "튜토리얼 다시 보기", "mobile.set.replayTutorialDesc": "녹음, 전사, 공유, 가져오기와 동기화 흐름을 다시 확인합니다.", "mobile.set.replayTutorialHint": "초기 설정은 바꾸지 않고 안내 화면만 다시 엽니다.", "mobile.set.statusFooter": "D3RO 모바일 설정", "mobile.set.tools": "도구 및 자동화", "mobile.dictionary.description": "고유명사와 기술 용어를 서버 사전에 추가하고 모든 기기에서 동기화합니다.", "mobile.commands.description": "인증된 Cloud AI에서 검증된 명령을 실제 입력으로 실행합니다.", "mobile.devices.title": "연결 기기", "mobile.devices.description": "이 계정에 연결된 모바일 기기를 확인하고 원격 연결을 해제합니다.", "mobile.devices.errorTitle": "기기 관리 오류", "mobile.devices.loadError": "연결 기기 목록을 불러오지 못했습니다.", "mobile.devices.retry": "다시 시도", "mobile.devices.empty": "등록된 기기가 없습니다.", "mobile.devices.current": "현재 기기", "mobile.devices.active": "활성", "mobile.devices.revoked": "연결 해제됨", "mobile.devices.version": "앱 {{version}}", "mobile.devices.lastSeen": "마지막 연결 {{time}}", "mobile.devices.revokeTitle": "기기 연결 해제", "mobile.devices.revokeConfirm": "{{name}} 기기의 세션과 동기화를 중단하시겠습니까?", "mobile.devices.revoke": "연결 해제", "mobile.devices.revoking": "해제 중...", "mobile.devices.revokeError": "기기 연결을 해제하지 못했습니다.", "mobile.devices.remove": "목록에서 제거", "mobile.devices.removeError": "해제된 기기를 목록에서 제거하지 못했습니다.", "mobile.set.adPrivacy": "광고 개인정보 설정", "mobile.set.adPrivacyDesc": "Google UMP 동의 상태를 확인하고 맞춤 광고 선택을 변경합니다. 유료 요금제에는 광고를 요청하지 않습니다.", "mobile.set.adPrivacyOpen": "광고 개인정보 옵션 열기", "mobile.set.legal": "법률 및 개인정보", "mobile.set.privacyPolicy": "개인정보처리방침", "mobile.set.privacyPolicyHint": "D3RO Voice가 데이터를 처리하고 보호하는 방법을 확인합니다.", "mobile.set.termsOfService": "이용약관", "mobile.set.termsOfServiceHint": "서비스, 구독 및 사용자 콘텐츠 이용 조건을 확인합니다.", "mobile.set.accountDeletion": "외부 계정 삭제 안내", "mobile.set.accountDeletionHint": "앱을 사용할 수 없을 때 계정 삭제를 요청하는 방법을 엽니다.", "mobile.set.adPrivacyRequired": "개인정보 선택 확인 필요", "mobile.set.adPrivacyUnavailable": "현재 기기 또는 지역에서는 개인정보 옵션 양식을 열 수 없습니다.", "mobile.theme.system": "시스템", "mobile.theme.light": "라이트", "mobile.theme.dark": "다크", "mobile.preferences.syncTitle": "설정 동기화", "mobile.preferences.statusLoading": "설정을 불러오는 중", "mobile.preferences.statusLocal": "이 기기에 저장됨", "mobile.preferences.statusSaving": "계정에 동기화 중", "mobile.preferences.statusSynced": "계정과 동기화됨", "mobile.preferences.statusOffline": "오프라인 저장됨", "mobile.preferences.statusError": "설정 저장 확인 필요", "mobile.preferences.notSyncedYet": "아직 서버 동기화 기록이 없습니다.", "mobile.preferences.lastSynced": "마지막 동기화 {{time}}", "mobile.preferences.retry": "동기화 다시 시도", "mobile.preferences.retrying": "다시 시도 중...", "mobile.preferences.saveFailedTitle": "설정을 저장하지 못했습니다", "mobile.preferences.cacheReadError": "이 기기에 저장된 설정을 읽지 못했습니다. 기본값을 사용하며 다시 시도할 수 있습니다.", "mobile.preferences.cacheWriteError": "이 기기에 설정을 저장하지 못했습니다. 저장 공간 상태를 확인하고 다시 시도해주세요.", "mobile.preferences.syncError": "계정 설정 서버에 연결하지 못했습니다. 변경 내용은 이 기기에 보관되며 재시도할 수 있습니다.", "mobile.preferences.conflictError": "다른 기기에서 설정이 연속으로 변경되었습니다. 최신 설정을 불러온 뒤 다시 시도해주세요.", "mobile.preferences.syncWarning": "설정 동기화가 지연되고 있습니다. 변경 내용은 이 기기에 안전하게 보관됩니다.", "mobile.preferences.offlineSaved": "네트워크가 복구되면 이 기기의 변경 내용을 계정과 다시 동기화합니다.", "mobile.onboarding.accessibilityScreen": "D3RO Voice 시작 튜토리얼", "mobile.onboarding.setupLabel": "첫 실행 설정", "mobile.onboarding.replayLabel": "튜토리얼 다시 보기", "mobile.onboarding.languageLabel": "튜토리얼 언어", "mobile.onboarding.accountPathLabel": "계정 시작 방식", "mobile.onboarding.stepWelcome": "01 · 시작", "mobile.onboarding.stepPrivacy": "02 · 개인정보와 권한", "mobile.onboarding.stepWorkflow": "03 · 녹음에서 공유까지", "mobile.onboarding.stepExplore": "04 · 앱 둘러보기", "mobile.onboarding.stepPersonalize": "05 · 내 환경에 맞추기", "mobile.onboarding.welcomeTitle": "말한 순간부터, 쓸 수 있는 기록으로", "mobile.onboarding.welcomeBody": "D3RO Voice는 모바일 녹음과 음성 파일을 전사하고 계정의 Web·데스크톱 데이터와 연결합니다.", "mobile.onboarding.welcomeBulletRecord": "휴대전화에서 바로 녹음하거나 저장된 음성 파일을 선택합니다.", "mobile.onboarding.welcomeBulletSync": "같은 계정으로 로그인하면 지원되는 기록과 설정을 기기 사이에서 동기화합니다.", "mobile.onboarding.welcomeBulletAccount": "무료 계정으로 시작하고 설정에서 요금제와 계정을 관리합니다.", "mobile.onboarding.existingUser": "기존 사용자", "mobile.onboarding.existingUserDesc": "사용 중인 D3RO 계정으로 로그인하고 기존 데이터를 불러옵니다.", "mobile.onboarding.newUser": "처음 사용", "mobile.onboarding.newUserDesc": "Google 또는 이메일로 새 계정을 만들고 첫 녹음부터 시작합니다.", "mobile.onboarding.privacyTitle": "권한과 클라우드 처리를 먼저 확인하세요", "mobile.onboarding.privacyBody": "앱은 기능이 필요한 순간에만 권한을 요청합니다. 전사에 필요한 오디오와 결과는 로그인한 계정 범위에서 처리됩니다.", "mobile.onboarding.privacyBulletPermission": "마이크 권한은 녹음을 시작할 때 요청하며, 거부해도 파일 가져오기는 별도로 사용할 수 있습니다.", "mobile.onboarding.privacyBulletCloud": "클라우드 전사를 선택하면 오디오가 D3RO의 인증된 처리 경로로 전송됩니다.", "mobile.onboarding.privacyBulletControl": "기록, 동기화 설정과 계정 데이터는 설정 화면에서 확인하고 관리할 수 있습니다.", "mobile.onboarding.workflowTitle": "녹음하고, 확인하고, 공유하세요", "mobile.onboarding.workflowBody": "REC에서 시작한 작업은 처리 상태를 거쳐 HISTORY에 저장됩니다. 결과는 확인한 뒤 다른 앱으로 공유할 수 있습니다.", "mobile.onboarding.workflowBulletRecord": "REC에서 마이크 녹음 또는 음성 파일 가져오기를 선택합니다.", "mobile.onboarding.workflowBulletTranscribe": "처리 상태와 오류를 확인하고, 실패한 작업은 원인을 확인한 뒤 다시 시도합니다.", "mobile.onboarding.workflowBulletShare": "완료된 전사 화면에서 텍스트나 내보낸 파일을 공유합니다.", "mobile.onboarding.exploreTitle": "필요한 기능은 탭과 설정에 정리되어 있습니다", "mobile.onboarding.exploreBody": "DASH는 사용 현황, HISTORY는 기록, REC는 녹음과 가져오기, TALK는 대화, SET은 계정과 동기화를 담당합니다.", "mobile.onboarding.exploreBulletTabs": "하단 탭으로 대시보드, 기록, 녹음, 대화와 설정을 이동합니다.", "mobile.onboarding.exploreBulletImport": "REC에서 파일을 가져오고 HISTORY에서 동기화된 결과를 확인합니다.", "mobile.onboarding.exploreBulletPlan": "SET에서 계정, 요금제, 결제 관리와 무료 리워드를 확인합니다.", "mobile.onboarding.personalizeTitle": "화면을 고르고 바로 시작하세요", "mobile.onboarding.personalizeBody": "시스템·라이트·다크 테마 중 하나를 선택하세요. 로그인 뒤에는 선택한 설정이 계정에 동기화됩니다.", "mobile.onboarding.personalizeBulletSystem": "시스템 테마는 휴대전화의 밝은 화면·어두운 화면 변경을 자동으로 따릅니다.", "mobile.onboarding.personalizeBulletSync": "네트워크가 끊기면 이 기기에 저장하고 연결이 복구된 뒤 다시 동기화합니다.", "mobile.onboarding.personalizeBulletReplay": "설정에서 언제든지 이 튜토리얼을 다시 볼 수 있습니다.", "mobile.onboarding.themeLabel": "앱 테마", "mobile.onboarding.back": "이전", "mobile.onboarding.next": "다음", "mobile.onboarding.skip": "튜토리얼 건너뛰기", "mobile.onboarding.saving": "저장 중...", "mobile.onboarding.completeExisting": "로그인으로 계속", "mobile.onboarding.completeNew": "회원가입으로 계속", "mobile.onboarding.backHint": "이전 안내 단계로 이동합니다.", "mobile.onboarding.nextHint": "다음 안내 단계로 이동합니다.", "mobile.onboarding.completeHint": "선택한 설정을 저장하고 계정 화면으로 이동합니다.", "mobile.onboarding.skipHint": "튜토리얼을 완료로 표시하고 로그인 화면으로 이동합니다. 설정에서 다시 볼 수 있습니다.", "mobile.login.title": "D3RO-VOICE", "mobile.login.subtitle": "PRECISION VOICE INTELLIGENCE", "mobile.login.google": "Google로 로그인", "mobile.login.apple": "Apple로 로그인", "mobile.login.github": "GitHub로 로그인", "mobile.login.or": "또는", "mobile.login.email": "EMAIL", "mobile.login.password": "PASSWORD", "mobile.login.signIn": "로그인", "mobile.login.noAccount": "계정이 없으신가요?", "mobile.login.forgotPassword": "비밀번호를 잊으셨나요?", "mobile.login.signUp": "회원가입", "mobile.login.notConfigured": "Supabase가 설정되지 않았습니다. EXPO_PUBLIC_SUPABASE_URL을 .env에 설정하세요.", "mobile.auth.backToLogin": "로그인으로 돌아가기", "mobile.auth.notConfigured": "인증 서버가 설정되지 않았습니다.", "mobile.auth.errorTitle": "요청 실패", "mobile.auth.successTitle": "완료", "mobile.auth.emailInvalid": "올바른 이메일 주소를 입력해주세요.", "mobile.auth.passwordMin": "비밀번호는 8자 이상이어야 합니다.", "mobile.auth.passwordMismatch": "비밀번호가 일치하지 않습니다.", "mobile.auth.notConfiguredTitle": "설정 필요", "mobile.auth.loginFailedTitle": "로그인 실패", "mobile.auth.oauthUrlFailed": "OAuth 로그인 주소를 만들지 못했습니다.", "mobile.auth.oauthFailed": "OAuth 로그인을 완료하지 못했습니다.", "mobile.auth.credentialsRequired": "이메일과 비밀번호를 모두 입력해주세요.", "mobile.auth.logoutFailed": "로그아웃을 안전하게 완료하지 못했습니다. 다시 시도해주세요.", "mobile.auth.localDataCleanupTitle": "기기 데이터 보호가 필요합니다", "mobile.auth.localDataCleanupBody": "이전 계정의 로컬 데이터를 완전히 삭제하지 못해 로그인과 앱 사용을 차단했습니다. 다시 시도해주세요.", "mobile.auth.localDataCleanupRetry": "보호 데이터 정리 다시 시도", "mobile.signup.title": "CREATE ACCOUNT", "mobile.signup.subtitle": "Google 또는 이메일로 D3RO-VOICE 계정을 만드세요", "mobile.signup.google": "Google로 가입", "mobile.signup.googleLoading": "Google 연결 중...", "mobile.signup.googleHint": "Google 계정으로 안전하게 가입하거나 기존 계정으로 로그인합니다.", "mobile.signup.orEmail": "또는 이메일로 가입", "mobile.signup.name": "이름", "mobile.signup.namePlaceholder": "표시할 이름", "mobile.signup.email": "이메일", "mobile.signup.password": "비밀번호", "mobile.signup.confirmPassword": "비밀번호 확인", "mobile.signup.terms": "이용약관과 개인정보 처리방침을 읽었으며 이에 동의합니다.", "mobile.signup.termsRequired": "회원가입을 계속하려면 약관에 동의해주세요.", "mobile.signup.nameRequired": "이름은 2자 이상 입력해주세요.", "mobile.signup.submit": "회원가입", "mobile.signup.alreadyAccount": "이미 계정이 있으신가요?", "mobile.signup.signIn": "로그인", "mobile.signup.waitingTitle": "이메일을 확인해주세요", "mobile.signup.waitingBody": "{{email}}로 확인 메일을 보냈습니다. 메일의 링크를 열어 계정을 활성화해주세요.", "mobile.signup.resend": "확인 메일 다시 보내기", "mobile.signup.resendIn": "{{seconds}}초 후 다시 보내기", "mobile.signup.resendSuccess": "확인 메일을 다시 보냈습니다.", "mobile.signup.editEmail": "이메일 수정", "mobile.signup.created": "계정이 생성되어 로그인되었습니다.", "mobile.signup.existing": "이미 가입된 이메일입니다. 로그인하거나 비밀번호 찾기를 이용해주세요.", "mobile.signup.invalidResponse": "인증 서버에서 유효한 사용자 정보를 반환하지 않았습니다.", "mobile.forgot.title": "RESET PASSWORD", "mobile.forgot.subtitle": "비밀번호 재설정 링크를 받으세요", "mobile.forgot.send": "재설정 메일 보내기", "mobile.forgot.sentTitle": "메일을 확인해주세요", "mobile.forgot.sentBody": "계정이 존재하면 {{email}}로 비밀번호 재설정 링크가 전송됩니다.", "mobile.forgot.resend": "재설정 메일 다시 보내기", "mobile.updatePassword.title": "NEW PASSWORD", "mobile.updatePassword.subtitle": "계정에 사용할 새 비밀번호를 설정하세요", "mobile.updatePassword.newPassword": "새 비밀번호", "mobile.updatePassword.confirmPassword": "새 비밀번호 확인", "mobile.updatePassword.submit": "비밀번호 변경", "mobile.updatePassword.checking": "재설정 세션을 확인하는 중입니다...", "mobile.updatePassword.invalidLink": "유효한 재설정 세션이 없습니다. 새 재설정 메일을 요청해주세요.", "mobile.updatePassword.completed": "비밀번호가 변경되었습니다", "mobile.updatePassword.completedBody": "새 비밀번호를 바로 사용할 수 있습니다.", "mobile.updatePassword.continue": "계속", "mobile.account.title": "ACCOUNT", "mobile.account.profile": "PROFILE", "mobile.account.accountInfo": "ACCOUNT INFO", "mobile.account.displayName": "표시 이름", "mobile.account.avatarUrl": "아바타 URL", "mobile.account.avatarPlaceholder": "https://example.com/avatar.png", "mobile.account.locale": "언어", "mobile.account.save": "프로필 저장", "mobile.account.saving": "저장 중...", "mobile.account.refresh": "다시 불러오기", "mobile.account.loading": "프로필을 불러오는 중입니다...", "mobile.account.nameInvalid": "표시 이름은 2자 이상 80자 이하로 입력해주세요.", "mobile.account.avatarInvalid": "아바타 URL은 비워두거나 https:// 또는 http://로 시작해야 합니다.", "mobile.account.email": "이메일", "mobile.account.provider": "로그인 제공자", "mobile.account.joinedAt": "가입일", "mobile.account.lastLogin": "최근 로그인", "mobile.account.tier": "구독 등급", "mobile.account.changePassword": "비밀번호 변경", "mobile.account.logout": "로그아웃", "mobile.account.logoutConfirm": "이 기기에서 로그아웃할까요?", "mobile.account.dangerZone": "DANGER ZONE", "mobile.account.deleteWarning": "계정을 삭제하면 클라우드 데이터가 영구 삭제되며 되돌릴 수 없습니다. 이용 중인 Google Play 구독은 자동 취소되지 않으므로 Google Play에서 별도로 취소해야 합니다.", "mobile.account.deleteAcknowledge": "삭제의 영향을 이해했습니다.", "mobile.account.delete": "계정 삭제", "mobile.account.deleteConfirm": "계정을 영구 삭제할까요? Google Play 구독은 별도로 취소할 때까지 계속 유지됩니다.", "mobile.account.deleteUnavailable": "계정 삭제 서버 기능이 아직 제공되지 않습니다. 계정은 삭제되지 않았습니다.", "mobile.account.loginRequired": "계정 정보를 보려면 로그인이 필요합니다.", "mobile.account.profileSaved": "프로필이 서버에 저장되었습니다.", "mobile.account.profileMissing": "서버에서 프로필 정보를 받지 못했습니다.", "mobile.account.profileUpdateMissing": "서버에서 수정된 프로필을 받지 못했습니다.", "mobile.account.reauthenticationRequired": "보안을 위해 다시 로그인한 후 계정 삭제를 시도해주세요.", "mobile.account.deleteFailed": "서버에서 계정 삭제를 확정하지 못했습니다.", "mobile.account.defaultName": "사용자", "mobile.account.avatarPreview": "{{name}}의 프로필 사진", "mobile.account.languageKorean": "한국어", "mobile.account.languageEnglish": "영어", "mobile.account.identities": "연결된 로그인 수단", "mobile.account.identitiesHint": "로그인 수단을 연결하면 계정 접근성을 높일 수 있습니다. 이메일과 현재 로그인 수단은 여기서 해제할 수 없습니다.", "mobile.account.identitiesLoading": "로그인 수단을 확인하는 중입니다...", "mobile.account.identitiesUnavailable": "연결된 로그인 수단을 안전하게 확인하지 못했습니다.", "mobile.account.identityProviderUnavailable": "이 앱에서 사용할 수 있는 OAuth 제공자가 설정되지 않았습니다.", "mobile.account.identityConnected": "연결됨", "mobile.account.identityEmail": "이메일", "mobile.account.identityGoogle": "Google", "mobile.account.identityGitHub": "GitHub", "mobile.account.identityApple": "Apple", "mobile.account.identityEmailProtected": "이메일 로그인은 여기서 해제할 수 없습니다.", "mobile.account.identityLastIdentityProtected": "마지막 로그인 수단은 해제할 수 없습니다.", "mobile.account.identityLastLoginProtected": "현재 로그인에 사용한 수단은 해제할 수 없습니다.", "mobile.account.identityUnlink": "연결 해제", "mobile.account.identityUnlinkProvider": "{{provider}} 연결 해제", "mobile.account.identityUnlinkTitle": "로그인 수단 연결 해제", "mobile.account.identityUnlinkConfirm": "{{provider}} 로그인을 이 계정에서 해제할까요? 이 작업은 되돌릴 수 없습니다.", "mobile.account.identityLinkProvider": "{{provider}} 로그인 연결", "mobile.account.identityLinkCancelled": "로그인 수단 연결을 취소했습니다.", "mobile.account.identityLinkContinue": "브라우저에서 연결을 완료한 뒤 이 화면으로 돌아오세요.", "mobile.account.identityLinked": "{{provider}} 로그인을 연결했습니다.", "mobile.account.identityUnlinked": "{{provider}} 로그인을 해제했습니다.", "mobile.account.identityLinkFailed": "로그인 수단 연결을 완료하지 못했습니다. 계정은 변경되지 않았습니다.", "mobile.account.identityUnlinkFailed": "로그인 수단 연결 해제를 완료하지 못했습니다. 계정은 변경되지 않았습니다.", "mobile.account.identityReauthenticationRequired": "보안을 위해 다시 로그인한 후 로그인 수단을 관리해주세요.", "mobile.account.identityAccountChanged": "계정이 변경되어 요청을 취소했습니다.", "mobile.account.identityAlreadyLinked": "이 로그인 수단은 이미 연결되어 있습니다.", "mobile.account.identityNotFound": "연결된 로그인 수단을 찾지 못했습니다. 다시 불러와주세요.", "mobile.account.identityRequestFailed": "로그인 수단 요청을 안전하게 완료하지 못했습니다. 계정은 변경되지 않았습니다.", "onboarding.title": "D3RO Voice 초기 설정", "onboarding.subtitle": "음성 어시스턴트 사용에 필요한 모델을 다운로드합니다.", "onboarding.llmModelMissing": "AI 모델({{model}})이 설치되어 있지 않습니다.", "onboarding.llmModelSize": "크기: 약 9.6GB — 네트워크 속도에 따라 10~30분 소요", "onboarding.download": "다운로드 시작", "onboarding.cancel": "나중에", "onboarding.close": "닫기", "onboarding.downloading": "다운로드 중…", "onboarding.status": "상태: {{status}}", "onboarding.success": "설치 완료! 이제 사용할 수 있습니다.", "onboarding.failed": "다운로드 실패: {{message}}", "onboarding.retry": "재시도", "onboarding.statusPreparing": "다운로드 준비 중…", "onboarding.statusVerifying": "무결성 검증 중… (모델이 크면 몇 분 걸릴 수 있어요)", "onboarding.statusFinalizing": "마무리 중…", "onboarding.sttModelMissing": "음성 인식 모델({{model}})이 설치되어 있지 않습니다.", "onboarding.sttModelSize": "크기: 약 1.6GB — 네트워크 속도에 따라 2~10분 소요", "onboarding.step": "단계 {{current}}/{{total}}", "onboarding.progressDetail": "{{downloaded}} / {{total}} MB", "onboarding.ollamaNotRunning": "Ollama 서버가 실행되지 않았습니다. 잠시 후 다시 시도하세요.", "popup.commandSelect": "명령어 선택", "popup.hints.select": "↑↓ 선택", "popup.hints.apply": "⏎ 적용", "popup.hints.clear": "0 해제", "popup.hints.close": "ESC ×", "popup.noCommands": "명령어 없음", "popup.noCommand": "없음 (원본 삽입)", "popup.hints.selectEn": "↑↓ Select", "popup.hints.paste": "⏎ Paste", "popup.noHistory": "히스토리 없음", "popup.time.justNow": "방금", "popup.time.minutesAgo": "{{m}}분 전", "popup.time.hoursAgo": "{{h}}시간 전", "popup.time.daysAgo": "{{d}}일 전", "popup.copy": "복사", "popup.error.default": "오류가 발생했습니다", "popup.caption.loading": "음성 모델 준비 중…", "mobile.paywall.title": "D3RO PRO 및 리워드", "mobile.paywall.close": "결제 화면 닫기", "mobile.paywall.currentPlan": "현재 요금제", "mobile.paywall.free": "FREE", "mobile.paywall.pro": "PRO", "mobile.paywall.proPlus": "PRO+", "mobile.paywall.currentCredits": "Cloud AI 추가 크레딧", "mobile.paywall.creditsUnit": "크레딧", "mobile.paywall.rewardTitle": "무료 티어 광고 리워드", "mobile.paywall.rewardDescription": "광고 시청 완료 후 Google의 서명된 서버 콜백이 확인된 경우에만 50 크레딧을 지급합니다.", "mobile.paywall.watchReward": "리워드 광고 보기", "mobile.paywall.rewardLoading": "광고 준비 중", "mobile.paywall.rewardShowing": "광고 재생 중", "mobile.paywall.rewardVerifying": "서버 지급 확인 중", "mobile.paywall.rewardCredited": "서버에서 50 크레딧 지급을 확인했습니다.", "mobile.paywall.rewardPending": "광고 시청은 확인됐으며 서버 콜백을 기다리고 있습니다.", "mobile.paywall.rewardClosed": "광고 시청을 완료하지 않아 크레딧이 지급되지 않았습니다.", "mobile.paywall.rewardUnavailable": "현재 리워드 광고를 사용할 수 없습니다.", "mobile.paywall.rewardRetry": "광고 다시 준비", "mobile.paywall.plans": "Google Play 구독", "mobile.paywall.storeUnavailable": "Google Play에서 판매 가능한 요금제를 불러오지 못했습니다. 가격을 임의로 표시하지 않습니다.", "mobile.paywall.storeInstallRequired": "구매와 복원은 Google Play에서 설치한 앱에서만 사용할 수 있습니다. 사이드로드 빌드에서는 결제 요청을 보내지 않습니다.", "mobile.paywall.storeRetry": "스토어 다시 연결", "mobile.paywall.subscribe": "{{plan}} 구독 시작 · {{price}}", "mobile.paywall.changePlan": "{{plan}} 요금제로 변경 · {{price}}", "mobile.paywall.current": "현재 사용 중", "mobile.paywall.manage": "구독 관리 및 해지", "mobile.paywall.restore": "이전 구매 복원 및 서버 재검증", "mobile.paywall.processing": "Google Play 처리 중", "mobile.paywall.pending": "결제가 보류 중입니다. 승인 후 서버가 자동으로 적용합니다.", "mobile.paywall.success": "스토어 구매와 서버 권한 동기화를 완료했습니다.", "mobile.paywall.cancelled": "결제를 취소했습니다.", "mobile.paywall.error": "결제를 완료하지 못했습니다. 오류 코드: {{code}}", "mobile.paywall.billingNotice": "구독은 Google Play 계정으로 결제되며 Play의 자동 갱신 및 취소 정책이 적용됩니다. 앱은 서버에서 검증·승인된 구매만 권한으로 반영합니다.", "mobile.paywall.terms": "이용약관", "mobile.paywall.privacy": "개인정보 처리방침", "mobile.paywall.proFeature1": "광고 제거", "mobile.paywall.proFeature2": "모바일·웹·데스크톱 기록 동기화", "mobile.paywall.proFeature3": "확장된 Cloud AI 사용량", "mobile.paywall.proFeature4": "회의 요약 및 다국어 전사", "mobile.paywall.proPlusFeature1": "PRO의 모든 기능", "mobile.paywall.proPlusFeature2": "최상위 Cloud AI 사용량", "mobile.paywall.proPlusFeature3": "우선 처리 큐", "mobile.paywall.proPlusFeature4": "고급 화자 분리 및 분석", "mobile.meetings.title": "회의", "mobile.meetings.description": "동기화된 회의, 전사, 메모와 문서를 관리합니다.", "mobile.meetings.detail": "회의 상세", "mobile.meetings.count": "{{count}}개 회의", "mobile.meetings.search": "회의 제목 검색", "mobile.meetings.create": "새 회의", "mobile.meetings.createTitle": "회의 공간 만들기", "mobile.meetings.createNotice": "동기화되는 회의 공간을 생성합니다. 오디오 녹음은 REC 화면과 연결된 뒤 시작해야 합니다.", "mobile.meetings.editTitle": "회의 제목 편집", "mobile.meetings.titleLabel": "회의 제목", "mobile.meetings.titlePlaceholder": "회의 제목을 입력하세요", "mobile.meetings.save": "저장", "mobile.meetings.saving": "저장 중", "mobile.meetings.edit": "편집", "mobile.meetings.delete": "삭제", "mobile.meetings.deleting": "삭제 중", "mobile.meetings.deleteTitle": "회의 삭제", "mobile.meetings.deleteBody": "이 회의와 연결된 전사, 메모, 문서를 모두 삭제합니다. 이 작업은 되돌릴 수 없습니다.", "mobile.meetings.retry": "다시 시도", "mobile.meetings.reloadLatest": "최신 내용 불러오기", "mobile.meetings.loading": "회의를 불러오는 중", "mobile.meetings.empty": "아직 동기화된 회의가 없습니다.", "mobile.meetings.emptySearch": "검색 조건에 맞는 회의가 없습니다.", "mobile.meetings.untitled": "제목 없는 회의", "mobile.meetings.personal": "개인 회의", "mobile.meetings.team": "팀 공유 회의", "mobile.meetings.back": "뒤로", "mobile.meetings.duration": "길이", "mobile.meetings.statusRecording": "녹음 중", "mobile.meetings.statusProcessing": "처리 중", "mobile.meetings.statusCompleted": "완료", "mobile.meetings.statusError": "오류", "mobile.meetings.transcript": "전사", "mobile.meetings.transcriptEmpty": "저장된 전사가 없습니다.", "mobile.meetings.edited": "편집됨", "mobile.meetings.summary": "요약 및 회의록", "mobile.meetings.summaryEmpty": "생성된 요약이나 회의록이 없습니다.", "mobile.meetings.generationUnavailable": "회의 문서 템플릿을 선택하면 전사 내용으로 문서를 생성할 수 있습니다.", "mobile.meetings.memos": "메모", "mobile.meetings.memosEmpty": "저장된 메모가 없습니다.", "mobile.meetings.memoPlaceholder": "회의 메모를 입력하세요", "mobile.meetings.memoAdd": "메모 저장", "mobile.meetings.memoEditTitle": "메모 편집", "mobile.meetings.memoDeleteTitle": "메모 삭제", "mobile.meetings.memoDeleteBody": "이 메모를 삭제하시겠습니까?", "mobile.meetings.documents": "문서", "mobile.meetings.documentsEmpty": "생성된 회의 문서가 없습니다.", "mobile.meetings.documentTemplateMissing": "선택된 회의 문서 템플릿이 없습니다.", "mobile.meetings.documentTemplateSelected": "선택된 템플릿 · {{name}}", "mobile.meetings.manageTemplates": "템플릿 관리", "mobile.meetings.generateDocument": "문서 생성", "mobile.meetings.generatingDocument": "문서 생성 중", "mobile.meetings.documentEditTitle": "문서 편집", "mobile.meetings.documentContent": "문서 내용", "mobile.meetings.documentDeleteTitle": "문서 삭제", "mobile.meetings.documentDeleteBody": "이 문서를 삭제하시겠습니까?", "mobile.meetings.realtimeWaiting": "실시간 연결을 기다리는 중입니다. 아래로 당겨 서버 상태를 다시 확인할 수 있습니다.", "mobile.meetings.conflictNotice": "다른 기기에서 내용이 변경됐습니다. 편집 창을 닫고 최신 내용을 불러온 뒤 다시 시도하세요.", "mobile.meetings.loginRequired": "회의를 보려면 로그인해야 합니다.", "mobile.meetings.errorConflict": "다른 기기에서 내용이 변경되거나 삭제됐습니다.", "mobile.meetings.errorForbidden": "이 항목을 변경할 권한이 없습니다.", "mobile.meetings.errorNetwork": "네트워크 연결을 확인하고 다시 시도하세요.", "mobile.meetings.errorNotFound": "회의를 찾을 수 없거나 접근 권한이 없습니다.", "mobile.meetings.errorValidation": "입력 내용을 확인하세요. 제목은 1~160자, 메모는 1~4000자여야 합니다.", "mobile.meetings.errorServer": "회의 요청을 완료하지 못했습니다.", "mobile.meetings.recordNow": "이 회의 녹음", "mobile.meetings.recordAgain": "다시 녹음", "mobile.meetings.processingAudio": "오디오 처리 중", "mobile.meetings.export": "회의 내보내기", "mobile.meetings.exportDescription": "전사, 회의록, 메모와 문서를 휴대 가능한 회의 파일로 공유합니다.", "mobile.meetings.exportMarkdown": "MARKDOWN 공유", "mobile.meetings.exportText": "텍스트 공유", "mobile.meetings.exportPdf": "PDF 공유", "mobile.meetings.exportDocx": "DOCX 공유", "mobile.meetings.exporting": "준비 중...", "mobile.meetings.exportShareTitle": "D3RO 회의 공유", "mobile.meetings.exportFailed": "회의 내보내기 파일을 만들거나 공유할 수 없습니다.", "common.retry": "다시 시도", "common.saving": "저장 중", "mobile.teams.title": "팀", "mobile.teams.description": "팀 멤버, 초대와 공유 회의를 안전하게 관리합니다.", "mobile.teams.detailTitle": "팀 상세", "mobile.teams.create": "새 팀", "mobile.teams.creating": "생성 중", "mobile.teams.createTitle": "새 팀 만들기", "mobile.teams.nameLabel": "팀 이름", "mobile.teams.namePlaceholder": "팀 이름을 입력하세요", "mobile.teams.loading": "팀을 불러오는 중", "mobile.teams.empty": "가입한 팀이 없습니다. 새 팀을 만들거나 초대 링크를 열어보세요.", "mobile.teams.openLabel": "{{name}} 팀 열기", "mobile.teams.memberCount": "멤버 {{count}}명", "mobile.teams.role.owner": "소유자", "mobile.teams.role.admin": "관리자", "mobile.teams.role.member": "멤버", "mobile.teams.members": "멤버", "mobile.teams.you": "(나)", "mobile.teams.unnamedMember": "이름 없는 멤버", "mobile.teams.invite": "멤버 초대", "mobile.teams.inviteTitle": "멤버 초대", "mobile.teams.emailLabel": "초대 이메일", "mobile.teams.emailPlaceholder": "member@example.com", "mobile.teams.adminInviteOwnerOnly": "관리자 초대는 팀 소유자만 만들 수 있습니다.", "mobile.teams.createInvite": "초대 만들기", "mobile.teams.inviteCreated": "초대 링크가 생성되었습니다.", "mobile.teams.emailSent": "초대 이메일도 발송되었습니다.", "mobile.teams.shareManually": "메일 발송이 설정되지 않았습니다. 아래 공유 버튼으로 링크를 전달하세요.", "mobile.teams.share": "초대 링크 공유", "mobile.teams.inviteShareTitle": "{{team}} 팀 초대", "mobile.teams.inviteShareMessage": "{{team}} 팀에 초대합니다. 이 링크에서 초대를 수락하세요: {{url}}", "mobile.teams.pendingInvites": "대기 중인 초대", "mobile.teams.noPendingInvites": "대기 중인 초대가 없습니다.", "mobile.teams.expires": "{{time}} 만료", "mobile.teams.expired": "만료됨", "mobile.teams.cancelInvite": "초대 취소", "mobile.teams.makeAdmin": "관리자로 변경", "mobile.teams.makeMember": "멤버로 변경", "mobile.teams.remove": "내보내기", "mobile.teams.removeTitle": "팀 멤버 내보내기", "mobile.teams.removeBody": "{{name}} 님을 팀에서 내보내시겠습니까?", "mobile.teams.sharedMeetings": "공유 회의", "mobile.teams.noSharedMeetings": "팀과 공유된 회의가 없습니다.", "mobile.teams.management": "팀 관리", "mobile.teams.rename": "팀 이름 변경", "mobile.teams.renameTitle": "팀 이름 변경", "mobile.teams.leave": "팀 나가기", "mobile.teams.leaving": "나가는 중", "mobile.teams.leaveTitle": "팀 나가기", "mobile.teams.leaveBody": "팀에서 나가면 공유 회의와 팀 자료에 접근할 수 없습니다.", "mobile.teams.delete": "팀 삭제", "mobile.teams.deleting": "삭제 중", "mobile.teams.deleteTitle": "팀 영구 삭제", "mobile.teams.deleteBody": "팀과 초대, 멤버 연결을 영구 삭제합니다. 공유 회의의 팀 연결도 해제됩니다. 이 작업은 되돌릴 수 없습니다.", "mobile.teams.realtimeWaiting": "실시간 동기화 연결을 기다리는 중입니다. 아래로 당겨 최신 상태를 확인할 수 있습니다.", "mobile.teams.activity": "활동", "mobile.teams.activityPlaceholder": "팀에 메모를 남겨보세요...", "mobile.teams.post": "등록", "mobile.teams.posting": "등록 중...", "mobile.teams.noActivity": "아직 활동이 없습니다.", "mobile.teams.system": "시스템", "mobile.teams.acceptTitle": "팀 초대", "mobile.teams.inviteLoading": "초대 링크를 확인하는 중", "mobile.teams.loginToAccept": "이 초대를 수락하려면 먼저 로그인하세요.", "mobile.teams.inviteSavedSecurely": "로그인 뒤 이어갈 수 있도록 초대 정보를 이 기기에 안전하게 보관했습니다.", "mobile.teams.acceptDescription": "초대를 수락하면 해당 팀의 공유 자료에 접근할 수 있습니다.", "mobile.teams.acceptingAs": "현재 계정: {{email}}", "mobile.teams.unknownAccount": "이메일 없음", "mobile.teams.accept": "초대 수락", "mobile.teams.accepting": "초대를 수락하는 중", "mobile.teams.accepted": "{{role}} 역할로 팀에 가입했습니다.", "mobile.teams.alreadyMember": "이미 이 팀의 멤버입니다.", "mobile.teams.openTeam": "팀 열기", "mobile.teams.wrongAccountHint": "현재 {{email}} 계정과 초대 대상 이메일이 다릅니다. 로그아웃 후 초대받은 계정으로 다시 로그인하세요.", "mobile.teams.error.auth": "팀 기능을 사용하려면 로그인해야 합니다.", "mobile.teams.error.conflict": "다른 기기에서 팀이 변경되었습니다. 최신 상태를 불러온 뒤 다시 시도하세요.", "mobile.teams.error.duplicate": "이미 가입했거나 같은 이메일의 유효한 초대가 있습니다.", "mobile.teams.error.emailMismatch": "이 초대는 현재 로그인한 계정으로 수락할 수 없습니다.", "mobile.teams.error.expired": "이 초대 링크는 만료되었습니다. 팀 관리자에게 새 초대를 요청하세요.", "mobile.teams.error.forbidden": "이 팀 작업을 수행할 권한이 없습니다.", "mobile.teams.error.invalidToken": "유효하지 않은 팀 초대 링크입니다.", "mobile.teams.error.network": "네트워크 연결을 확인하고 다시 시도하세요.", "mobile.teams.error.notFound": "팀 또는 초대를 찾을 수 없거나 접근 권한이 없습니다.", "mobile.teams.error.rateLimited": "초대를 너무 많이 만들었습니다. 잠시 후 다시 시도하세요.", "mobile.teams.error.serverContract": "팀 서버 기능이 아직 배포되지 않았습니다. 임의로 성공 처리하지 않습니다.", "mobile.teams.error.validation": "입력 내용을 확인하세요. 팀 이름은 1~80자이며 올바른 이메일이 필요합니다.", "mobile.teams.error.server": "팀 요청을 완료하지 못했습니다.", "mobile.notifications.title": "알림", "mobile.notifications.description": "이 기기의 보안 알림 권한과 서버 등록 상태를 관리합니다.", "mobile.notifications.delivery": "알림 전달", "mobile.notifications.statusRegistered": "등록됨", "mobile.notifications.statusConfigurationRequired": "서버 구성 필요", "mobile.notifications.statusPermissionRequired": "권한 필요", "mobile.notifications.statusBlocked": "시스템에서 차단됨", "mobile.notifications.statusNotRegistered": "등록 대기", "mobile.notifications.firebaseConfigured": "Firebase Cloud Messaging 구성이 확인되었습니다. 등록 ID는 현재 기기와 계정에만 연결됩니다.", "mobile.notifications.firebaseMissing": "Firebase Android 구성 파일이 없어 실제 푸시 등록을 중단했습니다. 개발용 가짜 토큰이나 가짜 수신은 사용하지 않습니다.", "mobile.notifications.fullSyncRequired": "기기가 오프라인인 동안 일부 메시지가 유실됐을 수 있습니다. 기록, 팀과 구독 상태를 서버에서 전체 동기화해야 합니다.", "mobile.notifications.allow": "알림 허용", "mobile.notifications.requestingPermission": "권한 요청 중", "mobile.notifications.openSettings": "시스템 설정 열기", "mobile.notifications.register": "이 기기 등록", "mobile.notifications.registering": "등록 중", "mobile.notifications.registeredAt": "마지막 서버 등록 {{time}}", "mobile.notifications.privacyTitle": "개인정보 보호", "mobile.notifications.privacyBody": "푸시에는 전사 내용, 팀 이름, 결제 상태 원문을 넣지 않습니다. 서버가 허용한 이벤트와 내부 화면 식별자만 받고 앱이 형식을 다시 검증합니다.", "mobile.notifications.recentTitle": "이번 실행에서 받은 알림", "mobile.notifications.recentEmpty": "앱을 연 뒤 받은 알림이 없습니다.", "mobile.notifications.recentSessionOnly": "민감한 알림 내용을 별도 보관하지 않기 위해 이 목록은 앱을 닫으면 지워집니다.", "mobile.notifications.event.transcription": "전사가 완료되었습니다", "mobile.notifications.event.teamInvite": "새 팀 초대가 도착했습니다", "mobile.notifications.event.billing": "구독 상태가 변경되었습니다", "mobile.notifications.error.native": "기기의 알림 서비스가 올바른 데이터를 반환하지 않았습니다.", "mobile.notifications.error.server-contract": "보안 푸시 등록 서버 기능이 배포되지 않았습니다.", "mobile.notifications.error.server": "알림 등록 상태를 확인하지 못했습니다.", "mobile.portability.title": "데이터 가져오기·내보내기", "mobile.portability.description": "원본 오디오와 인증 정보를 제외한 계정 데이터를 다운로드·복원·공유합니다.", "mobile.portability.securityTitle": "안전한 복원 원칙", "mobile.portability.securityBody": "모든 보관 파일은 버전·소유자·SHA-256을 서버에서 다시 검증합니다. 복원은 없는 행만 만들며 클라우드 revision 충돌이 하나라도 있으면 전체를 되돌립니다.", "mobile.portability.exportTitle": "계정 데이터 내보내기", "mobile.portability.exportJson": "전체 JSON 보관 파일 공유", "mobile.portability.exportDictionaryCsv": "사전 CSV 공유", "mobile.portability.exportDictionaryTxt": "사전 TXT 공유", "mobile.portability.exportHistoryCsv": "히스토리 CSV 공유", "mobile.portability.exportSummaryTxt": "계정 요약 공유", "mobile.portability.importTitle": "파일에서 클라우드 복원", "mobile.portability.importBody": "D3RO JSON, 데스크톱 사전 JSON·CSV·TXT, 일반 TXT, 데스크톱 회의 Markdown을 지원합니다. 다른 계정 파일과 손상 파일은 쓰기 전에 거부합니다.", "mobile.portability.importFile": "파일 선택 후 복원", "mobile.portability.working": "서버에서 검증 중", "mobile.portability.loginRequired": "계정 데이터를 내보내거나 복원하려면 로그인하세요.", "mobile.portability.exportSuccess": "{{count}}개 행의 내보내기를 준비했습니다.", "mobile.portability.importSuccess": "{{imported}}개 행을 복원하고 안전한 중복 {{skipped}}개를 건너뛰었습니다.", "mobile.portability.importDuplicate": "같은 보관 파일을 이미 복원했습니다. 변경된 행이 없습니다.", "mobile.portability.exclusions": "제외 항목: 원본 오디오, Storage 객체, 결제 인증 정보, 푸시 토큰.", "mobile.portability.error.auth": "현재 세션과 계정이 일치하지 않습니다. 다시 로그인하세요.", "mobile.portability.error.cancelled": "파일 선택을 취소했습니다.", "mobile.portability.error.checksum": "파일 체크섬이 올바르지 않아 아무 데이터도 복원하지 않았습니다.", "mobile.portability.error.conflict": "클라우드 데이터가 변경됐거나 보관 파일과 다릅니다. 전체 복원을 되돌렸습니다.", "mobile.portability.error.file": "파일을 안전하게 읽거나 공유하지 못했습니다.", "mobile.portability.error.format": "선택한 파일의 형식이나 스키마가 올바르지 않습니다.", "mobile.portability.error.network": "인터넷에 연결한 뒤 다시 시도하세요. 오프라인에서는 클라우드에 쓰지 않습니다.", "mobile.portability.error.owner": "이 파일은 다른 계정의 데이터입니다.", "mobile.portability.error.server": "서버에서 데이터 가져오기·내보내기를 완료하지 못했습니다.", "mobile.portability.error.size": "선택한 파일이 안전한 크기 또는 행 제한을 초과했습니다.", "mobile.meetings.attendeesLabel": "참석자", "mobile.meetings.attendeesPlaceholder": "참석자 이름 또는 이메일을 한 줄에 하나씩 입력", "mobile.meetings.attendeesHint": "쉼표나 줄바꿈으로 구분하며 최대 50명까지 저장합니다.", "mobile.meetings.languageLabel": "회의 언어", "mobile.meetings.language.ko": "한국어", "mobile.meetings.language.en": "영어", "mobile.meetings.language.ja": "일본어", "mobile.meetings.language.zh-cn": "중국어", "mobile.meetings.templateLabel": "회의 문서 템플릿", "mobile.meetings.templateLoading": "템플릿을 동기화하는 중", "mobile.meetings.templateEmpty": "사용 가능한 회의 문서 템플릿이 없습니다. 템플릿 없이 회의를 시작할 수 있습니다.", "mobile.meetings.templateLoadError": "회의 문서 템플릿을 불러오지 못했습니다.", "mobile.meetings.templateCustom": "사용자 템플릿", "mobile.templates.title": "템플릿", "mobile.templates.description": "음성 입력과 회의 문서 형식을 모든 기기에서 동기화합니다.", "mobile.templates.kind.dictation": "음성 입력", "mobile.templates.kind.meetingDocument": "회의 문서", "mobile.templates.search": "템플릿 검색", "mobile.templates.add": "새 템플릿", "mobile.templates.addTitle": "템플릿 만들기", "mobile.templates.editTitle": "템플릿 수정", "mobile.templates.name": "이름", "mobile.templates.descriptionLabel": "설명", "mobile.templates.fields": "입력 필드", "mobile.templates.fieldNumber": "필드 {{number}}", "mobile.templates.fieldId": "필드 키", "mobile.templates.fieldLabel": "표시 이름", "mobile.templates.fieldPrompt": "음성 안내 문구", "mobile.templates.required": "필수 입력", "mobile.templates.durationSeconds": "최대 초", "mobile.templates.addField": "필드 추가", "mobile.templates.removeField": "필드 제거", "mobile.templates.outputFormat": "출력 형식 · {{field_key}}를 사용하세요", "mobile.templates.systemPrompt": "문서 생성 지침", "mobile.templates.builtin": "기본", "mobile.templates.selected": "선택됨", "mobile.templates.select": "선택", "mobile.templates.selecting": "선택 중", "mobile.templates.edit": "수정", "mobile.templates.delete": "삭제", "mobile.templates.deleteTitle": "템플릿 삭제", "mobile.templates.deleteBody": "‘{{name}}’ 템플릿을 삭제할까요? 선택 중인 템플릿이면 안전한 기본 템플릿으로 돌아갑니다.", "mobile.templates.fieldCount": "입력 필드 {{count}}개", "mobile.templates.documentType": "문서 유형 · {{type}}", "mobile.templates.loading": "클라우드 템플릿을 불러오는 중", "mobile.templates.saving": "저장 중", "mobile.templates.empty": "이 유형의 템플릿이 없습니다.", "mobile.templates.emptySearch": "검색 조건과 일치하는 템플릿이 없습니다.", "mobile.templates.realtimeWaiting": "실시간 동기화를 기다리는 중입니다. 아래로 당겨 서버 상태를 다시 확인할 수 있습니다.", "mobile.templates.error.auth": "템플릿을 사용하려면 로그인하세요.", "mobile.templates.error.builtin": "기본 템플릿은 수정하거나 삭제할 수 없습니다.", "mobile.templates.error.conflict": "다른 기기에서 템플릿이 변경됐습니다. 최신 내용을 다시 불러왔는지 확인하세요.", "mobile.templates.error.forbidden": "이 템플릿 작업을 수행할 권한이 없습니다.", "mobile.templates.error.inProgress": "같은 문서 생성 요청이 이미 처리 중입니다.", "mobile.templates.error.network": "네트워크 연결을 확인한 뒤 다시 시도하세요.", "mobile.templates.error.notFound": "템플릿 또는 회의를 찾을 수 없거나 접근할 수 없습니다.", "mobile.templates.error.provider": "문서 생성 서비스가 응답하지 않았습니다. 결과는 저장하거나 사용량으로 기록하지 않았습니다.", "mobile.templates.error.quota": "오늘 사용할 수 있는 문서 생성 횟수를 모두 사용했습니다.", "mobile.templates.error.validation": "이름, 필드, 출력 형식 또는 생성 지침을 확인하세요.", "mobile.templates.error.server": "템플릿 작업을 완료하지 못했습니다.", "mobile.memos.title": "메모 태그", "mobile.memos.description": "히스토리를 태그로 정리하고 검색하거나 안전하게 공유합니다.", "mobile.memos.search": "내용, 제목 또는 태그 검색", "mobile.memos.allTags": "모든 태그", "mobile.memos.tags": "메모 태그", "mobile.memos.addTag": "태그 추가", "mobile.memos.tagPlaceholder": "태그 이름", "mobile.memos.removeTagLabel": "{{tag}} 태그 제거", "mobile.memos.renameTagLabel": "{{tag}} 태그 이름 변경", "mobile.memos.renameTitle": "태그 이름 변경", "mobile.memos.renameBody": "‘{{tag}}’ 태그를 사용하는 내 모든 히스토리에 새 이름을 적용합니다. 중복 태그는 하나로 합칩니다.", "mobile.memos.share": "공유", "mobile.memos.shareTitle": "D3RO Voice 메모", "mobile.memos.untitled": "제목 없는 메모", "mobile.memos.loading": "메모 태그를 동기화하는 중", "mobile.memos.saving": "저장 중", "mobile.memos.empty": "태그를 붙일 히스토리가 없습니다.", "mobile.memos.emptySearch": "검색 또는 태그 조건과 일치하는 메모가 없습니다.", "mobile.memos.realtimeWaiting": "실시간 태그 동기화를 기다리는 중입니다. 아래로 당겨 최신 상태를 확인하세요.", "mobile.memos.error.auth": "메모 태그를 사용하려면 로그인하세요.", "mobile.memos.error.conflict": "다른 기기에서 태그가 변경됐습니다. 최신 상태를 불러온 뒤 다시 시도하세요.", "mobile.memos.error.network": "네트워크 연결을 확인한 뒤 다시 시도하세요.", "mobile.memos.error.notFound": "히스토리 또는 태그를 찾을 수 없습니다.", "mobile.memos.error.validation": "태그는 공백을 제외하고 1~80자로 입력하세요.", "mobile.memos.error.server": "메모 태그 작업 또는 공유를 완료하지 못했습니다.", "mobile.admin.title": "모바일 관리자", "mobile.admin.description": "현재 서버 역할: {{role}} · 모든 조회와 변경 권한을 서버에서 다시 확인합니다.", "mobile.admin.forbiddenTitle": "관리자 권한이 없습니다", "mobile.admin.forbiddenBody": "현재 계정의 서버 역할이 관리자 범위가 아닙니다. 권한이 변경됐다면 다시 로그인하세요.", "mobile.admin.tab.users": "사용자", "mobile.admin.tab.subscriptions": "구독", "mobile.admin.tab.audit": "감사 로그", "mobile.admin.searchUsers": "이름 또는 사용자 ID 검색", "mobile.admin.loading": "서버에서 관리자 데이터를 확인하는 중", "mobile.admin.empty": "표시할 실제 서버 데이터가 없습니다.", "mobile.admin.loadingMore": "추가 항목 확인 중", "mobile.admin.loadMore": "더 불러오기", "mobile.admin.unnamedUser": "이름 없는 사용자", "mobile.admin.userMeta": "{{tier}} · 가입 {{date}}", "mobile.admin.userDetail": "사용자 관리", "mobile.admin.accountSection": "계정", "mobile.admin.name": "이름", "mobile.admin.email": "이메일", "mobile.admin.roleLabel": "역할", "mobile.admin.locale": "언어", "mobile.admin.createdAt": "가입 일시", "mobile.admin.lastSignIn": "최근 로그인", "mobile.admin.changeRole": "역할 변경", "mobile.admin.subscriptionSection": "구독", "mobile.admin.noSubscription": "활성 구독 행이 없습니다.", "mobile.admin.tierLabel": "등급", "mobile.admin.statusLabel": "상태", "mobile.admin.provider": "결제 제공자", "mobile.admin.overageCredits": "추가 크레딧", "mobile.admin.periodEnd": "현재 기간 종료", "mobile.admin.adminNote": "관리 메모", "mobile.admin.createSubscription": "구독 만들기", "mobile.admin.editSubscription": "구독 수정", "mobile.admin.deleteSubscription": "구독 삭제", "mobile.admin.paymentSection": "결제 감사 원장", "mobile.admin.liveProviderUnavailable": "실시간 결제사 원문 조회는 안전한 서버 계약이 없어 제공하지 않습니다. 검증된 내부 이벤트와 작업 원장만 표시합니다.", "mobile.admin.providerOperations": "결제 작업", "mobile.admin.providerEvents": "결제 이벤트", "mobile.admin.noPaymentEvents": "기록된 결제 항목이 없습니다.", "mobile.admin.auditSection": "변경 감사", "mobile.admin.noAudit": "기록된 관리자 변경이 없습니다.", "mobile.admin.deleteSubscriptionWarning": "이 사용자의 구독 행과 연결된 등급을 원자적으로 제거합니다.", "mobile.admin.mutationWarning": "이 작업은 서버에서 현재 권한을 다시 확인하고 감사 로그에 기록합니다.", "mobile.admin.periodEndInput": "기간 종료(ISO 날짜, 선택)", "mobile.admin.periodEndUpdateHint": "기존 날짜를 유지하려면 현재 값을 그대로 두세요. 이 서버 계약에서는 날짜만 단독으로 지울 수 없습니다.", "mobile.admin.memo": "변경 사유(필수, 3자 이상)", "mobile.admin.retrySameOperation": "응답을 받지 못한 작업은 같은 멱등 키로만 재시도합니다. 입력을 바꾸려면 닫고 새 작업을 시작하세요.", "mobile.admin.closeFailedOperation": "이 오류는 안전하게 재시도할 수 없습니다. 닫은 뒤 최신 상태를 다시 확인하고 새 작업을 시작하세요.", "mobile.admin.saving": "서버에서 원자적으로 적용 중", "mobile.admin.confirmMutation": "확인하고 적용", "mobile.admin.role.user": "사용자", "mobile.admin.role.manager": "매니저", "mobile.admin.role.admin": "관리자", "mobile.admin.role.super_admin": "최고 관리자", "mobile.admin.tier.free": "FREE", "mobile.admin.tier.pro": "PRO", "mobile.admin.tier.pro_plus": "PRO+", "mobile.admin.status.active": "활성", "mobile.admin.status.canceled": "취소됨", "mobile.admin.status.past_due": "결제 지연", "mobile.admin.status.expired": "만료됨", "mobile.admin.error.auth": "관리자 세션을 확인할 수 없습니다. 다시 로그인하세요.", "mobile.admin.error.forbidden": "서버가 현재 관리자 권한을 거부했습니다.", "mobile.admin.error.notFound": "대상 사용자 또는 구독을 찾을 수 없습니다.", "mobile.admin.error.conflict": "다른 관리자 작업과 충돌했거나 같은 멱등 키에 다른 요청이 사용됐습니다. 최신 상태를 확인하세요.", "mobile.admin.error.validation": "입력값, 변경 사유 또는 기간 형식을 확인하세요.", "mobile.admin.error.network": "네트워크 연결을 확인한 뒤 같은 작업을 다시 시도하세요.", "mobile.admin.error.timeout": "서버 응답 시간이 초과됐습니다. 같은 멱등 키로 다시 시도할 수 있습니다.", "mobile.admin.error.unavailable": "이 관리자 기능의 안전한 서버 계약이 아직 배포되지 않았습니다.", "mobile.admin.error.server": "서버 응답을 안전하게 검증하지 못해 작업을 중단했습니다.", "mobile.works.title": "WORKS", "mobile.works.count": "기능 {{count}}개", "mobile.works.searchPlaceholder": "기능 검색", "mobile.works.pinned": "고정", "mobile.works.pin": "고정", "mobile.works.unpin": "고정 해제", "mobile.works.emptySearch": "조건에 맞는 기능이 없습니다.", "mobile.works.section.meetings": "회의 작업", "mobile.works.section.team": "팀 · 지식", "mobile.works.section.data": "데이터 · 알림", "mobile.works.historyDescription": "녹음과 가져오기의 전사 기록을 검색하고 관리합니다.", "mobile.meetings.templateNone": "템플릿 없이 시작", "mobile.meetings.templateNoneDesc": "문서 생성 시점에 템플릿을 선택합니다", "keybinding.mouse.left": "마우스 왼쪽 버튼", "keybinding.mouse.right": "마우스 오른쪽 버튼", "keybinding.mouse.middle": "마우스 가운데 버튼", "keybinding.mouse.back": "마우스 뒤로 버튼", "keybinding.mouse.forward": "마우스 앞으로 버튼", "keybinding.group.mouse": "마우스", "keybinding.group.modifier": "조합키", "keybinding.group.function": "기능키", "keybinding.group.letter": "문자", "keybinding.group.digit": "숫자", "keybinding.group.numpad": "숫자패드", "keybinding.group.navigation": "탐색", "keybinding.group.editing": "편집", "keybinding.group.punctuation": "기호", "keybinding.group.system": "시스템", "keybinding.action.dictation": "받아쓰기", "keybinding.action.dictation.desc": "누르고 있는 동안 녹음합니다.", "keybinding.action.handsFree": "원터치 모드", "keybinding.action.handsFree.desc": "두 번 눌러 토글합니다.", "keybinding.action.command": "음성 명령어", "keybinding.action.command.desc": "음성으로 명령을 실행합니다.", "keybinding.action.caption": "실시간 자막", "keybinding.action.caption.desc": "실시간 자막을 켜고 끕니다.", "keybinding.action.historyPopup": "기록 팝업", "keybinding.action.historyPopup.desc": "기록 팝업을 엽니다.", "keybinding.action.commandPopup": "명령어 팝업", "keybinding.action.commandPopup.desc": "명령어 팝업을 엽니다.", "keybinding.reject.unknownKey": "지원하지 않는 키입니다", "keybinding.reject.systemReserved": "시스템 예약 단축키입니다", "keybinding.reject.modifierRequired": "조합키(Ctrl/Alt/Shift)와 함께 사용해야 합니다", "keybinding.disabled.mouseLeft": "왼쪽 클릭은 모든 화면 조작에 쓰이므로 바인딩할 수 없습니다", "keybinding.warning.mousePassthrough": "마우스 버튼은 원래 동작도 함께 실행됩니다", "keybinding.ui.add": "추가", "keybinding.ui.remove": "삭제", "keybinding.ui.reset": "기본값으로", "keybinding.ui.tabRecord": "직접 입력", "keybinding.ui.tabList": "목록에서 선택", "keybinding.ui.search": "키 검색", "keybinding.ui.searchEmpty": "검색 결과가 없습니다", "keybinding.ui.pressKeys": "원하는 키 또는 마우스 버튼을 누르세요", "keybinding.ui.noBindings": "설정된 단축키 없음", "keybinding.ui.conflictWith": "{{action}}와(과) 중복됩니다", "keybinding.ui.modifiers": "조합키", "keybinding.ui.selectedKey": "선택한 키", "keybinding.ui.sectionVoice": "음성", "keybinding.ui.sectionWindow": "창 / 팝업", "keybinding.ui.duplicate": "이미 추가된 단축키입니다", "keybinding.ui.holdMode": "누름 유지", "keybinding.ui.doublePress": "두 번 누름", "keybinding.ui.pickerTitle": "단축키 설정", "keybinding.ui.pressToRecord": "눌러 녹음 시작", "keybinding.ui.recordHint": "조합키(예: Ctrl+Shift+Q) 또는 단일키(예: F5)를 입력하세요", "keybinding.ui.recordAgain": "다시 입력", "keybinding.ui.saveFailed": "단축키를 저장하지 못했습니다", "keybinding.ui.globalEnabled": "전역 단축키 사용", "input.tab": "입력", "input.consent.title": "입력 데이터 수집", "input.consent.description": "선택 사항입니다. 키 입력과 클릭 횟수, 마우스 이동 거리를 세어 자신의 입력 패턴을 보여니다. 어떤 키를 눌렀는지는 저장하지 않습니다.", "input.consent.collect": "키보드·마우스 통계 수집", "input.consent.running": "수집 중입니다.", "input.consent.stopped": "수집이 꺼져 있습니다. 아무것도 기록하지 않습니다.", "input.consent.pause": "수집 일시정지", "input.consent.learnText": "내가 친 텍스트 학습", "input.consent.learnTextHint": "포커스된 입력창을 읽어 문장 습관을 학습합니다. 비밀번호 필드는 항상 건너뜁니다.", "input.consent.excludedApps": "제외할 앱", "input.consent.excludedAppsPlaceholder": "keepassxc.exe, 1password.exe", "input.consent.excludedAppsHint": "쉼표로 구분한 실행 파일명입니다. 이 앱에서는 아무것도 읽거나 세지 않습니다.", "input.consent.clearAll": "수집된 데이터 삭제", "input.suggestion.title": "다음 문장 제안", "input.suggestion.description": "앞으로 나올 문장을 예측해 커서 에 보여니다. 수락하면 그대로 삽입됩니다.", "input.suggestion.enabled": "타이핑 중 제안 표시", "input.suggestion.modelReady": "로컬 모델 준비됨.", "input.suggestion.modelMissing": "로컬 모델이 실행 중이 아닙니다 — 제안이 꺼진 상태로 동작합니다.", "input.suggestion.delay": "지연 (ms)", "input.suggestion.minPrefix": "최소 글자 수", "input.suggestion.modelDefault": "기본 모델 사용", "input.suggestion.overlayInteractive": "제안 상자 클릭 허용", "input.suggestion.overlayVisible": "제안이 화면에 표시됨", "input.suggestion.keyHint": "수락·다음 후보·닫기는 전역 키바인딩입니다 — 설정 > 단축키에서 바 수 있습니다.", "input.suggestion.requestNow": "지금 제안 받기", "input.suggestion.usage": "오늘 {{requests}}/{{budget}}회 사용", "input.suggestion.lastSkip": "마지막 건너 사유: {{reason}}", "input.insights.title": "최근 {{days}}일", "input.insights.keystrokes": "키 입력", "input.insights.clicks": "클릭", "input.insights.words": "작성한 단어", "input.insights.sentences": "문장", "input.insights.mouseDistance": "마우스 이동", "input.insights.perDayMeters": " m/일", "input.insights.phrases": "개인 문구", "input.insights.empty": "아직 수집된 활동이 없습니다.", "input.insights.topApps": "많이 입력한 앱", "input.insights.appRow": "키 {{keystrokes}} · 클릭 {{clicks}}", "input.insights.privacyNote": "이 기기에는 카운터와 거리만 저장됩니다. 키 내용은 저장되지 않습니다.", "input.phrases.title": "개인 문구", "input.phrases.description": "타이핑과 받아쓰기에서 학습한 문장입니다. 문체를 맞추는 데 사용합니다.", "input.phrases.empty": "아직 학습된 문구가 없습니다.", "input.phrases.delete": "문구 삭제", "input.feedback.excludedSaved": "제외 목록을 저장했습니다.", "input.feedback.cleared": "수집된 데이터를 삭제했습니다.", "popup.suggestion.hintAccept": "수락", "popup.suggestion.hintNext": "다음", "popup.suggestion.hintDismiss": "닫기", "popup.suggestion.hintMove": "이동", "popup.suggestion.hintPage": "페이지", "popup.suggestion.loading": "생성 중…", "keybinding.ui.sectionInput": "입력 제안", "keybinding.action.suggestionAccept": "제안 수락", "keybinding.action.suggestionAccept.desc": "제안된 문장을 현재 앱에 삽입합니다.", "keybinding.action.suggestionNext": "다음 제안", "keybinding.action.suggestionNext.desc": "다음 제안 후보로 넘깁니다.", "keybinding.action.suggestionDismiss": "제안 닫기", "keybinding.action.suggestionDismiss.desc": "현재 제안을 숨깁니다.", "input.suggestion.timeout": "응답 제한 (ms)", "input.suggestion.latency": "마지막 응답: {{ms}}ms", "input.suggestion.slowWarning": "타이 속도에 비해 느립니다 — 더 작은 모델을 쓰거나 후보 수를 줄여보세요.", "input.diagnostics.title": "실시간 진단", "input.diagnostics.app": "포커스 앱: {{app}}", "input.diagnostics.unknownApp": "(알 수 없음)", "input.diagnostics.noSnapshot": "아직 입력창을 읽지 못했습니다 — 글자 필드를 클릭하고 타이핑해 보세요.", "input.diagnostics.readable": "입력창 읽기 가능 ({{source}}, {{length}}자) — 제안이 동작할 수 있습니다.", "input.diagnostics.notReadable": "이 앱은 입력창 텍스트를 노출하지 않습니다 — 여기서 친 내용은 읽을 수 없어 제안이 만들어지지 않습니다.", "input.diagnostics.password": "비밀번호 필드 — 설계상 읽기를 차단합니다.", "input.diagnostics.caretFallback": "커서 위치를 알 수 없어 문서 끝을 입력 위치로 가정합니다.", "input.diagnostics.composing": "IME 조합 중 — 제안이 조금 더 기다렸다가 뜹니다(차단되지 않습니다).", "input.suggestion.onScreenLabel": "오버레이 상태", "input.suggestion.onScreen": "표시 중", "input.suggestion.offScreen": "없음", "input.suggestion.generating": "생성 중…", "input.kbView.knowledge": "지식 베이스", "input.kbView.insights": "입력 인사이트", "input.insights.tabs.overview": "요약", "input.insights.tabs.keyboard": "키보드", "input.insights.tabs.mouse": "마우스", "input.insights.tabs.apps": "앱", "input.insights.tabs.phrases": "문구 · 제안", "input.insights.chars": "입력한 글자", "input.insights.wordChars": "글자", "input.insights.backspaces": "지우기", "input.insights.shortcuts": "단축키", "input.insights.doubleClicks": "더블클릭", "input.insights.scrollTicks": "스크롤", "input.insights.activeMinutes": "활성 시간", "input.insights.activeDays": "기록한 날", "input.insights.streak": "최장 연속", "input.insights.peakDay": "최다 입력일", "input.insights.perDayAverage": "일 평균", "input.insights.mouseDistanceTotal": "이동 거리 합", "input.insights.hourlyTitle": "시간대별 (0~23시)", "input.insights.dailyTitle": "일별 추이", "input.insights.wordsDailyTitle": "일별 단어", "input.insights.distanceDailyTitle": "일별 마우스 이동", "input.insights.topHoursHint": "가장 활발한 시간대: {{hours}}", "input.insights.mouseNote": "마우스 이동은 축별 절대값 합(맨해튼)으로 계산합니다 — ActivityWatch와 같은 방식입니다.", "input.insights.appsHint": "입력량 기준 상위 앱입니다. 막대는 전체 입력 대비 비중입니다.", "input.insights.suggestions": "제안", "input.insights.suggestionsTotal": "생성된 제안", "input.insights.suggestionsAccepted": "수락", "input.insights.acceptRate": "수락률", "input.insights.avgLatency": "평균 응답", "input.insights.suggestionHistory": "최근 제안 이력", "input.insights.accepted": "수락", "input.insights.notAccepted": "미수락", "input.insights.noSuggestions": "아직 제안 이력이 없습니다.", "input.insights.samplesNote": "학습 표본 {{count}}건.", "input.insights.collectedAt": "마지막 수집 {{at}}", "input.insights.rangeLabel": "기간", "input.insights.rangeDays": "{{days}}일", "input.insights.headerSummary": "최근 {{days}}일 · 키 입력 {{keys}} · 앱 {{apps}}개", "input.insights.disabledHint": "입력 수집이 꺼져 있습니다. 설정 > 입력에서 켜면 여기에 통계가 쌓입니다.", "input.insights.statsMovedHint": "상세 통계는 지식 베이스 > 입력 인사이트에서 볼 수 있습니다.", "input.chart.max": "최대 {{value}}", "input.chart.noData": "데이터가 아직 없습니다.", "input.unit.perDay": "/일", "input.unit.perDayMeters": "m/일", "input.unit.meters": "m", "input.unit.ms": "ms", "input.unit.percent": "%", "popup.suggestion.warming": "모델 준비 중…", "popup.suggestion.hintGenerating": "생성 중…", "popup.suggestion.hintGeneratingMore": "더 생성 중… (최대 {{max}}개)", "keybinding.action.suggestionPrev": "이전 제안", "keybinding.action.suggestionPrev.desc": "이전 제안 후보로 이동합니다.", "keybinding.action.suggestionPageNext": "다음 페이지", "keybinding.action.suggestionPageNext.desc": "다음 제안 페이지를 봅니다 (최대 12개까지).", "keybinding.action.suggestionPagePrev": "이전 페이지", "keybinding.action.suggestionPagePrev.desc": "이전 제안 페이지로 이동합니다.", "input.insights.tabs.graph": "그래프", "input.graph.description": "내 문장을 노드로, 문장 사이의 관계(무엇이 무엇 뒤에 오는지, 어떤 용어를 공유하는지)를 엣지로 저장해 제안에 개인 문맥을 끌어옵니다. 전부 로컬입니다.", "input.graph.nodes": "문장 노드", "input.graph.followsEdges": "이어쓰기 연결", "input.graph.sharesEdges": "용어 공유 연결", "input.graph.topEdges": "강한 연결", "input.graph.recentNodes": "최근 노드", "input.graph.searchLabel": "문장 검색", "input.graph.searchPlaceholder": "예: 회의 일정", "input.graph.searchAction": "검색", "input.graph.neighbors": "연결된 문장", "input.graph.empty": "그래프가 비어 있습니다. 설정 > 입력에서 \"내가 친 텍스트 학습\" 을 켜면 쌓입니다.", "input.graph.kindFollows": "이어쓰기", "input.graph.kindShares": "용어 공유", "popup.suggestion.generating": "생성 중… ({{seconds}}초)", "keybinding.ui.auditClear": "단축키 충돌과 유효하지 않은 설정이 없습니다.", "keybinding.ui.auditIssues": "단축키 문제 {{count}}건", "keybinding.ui.auditInvalid": "{{action}}: {{reason}}", "keybinding.ui.auditConflict": "{{action}}: {{conflicts}}와 충돌", "keybinding.ui.auditUnknown": "알 수 없는 문제", "input.flow.title": "몰입 가능 시간대", "input.flow.empty": "아직 시간대별 입력 데이터가 부족합니다.", "input.flow.hour": "{{hour}}:00", "input.flow.window": "점수 {{score}} · 하루 {{minutes}}분 활성 · 편집 {{friction}}%", "input.friction.title": "편집 마찰", "input.friction.value": "100자당 {{count}}회", "input.friction.band.steady": "안정", "input.friction.band.watch": "관찰", "input.friction.band.high": "높음", "input.appQuality.title": "앱별 제안 품질", "input.appQuality.empty": "아직 앱별 제안 기록이 없습니다.", "input.appQuality.row": "{{accepted}}/{{total}} 수락 · {{rate}}% · {{latency}}ms", "input.phrases.metadata": "{{source}} · {{count}}회 · {{app}}", "input.phrases.appUnknown": "공통", "input.privacy.title": "로컬 데이터 영수증", "input.privacy.localOnly": "이 데이터는 이 기기에만 저장됩니다.", "input.privacy.rawKeys": "개별 키 입력 이벤트와 키 코드는 보존하지 않습니다. 학습용 입력 원문 표본은 아래 수량과 보존 기간으로 따로 표시합니다.", "input.privacy.activityRetention": "활동 기록 보존", "input.privacy.suggestionRetention": "제안 기록 보존", "input.privacy.learnedRetention": "학습 문구 보존", "input.privacy.activityBuckets": "활동 버킷", "input.privacy.typingSamples": "입력 샘플", "input.privacy.personalPhrases": "개인 문구", "input.privacy.suggestions": "제안 기록", "input.privacy.days": "{{days}}일", "input.privacy.untilDeleted": "삭제할 때까지", "input.exclusion.recommendation": "{{app}}에서 읽을 수 없는 입력이 {{samples}}번 반복되었습니다 ({{reason}}).", "input.exclusion.reason.repeated-unreadable": "반복적으로 읽을 수 없음", "input.exclusion.reason.repeated-empty": "반복적으로 비어 있음", "input.exclusion.addButton": "{{app}}을(를) 제외 목록에 추가", "input.feedback.recommendationSaved": "{{app}}을(를) 제외 목록에 추가했습니다.", "popup.suggestion.sourceModel": "로컬 모델", "popup.suggestion.sourceMemory": "로컬 기억", "popup.suggestion.continuations": "다음 문장", "popup.suggestion.related": "관련 문장", "popup.suggestion.phrases": "개인 문구", "popup.suggestion.appPhrases": "이 앱 문구", "input.privacy.typingSamplesRetention": "입력 원문 표본 보존", "input.privacy.unavailable": "지금은 로컬 데이터 영수증을 불러올 수 없습니다. 수량과 보존 기간은 표시하지 않습니다.", "input.feedback.clearFailed": "수집된 데이터를 삭제하지 못했습니다.", "input.feedback.excludedFailed": "제외 목록을 저장하지 못했습니다.", "input.feedback.recommendationFailed": "{{app}}을(를) 제외 목록에 추가하지 못했습니다.", "popup.caption.waiting": "듣는 중… 첫 자막까지 몇 초 걸릴 수 있어요", "popup.caption.dragHint": "끌어서 이동 · 더블클릭하면 원위치" }