import type { TranslationMap } from '../types';

// Korean chunk 5/5. Source of truth for translators.
const ko5: TranslationMap = {
  'settings.billing.subscription.save': '{pct}',
  'settings.billing.subscription.upgrade': '업그레이드',
  'settings.billing.subscription.waiting': '대기 중',
  'settings.billing.subscription.waitingPayment': '결제 대기 중',
  'settings.composio.apiKeyDesc': 'Composio API 키가 현재 이 기기에 저장되어 있습니다.',
  'settings.composio.apiKeyLabel': 'Composio API 키',
  'settings.composio.apiKeyStored': 'API 키 저장됨',
  'settings.composio.apiKeyStoredPlaceholder': '••••••••••••••••',
  'settings.composio.clearedToBackend': '백엔드 모드로 전환됨',
  'settings.composio.confirmItem1': 'API 키가 있는 app.composio.dev 계정',
  'settings.composio.confirmItem2': '개인 Composio 계정을 통해 각 통합을 다시 연결해야 합니다',
  'settings.composio.confirmItem3':
    '참고: Composio 트리거(실시간 웹훅)는 아직 Direct 모드에서 실행되지 않습니다 — 동기식 도구 호출만 지원됩니다',
  'settings.composio.confirmNeedItems': '필요한 항목:',
  'settings.composio.confirmSwitch': '이해했습니다. Direct로 전환',
  'settings.composio.confirmTitle': '⚠️ Direct 모드로 전환',
  'settings.composio.confirmWarning':
    '기존 통합(Gmail, Slack, GitHub 등 OpenHuman을 통해 연결된 통합)은 표시되지 않습니다 — OpenHuman 관리형 Composio 테넌트에 있습니다.',
  'settings.composio.intro':
    'Composio는 에이전트가 호출할 수 있는 도구로 250개 이상의 외부 앱을 통합합니다. 이러한 도구 호출이 라우팅되는 방식을 선택하세요.',
  'settings.composio.modeDirect': 'Direct(직접 API 키 사용)',
  'settings.composio.modeDirectDesc':
    '호출이 backend.composio.dev로 직접 이동합니다. 독립적이고 오프라인 친화적입니다. 도구 실행은 동기식으로 작동하지만, 실시간 트리거 웹훅은 아직 Direct 모드에서 라우팅되지 않습니다(후속 이슈).',
  'settings.composio.modeManaged': '관리형(OpenHuman이 대신 처리)',
  'settings.composio.modeManagedDesc':
    'OpenHuman이 백엔드를 통해 도구 호출을 프록시합니다(권장). 인증은 중개되며, Composio API 키를 붙여넣을 필요가 없습니다. 웹훅은 완전히 라우팅됩니다.',
  'settings.composio.routingMode': '라우팅 모드',
  'settings.composio.saveErrorNoKey':
    '저장에 실패했습니다. Direct 모드에는 비어 있지 않은 API 키가 필요합니다.',
  'settings.composio.saving': '저장 중…',
  'settings.composio.switching': '전환 중…',
  'settings.cron.jobs.desc': '설명',
  'settings.cron.jobs.empty': '코어 cron 작업을 찾을 수 없습니다.',
  'settings.cron.jobs.lastStatus': '마지막 상태',
  'settings.cron.jobs.loading': 'cron 작업 불러오는 중...',
  'settings.cron.jobs.loadingRuns': '실행 기록 불러오는 중',
  'settings.cron.jobs.nextRun': '다음 실행',
  'settings.cron.jobs.pause': '일시 중지',
  'settings.cron.jobs.paused': '활성화됨',
  'settings.cron.jobs.recentRuns': '최근 실행',
  'settings.cron.jobs.removing': '제거 중',
  'settings.cron.jobs.resume': '재개',
  'settings.cron.jobs.runningNow': '지금 실행 중',
  'settings.cron.jobs.saving': '저장 중…',
  'settings.cron.jobs.schedule': '일정',
  'settings.cron.jobs.title': '코어 Cron 작업',
  'settings.cron.jobs.viewRuns': '실행 기록 보기',
  'settings.localModel.deviceCapability.active': '활성',
  'settings.localModel.deviceCapability.appliedTier': '적용된 티어',
  'settings.localModel.deviceCapability.applying': '적용 중',
  'settings.localModel.deviceCapability.cores': '{count}',
  'settings.localModel.deviceCapability.couldNotLoadPresets': '프리셋을 불러올 수 없습니다',
  'settings.localModel.deviceCapability.cpu': 'CPU',
  'settings.localModel.deviceCapability.customModelIds': '사용자 지정 모델 ID',
  'settings.localModel.deviceCapability.detected': '감지됨',
  'settings.localModel.deviceCapability.disabled': '비활성화됨',
  'settings.localModel.deviceCapability.disabledDesc': '비활성화 설명',
  'settings.localModel.deviceCapability.downloadingModels': '(모델 다운로드 중)',
  'settings.localModel.deviceCapability.downloadingSetupDesc':
    'OllamaSetup 설치 프로그램(~2GB)을 다운로드하고 압축을 푸는 중입니다. 첫 설치 시 시간이 걸릴 수 있습니다.',
  'settings.localModel.deviceCapability.failedToApplyPreset': '프리셋 적용 실패',
  'settings.localModel.deviceCapability.gpu': 'GPU',
  'settings.localModel.deviceCapability.installFailed': 'Ollama 설치 실패',
  'settings.localModel.deviceCapability.installFailedDesc':
    'Ollama를 사용할 수 있기 전에 설치 프로그램이 종료되었습니다. 다시 시도하려면 재시도를 클릭하거나 ollama.com에서 수동으로 설치하세요.',
  'settings.localModel.deviceCapability.installFirst': '먼저 Ollama를 실행하세요.',
  'settings.localModel.deviceCapability.installFirstDesc':
    '로컬 티어는 외부에서 관리되는 Ollama 엔드포인트에 의존합니다. 직접 시작하고 원하는 모델을 가져온 뒤, 런타임에 연결할 수 있을 때까지 "비활성화됨(클라우드 대체)"을 계속 사용하세요.',
  'settings.localModel.deviceCapability.installOllamaFirst':
    '이 티어를 사용하려면 먼저 Ollama를 실행하세요',
  'settings.localModel.deviceCapability.installingOllama': 'Ollama 설치 중',
  'settings.localModel.deviceCapability.loadingDeviceInfo': '기기 정보 불러오는 중',
  'settings.localModel.deviceCapability.localAiDisabled':
    '로컬 AI 비활성화됨 — 클라우드 대체 사용 중.',
  'settings.localModel.deviceCapability.modelTier': '모델 티어',
  'settings.localModel.deviceCapability.needsOllama': 'Ollama 필요',
  'settings.localModel.deviceCapability.notDetected': '감지되지 않음',
  'settings.localModel.deviceCapability.ram': 'RAM',
  'settings.localModel.deviceCapability.recommended': '권장',
  'settings.localModel.deviceCapability.retryInstall': '다시 시도 중…',
  'settings.localModel.deviceCapability.retrying': '다시 시도 중…',
  'settings.localModel.deviceCapability.starting': '시작 중…',
  'settings.localModel.download.audioPathPlaceholder': '오디오 파일의 절대 경로',
  'settings.localModel.download.capabilityAssets': '기능 자산',
  'settings.localModel.download.downloading': '다운로드 중...',
  'settings.localModel.download.embeddingPlaceholder': '줄마다 하나의 입력 문자열...',
  'settings.localModel.download.noThinkMode': '생각 없음 모드',
  'settings.localModel.download.promptPlaceholder':
    '아무 프롬프트나 입력하고 로컬 모델에서 실행하세요...',
  'settings.localModel.download.quantizationPref': '양자화 기본 설정',
  'settings.localModel.download.runEmbeddingTest': '실행 중...',
  'settings.localModel.download.runPromptTest': '프롬프트 테스트 실행',
  'settings.localModel.download.runSummaryTest': '요약 테스트 실행',
  'settings.localModel.download.runTranscriptionTest': '실행 중...',
  'settings.localModel.download.runTtsTest': '실행 중...',
  'settings.localModel.download.runVisionTest': '실행 중...',
  'settings.localModel.download.running': '실행 중...',
  'settings.localModel.download.runningPrompt': '프롬프트 실행 중',
  'settings.localModel.download.summarizePlaceholder':
    '로컬 모델로 요약할 텍스트를 붙여넣으세요...',
  'settings.localModel.download.testCustomPrompt': '사용자 지정 프롬프트 테스트',
  'settings.localModel.download.testEmbeddings': '임베딩 테스트',
  'settings.localModel.download.testSummarization': '요약 테스트',
  'settings.localModel.download.testVisionPrompt': '비전 프롬프트 테스트',
  'settings.localModel.download.testVoiceInput': '음성 입력 테스트(STT)',
  'settings.localModel.download.testVoiceOutput': '음성 출력 테스트(TTS)',
  'settings.localModel.download.ttsOutputPlaceholder': '선택적 출력 WAV 경로',
  'settings.localModel.download.ttsPlaceholder': '합성할 텍스트 입력...',
  'settings.localModel.download.visionImagePlaceholder':
    '줄마다 하나의 이미지 참조(data URI, URL 또는 로컬 경로 표시)',
  'settings.localModel.download.visionPromptPlaceholder': '비전 모델용 프롬프트 입력...',
  'settings.localModel.status.allChecksPassed': '모든 확인 통과',
  'settings.localModel.status.artifact': '아티팩트',
  'settings.localModel.status.backend': '백엔드',
  'settings.localModel.status.binary': '바이너리',
  'settings.localModel.status.bootstrapResume': '부트스트랩 / 재개',
  'settings.localModel.status.checking': '확인 중...',
  'settings.localModel.status.checkingOllama': 'Ollama 확인 중',
  'settings.localModel.status.customLocation': '사용자 지정 위치',
  'settings.localModel.status.customLocationDesc': '사용자 지정 위치 설명',
  'settings.localModel.status.diagnosticsHint':
    '"진단 실행"을 클릭하여 Ollama가 실행 중이고 모델이 설치되어 있는지 확인하세요.',
  'settings.localModel.status.downloadingUnknown': '다운로드 중(크기 알 수 없음)',
  'settings.localModel.status.eta': '예상 시간',
  'settings.localModel.status.expectedModels': '예상 모델',
  'settings.localModel.status.forceRebootstrap': '강제 재부트스트랩',
  'settings.localModel.status.generationTps': '생성 TPS',
  'settings.localModel.status.hideErrorDetails': '오류 세부 정보 숨기기',
  'settings.localModel.status.installManually': '수동 설치',
  'settings.localModel.status.installManuallyFrom': '다음에서 수동 설치',
  'settings.localModel.status.installOllama': '시작 중…',
  'settings.localModel.status.installedModels': '설치된 모델',
  'settings.localModel.status.installing': '설치 중...',
  'settings.localModel.status.installingOllama': 'Ollama 런타임 설치 중...',
  'settings.localModel.status.issues': '문제',
  'settings.localModel.status.issuesFound': '문제 {count}개 발견',
  'settings.localModel.status.lastLatency': '마지막 지연 시간',
  'settings.localModel.status.model': '모델',
  'settings.localModel.status.notFound': '찾을 수 없음',
  'settings.localModel.status.notRunning': '실행 중이 아님',
  'settings.localModel.status.ollamaBinaryPath': 'Ollama 바이너리 경로',
  'settings.localModel.status.ollamaDiagnostics': 'Ollama 진단',
  'settings.localModel.status.ollamaNotInstalled': 'Ollama 런타임을 사용할 수 없음',
  'settings.localModel.status.ollamaNotInstalledDesc':
    'OpenHuman은 이제 Ollama를 외부 추론 런타임으로 취급합니다. 직접 Ollama 서버를 시작하고 원하는 모델을 가져온 뒤 작업 라우팅을 해당 서버로 지정하세요.',
  'settings.localModel.status.progress': '진행률',
  'settings.localModel.status.provider': '제공업체',
  'settings.localModel.status.retryBootstrap': '부트스트랩 다시 시도',
  'settings.localModel.status.runDiagnostics': '확인 중...',
  'settings.localModel.status.running': '실행 중',
  'settings.localModel.status.runningExternalProcess': '외부 프로세스로 실행 중',
  'settings.localModel.status.runtimeStatus': '런타임 상태',
  'settings.localModel.status.server': '서버',
  'settings.localModel.status.setPath': '설정 중...',
  'settings.localModel.status.setting': '설정 중...',
  'settings.localModel.status.showErrorDetails': '오류 세부 정보 숨기기',
  'settings.localModel.status.showInstallErrorDetails': '오류 세부 정보 숨기기',
  'settings.localModel.status.suggestedFixes': '제안된 수정 사항',
  'settings.localModel.status.thenSetPath': '그런 다음 경로 설정',
  'settings.localModel.status.triggering': '트리거 중...',
  'settings.localModel.status.unavailable': '사용할 수 없음',
  'settings.localModel.status.working': '작업 중...',
  'settings.mascot.active': '활성',
  'settings.mascot.characterDesc': '캐릭터 설명',
  'settings.mascot.characterHeading': '캐릭터 제목',
  'settings.mascot.colorDesc': '색상 설명',
  'settings.mascot.colorHeading': '색상 제목',
  'settings.mascot.loadingLibrary': 'OpenHuman 라이브러리 불러오는 중…',
  'settings.mascot.localDefault': '로컬 OpenHuman(기본값)',
  'settings.mascot.noCharacters': '아직 사용할 수 있는 OpenHuman 캐릭터가 없습니다',
  'settings.mascot.noColorVariants': '색상 변형 없음',
  'settings.mascot.voice.current': '현재',
  'settings.mascot.voice.customDesc':
    'api.elevenlabs.io/v1/voices 또는 ElevenLabs 대시보드에서 음성 ID를 찾으세요. ID만 저장되며 API 키는 백엔드에 유지됩니다.',
  'settings.mascot.voice.customHeading': '사용자 지정 음성 ID',
  'settings.mascot.voice.customOption': '기타(음성 ID 붙여넣기)…',
  'settings.mascot.voice.desc':
    '마스코트가 음성 응답에 사용할 ElevenLabs 음성을 선택하세요. 성별로 필터링하고, 선별된 목록에서 선택하거나, 사용자 지정 ID를 붙여넣거나, 앱이 인터페이스 언어에 맞는 음성을 선택하도록 할 수 있습니다.',
  'settings.mascot.voice.genderFemale': '여성',
  'settings.mascot.voice.genderHeading': '음성 성별',
  'settings.mascot.voice.genderMale': '남성',
  'settings.mascot.voice.heading': '음성',
  'settings.mascot.voice.preset': '음성 프리셋',
  'settings.mascot.voice.presetHeading': '음성 프리셋',
  'settings.mascot.voice.preview': '음성 미리듣기',
  'settings.mascot.voice.previewError': '음성 미리듣기 실패',
  'settings.mascot.voice.previewing': '미리듣는 중…',
  'settings.mascot.voice.reset': '기본값으로 초기화',
  'settings.mascot.voice.useLocaleDefault': '앱 언어와 일치',
  'settings.mascot.voice.useLocaleDefaultDesc':
    '현재 인터페이스 언어에 맞는 음성을 자동으로 선택합니다.',
  'settings.memoryWindow.balanced.badge': '추천',
  'settings.memoryWindow.balanced.hint':
    '합리적인 기본값 — 매번 추가 토큰을 많이 쓰지 않으면서 좋은 연속성을 제공합니다.',
  'settings.memoryWindow.balanced.label': '균형',
  'settings.memoryWindow.description':
    'OpenHuman이 새 에이전트 실행마다 주입하는 기억된 컨텍스트의 양입니다. 창이 클수록 과거 대화를 더 잘 인식하지만, 매 실행마다 더 많은 토큰을 사용하고 비용도 더 듭니다.',
  'settings.memoryWindow.extended.badge': '더 많은 컨텍스트',
  'settings.memoryWindow.extended.hint':
    '각 실행에 더 많은 장기 메모리를 주입합니다. 턴당 토큰 비용이 더 높습니다.',
  'settings.memoryWindow.extended.label': '확장',
  'settings.memoryWindow.maximum.badge': '가장 높은 비용',
  'settings.memoryWindow.maximum.hint':
    '가장 큰 안전 창입니다. 최고의 연속성을 제공하지만 매 실행마다 토큰 비용이 의미 있게 증가합니다.',
  'settings.memoryWindow.maximum.label': '최대',
  'settings.memoryWindow.minimal.badge': '가장 저렴함',
  'settings.memoryWindow.minimal.hint':
    '가장 작은 메모리 창입니다. 가장 저렴하고 빠르지만 실행 간 연속성이 가장 낮습니다.',
  'settings.memoryWindow.minimal.label': '최소',
  'settings.memoryWindow.title': '장기 메모리 창',
  'settings.screenIntel.permissions.accessibility': '접근성',
  'settings.screenIntel.permissions.grantHint': '권한 허용 안내',
  'settings.screenIntel.permissions.inputMonitoring': '입력 모니터링',
  'settings.screenIntel.permissions.macosAppliesPrivacy': 'macOS 개인정보 보호 적용',
  'settings.screenIntel.permissions.openInputMonitoring': '요청 중…',
  'settings.screenIntel.permissions.refreshStatus': '새로고침 중…',
  'settings.screenIntel.permissions.refreshing': '새로고침 중…',
  'settings.screenIntel.permissions.requestAccessibility': '요청 중…',
  'settings.screenIntel.permissions.requestScreenRecording': '요청 중…',
  'settings.screenIntel.permissions.requesting': '요청 중…',
  'settings.screenIntel.permissions.restartRefresh': '코어 다시 시작 중…',
  'settings.screenIntel.permissions.restartingCore': '코어 다시 시작 중…',
  'settings.screenIntel.permissions.screenRecording': '화면 녹화',
  'settings.screenIntel.permissions.title': '권한',
  'skills.card.moreActions': '추가 작업',
  'skills.create.allowedTools': '허용된 도구',
  'skills.create.author': '작성자',
  'skills.create.authorPlaceholder': '이름',
  'skills.create.commaSeparated': '(쉼표로 구분)',
  'skills.create.createBtn': '스킬 생성',
  'skills.create.createError': '스킬을 생성할 수 없습니다',
  'skills.create.creating': '생성 중…',
  'skills.create.description': '설명',
  'skills.create.descriptionPlaceholder': '이 스킬은 무엇을 하나요?',
  'skills.create.license': '라이선스',
  'skills.create.name': '이름',
  'skills.create.namePlaceholder': '예: Trade Journal',
  'skills.create.scope': '범위',
  'skills.create.scopeProjectHint': '/.openhuman/skills/',
  'skills.create.scopeUserHint':
    '~/.openhuman/skills/<slug>/SKILL.md에 작성됨 — 모든 워크스페이스에서 사용 가능.',
  'skills.create.slugLabel': '슬러그 라벨',
  'skills.create.subtitle': 'SKILL.md',
  'skills.create.tags': '태그',
  'skills.create.title': '새 스킬',
  'skills.detail.allowedTools': '허용된 도구',
  'skills.detail.author': '작성자',
  'skills.detail.bundledResources': '번들 리소스',
  'skills.detail.closeAriaLabel': '스킬 세부 정보 닫기',
  'skills.detail.location': '위치',
  'skills.detail.noBundledResources': '번들 리소스가 없습니다.',
  'skills.detail.tags': '태그',
  'skills.detail.warnings': '경고',
  'skills.install.fetchLog': '로그 가져오기',
  'skills.install.installBtn': '설치 중…',
  'skills.install.installComplete': '설치 완료',
  'skills.install.installing': '설치 중…',
  'skills.install.parseWarnings': '파싱 경고',
  'skills.install.rawError': '원시 오류',
  'skills.install.timeoutHint': '(초, 선택 사항)',
  'skills.install.timeoutLabel': '시간 초과 라벨',
  'skills.install.title': 'URL에서 스킬 설치',
  'skills.install.urlLabel': '스킬 URL',
  'skills.meetingBots.bannerDesc':
    'Google Meet 링크를 넣으면 OpenHuman이 게스트로 참여하여 말하고, 듣고, 반응합니다.',
  'skills.meetingBots.bannerTitle': 'OpenHuman을 회의에 보내기',
  'skills.meetingBots.busyTitle': 'OpenHuman이 바쁩니다',
  'skills.meetingBots.comingSoon': '곧 제공 예정',
  'skills.meetingBots.couldNotStartTitle': 'OpenHuman을 시작할 수 없습니다',
  'skills.meetingBots.displayName': '표시 이름',
  'skills.meetingBots.failedToStart': 'OpenHuman 시작에 실패했습니다.',
  'skills.meetingBots.joiningMessage': '몇 초 안에 참가자로 표시될 것입니다.',
  'skills.meetingBots.joiningTitle': 'OpenHuman이 회의에 참여하는 중',
  'skills.meetingBots.meetingLink': '회의 링크',
  'skills.meetingBots.modalAriaLabel': 'OpenHuman을 회의에 보내기',
  'skills.meetingBots.modalDesc':
    'OpenHuman이 익명 게스트로 참여하여 비디오를 통화에 스트리밍하고 에이전트를 통해 응답합니다.',
  'skills.meetingBots.modalTitle': 'OpenHuman을 회의에 보내기',
  'skills.meetingBots.newBadge': '새 항목',
  'skills.meetingBots.sendTo': '보내기',
  'skills.meetingBots.starting': '시작 중…',
  'skills.resource.preview.closeAriaLabel': '미리보기 닫기',
  'skills.resource.preview.failed': '미리보기 실패',
  'skills.resource.preview.loading': '미리보기 불러오는 중…',
  'skills.resource.tree.empty': '번들 리소스가 없습니다.',
  'skills.search.placeholder': '플레이스홀더',
  'skills.setup.autocomplete.acceptKey': '수락 키',
  'skills.setup.autocomplete.activeDesc': '활성 설명',
  'skills.setup.autocomplete.activeTitle': '자동 완성이 활성화됨',
  'skills.setup.autocomplete.customizeSettings': '설정 사용자 지정',
  'skills.setup.autocomplete.debounce': '디바운스',
  'skills.setup.autocomplete.description': '설명',
  'skills.setup.autocomplete.enableBtn': '활성화 중...',
  'skills.setup.autocomplete.enableError': '자동 완성을 활성화하지 못했습니다',
  'skills.setup.autocomplete.enabling': '활성화 중...',
  'skills.setup.autocomplete.notSupported': '지원되지 않음',
  'skills.setup.autocomplete.stepEnable': '인라인 완성 활성화',
  'skills.setup.autocomplete.stepSuccess': '사용 준비 완료',
  'skills.setup.autocomplete.stylePreset': '스타일 프리셋',
  'skills.setup.autocomplete.stylePresetValue': '균형(나중에 구성 가능)',
  'skills.setup.autocomplete.title': '텍스트 자동 완성',
  'skills.setup.screenIntel.activeDesc': '활성 설명',
  'skills.setup.screenIntel.activeTitle': '화면 인텔리전스가 활성화됨',
  'skills.setup.screenIntel.advancedSettings': '고급 설정',
  'skills.setup.screenIntel.allGranted': '모든 권한 허용됨',
  'skills.setup.screenIntel.captureMode': '캡처 모드',
  'skills.setup.screenIntel.captureModeValue': '모든 창(나중에 구성 가능)',
  'skills.setup.screenIntel.deniedHint':
    '시스템 설정에서 권한을 허용한 후 아래를 클릭하여 다시 시작하고 변경 사항을 적용하세요.',
  'skills.setup.screenIntel.enableBtn': '활성화 중...',
  'skills.setup.screenIntel.enableDesc':
    '화면의 내용을 읽고 유용한 컨텍스트를 에이전트에 제공합니다',
  'skills.setup.screenIntel.enableError': '화면 인텔리전스를 활성화하지 못했습니다',
  'skills.setup.screenIntel.enabling': '활성화 중...',
  'skills.setup.screenIntel.grant': '여는 중...',
  'skills.setup.screenIntel.granted': '허용됨',
  'skills.setup.screenIntel.macosOnly': 'macOS 전용',
  'skills.setup.screenIntel.opening': '여는 중...',
  'skills.setup.screenIntel.panicHotkey': '패닉 핫키',
  'skills.setup.screenIntel.permAccessibility': '접근성',
  'skills.setup.screenIntel.permInputMonitoring': '입력 모니터링',
  'skills.setup.screenIntel.permScreenRecording': '화면 녹화',
  'skills.setup.screenIntel.permissionsDesc': '권한 설명',
  'skills.setup.screenIntel.refreshStatus': '상태 새로고침',
  'skills.setup.screenIntel.restartRefresh': '다시 시작 중...',
  'skills.setup.screenIntel.restarting': '다시 시작 중...',
  'skills.setup.screenIntel.stepEnable': '스킬 활성화',
  'skills.setup.screenIntel.stepPermissions': '권한 허용',
  'skills.setup.screenIntel.stepSuccess': '사용 준비 완료',
  'skills.setup.screenIntel.title': '화면 인텔리전스',
  'skills.setup.screenIntel.visionModel': '비전 모델',
  'skills.setup.voice.activation': '활성화',
  'skills.setup.voice.activeDescPrefix': 'Fn',
  'skills.setup.voice.activeDescSuffix': 'Fn',
  'skills.setup.voice.activeTitle': '음성 인텔리전스가 활성화됨',
  'skills.setup.voice.customizeSettings': '설정 사용자 지정',
  'skills.setup.voice.downloadSttBtn': 'STT 다운로드 버튼',
  'skills.setup.voice.enableDesc': '활성화 설명',
  'skills.setup.voice.hotkey': '핫키',
  'skills.setup.voice.startBtn': '시작 중...',
  'skills.setup.voice.startError': '음성 서버를 시작하지 못했습니다',
  'skills.setup.voice.starting': '시작 중...',
  'skills.setup.voice.stepEnable': '음성 서버 시작',
  'skills.setup.voice.stepSetup': '모델 다운로드 필요',
  'skills.setup.voice.stepSuccess': '사용 준비 완료',
  'skills.setup.voice.sttNotReady': '음성-텍스트 모델이 준비되지 않음',
  'skills.setup.voice.sttNotReadyDesc':
    '음성 인텔리전스에는 전사용 로컬 Whisper 모델이 필요합니다. 로컬 모델 설정에서 다운로드하세요.',
  'skills.setup.voice.sttReady': '음성-텍스트 모델 준비됨',
  'skills.setup.voice.sttReturnHint': 'STT 반환 안내',
  'skills.setup.voice.title': '음성 인텔리전스',
  'skills.uninstall.couldNotUninstall': '제거할 수 없습니다',
  'skills.uninstall.description':
    '이 작업은 스킬 디렉터리와 모든 번들 리소스를 영구적으로 삭제합니다. 에이전트는 다음 턴부터 이를 더 이상 볼 수 없습니다.',
  'skills.uninstall.title': '제거',
  'skills.uninstall.uninstallBtn': '제거',
  'skills.uninstall.uninstalling': '제거 중…',
  'upsell.global.limitMessage': '계속하려면 플랜을 업그레이드하거나 크레딧을 충전하세요',
  'upsell.global.limitTitle': '사용자',
  'upsell.global.nearLimitMessage':
    '사용 한도의 {pct}%를 사용했습니다. 더 높은 한도를 위해 업그레이드하세요.',
  'upsell.global.nearLimitTitle': '사용 한도에 가까워지고 있습니다',
  'upsell.usageLimit.bodyBudget':
    '주간 한도에 도달했습니다.{reset} 한도를 피하려면 플랜을 업그레이드하거나 크레딧을 충전하세요.',
  'upsell.usageLimit.bodyRate':
    '10시간 추론 속도 한도에 도달했습니다.{reset} 더 높은 한도를 위해 업그레이드하세요.',
  'upsell.usageLimit.heading': '사용 한도에 도달했습니다',
  'upsell.usageLimit.notNow': '지금은 아님',
  'upsell.usageLimit.perWindow': '{amount}',
  'upsell.usageLimit.planIncludes': '{plan}',
  'upsell.usageLimit.resetsIn': '{time}에 초기화됩니다.',
  'upsell.usageLimit.upgradePlan': '플랜 업그레이드',
  'upsell.usageLimit.weeklyInference': '{amount}',
  'walkthrough.tooltip.letsGo': '시작해 봅시다!',
  'walkthrough.tooltip.next': '다음 →',
  'walkthrough.tooltip.skip': '투어 건너뛰기',
  'walkthrough.tooltip.stepCounter': '{total}개 중 {n}개',
  'webhooks.activity.empty': '비어 있음',
  'webhooks.activity.title': '최근 활동',
  'webhooks.composioHistory.empty': '비어 있음',
  'webhooks.composioHistory.metadataId': '메타데이터 ID',
  'webhooks.composioHistory.metadataUuid': '메타데이터 UUID',
  'webhooks.composioHistory.payload': '페이로드',
  'webhooks.composioHistory.title': 'ComposeIO 트리거 기록',
  'webhooks.tunnels.active': '활성',
  'webhooks.tunnels.createFailed': '터널 생성 실패',
  'webhooks.tunnels.creating': '생성 중...',
  'webhooks.tunnels.deleteFailed': '터널 삭제 실패',
  'webhooks.tunnels.descriptionPlaceholder': '설명(선택 사항)',
  'webhooks.tunnels.echo': 'Echo',
  'webhooks.tunnels.empty': '비어 있음',
  'webhooks.tunnels.enableEcho': 'Echo 제거',
  'webhooks.tunnels.inactive': '활성',
  'webhooks.tunnels.namePlaceholder': '터널 이름(예: telegram-bot)',
  'webhooks.tunnels.newTunnel': '새 터널',
  'webhooks.tunnels.removeEcho': 'Echo 제거',
  'webhooks.tunnels.title': '웹훅 터널',
  'webhooks.tunnels.toggleFailed': 'Echo 전환 실패',
  'composio.authExpired': '인증이 만료됨',
  'composio.reconnect': '다시 연결',
  'composio.previewBadge': 'Preview',
  'composio.previewTooltip':
    'Agent integration coming soon — you can connect, but the agent can’t use this toolkit yet.',
  'composio.directModeRequiresKey':
    '저장에 실패했습니다. Direct 모드에는 비어 있지 않은 API 키가 필요합니다.',
  'composio.notYetRouted': '아직 라우팅되지 않음',
  'composio.triggers.loading': '불러오는 중…',
  'conversations.taskKanban.todo': '할 일',
  'settings.composio.loading': '불러오는 중…',
  'settings.mascot.noCharactersAvailable': '아직 사용할 수 있는 OpenHuman 캐릭터가 없습니다',
  'skills.uninstall.confirmTitle': '{name}을(를) 제거하시겠습니까?',
  'conversations.taskKanban.blocked': '차단됨',
  'conversations.taskKanban.done': '완료',
  'conversations.taskKanban.inProgress': '진행 중',
  'intelligence.memoryChunk.detail.copiedHint': '복사됨',
  'settings.composio.notYetRouted': '아직 라우팅되지 않음',
  'settings.localModel.download.manageExternal': '외부 런타임에서 이 모델을 관리하세요.',
  'settings.localModel.status.manageOllamaExternal':
    'OpenHuman 외부에서 Ollama 프로세스와 모델 가져오기를 관리한 다음 진단을 다시 실행하세요.',
  'settings.localModel.status.ollamaDocs': 'Ollama 문서',
  'settings.localModel.status.thenRetry':
    '설정 지침을 확인한 다음 런타임에 연결할 수 있게 되면 다시 시도하세요.',
  'settings.appearance.title': '외관',
  'settings.appearance.themeHeading': '테마',
  'settings.appearance.themeAria': '테마',
  'settings.appearance.modeLight': '라이트',
  'settings.appearance.modeLightDesc': '밝은 표면, 어두운 텍스트.',
  'settings.appearance.modeDark': '다크',
  'settings.appearance.modeDarkDesc': '어두운 표면, 해가 진 후 눈에 더 편안합니다.',
  'settings.appearance.modeSystem': '시스템과 일치',
  'settings.appearance.modeSystemDesc': 'OS 외관 설정을 따릅니다.',
  'settings.appearance.helperText':
    '다크 모드는 전체 앱 — 채팅, 설정, 패널 — 을 어두운 팔레트로 전환합니다. "시스템과 일치"는 OS 외관을 따르며 실시간으로 업데이트됩니다.',
  'settings.mascot.characterPreview': '미리보기',
  'settings.mascot.characterStates': '상태',
  'settings.mascot.characterVisemes': '입 모양',
  'settings.mascot.colorAria': 'OpenHuman 색상',
  'settings.mascot.colorBlack': '검정',
  'settings.mascot.colorBurgundy': '버건디',
  'settings.mascot.colorGreen': '초록',
  'settings.mascot.colorNavy': '네이비',
  'settings.mascot.colorYellow': '노랑',
  'settings.mascot.libraryUnavailable': 'OpenHuman 라이브러리를 사용할 수 없음',
  'settings.mascot.title': 'OpenHuman',
  'settings.developerMenu.mcpServer.title': 'MCP Server',
  'settings.developerMenu.mcpServer.desc': 'Configure external MCP clients to connect to OpenHuman',
  'settings.mcpServer.title': 'MCP Server',
  'settings.mcpServer.toolsSectionTitle': 'Available Tools',
  'settings.mcpServer.toolsSectionDesc':
    'Tools exposed via the MCP stdio server when running openhuman-core mcp',
  'settings.mcpServer.configSectionTitle': 'Client Configuration',
  'settings.mcpServer.configSectionDesc':
    'Select your MCP client to generate the correct configuration snippet',
  'settings.mcpServer.copySnippet': 'Copy to Clipboard',
  'settings.mcpServer.copied': 'Copied!',
  'settings.mcpServer.openConfigFile': 'Open Config File',
  'settings.mcpServer.binaryPathNotFound':
    'OpenHuman binary not found. If running from source, build with: cargo build --bin openhuman-core',
  'settings.mcpServer.openConfigError': 'Failed to open config file',
  'settings.mcpServer.clientClaudeDesktop': 'Claude Desktop',
  'settings.mcpServer.clientCursor': 'Cursor',
  'settings.mcpServer.clientCodex': 'Codex',
  'settings.mcpServer.clientZed': 'Zed',
  'settings.mcpServer.configFilePath': 'Config file',
  'settings.mcpServer.clientSelectorAriaLabel': 'MCP client selector',
};

export default ko5;
