diff --git a/packages/i18n/locales/ko/app.json b/packages/i18n/locales/ko/app.json index 2cf740485b..5dea2e2439 100644 --- a/packages/i18n/locales/ko/app.json +++ b/packages/i18n/locales/ko/app.json @@ -1,11 +1,6806 @@ { + "actions": { + "add": "추가", + "apply": "적용", + "back": "뒤로", + "cancel": "취소", + "close": "닫기", + "closeInsightsView": "인사이트 보기 닫기", + "closeModal": "모달 닫기", + "confirm": "확인", + "continue": "계속", + "create": "만들기", + "delete": "삭제", + "discard": "버리기", + "dismiss": "닫기", + "dismissOAuth": "OAuth 재로그인 배너 닫기", + "done": "완료", + "edit": "편집", + "generateInsights": "새 인사이트 생성", + "no": "아니오", + "openSettings": "설정 열기", + "pull": "Pull", + "refresh": "새로고침", + "refreshInsights": "인사이트 새로고침", + "retry": "재시도", + "run": "실행", + "save": "저장", + "search": "검색", + "send": "전송", + "showLess": "간략히 보기", + "showMore": "더 보기", + "update": "업데이트", + "yes": "예" + }, + "activityLog": { + "activeFilters": "활성 필터:", + "allEvents": "모든 이벤트", + "allProjects": "모든 프로젝트", + "clearFilters": "모두 지우기", + "clearFiltersBtnLabel": "필터 초기화", + "clearLog": "로그 지우기", + "confirmClear": "활동 로그를 지우시겠습니까?", + "confirmClearButton": "로그 지우기", + "confirmClearMessage": "모든 활동 로그 항목이 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.", + "eventType": { + "autoArchivedDeterministicDuplicate": "작업 자동 보관됨 (결정적 중복)", + "autoArchivedDuplicate": "작업 자동 보관됨 (중복)", + "autoArchivedGhostBug": "작업 자동 보관됨 (유령 버그)", + "autoArchivedNearDuplicate": "작업 자동 보관됨 (유사 중복)", + "duplicateWarningOverridden": "중복 경고 무시됨", + "mergeWorktreeReacquired": "병합 작업트리 재확보됨", + "nearDuplicateFlagged": "유사 중복 표시됨", + "projectIsolationTransition": "프로젝트 격리 전환", + "settingsUpdated": "설정 업데이트됨", + "taskCreated": "작업 생성됨", + "taskDeleted": "작업 삭제됨", + "taskFailed": "작업 실패함", + "taskMerged": "작업 병합됨", + "taskMoved": "작업 이동됨", + "taskUpdated": "작업 업데이트됨" + }, + "loadMore": "더 불러오기", + "merged": "병합됨", + "noActivityRecorded": "아직 기록된 활동이 없습니다", + "noMatchingActivity": "현재 필터에 일치하는 활동이 없습니다", + "notMerged": "병합되지 않음", + "refresh": "새로고침", + "time": { + "daysAgo": "{{count}}일 전", + "hoursAgo": "{{count}}시간 전", + "justNow": "방금", + "minutesAgo": "{{count}}분 전" + }, + "title": "활동 로그" + }, + "agentError": { + "copied": "복사됨", + "copiedLabel": "오류가 클립보드에 복사되었습니다", + "copy": "복사", + "copyLabel": "오류를 클립보드에 복사", + "dialogLabel": "에이전트 오류 세부 정보", + "openDetails": "오류 세부 정보 열기", + "reportOnGithub": "GitHub에 보고", + "title": "에이전트 오류 세부 정보" + }, + "agentLog": { + "agentNameTriage": "계획", + "collapseModelDetails": "모델 세부 정보 접기", + "empty": "아직 에이전트 출력이 없습니다.", + "executor": "실행기", + "exitFullscreen": "전체 화면 종료", + "expandFullscreen": "에이전트 로그를 전체 화면으로 확장", + "expandModelDetails": "모델 세부 정보 펼치기", + "hideOutput": "출력 숨기기", + "hideToolCallsResults": "도구 호출 및 결과 숨기기", + "hideToolOutput": "도구 출력 숨기기", + "live": "실시간", + "loadMore": "더 불러오기", + "loading": "에이전트 로그를 불러오는 중…", + "loadingMore": "불러오는 중…", + "markdown": "Markdown", + "plain": "일반 텍스트", + "planning": "계획 중", + "reviewer": "검토자", + "showFormattedMarkdown": "형식화된 마크다운 표시", + "showOutput": "출력 표시", + "showRawText": "원시 텍스트 표시", + "showToolCallsResults": "도구 호출 및 결과 표시", + "showToolOutput": "도구 출력 표시", + "showing": "{{total}}개 중 {{visible}}개 표시", + "switchMarkdown": "마크다운 모드로 전환", + "switchPlainText": "일반 텍스트 모드로 전환", + "timeDaysAgo": "{{count}}일 전", + "timeHoursAgo": "{{count}}시간 전", + "timeJustNow": "방금", + "timeMinutesAgo": "{{count}}분 전", + "toolEntriesHidden": "도구 항목 {{count}}개 숨김", + "toolsOff": "도구: 끔", + "toolsOn": "도구: 켬", + "usingDefault": "기본값 사용 중" + }, + "agentMention": { + "membersOf": "#{{roomName}} 멤버", + "noAgentsFound": "에이전트를 찾을 수 없습니다", + "otherAgents": "다른 에이전트", + "roomMemberBadge": "룸 멤버", + "roomMembers": "룸 멤버", + "suggestionsLabel": "에이전트 멘션 추천", + "typeToSearch": "다른 에이전트 검색을 위해 입력" + }, + "agentPolicy": { + "allow": "허용", + "approvalRequired": "승인 필요", + "ariaLabel": "권한 정책 카테고리", + "block": "차단", + "category": { + "commandExecution": { + "description": "셸 명령어 및 스크립트를 실행합니다.", + "label": "명령어 실행" + }, + "fileWriteDelete": { + "description": "워크스페이스에서 파일을 생성, 편집 또는 삭제합니다.", + "label": "파일 쓰기/삭제" + }, + "gitWrite": { + "description": "커밋, 브랜치 업데이트 및 병합에 영향을 주는 git 변경.", + "label": "Git 쓰기" + }, + "networkApi": { + "description": "아웃바운드 네트워크 또는 API 접근.", + "label": "네트워크/API" + }, + "taskAgentMutation": { + "description": "작업 상태 변경, 위임 또는 에이전트 수명 주기 작업.", + "label": "작업/에이전트 변경" + } + }, + "categoryExamples": "{{label}} 예시", + "custom": "사용자 정의", + "exemptTools": "승인 정책에서 제외된 도구", + "exemptToolsDescription": "이 조정 도구들은 하트비트와 에이전트 간 메시지 교환이 교착 상태에 빠지지 않도록 승인 정책을 우회합니다. 사용자가 설정할 수 없습니다.", + "fromProjectDefault": "프로젝트 기본값에서", + "inherit": "상속", + "inheritDefault": "프로젝트 기본값 상속", + "lockedDown": "잠금", + "preset": "프리셋", + "requireApproval": "승인 필요", + "unrestricted": "무제한" + }, + "agentPrompts": { + "actions": { + "addCustomTemplate": "사용자 정의 템플릿 추가", + "cancel": "취소", + "collapse": "접기", + "create": "만들기", + "delete": "삭제", + "reset": "초기화", + "save": "저장" + }, + "ariaLabels": { + "collapse": "접기", + "deleteTemplate": "{{name}} 삭제", + "editTemplate": "{{name}} 편집", + "expand": "펼치기", + "expandPrompt": "프롬프트를 전체 화면으로 확장", + "expandToFullscreen": "전체 화면으로 확장", + "promptOverride": "{{name}} 프롬프트 재정의 ({{key}})", + "promptOverrideFullscreen": "{{name}} 프롬프트 재정의 ({{key}}) - 전체 화면", + "templatePromptFullscreen": "템플릿 프롬프트 - 전체 화면", + "viewFullPromptFor": "{{name}}의 전체 프롬프트 보기" + }, + "badges": { + "builtin": "기본 제공", + "custom": "사용자 정의", + "customized": "사용자 정의됨", + "overridesBuiltin": "기본 제공 재정의" + }, + "confirmations": { + "deleteTemplate": "\"{{name}}\"을(를) 삭제하시겠습니까?" + }, + "descriptions": { + "assignmentNote": "역할 할당은 agentPrompts 설정에 저장됩니다. 사용자 정의 템플릿은 ID로 기본 제공 항목을 재정의합니다.", + "assignments": "에이전트 역할에 특정 템플릿을 할당합니다. 역할에 할당이 있으면 기본 제공 대신 해당 템플릿이 사용됩니다.", + "builtinTemplates": "이 템플릿은 Fusion에서 제공하며 수정할 수 없습니다.", + "customTemplates": "특정 역할에 대한 기본 제공 프롬프트를 재정의하는 사용자 정의 템플릿을 만듭니다.", + "overrides": "AI 에이전트 프롬프트의 특정 부분을 사용자 정의합니다. 편집 내용은 기본 제공 설정을 재정의합니다. 초기화 버튼으로 각 프롬프트의 원래 기본값을 복원할 수 있습니다." + }, + "editor": { + "editTemplate": "사용자 정의 템플릿 편집", + "newTemplate": "새 사용자 정의 템플릿" + }, + "emptyStates": { + "noCustomTemplates": "아직 사용자 정의 템플릿이 없습니다. 하나를 만들어 시작하세요." + }, + "errors": { + "idConflict": "템플릿 ID \"{{templateId}}\"이(가) 기본 제공 템플릿과 충돌합니다. 다른 이름을 사용해 주세요.", + "nameRequired": "템플릿 이름은 필수입니다" + }, + "hints": { + "customOverrideActive": "사용자 정의 재정의가 활성화되어 있습니다. 초기화를 클릭하면 기본값이 복원됩니다.", + "noOverrideSet": "재정의가 설정되지 않았습니다. 기본 제공 기본값 사용 중 ({{chars}}자)." + }, + "labels": { + "builtIn": "기본 제공", + "custom": "사용자 정의", + "description": "설명", + "name": "이름", + "note": "참고", + "overridesDefault": "기본값 재정의", + "prompt": "프롬프트", + "role": "역할" + }, + "options": { + "useDefault": "기본값 사용" + }, + "placeholders": { + "description": "이 템플릿에 대한 간략한 설명", + "prompt": "이 템플릿의 시스템 프롬프트를 입력하세요...", + "promptDefault": "기본값: {{preview}}", + "templateName": "예: My Custom Executor" + }, + "roles": { + "custom": "사용자 정의 에이전트", + "engineer": "엔지니어 에이전트", + "executor": "실행기 에이전트", + "merger": "병합기 에이전트", + "reviewer": "검토자 에이전트", + "scheduler": "스케줄러 에이전트", + "triage": "분류 에이전트" + }, + "sections": { + "builtinTemplates": "기본 제공 템플릿", + "customTemplates": "사용자 정의 템플릿" + }, + "tabs": { + "assignments": "할당", + "overrides": "재정의", + "templates": "템플릿" + }, + "titles": { + "delete": "삭제", + "edit": "편집", + "editPrompt": "프롬프트 편집", + "viewFullPrompt": "전체 프롬프트 보기" + } + }, + "agentProvisioning": { + "always": "항상 승인 필요", + "alwaysApproveDelete": "fn_agent_delete에 항상 승인 필요", + "alwaysDesc": "호출자가 신뢰할 수 있는 경우를 제외하고 모든 fn_agent_create/fn_agent_delete 요청에 승인이 필요합니다.", + "approvalMode": "승인 모드", + "helpText": "이 설정은 내구성 있는 프로비저닝 도구(fn_agent_create 및 fn_agent_delete)에만 적용됩니다. 일시적인 fn_spawn_agent 요청은 작업/에이전트 변경 승인 게이트(FN-3973)에서 처리됩니다.", + "never": "승인 불필요", + "neverDesc": "권한이 없는 호출자의 경우 승인 없이 프로비저닝을 허용합니다.", + "trustedAgentIds": "신뢰할 수 있는 에이전트 ID", + "trustedAgentIdsPlaceholder": "agent-abc123", + "trustedOnly": "신뢰할 수 있는 항목만", + "trustedOnlyDesc": "신뢰할 수 있는 역할/에이전트 ID는 승인을 우회하며, 다른 호출자는 승인이 필요합니다.", + "trustedRoles": "신뢰할 수 있는 역할", + "trustedRolesPlaceholder": "reviewer, ceo" + }, + "agents": { + "activate": "활성화", + "activeAgents": "활성 에이전트 ({{count}})", + "activePrefix": "활성: ", + "advancedSettingsDesc": "이 에이전트의 하위 수준 설정 옵션.", + "advancedSettingsTitle": "고급 설정", + "agent": "에이전트", + "agentControls": "에이전트 제어", + "agentLogs": "에이전트 로그", + "agentMail": "에이전트 메일", + "agentModelLabel": "에이전트 모델", + "agentPlural": "에이전트들", + "agentSingular": "에이전트", + "agentSoulLabel": "에이전트 소울", + "agentsFound": "{{count}}개 에이전트{{plural}} 찾음", + "agentsLabel": "에이전트", + "aiInterview": "AI 인터뷰", + "allChangesSaved": "모든 변경사항이 저장되었습니다", + "allTime": "전체 기간", + "allowParallelExecution": "병렬 실행 허용", + "allowParallelExecutionHint": "이 에이전트가 여러 하트비트를 동시에 실행하도록 허용합니다.", + "alreadyOnDefault": "이미 기본값입니다", + "applyPreset": "프리셋 적용", + "assignedSkills": "할당된 스킬", + "auto": "자동", + "autoClaimHint": "에이전트가 스킬에 맞는 작업을 자동으로 할당받습니다.", + "autoClaimRelevantTasks": "관련 작업 자동 할당", + "avatarLabel": "아바타", + "avatarRemoved": "아바타가 삭제되었습니다", + "avatarUploaded": "아바타가 업로드되었습니다", + "back": "뒤로", + "backToAgents": "에이전트 목록으로", + "backToInbox": "받은 편지함으로", + "backToOrgChart": "조직도로 돌아가기", + "backToOutbox": "보낸 편지함으로", + "boardView": "보드 보기", + "browseCatalog": "카탈로그 탐색", + "budgetExhaustedBody": "이 에이전트는 토큰 예산을 모두 소진하여 예산이 초기화될 때까지 실행되지 않습니다.", + "budgetExhaustedTitle": "예산 소진", + "budgetPeriodHint": "토큰 예산이 초기화되는 주기.", + "budgetPeriodLabel": "예산 주기", + "budgetResetFailed": "예산 초기화 실패", + "budgetResetSuccess": "예산이 성공적으로 초기화되었습니다", + "budgetSettingsDesc": "이 에이전트의 토큰 사용 한도 및 초기화 일정을 제어합니다.", + "budgetSettingsTitle": "예산 설정", + "budgetUsageDisplay": "{{used}} / {{limit}} 토큰 사용됨", + "builtInModel": "기본 제공 모델", + "bulkActionFailed": "일괄 작업 실패", + "bulkActions": "일괄 작업", + "bulkActionsLoadFailed": "일괄 에이전트 작업 불러오기 실패: {{error}}", + "bulkAgentActions": "에이전트 일괄 작업", + "bulkConfirmMessage": "{{count}}개 에이전트를 {{action}}하시겠습니까?", + "bulkNoEligible": "해당 에이전트 없음", + "bulkResult": "{{count}}개 에이전트 {{action}}됨", + "bulkResultWithFailures": "{{count}}개 에이전트 {{action}}됨, {{failed}}개 실패", + "bulkResult_one": "{{agentWord}} {{successCount}}개 {{action}}; {{skippedCount}}개 건너뜀", + "bulkResult_other": "{{agentWord}} {{successCount}}개 {{action}}; {{skippedCount}}개 건너뜀", + "bundleDescription": "이 에이전트의 코드 번들 관리 방식을 설정합니다.", + "bundleEntryFileHint": "관리되는 번들의 진입 파일.", + "bundleEntryFileLabel": "진입 파일", + "bundleExternal": "외부", + "bundleExternalHint": "외부에서 관리되는 번들 경로를 지정합니다.", + "bundleExternalPathHint": "외부 번들 파일의 절대 경로.", + "bundleExternalPathLabel": "외부 번들 경로", + "bundleExternalPathPlaceholder": "/path/to/bundle.js", + "bundleFilesHint": "이 에이전트 번들에 포함된 소스 파일.", + "bundleFilesLabel": "번들 파일", + "bundleManaged": "관리됨", + "bundleManagedHint": "Fusion이 번들을 자동으로 관리합니다.", + "bundleModeLabel": "번들 모드", + "bundleNone": "없음", + "bundleSelectMode": "번들 모드 선택", + "bundleTitle": "번들", + "cacheHitRatio": "캐시 적중률", + "cacheReadTokens": "캐시 읽기", + "cacheWriteTokens": "캐시 쓰기", + "cancel": "취소", + "cancelCustomInterval": "사용자 정의 간격 취소", + "center": "가운데", + "chainOfCommand": "명령 체계", + "change": "변경", + "changeRole": "클릭하여 역할 변경", + "chooseFile": "파일 선택", + "clearAgents": "에이전트 초기화", + "clearSkills": "스킬 초기화", + "clickToChangeRole": "클릭하여 역할 변경", + "close": "닫기", + "closeAriaLabel": "닫기", + "combinedTokens": "총 토큰", + "company": "회사", + "configDescription": "이 에이전트의 신원, 모델 및 동작 설정을 구성합니다.", + "configTitle": "구성", + "connecting": "연결 중...", + "connectingStream": "로그 스트림에 연결 중...", + "connectionLost": "연결이 끊어졌습니다. 재시도 중...", + "context": "컨텍스트", + "controls": "제어", + "coordinationOnlyAgent": "조정 전용 에이전트", + "coordinationOnlyHint": "이 에이전트는 작업을 조정하지만 직접 실행하지는 않습니다.", + "copyId": "ID 복사", + "create": "만들기", + "createAgent": "에이전트 만들기", + "createError": "에이전트 만들기 실패: {{error}}", + "createSuccess": "에이전트 \"{{name}}\"이(가) 생성되었습니다", + "created": "에이전트 \"{{name}}\"이(가) 생성되었습니다", + "creating": "만드는 중...", + "creatingAgent": "에이전트 만드는 중...", + "currentAgent": "현재 에이전트", + "currentInput": "현재 입력: {{method}}", + "currentPath": "현재 경로", + "currentUsage": "현재 사용량", + "currentWork": "현재 작업", + "customHeartbeatAria": "{{name}}의 사용자 정의 하트비트 간격 (분)", + "customHeartbeatOption": "사용자 정의...", + "customizeForAgent": "이 에이전트에 맞게 사용자 정의", + "daily": "매일", + "dangerZone": "위험 구역", + "dangerZoneDesc": "되돌릴 수 없는 작업 — 주의하여 진행하세요.", + "delete": "삭제", + "deleteAgent": "에이전트 삭제", + "deleteConfirm": "이 에이전트를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", + "deleteError": "에이전트 삭제 실패: {{error}}", + "deleteFailed": "에이전트 삭제 실패", + "deleteMessage": "에이전트 \"{{name}}\"을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", + "deleteSuccess": "에이전트 \"{{name}}\"이(가) 삭제되었습니다", + "deleteTitle": "에이전트 삭제", + "deleted": "에이전트가 삭제되었습니다", + "deletionNotAvailable": "에이전트가 실행 중일 때는 삭제할 수 없습니다.", + "deletionPermanent": "에이전트와 모든 관련 데이터가 영구적으로 삭제됩니다.", + "details": "세부 정보", + "dialogAriaLabel": "새 에이전트 만들기", + "dialogTitle": "새 에이전트", + "employeesTitle": "직원", + "emptySubtitle": "에이전트를 만들어 시작하세요", + "emptyTitle": "에이전트를 찾을 수 없습니다", + "errors": "오류", + "executionPrompt": "실행 프롬프트", + "executionPromptNotCaptured": "실행 프롬프트가 캡처되지 않았습니다", + "failedToImport": "에이전트 가져오기 실패", + "failedToLoadCompanies": "회사 목록 불러오기 실패", + "failedToParseDirectory": "선택한 디렉토리에서 AGENTS.md 파일 파싱 실패", + "failedToParseManifest": "매니페스트 파싱 실패", + "failedToReadFile": "파일 읽기 실패", + "fieldHeartbeatPath": "하트비트 프로시저 경로", + "fieldIcon": "아이콘", + "fieldInstructionsPath": "지침 경로", + "fieldInstructionsText": "인라인 지침", + "fieldMaxTurns": "최대 턴 수", + "fieldMemory": "에이전트 메모리", + "fieldName": "이름", + "fieldReportsTo": "보고 대상", + "fieldRole": "역할", + "fieldSkills": "스킬", + "fieldSoul": "소울", + "fieldThinking": "사고", + "fieldThinkingLevel": "사고 수준", + "fieldTitle": "직함", + "fileContentHint": "파일 내용을 직접 편집합니다.", + "fileContentLabel": "파일 내용", + "fileContentPlaceholder": "파일 내용이 여기에 표시됩니다...", + "fileHint": ".md 및 .txt 파일 지원", + "fileLoadError": "파일 불러오기 실패", + "fileSaved": "파일이 저장되었습니다", + "filterAll": "모든 상태", + "filterByState": "상태로 에이전트 필터링", + "fit": "맞추기", + "fixValidationErrors": "저장하기 전에 유효성 오류를 수정하세요", + "fixValidationToSave": "저장하려면 유효성 오류를 수정하세요", + "from": "보낸 사람", + "generateHint": "에이전트의 역할을 설명하면 AI가 사양을 생성합니다", + "generateWithAI": "AI로 생성", + "generation": { + "collapse": "접기", + "expand": "펼치기", + "generate": "생성", + "info": "에이전트의 역할을 설명하면 AI가 시스템 프롬프트, 설정 제안 등을 포함한 완전한 사양을 생성합니다.", + "loading": "에이전트 사양 생성 중…", + "previewDescription": "설명", + "previewMaxTurns": "최대 턴", + "previewRole": "역할", + "previewThinking": "사고", + "previewTitle": "제목", + "rateLimited": "요청이 너무 많습니다. 잠시 후 다시 시도해 주세요.", + "regenerate": "재생성", + "roleHint": "에이전트가 수행할 작업을 설명하세요", + "roleLabel": "역할 설명", + "rolePlaceholder": "예: \"React 접근성을 전문으로 하는 시니어 프론트엔드 코드 리뷰어\"", + "systemPrompt": "시스템 프롬프트", + "title": "에이전트 생성", + "useThis": "이것 사용" + }, + "healthError": "오류", + "heartbeat": "하트비트:", + "heartbeatAndHealth": "하트비트 및 상태", + "heartbeatCustom": "커스텀 하트비트 실행", + "heartbeatEnabled": "하트비트 활성화", + "heartbeatEnabledHint": "이 에이전트를 예약된 하트비트로 실행할 수 있도록 허용합니다.", + "heartbeatEnterMinutes": "하트비트 간격을 분 단위로 입력해 주세요", + "heartbeatFileEditMode": "편집 모드", + "heartbeatFileEditorHint": "하트비트 절차 파일을 직접 편집합니다.", + "heartbeatFileEmptyPreview": "빈 파일입니다 — 편집 모드로 전환하여 내용을 추가하세요.", + "heartbeatFileLoadFailed": "하트비트 파일을 불러오지 못했습니다", + "heartbeatFilePlaceholder": "하트비트 절차 내용...", + "heartbeatFilePreviewMode": "미리보기 모드", + "heartbeatFileSaveFailed": "하트비트 파일을 저장하지 못했습니다", + "heartbeatFileSaved": "하트비트 파일이 저장되었습니다", + "heartbeatIntervalHint": "하트비트가 실행되는 빈도를 초 단위로 설정합니다.", + "heartbeatIntervalLabel": "하트비트 간격 (초)", + "heartbeatIntervalUpdateFailed": "하트비트 간격을 업데이트하지 못했습니다: {{error}}", + "heartbeatIntervalUpdated": "{{name}}의 하트비트 간격이 {{interval}}(으)로 업데이트되었습니다", + "heartbeatMustBeNumber": "하트비트 간격은 유효한 숫자여야 합니다", + "heartbeatMustBePositive": "하트비트 간격은 0보다 커야 합니다", + "heartbeatOverdue": "하트비트 {{elapsed}} 지연", + "heartbeatPathHint": "에이전트의 하트비트 절차 경로입니다. 일반적으로 .fusion/agents/ceo-agent2736/HEARTBEAT.md입니다. 레거시 ID 전용 기본 경로도 지원됩니다.", + "heartbeatPathPlaceholder": "예: .fusion/agents/ceo-agent2736/HEARTBEAT.md", + "heartbeatProcedureDesc": "하트비트 절차는 예약된 각 실행에서 이 에이전트가 수행할 작업을 안내합니다.", + "heartbeatProcedureDescSuffix": "여기서 직접 커스텀하거나 기본값으로 유지할 수 있습니다.", + "heartbeatProcedureFileLabel": "하트비트 절차 파일", + "heartbeatProcedureFileReady": "하트비트 절차 파일이 준비되었습니다", + "heartbeatProcedurePathSet": "하트비트 절차 경로가 설정되었습니다", + "heartbeatProcedureTitle": "하트비트 절차", + "heartbeatPromptTemplate": "하트비트 프롬프트 템플릿", + "heartbeatRunFailed": "하트비트 실행을 시작하지 못했습니다: {{error}}", + "heartbeatRunStarted": "{{name}}의 하트비트 실행이 시작되었습니다", + "heartbeatRunsWillAppear": "하트비트 실행 내역이 여기에 표시됩니다.", + "heartbeatScopeDiscipline": "하트비트 범위 규율", + "heartbeatSettingsDesc": "이 에이전트 하트비트의 예약 및 동작을 제어합니다.", + "heartbeatSettingsTitle": "하트비트 설정", + "heartbeatSpeed": "하트비트 속도", + "heartbeatSpeedHint": "모든 에이전트 하트비트 간격을 조정합니다. ×0.5 = 2배 빠름, ×2.0 = 2배 느림. 기본값: ×1.0", + "heartbeatSpeedPreset": "하트비트 속도 프리셋", + "heartbeatSpeedSaveFailed": "하트비트 배율을 저장하지 못했습니다: {{error}}", + "heartbeatSpeedSet": "하트비트 속도가 ×{{value}}로 설정되었습니다", + "heartbeatStartFailed": "하트비트를 시작하지 못했습니다", + "heartbeatStarted": "하트비트가 시작되었습니다", + "heartbeatTimeoutHint": "하트비트 실행이 종료되기 전까지 허용되는 최대 시간(초)입니다.", + "heartbeatTimeoutLabel": "하트비트 타임아웃 (초)", + "heartbeatUpgradeFailed": "하트비트 절차를 업그레이드하지 못했습니다", + "iconLabel": "아이콘", + "iconPlaceholder": "예: 🤖", + "idCopied": "ID가 클립보드에 복사되었습니다", + "idleNoTask": "대기 중 — 할당된 작업 없음", + "immediate": "즉시", + "import": "가져오기", + "importAgents": "에이전트 가져오기", + "importButton": "{{label}} 가져오기", + "importComplete": "가져오기 완료", + "importDescription": "Agent Companies 패키지에서 에이전트를 가져옵니다. companies.sh 카탈로그에서 공개된 에이전트를 찾아보고, AGENTS.md 파일을 업로드하거나, 디렉터리를 선택하거나, 매니페스트 내용을 붙여넣으세요.", + "importingAgents": "에이전트 {{count}}개{{plural}} 가져오는 중...", + "importingAgentsAndSkills": "에이전트 {{agentCount}}개{{agentPlural}}와 스킬 {{skillCount}}개{{skillPlural}} 가져오는 중...", + "importingSkills": "스킬 {{count}}개{{plural}} 가져오는 중...", + "inProgress": "진행 중", + "inbox": "받은 편지함", + "inheritProjectDefault": "프로젝트 기본값 상속", + "inheritingProjectDefault": "프로젝트 기본값을 상속 중", + "inlineMemoryFieldHint": "이 메모리는 에이전트 컨텍스트에 직접 포함됩니다.", + "inlineMemoryHint": "매 하트비트마다 주입되는 단기 메모리입니다.", + "inlineMemoryLabel": "인라인 메모리", + "input": "입력", + "inputTokens": "입력", + "installs": "설치", + "instructionsDescription": "이 에이전트의 동작을 안내하는 영구 지침입니다.", + "instructionsEmptyPreview": "아직 지침이 없습니다 — 편집 모드로 전환하여 추가하세요.", + "instructionsFileEditorDesc": "연결된 지침 파일을 직접 편집합니다.", + "instructionsFileEditorTitle": "지침 파일", + "instructionsFileSaveFailed": "지침 파일을 저장하지 못했습니다", + "instructionsFileSaved": "지침 파일이 저장되었습니다", + "instructionsHint": "이 지침은 에이전트가 받는 모든 프롬프트 앞에 추가됩니다.", + "instructionsPathHint": "이 에이전트의 지침이 포함된 마크다운 파일 경로입니다.", + "instructionsPathLabel": "지침 파일 경로", + "instructionsPathPlaceholder": "/path/to/instructions.md", + "instructionsPlaceholder": "이 에이전트의 지침을 입력하세요...", + "instructionsSaveFailed": "지침을 저장하지 못했습니다", + "instructionsSaved": "지침이 저장되었습니다", + "instructionsTextPlaceholder": "커스텀 동작 지침을 추가하세요...", + "instructionsTitle": "지침", + "intentPrompt": "이 에이전트가 무엇을 수행하길 원하시나요?", + "interval": "간격", + "interviewDraftApplied": "인터뷰 초안이 적용되었습니다", + "last24h": "최근 24시간", + "last7d": "최근 7일", + "lastHeartbeat": "마지막 하트비트", + "latestRunLabel": "최신 실행", + "layoutAuto": "자동", + "layoutAutoAria": "자동 레이아웃", + "layoutHorizontal": "가로", + "layoutHorizontalAria": "가로 레이아웃", + "layoutVertical": "세로", + "layoutVerticalAria": "세로 레이아웃", + "listView": "목록 보기", + "lite": "라이트", + "live": "라이브", + "liveLogs": "실시간 로그", + "liveRun": "실시간 실행", + "loadError": "에이전트를 불러오지 못했습니다: {{error}}", + "loadTasksFailed": "작업을 불러오지 못했습니다", + "loading": "에이전트 불러오는 중...", + "loadingAgents": "에이전트 불러오는 중...", + "loadingCompanies": "회사 목록 불러오는 중…", + "loadingDetails": "실행 세부 정보 불러오는 중...", + "loadingEligibility": "적격성 확인 중…", + "loadingEligible": "적격 에이전트 불러오는 중...", + "loadingEmployees": "직원 목록 불러오는 중...", + "loadingFile": "파일 불러오는 중...", + "loadingFileContent": "파일 내용 불러오는 중...", + "loadingLogs": "로그 불러오는 중...", + "loadingMailbox": "메일함 불러오는 중...", + "loadingMemoryFiles": "메모리 파일 불러오는 중...", + "loadingModels": "모델 불러오는 중…", + "loadingOrgChart": "조직도 불러오는 중...", + "loadingReportingChain": "보고 체계 불러오는 중...", + "loadingRuns": "실행 내역 불러오는 중...", + "loadingRuntimes": "런타임 불러오는 중...", + "loadingSkillContent": "스킬 내용 불러오는 중...", + "loadingTasks": "작업 불러오는 중...", + "logEntries": "로그 항목", + "logsWillAppear": "에이전트가 실행되면 로그가 여기에 표시됩니다.", + "logsWillAppearActive": "로그가 여기에 표시됩니다.", + "mailFrom": "보낸 사람", + "mailSent": "보낸 날짜", + "mailTo": "받는 사람", + "mailToLabel": "받는 사람", + "mailType": "유형", + "mailboxLoadFailed": "메일함을 불러오지 못했습니다", + "manifestContent": "매니페스트 내용", + "manifestPlaceholder": "---\nname: CEO\ntitle: Chief Executive Officer\nreportsTo: null\nskills:\n - review\n---\nAgent instructions go here...", + "maxConcurrentRunsHint": "동시에 실행할 수 있는 최대 하트비트 수입니다.", + "maxConcurrentRunsLabel": "최대 동시 실행 수", + "maxTurns": "최대 턴", + "memoryDescription": "이 에이전트의 장기 및 작업 메모리를 관리합니다.", + "memoryEmptyPreview": "아직 인라인 메모리가 없습니다 — 편집 모드로 전환하여 추가하세요.", + "memoryFileEditMode": "편집 모드", + "memoryFileEmptyPreview": "빈 파일입니다 — 편집 모드로 전환하여 내용을 추가하세요.", + "memoryFileLoadFailed": "메모리 파일을 불러오지 못했습니다", + "memoryFileMeta": "{{size}}바이트 · {{date}} 업데이트됨", + "memoryFilePlaceholder": "메모리 파일 내용...", + "memoryFilePreviewMode": "미리보기 모드", + "memoryFileSaveFailed": "메모리 파일을 저장하지 못했습니다", + "memoryFileSaved": "메모리 파일이 저장되었습니다", + "memoryFilesHint": "에이전트의 메모리 레이어에 저장된 파일입니다.", + "memoryFilesHintSuffix": "파일을 선택하여 내용을 보거나 편집하세요.", + "memoryFilesLabel": "메모리 파일", + "memoryFilesLoadFailed": "메모리 파일을 불러오지 못했습니다", + "memoryLayerDaily": "일간", + "memoryLayerDailyDesc": "매일 초기화되는 단기 메모입니다.", + "memoryLayerDreams": "드림", + "memoryLayerDreamsDesc": "최근 활동에서 합성된 성찰 내용입니다.", + "memoryLayerLongTerm": "장기", + "memoryLayerLongTermDesc": "세션 간에 유지되는 영구적인 사실과 지식입니다.", + "memoryPlaceholder": "이 에이전트의 인라인 메모리를 입력하세요...", + "memoryReadOnly": "읽기 전용", + "memorySaveFailed": "메모리를 저장하지 못했습니다", + "memorySaved": "메모리가 저장되었습니다", + "memoryTitle": "메모리", + "memoryTooLong": "메모리 내용이 너무 깁니다", + "messageResponseModeHint": "이 에이전트가 수신 메시지에 응답하는 시점입니다.", + "messageResponseModeLabel": "메시지 응답 모드", + "minutesUnit": "분", + "modalTitle": "에이전트", + "model": "모델", + "modelDefault": "기본값", + "modelDescription": "이 에이전트가 추론에 사용할 AI 모델을 선택합니다.", + "modelPlaceholder": "모델 선택…", + "modelTitle": "모델", + "monthly": "월간", + "name": "이름", + "nameLabel": "이름", + "namePlaceholder": "에이전트 이름...", + "never": "없음", + "newAgent": "새 에이전트", + "next": "다음", + "nextExpected": "다음 예정", + "nextHeartbeat": "다음 하트비트까지 {{elapsed}}", + "noActiveAssignment": "활성 할당 없음", + "noActiveEligible": "일시정지 가능한 활성 에이전트 없음", + "noActivityYet": "아직 활동 없음", + "noAgentsFound": "매니페스트에서 에이전트를 찾을 수 없습니다.", + "noAgentsMdFiles": "선택한 디렉터리에 AGENTS.md 파일이 없습니다", + "noAgentsToPause": "일시정지 가능한 에이전트 없음", + "noAgentsToPauseHint": "일시정지할 활성 또는 실행 중인 프로젝트 에이전트가 없습니다", + "noAgentsToResume": "재개 가능한 에이전트 없음", + "noAgentsToResumeHint": "재개할 일시정지된 프로젝트 에이전트가 없습니다", + "noCompaniesAvailable": "사용 가능한 회사 없음", + "noCompaniesMatch": "검색 결과와 일치하는 회사가 없습니다", + "noEmployees": "직원 없음", + "noEmployeesDesc": "이 에이전트에는 직속 부하 직원이 없습니다.", + "noInboxMessages": "받은 편지함에 메시지 없음", + "noInstructionsPath": "지침 파일 경로가 설정되지 않았습니다", + "noLimit": "제한 없음", + "noLogEntriesYet": "아직 로그 항목 없음", + "noLogsForRun": "이 실행에 대한 로그가 없습니다", + "noManager": "관리자 없음", + "noMemoryFiles": "메모리 파일 없음", + "noOutboxMessages": "보낸 편지함에 메시지 없음", + "noOutputCaptured": "캡처된 출력 없음", + "noPausedEligible": "재개 가능한 일시정지된 에이전트 없음", + "noReportingChain": "보고 체계 없음", + "noReset": "초기화 없음", + "noRunsYet": "아직 실행 내역 없음", + "noRuntimes": "사용 가능한 런타임 없음", + "noSkillContent": "사용 가능한 스킬 내용 없음", + "noSkillMd": "스킬 문서를 찾을 수 없습니다", + "noSkillsInPackage": "패키지에 스킬 없음", + "noTasksAssigned": "할당된 작업 없음", + "noTokenUsageYet": "아직 토큰 사용 내역이 없습니다. 에이전트가 실행되면 토큰 합계가 여기에 표시됩니다.", + "noneUsingBuiltIn": "없음 (기본 내장 사용)", + "notScheduled": "예약되지 않음", + "notSelected": "선택되지 않음", + "off": "끄기", + "onHeartbeat": "하트비트 시", + "onboarding": { + "applyDraftAgent": "에이전트 양식에 초안 적용", + "applyDraftSettings": "설정 양식에 초안 적용", + "continue": "계속", + "dialogLabel": "AI 인터뷰", + "draftIntro": "생성된 초안을 검토하세요. 확인하기 전까지는 적용되지 않습니다.", + "draftReady": "검토할 초안이 준비되었습니다", + "fieldAgentMemory": "에이전트 메모리", + "fieldHeartbeatEnabled": "하트비트 활성화", + "fieldHeartbeatInterval": "하트비트 간격", + "fieldHeartbeatPath": "하트비트 절차 경로", + "fieldIcon": "아이콘", + "fieldInlineInstructions": "인라인 지침", + "fieldMaxTurns": "최대 턴", + "fieldModelHint": "모델 힌트", + "fieldName": "이름", + "fieldPatternAgent": "패턴 에이전트", + "fieldReportsTo": "보고 대상", + "fieldRole": "역할", + "fieldRuntimeHint": "런타임 힌트", + "fieldSkills": "스킬", + "fieldSoul": "소울", + "fieldTemplate": "템플릿", + "fieldThinkingLevel": "사고 수준", + "fieldTitle": "제목", + "intentLabelCreate": "이 새 에이전트가 담당할 업무는 무엇인가요?", + "intentLabelEdit": "이 에이전트가 변경하거나 개선해야 할 사항은 무엇인가요?", + "no": "아니요", + "notSet": "설정되지 않음", + "sectionConfiguration": "구성", + "sectionIdentity": "신원", + "sectionRationale": "근거", + "sectionRuntimeHints": "런타임 힌트", + "startInterview": "인터뷰 시작", + "startOnboarding": "온보딩 시작", + "thinking": "생각 중...", + "title": "AI 인터뷰", + "updatedDraftReady": "업데이트된 초안이 검토 준비되었습니다", + "yes": "예" + }, + "openDetails": "{{name}} 세부 정보 열기", + "optional": "(선택 사항)", + "orPasteManifest": "또는 매니페스트 내용 붙여넣기", + "orgChartCanvas": "조직도 캔버스", + "orgChartCenter": "조직도 중앙 정렬", + "orgChartEmployees": "{{name}} 직원", + "orgChartFit": "조직도 맞춤", + "orgChartLoadFailed": "조직도를 불러오지 못했습니다: {{error}}", + "orgChartView": "조직도 보기", + "orgChartZoomIn": "조직도 확대", + "orgChartZoomOut": "조직도 축소", + "outbox": "보낸 편지함", + "output": "출력", + "outputTokens": "출력", + "overview": "개요", + "parsing": "파싱 중…", + "pause": "일시정지", + "pauseAction": "일시정지", + "pauseAgentsFailed": "에이전트를 일시정지하지 못했습니다: {{error}}", + "pauseAll": "모두 일시정지", + "pauseAllAgents": "모든 에이전트 일시정지", + "pauseAllTitle": "모든 에이전트 일시정지", + "pauseCountHint": "활성 에이전트 {{count}}개가 일시정지됩니다", + "pauseCountHint_one": "활성/실행 중인 에이전트 {{count}}개 일시정지", + "pauseCountHint_other": "활성/실행 중인 에이전트 {{count}}개 일시정지", + "pausedPast": "일시정지됨", + "pendingApprovals": "승인 대기 중", + "pendingApprovalsCount": "{{count}}건 대기 중", + "performance": { + "avgDuration": "평균 소요 시간", + "noData": "아직 성능 데이터 없음", + "reflections": "성찰", + "successRate": "성공률", + "tasksCompleted": "완료된 작업", + "tasksFailed": "실패한 작업" + }, + "permissionPolicyFailed": "권한 정책을 업데이트하지 못했습니다", + "permissionPolicyUpdated": "권한 정책이 업데이트되었습니다", + "permissionsDescription": "이 에이전트가 수행할 수 있는 작업을 제어합니다.", + "permissionsTitle": "권한", + "pluginRuntime": "플러그인 런타임", + "presetsHeader": "역할, 신원, 소울 및 지침을 미리 채울 페르소나 프리셋을 선택하세요", + "preview": "미리보기", + "promptSize": "프롬프트 크기", + "promptSizeChart": "프롬프트 크기 차트", + "ratings": { + "addError": "평가를 추가하지 못했습니다: {{error}}", + "addRating": "평가 추가", + "addSuccess": "평가가 추가되었습니다", + "categoryAverages": "카테고리 평균", + "categoryCommunication": "커뮤니케이션", + "categoryOther": "기타", + "categoryQuality": "품질", + "categoryReliability": "신뢰도", + "categorySelect": "카테고리 선택...", + "categorySpeed": "속도", + "commentPlaceholder": "선택적 댓글...", + "count": "평가 {{count}}개", + "deleteError": "평가를 삭제하지 못했습니다: {{error}}", + "deleteRating": "평가 삭제", + "deleteSuccess": "평가가 삭제되었습니다", + "historyTitle": "평가 내역", + "loadError": "평가를 불러오지 못했습니다: {{error}}", + "loading": "평가 불러오는 중...", + "noRatings": "아직 평가 없음", + "starCount": "별 {{count}}개", + "submitRating": "평가 제출", + "submitting": "제출 중...", + "title": "사용자 평가", + "trendDeclining": "↓ 하락 중", + "trendImproving": "↑ 개선 중", + "trendInsufficient": "데이터 부족", + "trendStable": "→ 안정" + }, + "recentRuns": "최근 실행", + "reflections": { + "agentNotFound": "이 에이전트는 더 이상 사용할 수 없습니다. 삭제되었을 수 있습니다.", + "generateError": "성찰을 생성하지 못했습니다: {{error}}", + "generateSuccess": "성찰이 성공적으로 생성되었습니다", + "getStarted": "성찰을 트리거하여 시작하세요", + "historyTitle": "성찰 내역", + "insights": "인사이트", + "insufficientHistory": "성찰을 생성하기에 충분한 히스토리가 없습니다", + "loadError": "성찰을 불러오지 못했습니다: {{error}}", + "loading": "성찰 불러오는 중...", + "loadingEvaluation": "평가 불러오는 중...", + "metricAvgDuration": "평균 소요 시간:", + "metricErrors": "오류:", + "metricFailed": "실패:", + "metricTasks": "작업:", + "metrics": "지표", + "noReflections": "아직 성찰 없음", + "reflectNow": "지금 성찰", + "reflectNowTitle": "수동 성찰 생성", + "reflecting": "성찰 중...", + "sectionTitle": "성능, 성찰 및 평가", + "suggestedImprovements": "개선 제안", + "triggerManual": "수동", + "triggerPeriodic": "주기적", + "triggerPostTask": "작업 후", + "triggerUserRequested": "사용자 요청" + }, + "refresh": "새로 고침", + "removeAvatar": "아바타 제거", + "replyingTo": "회신 대상", + "reportsToLabel": "보고 대상", + "resetBudgetUsage": "예산 사용량 초기화", + "resetDayHint": "예산이 초기화되는 요일 또는 날짜입니다.", + "resetDayLabel": "초기화 날짜", + "resetDayMonthly": "날짜 (1–28)", + "resetDayWeekly": "요일 (0=일요일)", + "resetting": "초기화 중...", + "result": "결과", + "resultCreated": "{{count}}개 생성됨", + "resultErrors": "{{count}}개 오류{{plural}}", + "resultSkipped": "{{count}}개 건너뜀 (이미 존재함)", + "resume": "재개", + "resumeAction": "재개", + "resumeAgentsFailed": "에이전트를 재개하지 못했습니다: {{error}}", + "resumeAll": "모두 재개", + "resumeAllAgents": "모든 에이전트 재개", + "resumeAllTitle": "모든 에이전트 재개", + "resumeCountHint": "일시정지된 에이전트 {{count}}개가 재개됩니다", + "resumeCountHint_one": "일시정지된 에이전트 {{count}}개 재개", + "resumeCountHint_other": "일시정지된 에이전트 {{count}}개 재개", + "resumedPast": "재개됨", + "retry": "재시도", + "reviewConfiguration": "생성된 구성 검토", + "reviewHint": "에이전트를 생성하기 전에 구성을 검토하세요.", + "role": "역할", + "roleCustom": "커스텀", + "roleEngineer": "엔지니어", + "roleExecutor": "실행자", + "roleLabel": "역할", + "roleLabel2": "역할", + "roleMerger": "병합자", + "roleReviewer": "검토자", + "roleScheduler": "스케줄러", + "roleTriage": "트리아지", + "roleUpdateError": "역할 업데이트 실패: {{error}}", + "roleUpdateFailed": "역할 업데이트 실패: {{error}}", + "roleUpdateSuccess": "에이전트 역할이 {{role}}(으)로 업데이트되었습니다", + "roleUpdated": "에이전트 역할이 {{role}}(으)로 업데이트되었습니다", + "runAriaLabel": "실행 {{id}}", + "runDetailsFailed": "실행 세부 정보를 불러오지 못했습니다", + "runMissedHeartbeat": "하트비트 누락", + "runMissedHeartbeatHint": "에이전트가 예약된 하트비트를 놓치면 실행을 트리거합니다.", + "runNow": "지금 실행", + "runNowAria": "{{name}} 지금 실행", + "runNowFor": "{{name}} 지금 실행", + "runStarted": "실행이 시작되었습니다", + "runStopped": "실행이 중지되었습니다", + "running": "실행 중", + "runs": { + "empty": "실행 기록 없음", + "loading": "실행 목록 로드 중…", + "stop": "중지", + "stopAriaLabel": "실행 중지", + "stopMessage": "이 실행을 중지하시겠습니까?", + "stopTitle": "실행 중지" + }, + "runsCount": "{{count}}회 실행", + "runsSuccessRate": "성공률 {{rate}}%", + "runsToday": "오늘 실행 횟수", + "runtime": "런타임", + "runtimeEmpty": "사용 가능한 플러그인 런타임 없음", + "runtimeLabel": "런타임", + "runtimeMode": "런타임 모드", + "runtimePlaceholder": "플러그인 런타임 선택…", + "runtimeSource": "런타임 소스", + "runtimeSourceBuiltIn": "내장 모델", + "runtimeSourcePlugin": "플러그인 런타임", + "save": "저장", + "saveBeforeSwitch": "파일 전환 전 변경 사항을 저장하세요", + "saveCustomInterval": "사용자 지정 간격 저장", + "saveFailed": "저장 실패", + "saveFile": "파일 저장", + "saveHeartbeatFile": "하트비트 파일 저장", + "saveInstructions": "지시 사항 저장", + "saveMemory": "메모리 저장", + "saveMemoryFile": "메모리 파일 저장", + "saveSettings": "설정 저장", + "saveSoul": "소울 저장", + "saving": "저장 중…", + "savingChanges": "변경 사항 저장 중...", + "savingFile": "파일 저장 중...", + "scopeDisciplineHint": "에이전트가 하트비트 실행 중 범위를 얼마나 엄격하게 따를지 제어합니다.", + "searchCompanies": "회사 검색…", + "sectionConfiguration": "설정", + "sectionIdentity": "ID", + "sectionRuntime": "런타임", + "selectAgent": "에이전트 {{name}} 선택", + "selectAgentHint": "사이드바에서 에이전트를 선택하여 세부 정보를 확인하세요", + "selectAllAgents": "모든 에이전트 선택", + "selectAllSkills": "모든 스킬 선택", + "selectAnAgent": "에이전트 선택", + "selectDirectory": "디렉터리 선택", + "selectMemoryFile": "메모리 파일 선택", + "selectModel": "모델", + "selectModelPlaceholder": "모델 선택…", + "selectRuntime": "런타임 선택", + "selectSkill": "스킬 {{name}} 선택", + "selected": "선택됨:", + "selectedAgentLabel": "에이전트 {{count}}개", + "selectedSkillLabel": "스킬 {{count}}개", + "setHeartbeatAria": "{{name}}의 하트비트 간격 설정", + "settingsSaveFailed": "설정 저장 실패", + "settingsSaved": "설정이 저장되었습니다", + "setupModeAriaLabel": "에이전트 설정 모드", + "showSystemAgents": "시스템 에이전트 표시", + "skills": "스킬", + "skillsDescription": "이 에이전트에서 사용할 수 있는 스킬을 관리합니다.", + "skillsErrors": "스킬 {{count}}개 오류{{pluralError}}", + "skillsFound": "스킬 {{count}}개 발견", + "skillsHint": "이 에이전트에 할당할 선택적 스킬", + "skillsImported": "스킬 {{count}}개 가져옴", + "skillsNone": "할당된 스킬 없음", + "skillsSelected": "스킬 {{count}}개 선택됨", + "skillsSkipped": "스킬 {{count}}개 건너뜀 (이미 존재함)", + "skillsTitle": "스킬", + "skipHeartbeatWhenIdle": "유휴 상태일 때 하트비트 건너뜀", + "skipHeartbeatWhenIdleHint": "에이전트가 할 일이 없을 때 하트비트 실행을 방지합니다.", + "soulDescription": "소울은 이 에이전트의 성격, 가치관, 커뮤니케이션 스타일을 정의합니다.", + "soulEmptyPreview": "아직 소울이 없습니다 — 편집 모드로 전환하여 추가하세요.", + "soulHint": "이 에이전트가 누구인지 설명하세요 — 성격, 어조, 가치관.", + "soulPlaceholder": "이 에이전트의 소울을 설명하세요...", + "soulSaveFailed": "소울 저장 실패", + "soulSaved": "소울이 저장되었습니다", + "soulTitle": "소울", + "soulTooLong": "소울 내용이 너무 깁니다", + "start": "시작", + "startOnboarding": "온보딩 시작", + "starting": "시작 중...", + "stateActive": "활성", + "stateAll": "모든 상태", + "stateError": "오류", + "stateIdle": "유휴", + "statePaused": "일시 정지", + "stateRunning": "실행 중", + "stateUpdateError": "상태 업데이트 실패: {{error}}", + "stateUpdateFailed": "에이전트 상태 업데이트 실패", + "stateUpdateSuccess": "에이전트 상태가 {{state}}(으)로 업데이트되었습니다", + "stateUpdated": "에이전트 상태가 업데이트되었습니다", + "status": "상태", + "statusCount": "{{activeCount}}개 활성 · {{runningCount}}개 실행 중", + "step": "단계 {{number}}{{total}}: {{name}}", + "stepAriaLabel": "단계 {{step}}", + "stop": "중지", + "stopActiveRun": "활성 실행 중지", + "stopActiveRunFor": "{{name}}의 활성 실행 중지", + "stopRun": "실행 중지", + "stopRunConfirm": "이 실행을 중지하시겠습니까?", + "stopRunFailed": "실행 중지 실패", + "stopRunTitle": "실행 중지", + "strict": "엄격", + "successRate": "성공률", + "systemDefault": "시스템 기본값", + "systemDefaultOnHeartbeat": "시스템 기본값 (하트비트 시)", + "systemPrompt": "시스템 프롬프트", + "systemPromptNotCaptured": "시스템 프롬프트가 캡처되지 않았습니다", + "tabConfig": "설정", + "tabCustom": "사용자 지정 에이전트", + "tabDashboard": "대시보드", + "tabEmployees": "직원", + "tabInstructions": "지시 사항", + "tabLogs": "로그", + "tabMail": "메일", + "tabMemory": "메모리", + "tabPresets": "프리셋 페르소나", + "tabReflections": "회고", + "tabRuns": "실행", + "tabSoul": "소울", + "tabTasks": "작업", + "taskUpdated": "작업이 업데이트되었습니다", + "templateCompact": "간결", + "templateDefault": "기본", + "thinkingHigh": "높음", + "thinkingLevel": "사고 수준", + "thinkingLow": "낮음", + "thinkingMedium": "보통", + "thinkingMinimal": "최소", + "thinkingOff": "끄기", + "throughput": "처리량", + "time": { + "daysAgo": "{{count}}일 전", + "hoursAgo": "{{count}}시간 전", + "inAMoment": "잠시 후", + "inDays": "{{count}}일 후", + "inHours": "{{count}}시간 후", + "inMinutes": "{{count}}분 후", + "justNow": "방금", + "minutesAgo": "{{count}}분 전" + }, + "title": "에이전트", + "titleLabel": "직함", + "titlePlaceholder": "예) 시니어 엔지니어", + "tokenBudgetHint": "이 에이전트가 예산 기간당 사용할 수 있는 최대 토큰 수입니다.", + "tokenBudgetLabel": "토큰 예산", + "tokenStatistics": "에이전트 토큰 사용 통계", + "tokenUsage": "토큰 사용량", + "tokenUsageByAgent": "에이전트별 토큰 사용량", + "tokenUsageTotals": "총 토큰 사용량", + "total": "합계", + "totalRuns": "총 실행 횟수", + "unknownManager": "알 수 없는 관리자", + "unreadMessage": "읽지 않음", + "upgradeHint": "다음에서 업그레이드", + "upgradeHintSuffix": "최신 기본값으로.", + "upgradeHintTo": "으로", + "upgradeToDefault": "기본값으로 업그레이드", + "upgradeToDefaultAriaLabel": "하트비트 절차를 기본값으로 업그레이드", + "upgrading": "업그레이드 중...", + "uploadAvatar": "아바타 업로드", + "usageThresholdHint": "사용량이 예산의 해당 비율에 도달하면 경고를 보냅니다.", + "usageThresholdLabel": "사용량 경고 임계값 (%)", + "useGlobalDefault": "전역 기본값 사용", + "viewAgent": "에이전트 보기", + "viewDetailsFor": "{{name}} 세부 정보 보기", + "viewHeartbeatMarkdown": "하트비트 마크다운 보기", + "viewLiveLogs": "실시간 실행 로그 보기", + "viewLiveRun": "실시간 실행 세부 정보 보기", + "viewLiveRunAria": "{{name}}의 실시간 실행 세부 정보 보기", + "viewLogsFor": "{{taskId}}의 실시간 로그 보기", + "viewSkillDetails": "스킬 세부 정보 보기", + "viewTask": "작업 보기", + "waitingForActivity": "활동 대기 중...", + "waitingForQuestion": "AI 질문 대기 중...", + "waitingOutput": "출력 대기 중...", + "weekly": "주간", + "workingOn": "작업 중", + "zoomIn": "확대", + "zoomOut": "축소" + }, + "app": { + "backendError": { + "failedFetch": "프로젝트를 불러오지 못했습니다" + }, + "testMode": "테스트 모드 — 실제 AI 호출 없음" + }, + "approval": { + "dismissBanner": "승인 알림 배너 닫기", + "needAttention": "{{count}}개의 승인 {{noun}}이 확인을 기다리고 있습니다", + "openMailbox": "메일함 열기", + "requestPlural": "요청들", + "requestSingular": "요청", + "requests": "승인 요청" + }, + "auth": { + "clearAndRetry": "토큰 초기화 후 재시도", + "pasteToken": "토큰 붙여넣기", + "relogin": "재로그인", + "reloginRequired": "재로그인 필요: {{provider}}. {{provider}} 세션이 만료되었습니다 — 에이전트를 계속 실행하려면 다시 로그인하세요.", + "reloginRequiredMultiple": "재로그인 필요: {{providers}}", + "replacementToken": "대체 토큰", + "setAndReload": "토큰 설정 후 새로고침", + "tokenRecoveryDescription": "이 대시보드 세션이 데몬에 인증할 수 없습니다. 대체 토큰을 설정하거나 현재 토큰을 초기화한 후 재시도하세요.", + "tokenRequired": "인증 토큰이 필요합니다" + }, + "backend": { + "changeLaunchMode": "실행 모드 변경…", + "connectionError": "Fusion 백엔드에 연결할 수 없습니다", + "couldNotLoad": "Fusion이 현재 프로젝트를 불러올 수 없습니다. 백엔드가 실행 중인지 확인하고 다시 시도하세요.", + "error": "오류: {{error}}", + "manageConnection": "연결 관리", + "retryConnection": "연결 재시도", + "retrying": "재시도 중…" + }, + "backgroundTasks": { + "confirmMessage": "이 세션은 다른 탭에서 활성화되어 있습니다. 그래도 여시겠습니까?", + "confirmTitle": "활성 세션 열기", + "dismissButton": "닫기", + "pillLabel": "AI {{count}}", + "pillTitle": "백그라운드 AI 작업 {{count}}개", + "pillTitleWithInput": "백그라운드 AI 작업 {{count}}개 ({{needsInput}}개 입력 필요)", + "popoverHeader": "백그라운드 작업", + "status": { + "activeElsewhere": "다른 탭에서 활성화됨", + "failed": "실패", + "generating": "생성 중...", + "needsInput": "입력 필요" + }, + "typeLabel": { + "milestoneInterview": "마일스톤 인터뷰", + "missionInterview": "미션 인터뷰", + "planning": "계획", + "sliceInterview": "슬라이스 인터뷰", + "subtask": "하위 작업 분류" + } + }, + "board": { + "archived": "보관됨", + "done": "완료", + "inProgress": "진행 중", + "inReview": "검토 중", + "todo": "할 일", + "triage": "트리아지" + }, + "branchGroup": { + "autoMergeEnabled": "자동 병합 사용", + "collapseLabel": "브랜치 그룹 접기", + "completionText": "{{total}}명 중 {{landed}}명 완료", + "expandLabel": "브랜치 그룹 펼치기", + "groupLabel": "그룹 {{id}}", + "loadError": "브랜치 그룹을 불러오지 못했습니다", + "loading": "브랜치 그룹 로드 중…", + "mergeIntoMain": "그룹을 main에 병합", + "openPr": "PR 열기", + "unavailable": "브랜치 그룹을 사용할 수 없습니다" + }, + "capacity": { + "dismiss": "용량 경고 닫기", + "risk": "용량 위험:", + "status": "할 일 {{todoCount}}개 (임계값 {{threshold}}) · 진행 중 {{inProgress}} · 검토 중 {{inReview}} · 유휴 에이전트 {{idleAgents}}" + }, + "changes": { + "disableWrap": "자동 줄 바꿈 끄기", + "enableWrap": "자동 줄 바꿈 켜기", + "merged": "{{date}} 병합됨", + "nextFile": "다음 파일 (Ctrl+↓)", + "nextFileAria": "다음 파일", + "noDiff": "이 파일에 사용 가능한 차이가 없습니다.", + "previousFile": "이전 파일 (Ctrl+↑)", + "previousFileAria": "이전 파일", + "selectFile": "파일을 선택하여 차이를 확인하세요", + "title": "변경 사항", + "toggleWrap": "자동 줄 바꿈 전환" + }, + "chat": { + "archive": "보관", + "attachFiles": "파일 첨부", + "cancel": "취소", + "cancelButton": "취소", + "clearConversationFailed": "대화 초기화 실패", + "closeQuickChat": "빠른 채팅 닫기", + "connectingStatus": "연결 중…", + "conversationArchived": "대화가 보관되었습니다", + "conversationDeleted": "대화가 삭제되었습니다", + "copyFailed": "복사 실패", + "copyResponse": "응답 복사", + "create": "만들기", + "createButton": "만들기", + "createRoom": "방 만들기", + "delete": "삭제", + "deleteConversation": "대화 삭제", + "deleteConversationBody": "이 작업은 되돌릴 수 없습니다. 이 대화의 모든 메시지가 영구적으로 삭제됩니다.", + "deleteConversationTitle": "대화를 삭제하시겠습니까?", + "deleteRoom": "방 {{name}} 삭제", + "deleteRoomBody": "이 작업은 되돌릴 수 없습니다. 이 방과 모든 메시지가 영구적으로 삭제됩니다.", + "deleteRoomTitle": "방을 삭제하시겠습니까?", + "dismissQueuedMessage": "대기 중인 메시지 닫기", + "failedToArchiveConversation": "대화 보관 실패", + "failedToClearConversation": "대화 초기화 실패", + "failedToClearRoomConversation": "방 대화 초기화 실패", + "failedToCreateSession": "채팅 세션 생성 실패", + "failedToDeleteConversation": "대화 삭제 실패", + "failedToDeleteRoom": "방 삭제 실패", + "failedToGetResponse": "응답을 가져오지 못했습니다", + "failedToSendRoomMessage": "방 메시지 전송 실패", + "failureDetails": "실패 세부 정보", + "failureReferenceId": "ID", + "failureReferenceKind": "종류", + "failureReferenceLabel": "참조", + "failureReferenceMetaLabel": "레이블", + "helpMessageContent": "사용 가능한 명령어:\n- `/new` 또는 `/clear` — 대화를 초기화하고 새로 시작\n- `/skill:{name}` — 특정 스킬 사용\n- `/help` — 이 도움말 표시", + "jumpToLatest": "최신", + "latest": "최신", + "loadingAgents": "에이전트 로드 중...", + "loadingConversation": "대화 로드 중…", + "loadingConversations": "로드 중...", + "loadingMessages": "메시지 로드 중...", + "loadingModels": "모델 로드 중...", + "loadingOlderMessages": "이전 메시지 로드 중…", + "loadingSessions": "세션 로드 중…", + "loadingSkills": "스킬 로드 중…", + "mentionNonMember": "{{roomName}}의 구성원이 아닙니다", + "messageAgentPlaceholder": "{{name}}에게 메시지", + "messageModelPlaceholder": "{{name}}에게 메시지", + "messageRoomPlaceholder": "#{{name}}에 메시지", + "messageSentButReplyFailed": "메시지가 전송되었지만 어시스턴트 응답에 실패했습니다", + "messageSentButReplyFailedDetail": "메시지가 전송되었지만 어시스턴트 응답에 실패했습니다: {{detail}}", + "modeAgent": "에이전트", + "modeModel": "모델", + "newChat": "새 채팅", + "newChatModeAgent": "에이전트", + "newChatModeModel": "모델", + "newChatTitle": "새 채팅", + "noAgentsAvailable": "사용 가능한 에이전트 없음", + "noConversationsYet": "아직 대화 없음", + "noMessages": "메시지 없음", + "noMessagesYet": "아직 메시지가 없습니다. 대화를 시작하세요!", + "noRoomsYet": "아직 방이 없습니다.", + "noSkillsAvailable": "사용 가능한 스킬 없음", + "noSkillsFound": "스킬을 찾을 수 없습니다", + "openMailboxMessage": "메일함 메시지 열기", + "openQuickChat": "빠른 채팅 열기", + "queuedMessage": "대기 중: {{preview}}", + "quickChatTitle": "빠른 채팅", + "relativeTimeDays": "{{count}}일 전", + "relativeTimeHours": "{{count}}시간 전", + "relativeTimeJustNow": "방금", + "relativeTimeMinutes": "{{count}}분 전", + "removeAttachment": "{{name}} 첨부 파일 제거", + "resizePanelBottom": "아래에서 패널 크기 조정", + "resizePanelBottomLeft": "왼쪽 아래 모서리에서 패널 크기 조정", + "resizePanelBottomRight": "오른쪽 아래 모서리에서 패널 크기 조정", + "resizePanelLeft": "왼쪽에서 패널 크기 조정", + "resizePanelRight": "오른쪽에서 패널 크기 조정", + "resizePanelTop": "위에서 패널 크기 조정", + "resizePanelTopLeft": "왼쪽 위 모서리에서 패널 크기 조정", + "resizePanelTopRight": "오른쪽 위 모서리에서 패널 크기 조정", + "resizeSidebar": "채팅 사이드바 크기 조정", + "responseCopied": "응답이 복사되었습니다", + "responseFailed": "응답 실패", + "roomMemberCount": "구성원 {{count}}명", + "roomsGroupLabel": "방", + "scopeDirect": "다이렉트", + "scopeRooms": "방", + "scrollMessageToTop": "메시지를 맨 위로 스크롤", + "searchConversations": "대화 검색...", + "selectAgentForNewChat": "새 채팅을 위한 에이전트 선택", + "selectAgentPlaceholder": "채팅을 시작할 에이전트를 선택하세요", + "selectModel": "모델 선택", + "selectModelOverrideLabel": "모델 재정의 선택", + "selectModelPlaceholder": "채팅을 시작할 모델을 선택하세요", + "selectModelPlaceholder2": "모델 선택", + "selectRoomOrCreate": "방을 선택하거나 새로 만드세요", + "selectSession": "세션 선택", + "selectSessionLabel": "세션 선택", + "sendMessageFailed": "메시지 전송 실패", + "sendRoomMessageFailed": "방 메시지 전송 실패", + "sessionsGroupLabel": "세션", + "showPlainText": "모든 메시지를 일반 텍스트로 표시", + "showRenderedMarkdown": "모든 메시지를 렌더링된 Markdown으로 표시", + "skillSuggestions": "스킬 제안", + "startNewChat": "새 채팅 시작", + "startNewConversation": "새 대화 시작", + "stopGeneration": "생성 중지", + "thinking": "생각 중", + "thinkingLabel": "생각 중", + "thinkingStatus": "생각 중…", + "toolCallArgsPrefix": "인수", + "toolCallResultPrefix": "결과", + "toolCallStatusCompleted": "완료됨", + "toolCallStatusError": "오류", + "toolCallStatusErrors": "오류들", + "toolCallStatusRunning": "실행 중", + "toolCalls": "도구 호출", + "toolCallsCount": "도구 호출 {{count}}회", + "toolCallsHeader": "도구 호출", + "typeMessage": "메시지를 입력하세요...", + "unreadMessages": "읽지 않은 메시지", + "untitledSession": "제목 없음", + "viewFailureDetails": "실패 세부 정보 보기", + "you": "나" + }, + "chatRooms": { + "error": { + "deliveredButRefreshFailed": "메시지가 전달되었지만 방 답글을 새로고침하지 못했습니다", + "failedToLoad": "채팅방을 불러오지 못했습니다", + "failedToUpload": "첨부 파일 업로드 실패: {{filename}}", + "selectRoomFirst": "메시지를 보내기 전에 방을 선택하세요" + } + }, + "cli": { + "installBody": "터미널 어디서든 Fusion을 사용할 수 있도록 {{fn}} 및 {{fusion}} 명령어를 설치하세요. 아래 버튼을 클릭하거나 명령어를 셸에 복사하세요.", + "installButton": "npm으로 설치", + "installTitle": "Fusion CLI 설치", + "installing": "설치 중…", + "openSettings": "설정 열기", + "updateButton": "npm으로 업데이트", + "updateTitle": "Fusion CLI 업데이트", + "updating": "업데이트 중…", + "versionMismatchInfix": "하지만 이 대시보드는 다음 버전을 필요로 합니다", + "versionMismatchPrefix": "설치된", + "versionMismatchSuffix": "최신 버전으로 업데이트하여 동기화를 유지하세요." + }, + "cliBinary": { + "checking": "확인 중…", + "copied": "복사됨", + "copy": "복사", + "failedExit": "설치 실패 (종료 코드: {{code}})", + "heading": "CLI 바이너리", + "help": "전역 CLI를 설치하면 어느 터미널에서나 fn 및 fusion을 실행할 수 있습니다. 자동화 및 스크립트는 npx로도 작동하지만, 전역 설치가 더 빠르고 편리합니다.", + "installWithNpm": "npm으로 설치", + "installing": "설치 중…", + "notOnPath": "fn 또는 fusion이 PATH에서 발견되지 않았습니다.", + "orCopyLabel": "또는 직접 복사하여 실행:", + "refresh": "새로 고침", + "reinstall": "재설치", + "stateCheckDisabled": "확인 비활성화됨", + "stateInstalled": "설치됨", + "stateMissing": "설치되지 않음", + "stateVersionMismatch": "버전 불일치", + "succeededDuration": "{{duration}}초 만에 설치 완료" + }, + "column": { + "actionsAriaLabel": "{{columnLabel}} 열 작업", + "actionsTitle": "열 작업", + "archiveAllDoneAriaLabel": "완료된 모든 작업 보관", + "archiveAllDoneTitle": "완료된 모든 작업 보관", + "archiveAllMessage": "완료된 작업 {{count}}개를 모두 보관하시겠습니까?", + "archiveAllTitle": "완료된 모든 작업 보관", + "archivedTasks": "{{count}}개 작업 보관됨", + "autoMerge": "자동 병합", + "autoMergeDisabled": "자동 병합 비활성화됨", + "autoMergeEnabled": "자동 병합 활성화됨", + "cancelMove": "이동 취소", + "collapseArchivedLabel": "보관된 작업 접기", + "collapseArchivedTitle": "보관된 작업 접기", + "expandArchivedLabel": "보관된 작업 펼치기", + "expandArchivedTitle": "보관된 작업 펼치기", + "failedToArchive": "작업 보관에 실패했습니다", + "keepProgress": "진행 상황 유지", + "loadMore": "{{count}}개 더 보기 ({{remaining}}개 남음)", + "moveAllToTodo": "모두 할 일로 이동", + "moveAllToTodoMessage": "{{columnLabel}}의 작업 {{count}}개를 모두 할 일로 이동하시겠습니까?{{plural}}", + "moveAllToTodoTitle": "모두 할 일로 이동", + "movePartialFailure": "{{total}}개 중 {{moved}}개 이동됨; {{failed}}개 실패", + "moveToTodoHint": "작업 {{count}}개를 할 일로 이동{{plural}}", + "moveToTodoPartialFailure": "{{total}}개 중 {{moved}}개를 할 일로 이동함; {{failed}}개 실패", + "movedToPlanning": "{{count}}개 작업을 재계획을 위해 계획 중으로 이동했습니다{{plural}}", + "movedToTodo": "{{count}}개 작업을 할 일로 이동했습니다{{plural}}", + "newTask": "새 작업", + "noManuallyPausableTasks": "수동으로 일시 중지 가능한 작업이 없습니다", + "noTasks": "작업 없음", + "noTasksInColumn": "이 열에 작업이 없습니다", + "pauseHint": "활성 미할당 작업 {{count}}개 일시 중지{{plural}}", + "preserveProgressMessage": "이 작업에는 완료된 단계가 있습니다. 이동하기 전에 진행 상황을 유지하시겠습니까?", + "preserveProgressMoveTodoMessage": "일부 작업에 완료된 단계가 있습니다. 할 일로 이동하기 전에 진행 상황을 유지하시겠습니까?", + "preserveProgressTitle": "진행 상황을 유지하시겠습니까?", + "replanAll": "모두 재계획", + "replanAllHint": "작업 {{count}}개를 계획 중으로 이동{{plural}}", + "replanAllMessage": "할 일 작업 {{count}}개를 모두 재계획을 위해 계획 중으로 이동하시겠습니까?{{plural}}", + "replanAllTitle": "모든 작업 재계획", + "resetProgress": "진행 상황 초기화", + "resetProgressConfirm": "진행 상황 초기화", + "resetProgressMessage": "이 작업을 이동하기 전에 모든 단계 진행 상황을 초기화하시겠습니까?", + "resetProgressMoveTodoMessage": "할 일로 이동하기 전에 작업의 단계 진행 상황을 초기화하시겠습니까?", + "resetProgressTitle": "진행 상황을 초기화하시겠습니까?", + "stopAll": "모두 중지", + "stopAllMessage": "{{columnLabel}}의 작업 {{count}}개를 모두 중지하시겠습니까?{{plural}}", + "stopAllTitle": "모든 작업 중지", + "stopPartialFailure": "{{total}}개 중 {{paused}}개 중지됨; {{failed}}개 실패", + "stoppedTasks": "{{count}}개 작업 중지됨{{plural}}" + }, + "comments": { + "addButton": "댓글 추가", + "addedSuccess": "댓글이 추가되었습니다", + "deletedSuccess": "댓글이 삭제되었습니다", + "deletingButton": "삭제 중…", + "editedSuffix": "(수정됨)", + "emptyState": "아직 댓글이 없습니다.", + "heading": "댓글", + "placeholder": "댓글 추가", + "postingButton": "게시 중…", + "updatedSuccess": "댓글이 업데이트되었습니다" + }, + "commit": { + "filesChanged": "변경된 파일 ({{count}})" + }, + "commitDiff": { + "error": "커밋 차이 로드 오류: {{error}}", + "loadError": "커밋 차이를 불러오지 못했습니다", + "loading": "커밋 차이 로드 중...", + "mergedOnly": "커밋 차이는 병합된 작업에서만 사용할 수 있습니다.", + "noFiles": "이 커밋에서 변경된 파일이 없습니다.", + "noSha": "사용 가능한 커밋 SHA가 없습니다." + }, + "common": { + "back": "뒤로", + "cancel": "취소", + "close": "닫기", + "closeAriaLabel": "닫기", + "continue": "계속", + "create": "만들기", + "delete": "삭제", + "edit": "편집", + "editMode": "편집", + "learnMore": "자세히 보기 →", + "loading": "로드 중...", + "no": "아니요", + "noDataAvailable": "데이터 없음", + "nothingToShow": "아직 표시할 내용이 없습니다.", + "preview": "미리 보기", + "previewMode": "미리 보기", + "refresh": "새로 고침", + "retry": "다시 시도", + "save": "저장", + "saveAndTest": "저장 및 테스트", + "saving": "저장 중...", + "somethingWentWrong": "이 뷰를 로드하는 중 오류가 발생했습니다.", + "stop": "중지", + "test": "테스트", + "testing": "테스트 중…", + "total": "전체", + "unableToLoadData": "데이터를 불러올 수 없습니다", + "unknown": "알 수 없음", + "unsavedChanges": "저장되지 않은 변경 사항", + "yes": "예" + }, + "composer": { + "loadingAgents": "에이전트 로드 중…", + "messageId": "메시지 {{id}}", + "messageLabel": "메시지:", + "messagePlaceholder": "메시지를 입력하세요…", + "newMessageTitle": "새 메시지", + "noAgentsAvailable": "사용 가능한 에이전트 없음", + "replyTitle": "답장", + "replyingToLabel": "답장 대상:", + "selectAgent": "에이전트 선택…", + "sendingButton": "전송 중…", + "toLabel": "받는 사람:", + "wakeAgentCheckbox": "에이전트 즉시 깨우기", + "wakeAlwaysImmediate": "(에이전트가 이미 즉시 응답 모드로 설정되어 있습니다)", + "wakeOneOff": "(이 메시지에만 적용되는 일회성 재정의)" + }, + "confirm": { + "cancel": "취소", + "closeDialog": "확인 대화 상자 닫기", + "confirm": "확인" + }, + "conversation": { + "aiReasoning": "AI 추론", + "aiThinking": "AI 생각 중", + "confirm": { + "no": "아니요", + "yes": "예" + }, + "hide": "{{type}} 숨기기", + "show": "{{type}} 표시", + "yourResponse": "내 응답" + }, + "createRoom": { + "create": "방 만들기", + "creating": "만드는 중...", + "duplicate": "같은 이름의 방이 이미 존재합니다.", + "failedCreate": "방 만들기에 실패했습니다.", + "failedLoadAgents": "에이전트를 불러오지 못했습니다.", + "loadingAgents": "에이전트 로드 중...", + "lowercase": "소문자만 사용하세요.", + "maxLength": "방 이름은 최대 80자까지 가능합니다.", + "members": "멤버", + "nameLabel": "방 이름", + "nameRequired": "방 이름은 필수입니다.", + "noAgents": "이 프로젝트에 아직 에이전트가 없습니다.", + "noEdgeChars": "방 이름은 하이픈이나 밑줄로 시작하거나 끝날 수 없습니다.", + "noMatch": "검색과 일치하는 에이전트가 없습니다.", + "searchAgents": "에이전트 검색", + "selectMember": "최소 한 명의 멤버를 선택하세요.", + "title": "방 만들기", + "validChars": "소문자, 숫자, 하이픈, 밑줄만 사용하세요." + }, + "dashboard": { + "initializingDashboard": "대시보드 초기화 중...", + "loaderSteps": { + "project": "프로젝트 선택", + "projects": "프로젝트 로드 중", + "tasks": "작업 가져오는 중" + }, + "loadingMessage": "Fusion 대시보드 로드 중", + "loadingProgress": "대시보드 로딩 진행 상황", + "updatingMessage": "Fusion 대시보드 업데이트 중", + "updatingVersion": "새 프런트엔드 버전으로 업데이트 중..." + }, + "dbBanner": { + "body": "Fusion의 백그라운드 SQLite 무결성 검사에서 손상이 발견되었습니다. 중요한 작업을 계속하기 전에 아래의 실패한 개체를 검토하세요.", + "instructions": "프로젝트를 백업하고, 데이터베이스가 정상적으로 열리면 {{cmd}}를 시도해 보세요. 손상이 지속될 경우 알려진 정상 백업에서 복원하세요. 저장소 레이아웃 및 복구 안내는 {{link}}를 참고하세요.", + "lastChecked": "마지막 확인: {{checkedAtLabel}}", + "refreshHealth": "상태 새로 고침", + "refreshing": "새로 고치는 중…", + "title": "데이터베이스 손상 감지됨", + "whatToDo": "조치 방법:" + }, + "deepLink": { + "projectNotFound": "'{{id}}' 프로젝트를 찾을 수 없습니다", + "taskNotFound": "작업 {{id}}를 찾을 수 없습니다" + }, + "desktop": { + "chooseMode": "Fusion을 어떻게 실행하시겠습니까?", + "chooseModeDescription": "이 앱에서 로컬로 Fusion을 실행하거나, 이미 실행 중인 Fusion 서버에 연결하세요.", + "connectRemoteButton": "원격 Fusion에 연결", + "couldNotStart": "로컬 Fusion을 시작할 수 없습니다", + "loading": "Fusion 로드 중…", + "opening": "열고 있는 중…", + "retry": "다시 시도", + "runLocalButton": "로컬에서 Fusion 실행", + "settingUpRemote": "원격 연결 설정 중…", + "starting": "시작 중…", + "startingLocalRuntime": "로컬 Fusion 런타임 시작 중…" + }, + "devserver": { + "allSeverities": "모든 심각도", + "auto": "자동", + "autoDetected": "자동 감지됨: {{url}}", + "change": "변경", + "clear": "지우기", + "command": "명령", + "configuration": "설정", + "embedded": "임베드됨", + "embeddedPreviewDisabled": "임베드 미리 보기가 비활성화되어 있습니다. 별도의 브라우저 탭에서 앱을 여세요.", + "enterFullscreen": "전체 화면 로그 보기", + "errBadge": "ERR", + "error": "오류", + "exitFullscreen": "전체 화면 로그 종료", + "externalOnly": "외부 전용", + "filterBySeverity": "심각도별 로그 필터", + "info": "정보", + "lines": "{{count}}줄", + "loadOlderLogs": "이전 로그 불러오기", + "loading": "로드 중...", + "loadingConfig": "개발 서버 설정 로드 중...", + "loadingLogs": "로그 로드 중…", + "loadingOlderLogs": "이전 로그 로드 중…", + "logs": "로그", + "lostConnection": "로그 스트림 연결이 끊겼습니다.", + "manual": "수동", + "matchCount": "{{count}}개 일치", + "newLogs": "새 로그", + "noLogsYet": "아직 로그가 없습니다. 개발 서버를 시작하면 출력이 표시됩니다.", + "noMatchesSearch": "검색과 일치하는 로그 줄이 없습니다.", + "noMatchesSeverity": "선택한 심각도와 일치하는 로그 줄이 없습니다.", + "noPreviewDetected": "미리 보기 URL이 감지되지 않았습니다. 개발 서버를 시작하거나 수동 URL을 설정하여 앱을 미리 보세요.", + "noPreviewUrl": "미리 보기 URL 없음", + "noScriptsDetected": "개발 서버 스크립트가 감지되지 않았습니다. 프로젝트의 package.json에 dev, start 또는 유사한 스크립트가 있는지 확인하세요.", + "notAvailable": " · 사용 불가", + "openInNewTab": "새 탭에서 열기", + "openPreviewInNewTab": "새 탭에서 미리 보기 열기", + "openPreviewOrRetry": "새 탭에서 미리 보기를 열거나, 서버 설정을 확인한 후 임베드 모드를 다시 시도하세요.", + "preview": "미리 보기", + "previewBlocked": "미리 보기 차단됨", + "previewFailed": "미리 보기 실패", + "previewUrlOverride": "미리 보기 URL 재정의", + "refreshPreview": "미리 보기 새로 고침", + "restart": "재시작", + "restarting": "재시작 중...", + "retry": "다시 시도", + "retryEmbeddedPreview": "임베드 미리 보기 다시 시도", + "runningCommand": "명령 실행 중", + "save": "저장", + "scriptSelection": "스크립트 선택", + "searchLogs": "로그 검색", + "start": "시작", + "startDevServer": "여기에서 라이브 미리 보기를 보려면 개발 서버를 시작하세요.", + "starting": "시작 중...", + "status": { + "failed": "실패", + "running": "실행 중", + "starting": "시작 중...", + "stopped": "중지됨", + "stopping": "중지 중..." + }, + "stop": "중지", + "stopping": "중지 중...", + "title": "개발 서버", + "toast": { + "clearedScript": "선택된 개발 서버 스크립트가 지워졌습니다.", + "enterCommand": "개발 서버를 시작하기 전에 명령을 입력하세요.", + "previewCleared": "미리 보기 URL 재정의가 지워졌습니다.", + "previewUpdated": "미리 보기 URL이 업데이트되었습니다.", + "restarted": "개발 서버가 재시작되었습니다.", + "selectedScript": "{{name}} 스크립트가 선택되었습니다.", + "started": "개발 서버가 시작되었습니다.", + "stopped": "개발 서버가 중지되었습니다." + }, + "warn": "경고" + }, + "dirPicker": { + "ariaLabel": "디렉터리 브라우저", + "browse": "찾아보기", + "closeBrowser": "디렉터리 브라우저 닫기", + "defaultPlaceholder": "/path/to/your/project", + "hideHidden": "숨김 파일 숨기기", + "hideHiddenAria": "숨겨진 디렉터리 숨기기", + "hideHiddenTitle": "숨김 파일 숨기기", + "loading": "로드 중…", + "noSubdirs": "하위 디렉터리 없음", + "openBrowser": "디렉터리 찾아보기", + "parentDir": "상위 디렉터리로 이동", + "parentDirTitle": "상위 디렉터리", + "select": "선택", + "showHidden": "숨김 파일 표시", + "showHiddenAria": "숨겨진 디렉터리 표시", + "showHiddenTitle": "숨김 파일 표시", + "up": "위로" + }, + "docker": { + "actions": { + "addMount": "마운트 추가", + "addVariable": "변수 추가", + "cancel": "취소", + "createNode": "Docker 노드 만들기" + }, + "ariaLabels": { + "closeModal": "온보딩 모달 닫기", + "modal": "Docker 노드 온보딩", + "removeMount": "볼륨 마운트 제거", + "removeVariable": "환경 변수 제거" + }, + "available": "Docker를 사용할 수 있습니다{{version}}", + "caPath": "CA 인증서 경로", + "certPath": "클라이언트 인증서 경로", + "connected": "연결됨{{version}}", + "connectionFailed": "연결 실패", + "container": "컨테이너:", + "context": "Docker 컨텍스트", + "creatingNode": "Docker 노드 만드는 중...", + "errors": { + "cpusMinimum": "CPU는 최소 0.5 이상이어야 합니다", + "memoryMinimum": "메모리는 최소 512 MB 이상이어야 합니다", + "nameRequired": "이름은 필수이며 64자 이하여야 합니다", + "urlRequired": "URL은 필수입니다" + }, + "failedAt": "실패 위치: {{stage}}", + "failedMessage": "프로비저닝 실패", + "host": "Docker 호스트", + "hostPlaceholder": "tcp://host:2376", + "keyPath": "클라이언트 키 경로", + "labels": { + "apiKey": "API 키", + "cpus": "CPU", + "image": "이미지", + "memory": "메모리 (MB)", + "nodeName": "노드 이름", + "reachableUrl": "접근 가능한 URL", + "tag": "태그" + }, + "local": "로컬 Docker", + "notFound": "Docker를 찾을 수 없습니다{{error}}", + "notFoundError": "Docker를 찾을 수 없습니다: {{message}}", + "options": { + "autoGenerate": "자동 생성", + "claudeCli": "Claude CLI", + "droidCli": "Droid CLI", + "persistentStorage": "컨테이너 재생성 시 데이터 유지", + "provideManually": "직접 입력" + }, + "placeholders": { + "apiKey": "API 키 입력", + "containerPath": "컨테이너 경로", + "envVarKey": "KEY", + "envVarValue": "값", + "hostPath": "호스트 경로", + "image": "runfusion/fusion", + "nodeName": "my-docker-node", + "tag": "latest" + }, + "provisionedIn": "{{durationSec}}초 만에 프로비저닝 완료", + "refreshContexts": "컨텍스트 새로 고침", + "remote": "원격 호스트", + "retry": "다시 시도", + "sections": { + "advanced": "고급", + "environmentVariables": "환경 변수", + "requiredSettings": "필수 설정", + "volumeMounts": "볼륨 마운트" + }, + "selectContext": "컨텍스트 선택", + "stage": { + "creatingContainer": "컨테이너 만드는 중...", + "pullingImage": "이미지 가져오는 중...", + "registeringNode": "노드 등록 중...", + "startingContainer": "컨테이너 시작 중..." + }, + "states": { + "creating": "만드는 중..." + }, + "successMessage": "노드가 성공적으로 만들어졌습니다!", + "targetMode": "Docker 대상 모드", + "testConnection": "연결 테스트", + "testing": "테스트 중...", + "titles": { + "provisionNode": "Docker 노드 프로비저닝" + }, + "useTls": "TLS 사용", + "verifyTls": "TLS 인증서 확인", + "viewNode": "노드 보기" + }, + "documents": { + "backToFiles": "파일 목록으로 돌아가기", + "backToFilesList": "프로젝트 파일 목록으로 돌아가기", + "clearSearch": "검색 지우기", + "collapse": "접기", + "collapseContent": "내용 접기", + "docCount": "{{count}}개 문서{{plural}}", + "documentsCreatedIn": "문서는 작업 상세 탭에서 만들어집니다.", + "expand": "펼치기", + "expandContent": "내용 펼치기", + "failedToLoad": "{{type}} 로드 실패: {{error}}", + "hideHidden": "숨겨진 프로젝트 파일 숨기기", + "hideHiddenFiles": "숨김 파일 숨기기", + "hideHiddenLabel": "숨김 파일 숨기기", + "loadingFileContent": "파일 내용 로드 중…", + "loadingProjectFiles": "프로젝트 마크다운 파일 로드 중…", + "loadingTaskDocuments": "작업 문서 로드 중…", + "markdown": "마크다운", + "noMarkdownFiles": "이 프로젝트에 마크다운 파일이 없습니다.", + "noMatchProject": "\"{{query}}\"와 일치하는 프로젝트 마크다운 파일이 없습니다.", + "noMatchTask": "\"{{query}}\"와 일치하는 작업 문서가 없습니다.", + "noTaskDocuments": "아직 작업 문서가 없습니다.", + "openTask": "작업 열기", + "plain": "일반 텍스트", + "projectFiles": "프로젝트 파일", + "projectFilesTab": "프로젝트 파일", + "resultCount": "{{count}}개 결과{{plural}}", + "retry": "다시 시도", + "retryLoading": "문서 다시 불러오기", + "searchProjectFiles": "프로젝트 마크다운 파일 검색…", + "searchTaskDocuments": "작업 문서 검색…", + "selectFile": "마크다운 파일을 선택하여 내용을 확인하세요.", + "showHidden": "숨겨진 프로젝트 파일 표시", + "showHiddenFiles": "숨김 파일 표시", + "showHiddenLabel": "숨김 파일 표시", + "showProjectFiles": "프로젝트 마크다운 파일 표시", + "showTaskDocuments": "작업 문서 표시", + "switchToMarkdown": "마크다운으로 전환", + "switchToPlainText": "일반 텍스트로 전환", + "taskDocuments": "작업 문서", + "taskDocumentsTab": "작업 문서", + "title": "문서", + "untitled": "제목 없음" + }, + "droidCli": { + "active": "활성", + "cardTitle": "Factory AI — Droid CLI 경유", + "connectedVersion": "연결됨{{version}}", + "description": "로컬에 설치된 droid CLI를 통해 AI 호출을 라우팅합니다. API 키 대신 기존 Factory AI 구독/할당량을 사용합니다.", + "details": "세부 정보", + "detected": "droid {{version}} 감지됨{{path}}. AI 호출을 라우팅하려면 활성화를 클릭하세요.", + "disable": "비활성화", + "disabling": "비활성화 중…", + "droidNotFound": "PATH에서 droid를 찾을 수 없습니다", + "enable": "활성화", + "enabledValidating": "활성화됨. 유효성 검사 중…", + "enabling": "활성화 중…", + "extensionFailed": "확장 로드 실패: {{reason}}", + "modelsHidden": "Factory AI (Droid CLI 경유) 모델이 모델 선택기에서 숨겨졌습니다.", + "modelsNowVisible": "Factory AI (Droid CLI 경유) 모델이 모델 선택기에 표시됩니다.", + "notConnected": "연결되지 않음", + "notInstalled": "설치되지 않음", + "notOnPath": "PATH에서 droid 바이너리가 감지되지 않았습니다 — 먼저 Droid CLI를 설치하세요.", + "probingCli": "로컬 CLI 검사 중…", + "restartRequired": "재시작 필요: 라우팅 변경 사항을 적용하려면 현재 CLI/채팅 세션을 다시 시작하세요.", + "test": "테스트", + "testing": "테스트 중…", + "toastDisabled": "비활성화됨", + "toastEnabled": "활성화됨" + }, + "duplicateWarning": { + "cancel": "취소", + "createAnyway": "그래도 만들기", + "message": "유사한 활성 작업이 발견되었습니다. 기존 작업을 열거나 이 작업을 새로 만드세요.", + "open": "열기", + "title": "중복 가능성", + "untitledTask": "제목 없는 작업" + }, + "editor": { + "failedLoadFile": "파일 불러오기 실패", + "failedSaveFile": "파일 저장 실패", + "failedToLoadFile": "파일 불러오기 실패", + "failedToSaveFile": "파일 저장 실패" + }, + "evals": { + "allRuns": "전체 실행", + "disabledTitle": "예약 평가가 비활성화되어 있습니다", + "empty": "아직 평가가 없습니다. 예약 평가는 마지막 실행 이후 완료된 작업을 검토합니다.", + "enablePrompt": "예약 평가를 활성화하여 채점된 작업, 근거, 후속 권고사항을 검토하세요.", + "evidenceHeading": "근거", + "loading": "평가 불러오는 중…", + "maxScorePlaceholder": "최고 점수", + "minScorePlaceholder": "최저 점수", + "naPlaceholder": "해당 없음", + "noFollowups": "없음", + "noRationale": "기록된 근거가 없습니다.", + "openSettings": "예약 평가 설정 열기", + "overallScore": "종합 점수: {{score}}", + "refreshAria": "평가 새로 고침", + "searchPlaceholder": "작업 또는 근거 검색", + "selectPrompt": "평가를 선택하여 점수, 근거, 근거 자료를 확인하세요.", + "suggestedFollowupsHeading": "제안된 후속 작업" + }, + "executor": { + "blocked": "차단됨", + "daysAgo": "{{count}}일 전", + "escalated": "에스컬레이션됨", + "escalatedSuffix": " (에스컬레이션됨)", + "hideProjectDir": "프로젝트 디렉터리 숨기기", + "hoursAgo": "{{count}}시간 전", + "inReview": "검토 중", + "justNow": "방금 전", + "loading": "불러오는 중...", + "minutesAgo": "{{count}}분 전", + "noActivity": "활동 없음", + "overlapBottleneck": "{{status}} 중복 병목 {{blockerId}}: blockedBy를 통해 {{count}}개 todo 차단됨 (임계값 {{threshold}})", + "overlapQueue": "중복 대기열", + "queued": "대기 중", + "running": "실행 중", + "secondsAgo": "{{count}}초 전", + "showProjectDir": "프로젝트 디렉터리 보기", + "stateIdle": "유휴", + "statePaused": "일시 중지됨", + "stateRunning": "실행 중", + "status": "실행기 상태", + "stuck": "중단됨", + "temporary": "임시" + }, + "fileBrowser": { + "back": "파일 목록으로 돌아가기", + "binaryReadOnly": "바이너리 파일 — 읽기 전용", + "contextCopy": "복사", + "contextDelete": "삭제", + "contextDownload": "다운로드", + "contextDownloadZip": "ZIP으로 다운로드", + "contextMenuLabel": "파일 작업", + "contextMove": "이동", + "contextRename": "이름 변경", + "copy": "복사", + "copyPlaceholder": "대상 경로", + "copyTitle": "복사", + "delete": "삭제", + "deleteConfirm": "{{name}}을(를) 삭제하시겠습니까?", + "deleteRecursive": "하위 항목이 모두 재귀적으로 삭제됩니다.", + "deleteTitle": "{{type}} 삭제", + "deleting": "삭제 중...", + "emptyDirectory": "(빈 디렉터리)", + "error": "오류: {{message}}", + "loading": "불러오는 중…", + "loadingFiles": "파일 불러오는 중...", + "modalTitle": "파일 — {{workspace}}", + "modified": "수정일: {{date}}", + "move": "이동", + "movePlaceholder": "대상 경로", + "moveTitle": "이동", + "operationFailed": "작업 실패", + "operationSuffix": " 중...", + "rename": "이름 변경", + "renamePlaceholder": "새 이름", + "renameTitle": "이름 변경", + "resizeSidebar": "사이드바 크기 조정", + "root": "루트", + "saving": "저장 중…", + "selectFileToEdit": "편집할 파일을 선택하세요", + "toggleEditorOptions": "편집기 옵션 토글", + "typeFile": "파일", + "typeFolder": "폴더", + "unsavedChanges": "저장되지 않은 변경 사항", + "upOneLevel": "상위 폴더로", + "workspaceProject": "프로젝트" + }, + "fileEditor": { + "edit": "편집", + "editMode": "편집 모드", + "editorFor": "{{filePath}} 편집기", + "fileEditor": "파일 편집기", + "lineNumber": "줄 번호", + "preview": "미리보기", + "previewMode": "미리보기 모드", + "toggleLineNumbers": "줄 번호 표시 토글", + "toggleOptions": "편집기 옵션 토글", + "toggleWordWrap": "자동 줄 바꿈 토글", + "wrap": "줄 바꿈" + }, + "fileMention": { + "empty": "작업 또는 파일을 찾을 수 없습니다", + "fileHeader": "파일", + "fileMatches": "파일 검색 결과", + "taskHeader": "작업", + "taskMatches": "작업 검색 결과" + }, + "git": { + "add": "추가", + "addRemote": "원격 추가", + "advancesHelpFix": "해결 방법: Fusion은 적어도 하나의 진행 항목이 진정으로 pending 상태이고 HEAD가 통합 끝점과 일치하지 않을 때만 작업 트리 동기화를 표시합니다. 항목이 이미 처리된 경우(subsumed/orphaned/reachable/superseded), 동기화 작업이 제공되지 않습니다.", + "advancesHelpIntro": "각 항목은 스쿼시 커밋이 통합 브랜치 ref({{integrationBranch}})를 진행시킨 Fusion 작업입니다. 자동 동기화 결과는 작업 트리도 해당 새 끝점으로 패스트-포워드되었는지를 나타냅니다.", + "advancesHelpItem1": "clean-sync / synced-with-edits-restored — 작업 트리가 동기화되었습니다. 별도 조치가 필요 없습니다.", + "advancesHelpItem2": "reachable / subsumed / orphaned / superseded — 이미 처리되었습니다 (동등한 내용이 이미 반영되었거나, 원본 SHA가 사라졌거나, HEAD가 이미 재작성된 통합 끝점에 맞춰진 경우 포함).", + "advancesHelpItem3": "pending + off / not run — 자동 동기화가 설정에서 비활성화되어 있습니다. 브랜치 ref는 이동했지만 작업 트리가 따라가지 않았습니다.", + "advancesHelpItem4": "pending + stash-failed / would-conflict / 유사 — 자동 동기화를 시도했지만 조정할 수 없었습니다 (로컬 편집이 새 커밋과 충돌하는 경우가 일반적).", + "advancesNeedAction": "{{count}}개 조치 필요", + "aheadOfUpstream": "업스트림보다 {{count}}개 커밋 앞서 있음", + "aligned": "정렬됨", + "apply": "적용", + "applyStashKeep": "스태시 적용 (유지)", + "autoMergeDisabled": "자동 병합 비활성화됨", + "autoMergeEnabled": "자동 병합 활성화됨", + "autoMergeUpdateFailed": "자동 병합 업데이트 실패", + "autoMergeWhenGreen": "검사 통과 시 자동 병합", + "autoMergeWillHandle": "자동 병합이 이 작업을 자동으로 처리합니다.", + "autoMovedToTodo": "할 일로 자동 이동 — 리뷰어 피드백 준비됨", + "autoSyncOffNotRun": "자동 동기화: 꺼짐 / 실행 안 됨", + "autoSyncOutcome": "자동 동기화: {{outcome}}", + "awaitingPrChecks": "자동 병합 전에 필수 검사 또는 리뷰 피드백을 기다리는 중입니다.", + "backToIssuesList": "이슈 목록으로 돌아가기", + "backToPullsList": "풀 리퀘스트 목록으로 돌아가기", + "baseHead": "기준: HEAD", + "behindUpstream": "업스트림보다 {{count}}개 커밋 뒤처져 있음", + "branchLabel": "브랜치:", + "cancel": "취소", + "capturedAt": "캡처 시각:", + "changesStashed": "변경 사항 스태시됨", + "checkout": "체크아웃", + "chooseAnotherRepo": "다른 저장소를 선택하세요.", + "clickToViewDiff": "클릭하여 diff 보기", + "close": "닫기", + "closeModalAriaLabel": "가져오기 모달 닫기", + "commentLast": "마지막:", + "commit": "커밋", + "commitMessagePlaceholder": "커밋 메시지...", + "commitStagedChanges": "스테이지된 변경 사항 커밋", + "commitsOnBranch": "{{name}}의 커밋", + "commitsToPull": "{{count}}개 풀 필요", + "commitsToPush": "{{count}}개 푸시 필요", + "commitsToPushHeader": "푸시할 커밋 ({{count}})", + "committedHash": "커밋됨: {{hash}}", + "conflictReclaimFailed": "충돌 복구 대기 등록 실패", + "conflictReclaimQueued": "충돌 복구 대기 등록됨", + "conflictReclaimUnavailable": "충돌 복구를 사용할 수 없습니다", + "conflictedCount": "{{count}}개 충돌", + "conflictsButton": "충돌", + "copiedButton": "복사됨", + "copiedLabel": "{{label}} 복사됨", + "copiedToClipboard": "클립보드에 복사됨", + "copyButton": "복사", + "copyCommitHashLabel": "커밋 해시", + "copyFetchUrl": "페치 URL 복사", + "copyFullCommitHashLabel": "전체 커밋 해시", + "copyFullHash": "전체 해시 복사", + "copyFullShaTitle": "전체 40자 SHA 복사", + "copyPushUrl": "푸시 URL 복사", + "copyShortHashTitle": "짧은 커밋 해시 복사", + "copyShortHashTitleWithFull": "짧은 커밋 해시 복사 (git 작업에는 아래 전체 SHA 사용)", + "couldNotLoadIssues": "이슈를 불러올 수 없습니다", + "couldNotLoadPulls": "풀 리퀘스트를 불러올 수 없습니다", + "create": "만들기", + "createPrButton": "PR 만들기", + "createPrTitle": "이 작업의 PR 만들기", + "createdBranch": "브랜치 {{name}} 생성됨", + "defaultBadge": "기본", + "deleteBranch": "삭제", + "deleteBranchMessage": "브랜치 \"{{name}}\"을(를) 삭제하시겠습니까?", + "deleteBranchTitle": "브랜치 삭제", + "deletedBranch": "브랜치 {{name}} 삭제됨", + "detectingRemotes": "감지 중…", + "diffColon": "diff:", + "discardChangesMessage": "{{count}}개 파일의 변경 사항을 버리시겠습니까? 이 작업은 취소할 수 없습니다.", + "discardChangesTitle": "변경 사항 버리기", + "discardSelected": "선택 항목 버리기", + "discardedFiles": "{{count}}개 파일의 변경 사항 버려짐", + "dismiss": "닫기", + "dismissPrError": "PR 오류 닫기", + "dropStash": "스태시 삭제", + "dropStashMessage": "stash@{{{index}}}을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", + "dropStashTitle": "스태시 삭제", + "editRemoteName": "원격 이름 편집", + "editRemoteUrl": "원격 URL 편집", + "failedToAddRemote": "원격 추가 실패", + "failedToApplyStash": "스태시 적용 실패", + "failedToCheckoutBranch": "브랜치 체크아웃 실패", + "failedToCommit": "커밋 실패", + "failedToCopy": "복사 실패", + "failedToCreateBranch": "브랜치 생성 실패", + "failedToDeleteBranch": "브랜치 삭제 실패", + "failedToDiscardChanges": "변경 사항 버리기 실패", + "failedToDropStash": "스태시 삭제 실패", + "failedToFetchData": "git 데이터 페치 실패", + "failedToFetchIssues": "이슈 페치 실패", + "failedToFetchPulls": "풀 리퀘스트 페치 실패", + "failedToImportIssue": "이슈 가져오기 실패", + "failedToImportPull": "풀 리퀘스트 가져오기 실패", + "failedToLoadDiff": "diff 불러오기 실패", + "failedToLoadFileDiff": "파일 diff 불러오기 실패", + "failedToLoadRemoteCommits": "원격 커밋 불러오기 실패", + "failedToLoadRemotes": "원격 불러오기 실패", + "failedToLoadStashDiff": "스태시 diff 불러오기 실패", + "failedToRemoveRemote": "원격 제거 실패", + "failedToRenameRemote": "원격 이름 변경 실패", + "failedToStageFiles": "파일 스테이지 실패", + "failedToStashChanges": "변경 사항 스태시 실패", + "failedToUnstageFiles": "파일 언스테이지 실패", + "failedToUpdateRemoteUrl": "원격 URL 업데이트 실패", + "fetch": "페치", + "fetchCompleted": "페치 완료", + "fetchFailed": "페치 실패", + "fetchLabel": "페치:", + "fetchUrlLabel": "페치 URL", + "fetchingFromGitHub": "GitHub에서 최신 목록을 가져오는 중입니다.", + "filterBranches": "브랜치 필터...", + "filterByLabelsLabel": "레이블로 필터", + "filterByLabelsPlaceholder": "필터: bug,enhancement…", + "filterIssuesByLabels": "레이블로 이슈 필터", + "fnCreatingPr": "fn이 이 작업의 풀 리퀘스트를 자동으로 생성하고 있습니다.", + "fnMergingPr": "fn이 이 풀 리퀘스트를 자동으로 병합하고 있습니다.", + "forceDeleteBranchMessage": "브랜치에 병합되지 않은 커밋이 있습니다. 강제 삭제하시겠습니까?", + "forceDeleteBranchTitle": "브랜치 강제 삭제", + "forceDeletedBranch": "브랜치 {{name}} 강제 삭제됨", + "fullShaAbbrev": "전체", + "ghAuthLoginHint": "PR 생성을 활성화하려면 {{code}}을(를) 실행하세요.", + "headAheadOfIntegration": "HEAD가 {{branch}}에 없는 {{count}}개 커밋을 가지고 있습니다", + "headAheadOfOriginIntegration": "HEAD가 origin/{{branch}}에 없는 {{count}}개 커밋을 가지고 있습니다", + "headVsIntegration": "HEAD vs {{branch}}", + "headVsOriginIntegration": "HEAD vs origin/{{branch}}", + "hide": "숨기기", + "hideExplanation": "설명 숨기기", + "import": "가져오기", + "importFromGitHub": "GitHub에서 가져오기", + "importSubtitle": "감지된 원격을 선택하고 열린 이슈 또는 풀 리퀘스트를 불러온 뒤 보드로 가져오세요.", + "importTypeAriaLabel": "가져오기 유형", + "imported": "가져옴", + "importedCount": "{{count}}개 가져옴", + "integrationAheadOfHead": "{{branch}}가 HEAD에 없는 {{count}}개 커밋을 가지고 있습니다", + "issueCount": "{{count}}개 이슈", + "load": "불러오기", + "loadFromRepoAriaLabel": "저장소에서 {{tab}} 불러오기", + "loadMoreCommits": "커밋 더 불러오기", + "loadTabTitle": "{{tab}} 불러오기", + "loading": "불러오는 중…", + "loadingAriaLabel": "{{tab}} 불러오는 중", + "loadingCommits": "커밋 불러오는 중...", + "loadingDiff": "diff 불러오는 중...", + "loadingIssues": "열린 이슈 불러오는 중…", + "loadingPulls": "열린 풀 리퀘스트 불러오는 중…", + "loadingStashDiff": "스태시 diff 불러오는 중…", + "loadingTitle": "불러오는 중…", + "localAheadOfOriginIntegration": "로컬 {{branch}}가 origin/{{branch}}보다 {{count}}개 커밋 앞서 있습니다", + "localBehindOriginIntegration": "로컬 {{branch}}가 origin/{{branch}}보다 {{count}}개 커밋 뒤처져 있습니다", + "localVsOrigin": "로컬 {{branch}} vs origin", + "manualPrFlowHint": "이 작업에 대해 PR 우선 완료를 실행하려면 하단 작업을 사용하세요.", + "mergeBadge": "병합", + "mergeConflictDetected": "병합 충돌이 감지되었습니다. 브랜치를 해결/리베이스한 후 복구를 다시 시도하세요.", + "mergeLabel": "병합", + "mergePrButton": "풀 리퀘스트 병합", + "mergeStrategyMerge": "merge", + "mergeStrategyRebase": "rebase", + "mergeStrategySquash": "squash", + "mergedTaskDone": "병합됨 — 작업이 완료로 이동됨", + "mergingPrHint": "풀 리퀘스트 병합 중…", + "mergingStatus": "병합 중…", + "modalTitle": "Git 관리자", + "modified": "수정됨", + "modifiedCount": "{{count}}개 수정됨", + "newBranchName": "새 브랜치 이름", + "noAheadCommitsFound": "앞선 커밋을 찾을 수 없습니다 (먼저 페치가 필요할 수 있습니다)", + "noBranchesFound": "브랜치를 찾을 수 없습니다", + "noCommitsFound": "커밋을 찾을 수 없습니다", + "noCommitsOnRemote": "{{remote}}에서 커밋을 찾을 수 없습니다. 먼저 페치를 시도하세요.", + "noDescription": "(설명 없음)", + "noIssueSelected": "선택된 이슈 없음", + "noIssueSelectedHint": "목록에서 이슈를 선택하여 제목과 설명을 확인하세요.", + "noLocalRefTitle": "로컬 refs/heads/가 없습니다. origin과 비교할 대상이 없습니다.", + "noLocalTracking": "로컬 추적 없음", + "noMatchingBranches": "일치하는 브랜치 없음", + "noMatchingCommits": "일치하는 커밋 없음", + "noOpenIssues": "열린 이슈가 없습니다", + "noOpenIssuesFound": "열린 이슈를 찾을 수 없습니다", + "noOpenPulls": "열린 풀 리퀘스트가 없습니다", + "noOpenPullsFound": "열린 풀 리퀘스트를 찾을 수 없습니다", + "noOriginTracking": "origin 추적 없음", + "noPullSelected": "선택된 풀 리퀘스트 없음", + "noPullSelectedHint": "목록에서 풀 리퀘스트를 선택하여 세부 정보를 확인하세요.", + "noRefFound": "{{branch}}에 대한 ref를 찾을 수 없습니다", + "noRefFoundTitle": "refs/heads 또는 refs/remotes/origin 어디에도 이 브랜치가 없습니다", + "noRemotes": "원격 없음", + "noRemotesDetected": "GitHub 원격이 감지되지 않았습니다", + "noRemotesInstructions": "이 저장소에 GitHub 원격을 추가한 후 모달을 다시 여세요.", + "noReviewComments": "아직 동기화된 리뷰 댓글이 없습니다", + "noReviewsYet": "아직 리뷰가 없습니다", + "noStagedChanges": "스테이지된 변경 사항 없음", + "noStagedChangesToCommit": "커밋할 스테이지된 변경 사항 없음", + "noStashes": "스태시 없음", + "noUnstagedChanges": "언스테이지된 변경 사항 없음", + "notOnIntegrationBranch": "({{branch}}에 없음)", + "notOnIntegrationBranchBtn": "통합 브랜치에 있지 않음 ({{branch}})", + "notOnIntegrationBranchTitle": "현재 비통합 브랜치에 있습니다", + "nothingLoadedInstructions": "저장소를 선택하고 불러오기를 클릭하여 가져오기 후보 검토를 시작하세요.", + "nothingLoadedYet": "아직 불러온 항목 없음", + "openPullsFrom": "{{remote}}의 열린 풀 리퀘스트", + "originIntegrationAheadOfHead": "origin/{{branch}}가 HEAD에 없는 {{count}}개 커밋을 가지고 있습니다", + "pop": "팝", + "popStashTitle": "스태시 팝 (적용 후 삭제)", + "prAuthUnavailable": "PR 인증 불가 — 'gh auth login'을 실행하세요", + "prChecks": { + "empty": "아직 보고된 검사가 없습니다", + "refreshAriaLabel": "검사 새로 고침", + "required": "필수", + "retry": "재시도", + "summary": "{{passing}}개 통과, {{failing}}개 실패, {{pending}}개 대기 중", + "viewDetails": "세부 정보 보기" + }, + "prMergeFailed": "풀 리퀘스트 병합 실패", + "prMerged": "풀 리퀘스트 병합됨", + "prRefreshFailed": "PR 새로 고침 실패", + "prStatusRefreshed": "PR 상태 새로 고쳐짐", + "prUnlinkConfirm": "이 작업에서 PR #{{number}}의 연결을 해제하시겠습니까? PR은 닫히지 않습니다.", + "prUnlinked": "PR #{{number}} 연결 해제됨", + "previewHeading": "미리보기", + "previewIssueMeta": "이슈 #{{number}}", + "previewPullMeta": "풀 리퀘스트 #{{number}}", + "projectRootNotAvailable": "프로젝트 루트 경로를 사용할 수 없습니다", + "pull": "풀", + "pullCompleted": "풀 완료", + "pullCount": "{{count}}개 풀 리퀘스트", + "pullFailed": "풀 실패", + "pullOptions": "풀 옵션", + "pullOptionsMenu": "풀 옵션 메뉴", + "pullRebase": "Pull --rebase", + "pullRebaseCompleted": "Pull --rebase 완료", + "pullRequestHeading": "풀 리퀘스트", + "pullRequestsCount": "{{count}}개 풀 리퀘스트", + "push": "푸시", + "pushCompleted": "푸시 완료", + "pushFailed": "푸시 실패", + "pushLabel": "푸시:", + "pushUrlLabel": "푸시 URL", + "reCheckConflicts": "충돌 재확인", + "recentCommitsOnRemote": "{{remote}}의 최근 커밋", + "recentIntegrationAdvances": "최근 통합 브랜치 진행 내역", + "refresh": "새로 고침", + "refreshPrStatus": "PR 상태 새로 고침", + "refreshToCheckMerge": "PR 상태를 새로 고쳐 병합 준비 여부를 확인하세요", + "remoteAdded": "원격 '{{name}}'이(가) 성공적으로 추가되었습니다", + "remoteName": "원격 이름", + "remoteOnlyIntegrationTipTitle": "로컬 refs/heads/가 없습니다. refs/remotes/origin/를 통합 끝점으로 사용합니다.", + "remoteOnlyTrackLocally": "(원격 전용 — 로컬에서 추적하려면 git switch {{branch}} 실행)", + "remoteRemoved": "원격 '{{name}}' 제거됨", + "remoteRenamed": "원격 이름이 '{{name}}'(으)로 변경됨", + "remoteUrlUpdated": "원격 URL 업데이트됨", + "removeRemote": "원격 제거", + "removeRemoteMessage": "원격 '{{name}}'을(를) 제거하시겠습니까?", + "removeRemoteTitle": "원격 제거", + "repoMustBeSelected": "저장소를 선택해야 합니다", + "repositoryLabel": "저장소", + "repositoryStatus": "저장소 상태", + "repositoryUrl": "저장소 URL", + "resizeIssuesList": "이슈 목록 크기 조정", + "resolvedFrom": "{{source}}에서 해결됨", + "retry": "재시도", + "retryButton": "재시도", + "retryConflictReclaim": "충돌 복구 재시도", + "reviewLabel": "리뷰", + "reviewsLabel": "리뷰", + "searchCommits": "커밋 검색...", + "sectionBranches": "브랜치", + "sectionChanges": "변경 사항", + "sectionCommits": "커밋", + "sectionRemotes": "원격", + "sectionStashes": "스태시", + "sectionStatus": "상태", + "sectionWorktrees": "작업 트리", + "selectFileToViewDiff": "파일을 선택하여 diff 보기", + "selectIssueAriaLabel": "이슈 #{{number}} 선택", + "selectPullAriaLabel": "풀 리퀘스트 #{{number}} 선택", + "selectRemoteAriaLabel": "Git 원격 선택", + "selectRemotePlaceholder": "원격 선택…", + "selectRemoteToViewDetails": "세부 정보를 보려면 원격을 선택하세요", + "selectedRemote": "선택된 원격", + "sidebarAriaLabel": "Git 관리자 섹션", + "stageAll": "모두 스테이지", + "stageAllAndCommit": "모두 스테이지 후 커밋", + "stageAllAndCommitTitle": "전체 스테이징 및 커밋", + "stageCount": "스테이징 ({{count}})", + "stageFile": "파일 스테이징", + "stageSelected": "선택 항목 스테이징", + "staged": "스테이징됨", + "stagedChanges": "스테이징된 변경 사항 ({{count}})", + "stagedCount": "{{count}}개 스테이징됨", + "stagedFiles": "{{count}}개 파일 스테이징됨", + "staleIndexWarning": "오래된 인덱스가 감지되었습니다. HEAD가 앞으로 이동했지만(주로 Fusion의 merger가 통합 브랜치 ref를 업데이트했기 때문) 인덱스는 이전 팁을 반영하고 있어 `git status`가 새 커밋을 \"스테이징된 변경 사항\"으로 반전하여 표시합니다. 설정에서 mergeAdvanceAutoSync를 활성화하면 merger가 자동으로 조정하거나, git reset --hard HEAD를 실행하여 수동으로 앞으로 이동할 수 있습니다.", + "stash": "스태시", + "stashApplied": "스태시 적용됨", + "stashConflict": { + "copied": "스태시 SHA가 복사되었습니다.", + "copyFailed": "스태시 SHA를 복사할 수 없습니다.", + "dropStash": "스태시 삭제", + "failedWarning": "자동 복원에 실패했습니다. 변경 사항이 위의 스태시에 보존되어 있습니다. git stash apply 로 수동 복구하거나 아래의 재시도를 사용하세요.", + "keepIncoming": "incoming 유지", + "keepMine": "내 것 유지", + "openInEditor": "편집기에서 열기", + "retryRestore": "복원 재시도", + "summary": "{{branch}}을(를) pull했지만 스태시에서 로컬 편집 내용을 복원하는 중 충돌이 발생했습니다.", + "title": "자동 스태시 충돌 해결" + }, + "stashDropped": "스태시 삭제됨", + "stashMessagePlaceholder": "스태시 메시지 (선택 사항)", + "stashPopped": "스태시 팝됨", + "statusLabelBranch": "브랜치", + "statusLabelCommit": "커밋", + "statusLabelIntegrationBranch": "통합 브랜치", + "statusLabelStashes": "스태시", + "statusLabelVsOrigin": "origin 대비", + "statusLabelWorkingTree": "작업 트리", + "switchedToBranch": "{{name}}(으)로 전환됨", + "sync": "동기화", + "syncFailed": "동기화 실패", + "syncLocalTip": "로컬 팁 동기화", + "syncLocalTipTitle": "작업 트리를 로컬 통합 팁에 동기화 (배너 Pull과 동일)", + "syncOriginTitle": "origin에서 pull --rebase 후 현재 브랜치 push", + "syncWithOriginFailed": "origin과 동기화 실패", + "syncWorkingTree": "작업 트리 동기화", + "syncWorkingTreeTitle": "통합 브랜치를 작업 트리로 pull (커밋되지 않은 편집을 자동 스태시 후 복원)", + "synced": "동기화됨", + "syncedWithOrigin": "origin과 동기화됨 (pull --rebase + push)", + "syncedWorktreeToIntegrationTip": "워크트리를 로컬 통합 팁에 동기화됨", + "syncing": "동기화 중…", + "tabIssues": "이슈", + "tabPullRequests": "Pull Request", + "tip": "팁", + "toolbarAriaLabel": "GitHub 가져오기 컨트롤", + "tryDifferentFilter": "다른 레이블 필터를 사용하거나 다른 저장소를 선택하세요.", + "unlinkButton": "연결 해제", + "unresolvedMergeConflicts": "해결되지 않은 병합 충돌", + "unstageAll": "전체 스테이징 취소", + "unstageCount": "스테이징 취소 ({{count}})", + "unstageFile": "파일 스테이징 취소", + "unstageSelected": "선택 항목 스테이징 취소", + "unstaged": "스테이징 취소됨", + "unstagedChanges": "스테이징 취소된 변경 사항 ({{count}})", + "unstagedFiles": "{{count}}개 파일 스테이징 취소됨", + "untracked": "추적되지 않음", + "untrackedCount": "{{count}}개 추적되지 않음", + "upToDate": "최신 상태", + "view": "보기", + "viewOnGithub": "GitHub에서 보기", + "waitingFor": "대기 중: {{reasons}}", + "whatDoesThisMean": "이것은 무슨 의미인가요?", + "workingTreeClean": "클린", + "workingTreeModified": "수정됨", + "worktreeBadgeBare": "bare", + "worktreeBadgeMain": "main", + "worktreesInUse": "{{count}}개 사용 중", + "worktreesTotal": "총 {{count}}개" + }, + "goals": { + "activeCount": "활성 목표 {{count}}개", + "addGoal": "목표 추가", + "archive": "보관", + "capError": "목표는 5개까지만 활성화할 수 있습니다. 다른 목표를 활성화하려면 기존 활성 목표를 해결하세요.", + "capWarning": "활성 목표 5개 한도에 가까워지고 있습니다. 활성 목표를 집중적으로 유지하세요.", + "createError": "현재 목표를 생성할 수 없습니다. 다시 시도해 주세요.", + "draftWithAi": "AI로 초안 작성", + "drafting": "초안 작성 중…", + "emptyState": "목표가 없습니다. 전략적 결과 추적을 시작하려면 목표를 추가하세요.", + "labelDescription": "설명", + "labelTitle": "제목", + "loadError": "현재 목표를 불러올 수 없습니다. 다시 시도해 주세요.", + "loading": "목표 불러오는 중…", + "saveError": "현재 목표를 저장할 수 없습니다. 다시 시도해 주세요.", + "status": "상태", + "title": "목표", + "titleRequired": "제목은 필수입니다.", + "unarchive": "보관 해제", + "updateError": "현재 목표 상태를 업데이트할 수 없습니다. 다시 시도해 주세요." + }, + "groupTask": { + "ariaLabel": "브랜치 그룹 세부 정보", + "autoMergeEnabled": "자동 병합 활성화됨", + "completionText": "{{total}}개 중 {{landed}}개 완료", + "errorLoading": "브랜치 그룹을 불러오지 못했습니다.", + "loading": "브랜치 그룹 불러오는 중…", + "members": "멤버", + "mergeIntoMain": "그룹을 main에 병합", + "openPR": "PR 열기", + "openTask": "작업 열기", + "sharedBranch": "공유 브랜치", + "status": "상태", + "title": "브랜치 그룹 {{id}}", + "unavailable": "브랜치 그룹을 사용할 수 없습니다." + }, + "header": { + "addFirstScript": "첫 번째 스크립트 추가", + "additionalHeaderActions": "추가 헤더 작업", + "agentsView": "에이전트 보기", + "allBaseBranches": "모든 베이스 브랜치", + "allWorkingBranches": "모든 작업 브랜치", + "automation": "자동화", + "baseBranch": "베이스 브랜치", + "boardView": "보드 보기", + "browseFiles": "파일 탐색", + "chatView": "채팅 보기", + "closeSearch": "검색 닫기", + "createTaskWithPlanning": "AI 계획으로 작업 생성", + "devServerView": "개발 서버", + "documentsView": "문서 보기", + "engineOptions": "엔진 옵션", + "evalsView": "평가", + "gitManager": "Git 관리자", + "goalsView": "목표", + "importFromGitHub": "GitHub에서 가져오기", + "insightsView": "인사이트", + "listView": "목록 보기", + "loadingScripts": "스크립트 불러오는 중...", + "localNode": "로컬", + "mailbox": "메일함", + "mailboxView": "메일함 보기", + "mailboxWithCount": "메일함 ({{count}})", + "manageProjects": "프로젝트 관리", + "manageScripts": "스크립트 관리...", + "memoryView": "메모리", + "missionsView": "미션 보기", + "moreActions": "추가 작업", + "moreHeaderActions": "추가 헤더 작업", + "moreViews": "더 많은 보기", + "noBaseBranch": "베이스 브랜치 없음", + "noScriptsAddOne": "스크립트 없음 — 추가하세요…", + "noScriptsConfigured": "구성된 스크립트 없음", + "noWorkingBranch": "작업 브랜치 없음", + "nodes": "노드", + "openSearch": "검색 열기", + "openTerminal": "터미널 열기", + "pauseTriage": "트리아지 일시 중지", + "pendingApprovals": "승인 대기 중", + "projects": "프로젝트", + "quickScripts": "빠른 스크립트", + "reliabilityView": "안정성", + "researchView": "리서치", + "resumePlanningSession": "계획 세션 재개", + "resumePlanningSessionCount": "계획 세션 재개 ({{count}})", + "resumeScheduling": "스케줄링 재개", + "scripts": "스크립트", + "scriptsSubmenu": "스크립트 하위 메뉴", + "searchTasks": "작업 검색...", + "secretsView": "시크릿", + "selectNode": "노드 선택", + "selectProject": "프로젝트 선택", + "settings": "설정", + "showScripts": "스크립트 표시", + "skillsView": "스킬", + "startAiEngine": "AI 엔진 시작", + "stashRecoveryView": "스태시 복구", + "stopAiEngine": "AI 엔진 중지", + "switchNode": "노드 전환", + "switchProject": "프로젝트 전환", + "switchProjectCurrent": "프로젝트 전환 (현재: {{name}})", + "systemStats": "시스템 통계", + "terminal": "터미널", + "todosView": "할 일", + "unreadChatResponse": "읽지 않은 채팅 응답", + "unreadMessages": "읽지 않은 메시지 {{count}}개", + "viewActivityLog": "활동 로그 보기", + "viewProjects": "프로젝트 보기", + "viewUsage": "사용량 보기", + "workflowSteps": "워크플로 단계", + "workingBranch": "작업 브랜치" + }, + "health": { + "activeTasks": "활성 작업", + "anomaly": { + "duplicateActiveId": "중복된 활성 작업 ID", + "idInBothStorages": "활성 및 보관 저장소 모두에 작업 ID 존재", + "sequenceOverlap": "할당자 다음 시퀀스가 기존 작업 ID와 겹침", + "unknownPrefix": "작업 행이 할당자 상태 외부의 접두사 사용" + }, + "anomalyBody": "Fusion이 작업 ID가 재사용되거나 실시간 작업 레코드를 덮어쓸 수 있는 할당자 상태를 발견했습니다.", + "anomalyDetected": "작업 ID 무결성 이상 감지됨", + "completed": "완료됨", + "failed": "실패", + "inFlightAgents": "실행 중인 에이전트", + "lastError": "마지막 오류", + "metricsTitle": "상태 지표", + "recheck": "다시 확인", + "rechecking": "다시 확인 중…", + "refreshFailed": "무결성 상태를 새로 고치지 못했습니다." + }, + "hermes": { + "autoProfile": "자동 / Hermes 기본값 사용", + "binaryPathHelp": "PATH에서 {{cmd}}를 찾으려면 비워 두세요.", + "binaryPathLabel": "바이너리 경로", + "binaryPathPlaceholder": "hermes (기본값: PATH)", + "defaultProfile": " (기본값)", + "description": "로컬 {{cmd}} CLI를 서브프로세스로 구동합니다. 각 Fusion 프롬프트는 {{chatCmd}}로 전송되며, 이후 프롬프트는 {{resumeFlag}}를 통해 동일한 hermes 세션을 재개합니다. 제공자, 모델, 스킬은 hermes 내에서 구성하며, 이 카드는 재정의 항목만 선택합니다.", + "detected": "✓ hermes 감지됨{{version}}{{path}}.", + "gitHubLink": "GitHub의 Hermes", + "maxTurnsHelp": "Hermes 턴당 상한값. Hermes 기본값은 90이며, 더 낮게 제한합니다.", + "maxTurnsLabel": "최대 턴 수", + "modelControlled": "프로필로 제어됨: {{profile}}", + "modelHelp": "선택 사항 — Hermes의 구성된 기본 모델을 재정의합니다.", + "modelLabel": "모델 재정의", + "modelPlaceholder": "예: claude-sonnet-4-5, MiniMax-M3", + "notDetected": "{{cmd}}가 감지되지 않았습니다. 업스트림 에이전트를 설치하세요:", + "notFound": "✗ {{reason}}", + "probing": "로컬 hermes 바이너리 탐색 중…", + "profileHelp": "사용할 Hermes 프로필을 선택하세요. {{cmd}} 호출 시 {{env}}를 프로필 디렉터리로 설정하여 프로필을 활성화합니다.", + "profileLabel": "프로필 (선택 사항)", + "profileModelSeparator": " — {{model}}", + "providerControlled": "프로필로 제어됨: {{profile}}", + "providerHelp": "Hermes가 호출을 라우팅하는 추론 제공자 (기본값: {{default}}).", + "providerLabel": "제공자", + "savedDetected": "저장됨 · ✓ hermes 감지됨{{version}}.", + "savedNotFound": "저장됨 · ✗ {{reason}}", + "savedProbeFailed": "저장됨, 하지만 탐색에 실패했습니다.", + "settingsSaved": "설정이 저장되었습니다.", + "statusDetected": "✓ 감지됨{{version}}{{path}}", + "statusNotDetected": "✗ {{reason}}", + "subname": "by Nous Research", + "testFailed": "테스트 실패 — 위의 상태를 확인하세요.", + "timeoutHelp": "Fusion 측 하드 캡. 기본값 5분.", + "timeoutLabel": "CLI 강제 종료 타임아웃 (ms)", + "yoloHelp": "셸 스타일 도구를 트리거하는 비대화형 세션에 필요합니다.", + "yoloLabel": "위험한 도구 호출 자동 승인 ({{flag}})" + }, + "inline": { + "agent": "에이전트", + "breakDownSubtasks": "AI 생성 하위 작업으로 분해", + "browserVerify": "브라우저 검증", + "browserVerifyChecked": "브라우저 검증 ✓", + "clearSelection": "선택 취소", + "collapse": "접기", + "collapseDescription": "설명 접기", + "collapseTaskOptions": "고급 작업 옵션 접기", + "connecting": "연결 중", + "creating": "생성 중...", + "custom": "사용자 정의", + "deps": "의존성", + "editingDescription": "설명 편집 중", + "enableBrowserVerification": "브라우저 검증 워크플로 단계 활성화", + "enterDescriptionFirst": "먼저 설명을 입력하세요.", + "error": "오류", + "expand": "펼치기", + "expandDescription": "설명 펼치기", + "expandTaskOptions": "고급 작업 옵션 펼치기", + "hintEnterEsc": "Enter로 생성 · Esc로 취소", + "loadingAgents": "에이전트 불러오는 중...", + "model": "모델", + "models": "모델", + "noAgentsAvailable": "사용 가능한 에이전트 없음", + "noExistingTasks": "기존 작업 없음", + "node": "노드", + "offline": "오프라인", + "online": "온라인", + "openPlanningMode": "현재 설명으로 계획 모드 열기", + "plan": "계획", + "preset": "프리셋", + "priority": "우선순위", + "priorityLabel": "우선순위: {{level}}", + "projectDefaultLocal": "프로젝트 기본값 / 로컬", + "removeImage": "이미지 제거", + "save": "저장", + "searchTasks": "작업 검색…", + "selectAgent": "에이전트 선택", + "selectExecutionNode": "실행 노드 선택", + "subtask": "하위 작업", + "useDefault": "기본값 사용", + "whatNeedsToBeDone": "무엇을 해야 하나요?" + }, + "insights": { + "allInsights": "모든 인사이트", + "alreadyRunning": "인사이트 생성이 이미 실행 중입니다. 활성 실행을 표시합니다.", + "alreadyRunningShort": "인사이트 생성이 이미 실행 중입니다.", + "archiveLabel": "이 인사이트 보관", + "archiveTitle": "이 인사이트 보관", + "archived": "\"{{title}}\" 보관됨", + "archivedMsg": "인사이트 보관됨: {{title}}", + "archiving": "\"{{title}}\" 보관 중...", + "backlogHealth": "백로그 상태", + "category": { + "architecture": "아키텍처", + "competitive_analysis": "경쟁 분석", + "dependency": "의존성", + "documentation": "문서화", + "features": "기능", + "other": "기타", + "performance": "성능", + "quality": "품질", + "reliability": "안정성", + "research": "리서치", + "security": "보안", + "testability": "테스트 가능성", + "trends": "트렌드", + "ux": "사용자 경험", + "workflow": "워크플로" + }, + "configureModel": "인사이트 생성 모델 구성", + "configureModelTitle": "모델 구성", + "createTaskLabel": "이 인사이트에서 작업 생성", + "createTaskTitle": "이 인사이트에서 작업 생성", + "creatingTask": "\"{{title}}\"에서 작업 생성 중...", + "dismissLabel": "이 인사이트 무시", + "dismissTitle": "이 인사이트 무시", + "dismissed": "\"{{title}}\" 무시됨", + "dismissedMsg": "인사이트 무시됨: {{title}}", + "dismissing": "\"{{title}}\" 무시 중...", + "failedToArchive": "인사이트 보관에 실패했습니다.", + "failedToCreateTask": "작업 생성에 실패했습니다.", + "failedToDismiss": "인사이트 무시에 실패했습니다.", + "failedToPreparePayload": "인사이트에서 작업 페이로드 준비에 실패했습니다.", + "failedToStart": "생성 시작에 실패했습니다.", + "failedToUnarchive": "인사이트 보관 해제에 실패했습니다.", + "generateDescription": "인사이트를 생성하여 프로젝트에 대한 AI 기반 권장 사항을 받으세요.", + "generateFirst": "첫 번째 인사이트 생성", + "generateInsightsBtn": "인사이트 생성", + "generating": "생성 중...", + "generatingInsights": "인사이트 생성 중...", + "generationModel": "인사이트 생성 모델", + "generationStarted": "인사이트 생성이 시작되었습니다.", + "hideArchived": "보관된 인사이트 숨기기", + "hideArchivedLabel": "보관됨 숨기기", + "latestRun": "최근 실행:", + "loading": "인사이트 불러오는 중...", + "model": "모델", + "modelConfigured": "모델: {{model}}", + "noInsightsYet": "아직 인사이트가 없습니다.", + "runCompleted": "{{created}}개 생성됨, {{updated}}개 업데이트됨", + "showAllInsights": "모든 인사이트 표시", + "showArchived": "보관된 인사이트 표시", + "showArchivedLabel": "보관됨 표시 ({{count}})", + "showBacklogHealth": "백로그 상태 인사이트만 표시", + "taskCreated": "\"{{title}}\"에서 작업 생성됨", + "taskCreatedMsg": "작업 생성됨: {{title}}", + "taskCreationUnavailable": "이 보기에서는 작업 생성을 사용할 수 없습니다.", + "title": "인사이트", + "unarchiveLabel": "이 인사이트 보관 해제", + "unarchiveTitle": "이 인사이트 보관 해제", + "unarchived": "\"{{title}}\" 보관 해제됨", + "unarchivedMsg": "인사이트 보관 해제됨: {{title}}", + "unarchiving": "\"{{title}}\" 보관 해제 중...", + "usePlanningDefault": "계획 기본값 사용" + }, + "interview": { + "addContextDirection": "추가 컨텍스트나 방향을 입력하세요...", + "additionalComments": "추가 의견 (선택 사항)", + "aiThinking": "AI가 생각 중입니다...", + "appliedMessage": "{{targetType}}의 범위와 검증이 적용되었습니다.", + "description": "설명", + "error": { + "failedToApply": "인터뷰 결과 적용에 실패했습니다.", + "failedToRestoreQuestion": "세션 질문을 복원하지 못했습니다.", + "failedToRestoreResult": "세션 결과를 복원하지 못했습니다.", + "failedToResume": "세션을 재개하지 못했습니다.", + "failedToSkip": "{{targetLabel}} 인터뷰 건너뛰기에 실패했습니다.", + "failedToStart": "{{targetLabel}} 인터뷰 시작에 실패했습니다.", + "failedToSubmit": "응답 제출에 실패했습니다.", + "sessionEncounteredError": "세션에서 오류가 발생했습니다.", + "sessionFailed": "AI 연결 중 세션이 실패했습니다." + }, + "hideThinking": "생각 숨기기", + "interviewDescription": "AI가 {{targetType}}의 범위, 수락 기준, 검증 방법을 정제하기 위해 인터뷰를 진행합니다. 각 {{targetType}}은 자체 정제된 계획을 가지거나 미션 수준의 컨텍스트를 상속할 수 있습니다.", + "missionContext": "미션 컨텍스트:", + "no": "아니요", + "noAdditionalDetails": "이 항목에 대해 생성된 추가 세부 정보가 없습니다.", + "planningNotes": "계획 노트", + "preparingQuestion": "다음 질문 준비 중...", + "progressText": "질문 {{progress}} / 약 6", + "reconnecting": "재연결 중…", + "refineScope": "AI로 {{label}} 범위 정제", + "refinedScope": "정제된 범위", + "sendToBackground": "백그라운드로 보내기", + "sessionActiveAnotherTab": "다른 탭에서 세션이 활성화되어 있습니다.", + "showThinking": "생각 표시", + "startInterview": "인터뷰 시작", + "targetLabel": { + "milestone": "마일스톤", + "slice": "슬라이스" + }, + "typeAnswerHere": "여기에 답변을 입력하세요...", + "updated": "{{label}} 업데이트됨", + "useMissionContext": "미션 컨텍스트 사용", + "verificationCriteria": "검증 기준", + "yes": "예" + }, + "listView": { + "apply": "적용", + "applying": "적용 중...", + "archiveSelected": "선택 항목 보관", + "archiveSelectedTitle": "완료된 선택 작업 보관", + "archiveUnavailable": "보관 작업을 사용할 수 없습니다.", + "archiveViaButton": "작업은 보관 버튼을 통해서만 보관할 수 있습니다.", + "bulkArchiveDone": "완료됨 {{count}}개 보관", + "bulkArchiveMessage": "선택한 작업 {{count}}개를 보관하시겠습니까?", + "bulkArchiveNoTasks": "보관할 수 있는 선택된 작업이 없습니다 (완료된 작업만 가능)", + "bulkArchiveSummary": "{{archived}}개 보관됨 · {{skipped}}개 건너뜀 · {{failed}}개 실패", + "bulkArchiveTitle": "선택된 작업 보관", + "bulkDeleteAll": "전체 삭제", + "bulkDeleteArchiveSummary": "{{archived}}개 보관됨, {{deleted}}개 삭제됨, {{failed}}개 실패", + "bulkDeleteMessage": "선택한 작업 {{count}}개를 삭제하시겠습니까?", + "bulkDeleteNoTasks": "삭제할 수 있는 선택된 작업이 없습니다 (보관된 작업 제외)", + "bulkDeleteSummary": "{{deleted}}개 작업 삭제됨 · {{skipped}}개 보관됨 건너뜀 · {{failed}}개 실패", + "bulkDeleteSummary_one": "{{count}}개 작업 삭제됨 · {{skipped}}개 보관됨 건너뜀 · {{failed}}개 실패", + "bulkDeleteSummary_other": "{{count}}개 작업 삭제됨 · {{skipped}}개 보관됨 건너뜀 · {{failed}}개 실패", + "bulkDeleteTitle": "선택된 작업 삭제", + "bulkDeleteWithDoneMessage": "{{deletable}}개 작업을 삭제하거나, {{done}}개 완료 작업을 보관하고 나머지를 삭제하시겠습니까?", + "bulkEdit": "일괄 편집", + "bulkEditModelsLabel": "모델 및 노드 일괄 편집:", + "bulkNoChanges": "적용할 변경 사항이 없습니다.", + "bulkPauseNoTasks": "일시 중지할 수 있는 선택된 작업이 없습니다.", + "bulkPauseSummary": "{{paused}}개 일시 중지됨 · {{skipped}}개 건너뜀 · {{failed}}개 실패", + "bulkUnpauseNoTasks": "재개할 수 있는 선택된 작업이 없습니다.", + "bulkUnpauseSummary": "{{unpaused}}개 재개됨 · {{skipped}}개 건너뜀 · {{failed}}개 실패", + "bulkUpdateFailed": "모델 업데이트에 실패했습니다", + "bulkUpdateNoTasks": "업데이트할 유효한 작업이 없습니다 (보관된 작업은 수정할 수 없습니다)", + "bulkUpdateSuccess": "작업 {{count}}개를 업데이트했습니다", + "cancelMove": "이동 취소", + "clear": "지우기", + "clearColumnFilter": "열 필터 지우기", + "colColumn": "열", + "colDependencies": "의존성", + "colProgress": "진행률", + "colRetries": "재시도", + "colStatus": "상태", + "colTitle": "제목", + "deleteSelected": "선택 항목 삭제", + "deleteSelectedTitle": "선택한 작업 삭제", + "dependentsDeleteMessage": "작업 {{taskId}}에 의존 항목이 있습니다: {{dependents}}. 의존성 참조를 제거하고 강제 삭제하시겠습니까?", + "doneEditing": "편집 완료", + "doneHiddenChip": "완료 항목 숨김", + "executorModel": "실행 모델", + "fastMode": "빠른 모드", + "filterChip": "필터: {{column}}", + "forceDelete": "강제 삭제", + "forceDeleteTitle": "작업 강제 삭제", + "hidden": "{{count}}개 숨김", + "hideDone": "완료 숨기기", + "hideDoneTitle": "완료된 작업 숨기기", + "keepProgress": "진행률 유지", + "lastColumnWarning": "최소 하나의 열이 표시되어야 합니다", + "lineageArchiveMessage": "{{taskId}}에 이 항목을 소스 부모로 참조하는 계보 자식({{children}})이 있습니다.\n\n이 참조를 먼저 해제하고 보관하시겠습니까?", + "lineageDeleteMessage": "{{taskId}}에 이 항목을 소스 부모로 참조하는 계보 자식({{children}})이 있습니다.\n\n이 참조를 먼저 해제하고 삭제하시겠습니까?", + "listControlsLabel": "목록 컨트롤", + "newTask": "+ 새 작업", + "noChange": "변경 없음", + "noTasks": "작업 없음", + "noTasksMatch": "필터에 맞는 작업이 없습니다", + "noTasksYet": "아직 작업이 없습니다", + "nodeOverrideLabel": "노드 재정의", + "nodeStatusConnecting": "연결 중", + "nodeStatusError": "오류", + "nodeStatusOffline": "오프라인", + "nodeStatusOnline": "온라인", + "pauseSelected": "선택 항목 일시정지", + "pauseSelectedTitle": "아직 일시정지되지 않은 선택된 모든 작업을 일시정지합니다", + "pauseUnavailable": "일시정지 작업을 사용할 수 없습니다", + "pausedByAgent": "에이전트에 의해 일시정지됨", + "preserveProgressMessage": "이 작업에 완료된 단계가 있습니다. 이동하기 전에 진행률을 유지하시겠습니까?", + "preserveProgressTitle": "진행률을 유지하시겠습니까?", + "resetProgress": "진행률 초기화", + "resetProgressMessage": "이 작업을 이동하기 전에 모든 단계 진행률을 초기화하시겠습니까?", + "resetProgressTitle": "진행률을 초기화하시겠습니까?", + "resizeSidebar": "작업 목록 사이드바 크기 조정", + "reviewerModel": "검토 모델", + "selectAll": "표시된 모든 작업 선택", + "selectTask": "{{taskId}} 선택", + "selectTaskPrompt": "작업을 선택하여 세부 정보를 확인하세요", + "selectedCount": "{{count}}개 선택됨", + "showAll": "모두 표시", + "showAllTitle": "모든 작업 표시", + "showDone": "완료 표시", + "showDoneTitle": "완료된 작업 표시", + "staleOnly": "오래된 항목만", + "staleOnlyTitle": "오래된 작업만 표시", + "stalePausedReview": "오래된 일시정지 검토", + "stalePausedReviewTitle": "오래된 일시정지 검토 작업만 표시", + "stats": "전체 {{total}}개 중 {{count}}개 작업", + "statsInColumn": "{{column}}의 전체 {{total}}개 중 {{count}}개 작업", + "statusMergingFix": "수정 사항 병합 중…", + "stuck": "막힘", + "taskCreationUnavailable": "작업 생성을 사용할 수 없습니다", + "unpauseSelected": "선택 항목 재개", + "unpauseSelectedTitle": "현재 일시정지된 선택된 작업을 재개합니다", + "unpauseUnavailable": "재개 작업을 사용할 수 없습니다", + "useProjectDefault": "프로젝트 기본값 사용", + "viewOptions": "보기 옵션" + }, + "mailbox": { + "agent": "에이전트", + "agentById": "에이전트: {{id}}", + "agentByName": "에이전트: {{name}}", + "agents": "에이전트", + "agentsTab": "에이전트", + "ago": "전", + "allAgents": "모든 에이전트", + "allAgentsOption": "모든 에이전트", + "approvalApprove": "승인", + "approvalCommentPlaceholder": "선택적 댓글", + "approvalDeny": "거부", + "approvalRequested": "요청됨", + "approvalRequester": "요청자", + "approvalTask": "작업", + "approvals": "승인", + "back": "뒤로", + "backButton": "← 뒤로", + "closeAriaLabel": "닫기", + "closeTitle": "닫기", + "compose": "작성", + "composeButton": "작성", + "composeMessageTitle": "메시지 작성", + "composeTitle": "메시지 작성", + "conversation": "대화", + "conversationLabel": "대화", + "delete": "삭제", + "deleteButton": "삭제", + "deleteFailed": "메시지 삭제에 실패했습니다", + "from": "보낸 사람", + "fromLabel": "보낸 사람:", + "fromPrefix": "보낸 사람: {{participant}}", + "history": "기록", + "inbox": "받은 편지함", + "inboxTab": "받은 편지함", + "justNow": "방금", + "labelAgent": "에이전트: {{id}}", + "labelAgentNamed": "에이전트: {{name}}", + "labelSystem": "시스템", + "labelUser": "사용자: {{id}}", + "labelYou": "나", + "markAllRead": "모두 읽음으로 표시", + "markAllReadButton": "모두 읽음으로 표시", + "markAllReadTitle": "모두 읽음으로 표시", + "markReadFailed": "메시지를 읽음으로 표시하는 데 실패했습니다", + "markedAsRead": "메시지 {{count}}개를 읽음으로 표시했습니다", + "messageDeleted": "메시지가 삭제되었습니다", + "messageSent": "메시지를 보냈습니다", + "noAgentMessages": "에이전트 간 메시지가 없습니다", + "noAgents": "에이전트를 찾을 수 없습니다", + "noAgentsFound": "에이전트를 찾을 수 없습니다", + "noHistoricalApprovals": "과거 승인 기록이 없습니다", + "noInbox": "받은 편지함에 메시지가 없습니다", + "noMessagesInbox": "받은 편지함에 메시지가 없습니다", + "noOutbox": "보낸 메시지가 없습니다", + "noPendingApprovals": "대기 중인 승인이 없습니다", + "noReceivedMessages": "이 에이전트에 대한 수신 메시지가 없습니다", + "noSentMessages": "보낸 메시지가 없습니다", + "noSentMessagesAgent": "이 에이전트에 대한 보낸 메시지가 없습니다", + "outbox": "보낸 편지함", + "outboxTab": "보낸 편지함", + "pending": "대기 중", + "refreshTitle": "새로고침", + "reply": "답장", + "replyButton": "답장", + "replyLoadFailed": "답장한 메시지를 불러오는 데 실패했습니다. 다시 시도하려면 클릭하세요.", + "replyingTo": "답장 대상", + "replyingToMessage": "메시지에 답장 중", + "selectMessageToRead": "읽을 메시지를 선택하세요", + "system": "시스템", + "timeDaysAgo": "{{count}}일 전", + "timeHoursAgo": "{{count}}시간 전", + "timeJustNow": "방금", + "timeMinsAgo": "{{count}}분 전", + "title": "메일함", + "to": "받는 사람", + "toLabel": "받는 사람:", + "toPrefix": "받는 사람: {{recipient}}", + "typeAgentToAgent": "에이전트 ↔ 에이전트", + "typeAgentToUser": "에이전트 → 나", + "typeSystem": "시스템", + "typeUserToAgent": "나 → 에이전트", + "user": "사용자", + "userLabel": "사용자: {{id}}", + "you": "나" + }, + "memory": { + "auditChecksTitle": "감사 검사", + "autoSummarizeHint": "예약된 일정에 따라 메모리가 임계값을 초과하면 자동으로 압축합니다", + "autoSummarizeLabel": "메모리 자동 요약", + "autoSummarizeScheduleHint": "자동 요약 일정의 크론 표현식 (기본값: 매일 오전 3시)", + "autoSummarizeScheduleLabel": "일정 (cron)", + "backendFile": "파일 (.fusion/memory/, agent//memory/)", + "backendQmd": "QMD (양자화 메모리 증류)", + "backendReadonly": "읽기 전용", + "cancel": "취소", + "capAtomicWrites": "원자적 쓰기", + "capPersistent": "영구 저장", + "capReadable": "읽기 가능", + "capWritable": "쓰기 가능", + "categories": "카테고리", + "charCount": "{{count}}자", + "compactFailed": "메모리 압축에 실패했습니다", + "compactSelectedFile": "선택한 파일 압축", + "compacting": "압축 중…", + "compactionThresholdHint": "메모리가 이 글자 수를 초과하면 압축됩니다", + "compactionThresholdLabel": "압축 임계값 (글자 수)", + "currentBackendTitle": "현재 백엔드", + "description": "작업 메모리, 장기 인사이트, 엔진 상태", + "disabledMessage": "메모리가 현재 비활성화되어 있습니다. 이 자동화를 편집하려면 설정에서 메모리 도구를 활성화하세요.", + "dreamNow": "지금 드림 처리", + "dreamNowHint": "드림 처리를 지금 수동으로 트리거합니다.", + "dreamProcessingComplete": "드림 처리가 완료되었습니다", + "dreamProcessingFailed": "드림 처리 실행에 실패했습니다", + "dreaming": "드림 처리 중…", + "dreamsEnabledHint": "일일 메모를 DREAMS.md로 변환하고 재사용 가능한 교훈을 MEMORY.md로 승격합니다.", + "dreamsEnabledLabel": "일일 메모리에서 드림 처리", + "dreamsScheduleHint": "드림 처리의 크론 표현식입니다.", + "dreamsScheduleLabel": "드림 일정", + "editRaw": "원본 편집", + "editorDefaultDescription": "선택한 메모리 파일을 편집합니다.", + "editorLabel": "메모리 편집기", + "extractInsightsFailed": "인사이트 추출에 실패했습니다", + "extractNow": "지금 추출", + "extracting": "추출 중…", + "extractionFailed": "실패", + "extractionSuccess": "성공", + "fileCompacted": "메모리 파일이 압축되었습니다", + "fileLabel": "메모리 파일", + "fileSummary": "{{size}}바이트 · {{updatedAt}} 업데이트됨", + "fileSwitchDirtyHint": "파일을 전환하기 전에 현재 편집 내용을 저장하거나 취소하세요.", + "fileSwitchHint": "보거나 편집할 프로젝트 메모리 파일을 선택하세요.", + "healthHealthy": "정상", + "healthIssues": "문제 발견됨", + "healthStatusTitle": "상태", + "healthWarning": "경고", + "insightCount": "{{count}}개의 인사이트", + "insightsExtracted": "인사이트 {{count}}개 추출됨", + "insightsMemoryLabel": "인사이트 메모리", + "insightsSaved": "인사이트가 저장되었습니다", + "installQmd": "qmd 설치", + "installQmdFailed": "qmd 설치에 실패했습니다", + "installing": "설치 중…", + "lastExtractionLabel": "마지막 추출", + "lastUpdated": "마지막 업데이트", + "layerDaily": "일일", + "layerDescDaily": "드림 처리를 위한 원시 일일 관찰, 미완료 루프, 실행 컨텍스트.", + "layerDescDreams": "일일 메모리에서 승격된 통합 패턴 및 미완료 루프.", + "layerDescLongTerm": "드림에서 승격된 선별된 지속적 결정, 규칙, 제약, 주의 사항.", + "layerDreams": "드림", + "layerLongTerm": "장기", + "loadFileFailed": "메모리 파일 불러오기에 실패했습니다", + "loadingEngineStatus": "엔진 상태 불러오는 중…", + "loadingFile": "메모리 파일 불러오는 중…", + "loadingInsights": "인사이트 불러오는 중…", + "localFallbackUsed": "로컬 폴백 사용됨", + "memorySaved": "메모리가 저장되었습니다", + "noInsights": "아직 추출된 인사이트가 없습니다.", + "noInsightsHint": "인사이트는 작업 메모리에서 자동으로 추출됩니다. \"지금 추출\"을 클릭하여 수동으로 추출을 트리거하세요.", + "noMatchingMemory": "일치하는 메모리를 찾을 수 없습니다.", + "pruningApplied": "적용됨", + "pruningLabel": "가지치기", + "pruningNotNeeded": "필요하지 않음", + "qmdAvailableOnPath": "qmd를 PATH에서 사용할 수 있습니다.", + "qmdChecking": "확인 중", + "qmdCheckingAvailability": "qmd 가용성 확인 중…", + "qmdInstallSuccess": "qmd가 성공적으로 설치되었습니다", + "qmdInstallUnavailable": "qmd 설치가 완료되었지만 qmd를 여전히 사용할 수 없습니다", + "qmdInstalled": "설치됨", + "qmdIntegrationTitle": "QMD 통합", + "qmdNotInstalled": "qmd가 설치되어 있지 않습니다. 검색에 로컬 파일이 사용됩니다. 인덱싱된 검색을 설치하세요:", + "qmdPathUsed": "사용된 qmd 경로", + "qmdStatusAvailable": "사용 가능", + "qmdStatusMissing": "없음", + "readOnlyBanner": "이 메모리 백엔드는 읽기 전용입니다. 변경 사항을 저장할 수 없습니다.", + "retrievalTestComplete": "메모리 검색 테스트가 완료되었습니다", + "retrievalTestFailed": "메모리 검색 테스트에 실패했습니다", + "retrievalTestFallback": "qmd가 설치되어 있지 않아 로컬 폴백이 사용되었습니다", + "runAudit": "감사 실행", + "save": "저장", + "saveInsights": "인사이트 저장", + "saveInsightsFailed": "인사이트 저장에 실패했습니다", + "saveMemoryFailed": "메모리 저장에 실패했습니다", + "saveSettings": "설정 저장", + "saveSettingsFailed": "메모리 설정 저장에 실패했습니다", + "saving": "저장 중…", + "searchPlaceholder": "qmd로 메모리 검색", + "sectionCount": "{{count}}개 섹션", + "settingsNote": "참고: 백엔드 유형 변경은", + "settingsNoteLink": "설정 → 메모리", + "settingsNoteToast": "설정 → 메모리를 열어 백엔드 유형을 변경하세요", + "settingsSaved": "메모리 설정이 저장되었습니다", + "sizeChars": "{{size}}자", + "tabEngines": "엔진", + "tabInsights": "인사이트", + "tabWorking": "작업 메모리", + "testMemorySearchTitle": "메모리 검색 테스트", + "testResultCount": "\"{{query}}\"에 대한 {{count}}개 결과", + "testResultStatus": "qmd {{qmdStatus}} · {{fallbackStatus}}", + "testRetrieval": "검색 테스트", + "testSearchHint": "에이전트가 사용하는 동일한 qmd 기반 memory_search 경로를 실행합니다.", + "testing": "테스트 중…", + "title": "메모리", + "totalInsights": "총 인사이트", + "workingMemoryLabel": "작업 메모리" + }, + "merge": { + "advanced": "고급", + "advancedTo": "{{branch}}가 {{sha}}로 앞당겨졌습니다.", + "changesWillAutoStash": " (로컬 변경 사항이 자동으로 스태시되고 복원됩니다)", + "checkedOutBehind": "{{path}}에 체크아웃된 복사본이 뒤처져 있습니다.", + "commit": "커밋", + "disabledMergeLocked": "푸시 일시정지 — Fusion 병합이 진행 중입니다.", + "disabledNoRemote": "`origin` 원격이 구성되어 있지 않습니다.", + "disabledNoUpstream": "브랜치에 origin의 업스트림이 없습니다.", + "dismissNotice": "병합 앞당김 알림 닫기", + "filesChanged": "병합 커밋의 파일", + "forceWithLeaseLabel": "force-with-lease 허용 (origin이 의도적으로 분기된 경우에만 사용)", + "insertionsDeletions": "병합 커밋의 추가 / 삭제", + "mergedAt": "병합 시각", + "mergedSuccess": "성공적으로 병합되었습니다", + "message": "메시지", + "pr": "PR", + "pulling": "가져오는 중…", + "pushForceWithLease": "푸시 (force-with-lease)", + "pushHeading": "{{branch}}를 origin에 푸시 — {{count}}개 커밋{{plural}} 앞섬.", + "pushSuccess": "origin/{{branch}} @ {{sha}}에 푸시되었습니다.", + "pushToOrigin": "origin에 푸시", + "pushing": "푸시 중…", + "recordedNoConfirm": "로컬 병합 확인 없이 기록됨", + "shortstatTitle": "최종 커밋 요약; 모든 작업 커밋에 걸친 전체 랜딩 diff는 변경 탭을 참조하세요.", + "smartPull": "스마트 풀", + "status": "상태", + "title": "병합 세부 정보", + "unknown": "알 수 없음" + }, + "mesh": { + "ariaLabel": "노드 메시 토폴로지 시각화", + "connecting": "연결 중", + "error": "오류", + "failedToFetchMeshState": "메시 상태를 가져오는 데 실패했습니다", + "noNodes": "표시할 노드가 없습니다", + "noPeers": "피어 투 피어 검색 데이터를 사용할 수 없습니다.", + "offline": "오프라인", + "online": "온라인" + }, + "missions": { + "acceptance": "수락 기준:", + "acceptanceCriteriaOptional": "수락 기준 (선택 사항)", + "actionGenerating": "생성 중…", + "actionResume": "재개", + "actionRetry": "재시도", + "actionReview": "검토", + "activateSlice": "슬라이스 활성화", + "activityTime": "활동 {{time}}", + "actual": "실제: {{value}}", + "addAssertion": "어설션 추가", + "addContext": "추가 컨텍스트나 방향을 입력하세요...", + "addFeature": "기능 추가", + "addMilestone": "마일스톤 추가", + "addSlice": "슬라이스 추가", + "additionalComments": "추가 의견 (선택 사항)", + "aiThinking": "AI가 생각 중입니다...", + "aiValidatedAtRuntime": "런타임에 AI 검증됨", + "aiValidatedMissionGate": "AI 검증 미션 게이트", + "allFeaturesLinked": "모든 기능이 이미 연결되어 있습니다", + "approvePlan": "계획 승인", + "assertionCreateFailed": "어설션 생성에 실패했습니다", + "assertionCreated": "어설션이 생성되었습니다", + "assertionFieldsRequired": "제목과 어설션 텍스트는 필수 항목입니다", + "assertionTextEditPlaceholder": "어설션 텍스트", + "assertionTextPlaceholder": "어설션 텍스트 (완료 시 참이어야 하는 내용)", + "assertionTitlePlaceholder": "어설션 제목", + "assertionUpdateFailed": "어설션 업데이트에 실패했습니다", + "assertionUpdated": "어설션이 업데이트되었습니다", + "attemptRetries": "시도 {{attempt}} · {{count}}{{label}} 남음", + "autopilotActivatingSlice": "슬라이스 활성화 중", + "autopilotCompleting": "완료 중", + "autopilotDescription": "켜져 있으면 Fusion이 작업이 완료될 때 자동으로 다음 슬라이스를 활성화하고 기능을 계획합니다.", + "autopilotDisabled": "자동 조종 비활성화됨", + "autopilotEnabled": "자동 조종 활성화됨", + "autopilotEnabledLabel": "자동 조종 활성화됨", + "autopilotLabel": "자동 조종", + "autopilotLastActivation": "마지막 활성화 {{time}}", + "autopilotOff": "꺼짐", + "autopilotStateActivating": "슬라이스 활성화 중", + "autopilotStateCompleting": "완료 중", + "autopilotStateInactive": "꺼짐", + "autopilotStateUnknown": "알 수 없음", + "autopilotStateWatching": "감시 중", + "autopilotUpdateFailed": "자동 조종 업데이트에 실패했습니다", + "autopilotWatching": "자동 조종 감시 중", + "autopilotWatchingSince": "{{time}}부터 감시 중", + "autopilotWatchingState": "감시 중", + "backToMissions": "미션 목록으로", + "backToMissionsList": "미션 목록으로", + "blocked": "차단됨:", + "blockedReason": "차단 이유:", + "branchName": "브랜치 이름", + "branchNameAriaLabel": "미션 브랜치 이름", + "branchNamePlaceholder": "예: feature/mission-work", + "branchNameRequired": "선택한 브랜치 전략에 브랜치 이름이 필요합니다", + "branchStrategy": "브랜치 전략", + "branchStrategyAriaLabel": "미션 브랜치 전략", + "branchStrategyAutoPerTask": "작업별 자동 브랜치 이름 지정 (세부 정보에서)", + "branchStrategyCustomNew": "커스텀 브랜치 생성", + "branchStrategyExisting": "기존 브랜치 사용", + "branchStrategyProjectDefault": "프로젝트/기본 브랜치 사용", + "buildExample": "예: 현재 상태 표시, 댓글, 버전 기록이 있는 실시간 협업 문서 편집기 구축...", + "cancelButton": "취소", + "clickToViewTask": "클릭하여 작업 보기", + "close": "닫기", + "closeMissionManager": "미션 관리자 닫기", + "collapseDetails": "세부 정보 접기", + "completedFeatures": "{{total}}개 중 {{completed}}개 기능", + "completedMilestones": "{{total}}개 중 {{completed}}개 마일스톤", + "completedTasks": "{{total}}개 중 {{completed}}개 작업", + "confirmMilestonePlaceholder": "이 마일스톤이 완료되었는지 확인하는 방법...", + "confirmSlicePlaceholder": "이 슬라이스가 완료되었는지 확인하는 방법...", + "contractAssertions": "계약 어설션 (AI 검증됨)", + "createButton": "생성", + "createTask": "작업 생성", + "created": "미션이 생성되었습니다", + "createdFromInterview": "AI 인터뷰에서 미션이 생성되었습니다", + "creatingMission": "미션 생성 중...", + "defaultInterviewTitle": "미션 인터뷰", + "deleteAssertion": "어설션 삭제", + "deleteButton": "삭제", + "deleteConfirm": "이 {{type}}을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", + "deleteFailed": "미션 삭제에 실패했습니다", + "deleteFeature": "기능 삭제", + "deleteMilestone": "마일스톤 삭제", + "deleteMission": "미션 삭제", + "deleteSlice": "슬라이스 삭제", + "deleted": "미션이 삭제되었습니다", + "describeGoal": "구축하려는 것을 설명하세요. AI가 범위, 제약, 요구 사항을 파악하기 위해 인터뷰를 진행한 다음 마일스톤, 슬라이스, 기능이 포함된 구조화된 계획을 생성합니다.", + "descriptionLabel": "미션 설명", + "descriptionOptional": "설명 (선택 사항)", + "detailTabs": "미션 상세 탭", + "discardButton": "버리기", + "discardDraft": "초안 버리기", + "discardDraftConfirm": "이 인터뷰 초안을 버리시겠습니까? 저장된 초안이 삭제되며 되돌릴 수 없습니다.", + "dismiss": "닫기", + "draftDiscardFailed": "초안 버리기에 실패했습니다", + "draftOpenInAnotherTab": "다른 탭에서 초안이 열려 있습니다", + "draftsLabel": "초안", + "editAssertion": "어서션 편집", + "editFeature": "기능 편집", + "editMilestone": "마일스톤 편집", + "editMission": "미션 편집", + "editSlice": "슬라이스 편집", + "enrichedDescPreview": "보강된 설명 미리보기", + "expandRunHistory": "실행 기록 펼치기", + "expected": "예상: {{value}}", + "failedAssertions": "실패한 어서션:", + "failedAssertionsTitle": "실패한 어서션:", + "failedLoadModels": "모델 불러오기에 실패했습니다", + "featureCreated": "기능이 생성되었습니다", + "featureCriteriaAwaitingSync": "어서션 동기화 대기 중인 기능 기준", + "featureDeleteFailed": "기능 삭제에 실패했습니다", + "featureDeleted": "기능이 삭제되었습니다", + "featureLinkFailed": "기능 연결에 실패했습니다", + "featureLinkTaskFailed": "기능과 작업 연결에 실패했습니다", + "featureLinkedToAssertion": "기능이 어서션에 연결되었습니다", + "featureLinkedToTask": "기능이 작업에 연결되었습니다", + "featureSaveFailed": "기능 저장에 실패했습니다", + "featureTitlePlaceholder": "기능 제목", + "featureTitleRequired": "기능 제목을 입력해야 합니다", + "featureTriageFailed": "기능 분류에 실패했습니다", + "featureTriaged": "기능이 분류되었습니다 — 작업이 생성되었습니다", + "featureUnlinkFailed": "기능 연결 해제에 실패했습니다", + "featureUnlinkFromAssertionFailed": "기능 연결 해제에 실패했습니다", + "featureUnlinkedFromAssertion": "기능이 어서션에서 연결 해제되었습니다", + "featureUnlinkedFromTask": "기능이 작업에서 연결 해제되었습니다", + "featureUpdated": "기능이 업데이트되었습니다", + "featuresCount": "{{count}}개 기능", + "filterAll": "모든 이벤트", + "filterAutopilot": "자동 조종 이벤트", + "filterErrors": "오류 및 경고", + "filterLabel": "필터", + "filterSlices": "슬라이스 및 마일스톤 이벤트", + "filterStateChanges": "상태 변경", + "filterTasks": "작업 이벤트", + "generatedFixFeatures": "생성된 수정 기능:", + "generatedFixFeaturesTitle": "생성된 수정 기능", + "generatedFromFeature": "기능에서 생성됨: {{id}}", + "helperTextActive": "중지하면 연결된 작업이 일시 중지되고 미션이 차단됨으로 표시됩니다.", + "helperTextBlocked": "재개하면 미션이 다시 활성화되고 실행이 계속됩니다.", + "helperTextPlanning": "시작하면 첫 번째 슬라이스가 활성화되어 작업을 시작할 수 있습니다.", + "hideDetails": "세부 정보 숨기기", + "hideMetadata": "메타데이터 숨기기", + "hideThinking": "사고 과정 숨기기", + "hideValidationRounds": "검증 라운드 숨기기", + "interviewActionGenerating": "계획 생성 중", + "interviewActionResume": "인터뷰 재개", + "interviewActionRetry": "인터뷰 재시도", + "interviewActionReview": "계획 검토", + "interviewComplete": "계획 준비 완료 — 미션을 생성하려면 검토하고 승인하세요.", + "interviewErrorDefault": "AI 연결 중 세션이 실패했습니다.", + "interviewErrored": "인터뷰에서 오류가 발생했습니다. 이 목록 항목에서 재시도하세요.", + "interviewGenerating": "인터뷰 컨텍스트에서 미션 계층 구조를 생성하고 있습니다.", + "interviewInProgress": "인터뷰 진행 중", + "interviewStatusAwaitingInput": "입력 대기 중", + "interviewStatusComplete": "계획 준비 완료", + "interviewStatusError": "재시도 필요", + "interviewStatusGenerating": "계획 생성 중", + "interviewStatusNeedsRetry": "재시도 필요", + "interviewStatusPlanReady": "계획 준비 완료", + "interviewWaiting": "인터뷰가 다음 응답을 기다리고 있습니다.", + "lastValidatorStatus": "마지막 {{status}}", + "linkAFeature": "기능 연결", + "linkButton": "연결", + "linkFeatureButton": "기능 연결", + "linkFeatureToTask": "작업에 기능 연결:", + "linkToTask": "작업에 연결", + "linkedCount": "{{count}}개 연결됨", + "linkedFeaturesCount": "{{count}}개 연결된 기능", + "linkedFeaturesLabel": "연결된 기능", + "linkedGoals": "연결된 목표", + "linkedGoalsTitle": "연결된 목표", + "loadActivityFailed": "미션 활동 불러오기에 실패했습니다", + "loadDetailFailed": "미션 세부 정보 불러오기에 실패했습니다", + "loadFailed": "미션 불러오기에 실패했습니다", + "loadMore": "더 보기", + "loadingActivity": "미션 활동 불러오는 중...", + "loadingMissionDetails": "미션 세부 정보 불러오는 중...", + "loadingMissions": "미션 불러오는 중...", + "loadingModels": "모델 불러오는 중…", + "loopState": "루프 상태: {{state}}", + "milestoneCreated": "마일스톤이 생성되었습니다", + "milestoneDeleteFailed": "마일스톤 삭제에 실패했습니다", + "milestoneDeleted": "마일스톤이 삭제되었습니다", + "milestoneDescriptionPlaceholder": "마일스톤 설명...", + "milestoneSaveFailed": "마일스톤 저장에 실패했습니다", + "milestoneTitlePlaceholder": "마일스톤 제목", + "milestoneTitleRequired": "마일스톤 제목을 입력해야 합니다", + "milestoneUpdated": "마일스톤이 업데이트되었습니다", + "milestonesCount": "{{count}}개 마일스톤", + "missionHealthAriaLabel": "미션 상태: {{state}}", + "missionInterviewInProgressDesc": "미션 인터뷰가 아직 진행 중입니다. 이 미션을 열어 계획을 계속하세요.", + "missionList": "미션 목록", + "missionManagerAriaLabel": "미션 관리자", + "missionTargetBranchAriaLabel": "미션 대상 브랜치", + "missionTitlePlaceholder": "미션 제목", + "noAssertionFailures": "어서션 실패 없음", + "noAssertionsDefined": "아직 정의된 기능 승인 기준 또는 계약 어서션이 없습니다.", + "noAssertionsYet": "아직 연결된 계약 어서션이 로드되지 않았습니다. 아래 기능 기준은 미션 검증 실행 시 AI로 검증됩니다.", + "noEventsYet": "아직 이벤트가 없습니다.", + "noFeaturesLinkedYet": "아직 연결된 기능이 없습니다", + "noFixFeaturesGenerated": "생성된 수정 기능이 없습니다.", + "noGoalsLinked": "이 미션에 연결된 목표가 없습니다", + "noLinkedGoals": "연결된 목표가 없습니다.", + "noMilestonesYet": "아직 마일스톤이 없습니다. 시작하려면 하나 추가하세요.", + "noMissionsYetBody": "미션은 마일스톤, 슬라이스, 기능을 하나의 계획으로 묶는 대규모 이니셔티브입니다. 미션을 계획하여 목표를 처음부터 끝까지 분해하고 에이전트가 자동 조종 방식으로 작업할 수 있게 하세요.", + "noMissionsYetTitle": "아직 미션이 없습니다", + "noSlicesYet": "아직 슬라이스가 없습니다", + "noValidationRunsYet": "아직 검증 실행이 없습니다.", + "none": "없음", + "openMissionAriaLabel": "미션 {{title}} 열기", + "orSelect": "또는 선택:", + "planMilestone": "마일스톤 계획", + "planNewMission": "새 미션 계획", + "planReady": "미션 계획 준비 완료", + "planSlice": "슬라이스 계획", + "planStateNeedsUpdate": "업데이트 필요", + "planStateNotPlanned": "계획되지 않음", + "planStatePlanned": "계획됨", + "planTitle": "AI로 미션 계획", + "planningModel": "계획 모델", + "prepareQuestion": "다음 질문 준비 중...", + "progressText": "질문 {{count}}/6", + "reconnecting": "재연결 중…", + "relativeTimeDays": "{{count}}일 전", + "relativeTimeHours": "{{count}}시간 전", + "relativeTimeJustNow": "방금 전", + "relativeTimeMinutes": "{{count}}분 전", + "removeFeature": "기능 제거", + "removeMilestone": "마일스톤 제거", + "removeSlice": "슬라이스 제거", + "resizeSidebar": "미션 사이드바 크기 조정", + "resumeFailed": "미션 재개에 실패했습니다", + "resumeInterviewAriaLabel": "인터뷰 {{title}} 재개", + "resumeMission": "미션 재개", + "resumed": "미션이 재개되었습니다", + "retries": "재시도", + "retry": "재시도", + "retryBudgetTitle": "구현 시도 횟수 및 남은 재시도 예산", + "retrying": "재시도 중...", + "roadmapLabel": "로드맵", + "run": "실행:", + "runHelperActive": "중지하면 연결된 작업이 일시 중지되고 미션이 차단됨으로 표시됩니다.", + "runHelperBlocked": "재개하면 미션이 다시 활성화되고 실행이 계속됩니다.", + "runHelperPlanning": "시작하면 첫 번째 슬라이스가 활성화되어 작업을 시작할 수 있습니다.", + "runSettings": "미션 실행 설정", + "runSettingsTitle": "미션 실행 설정", + "saveButton": "저장", + "saveFailed": "미션 저장에 실패했습니다", + "selectMissionToView": "세부 정보를 보려면 미션을 선택하세요", + "sendToBackground": "백그라운드로 보내기", + "sessionActiveAnother": "세션이 다른 탭에서 활성화되어 있습니다.", + "sessionActiveHeartbeat": "이 세션은 다른 탭에서 활성화되어 있습니다 (실시간 하트비트)", + "sessionActiveTab": "이 세션은 다른 탭에서 활성화되어 있습니다", + "showDetails": "세부 정보 표시", + "showMetadata": "메타데이터 표시", + "showThinking": "사고 과정 표시", + "showValidationRounds": "검증 라운드 표시", + "sliceActivateFailed": "슬라이스 활성화에 실패했습니다", + "sliceActivated": "슬라이스가 활성화되었습니다", + "sliceCreated": "슬라이스가 생성되었습니다", + "sliceDeleteFailed": "슬라이스 삭제에 실패했습니다", + "sliceDeleted": "슬라이스가 삭제되었습니다", + "sliceSaveFailed": "슬라이스 저장에 실패했습니다", + "sliceTitlePlaceholder": "슬라이스 제목", + "sliceTitleRequired": "슬라이스 제목을 입력해야 합니다", + "sliceTriageFailed": "슬라이스 기능 분류에 실패했습니다", + "sliceTriaged": "{{count}}개 기능이 분류되었습니다", + "sliceUpdated": "슬라이스가 업데이트되었습니다", + "sliceVerification": "슬라이스 검증", + "slicesCount": "{{count}}개 슬라이스", + "source": "출처:", + "startFailed": "미션 시작에 실패했습니다", + "startInterview": "인터뷰 시작", + "startMission": "미션 시작", + "startOver": "처음부터 다시", + "started": "미션이 시작되었습니다 — 첫 번째 슬라이스가 활성화됨", + "statusActive": "활성", + "statusArchived": "보관됨", + "statusBlocked": "차단됨", + "statusComplete": "완료", + "statusDefined": "정의됨", + "statusDone": "완료", + "statusFailed": "실패", + "statusInProgress": "진행 중", + "statusPassed": "통과", + "statusPending": "대기 중", + "statusPlanning": "계획 중", + "statusTriaged": "분류됨", + "stopFailed": "미션 중지에 실패했습니다", + "stopMission": "미션 중지", + "stopped": "미션이 중지되었습니다 ({{count}}개 작업 일시 중지됨)", + "summaryStats": "{{milestones}}개 마일스톤, {{features}}개 기능. 승인 전에 검토 및 편집하세요.", + "tabActivity": "활동 ({{count}})", + "tabStructure": "구조", + "takeControl": "제어권 가져오기", + "takingControl": "제어권 가져오는 중...", + "targetBranch": "대상 브랜치", + "targetBranchPlaceholder": "예: main", + "taskIdPlaceholder": "작업 ID (예: FN-001)", + "taskIdRequired": "작업 ID를 입력해야 합니다", + "tasksFailed": "{{count}}개 실패", + "title": "미션", + "titleLabel": "미션 제목", + "titleRequired": "미션 제목을 입력해야 합니다", + "toggleDetails": "세부 정보 토글", + "transformVision": "비전을 구조화된 미션으로 변환하세요", + "triageAllFeatures": "모든 기능 분류", + "triageCreateTask": "분류 — 작업 생성", + "tryExample": "예시 사용해 보기:", + "typeAnswer": "여기에 답변을 입력하세요...", + "unlinkFeature": "기능 연결 해제", + "unlinkTask": "작업 연결 해제", + "unlinkedBadge": "연결 해제됨", + "untitled": "제목 없음", + "updateButton": "업데이트", + "updated": "미션이 업데이트되었습니다", + "validateFeature": "기능 검증", + "validationRoundsCount": "{{count}}라운드", + "validationRoundsLabel": "검증 라운드 ({{count}})", + "validationRuns": "검증 실행", + "validationState": "검증 상태", + "validationStateNotStarted": "시작되지 않음", + "validationTelemetry": "검증 원격 측정", + "validationTriggerFailed": "검증 트리거에 실패했습니다", + "validationTriggered": "검증이 트리거되었습니다", + "verification": "검증:", + "verificationCriteria": "검증 기준", + "viewMissionFailures": "미션 실패 보기", + "whatToBuild": "무엇을 만들고 싶으신가요?" + }, + "modalManager": { + "createdFromPlanning": "계획 모드에서 {{id}}를 생성했습니다", + "createdFromSubtask": "하위 작업 분해에서 {{ids}}를 생성했습니다", + "createdMultipleFromPlanning": "계획 모드에서 {{ids}}를 생성했습니다" + }, + "model": { + "noChange": "변경 없음", + "selectPlaceholder": "모델 선택…" + }, + "modelSelection": { + "choose": "이 작업에 사용할 모델을 선택하세요. 선택하지 않으면 기본 모델이 사용됩니다.", + "custom": "사용자 지정", + "executorModel": "실행자 모델", + "executorPlaceholder": "실행자 모델 선택…", + "loading": "모델 불러오는 중…", + "noModels": "사용 가능한 모델이 없습니다. 모델 선택을 활성화하려면 설정에서 인증을 구성하세요.", + "preset": "프리셋", + "reviewerModel": "검토자 모델", + "reviewerPlaceholder": "검토자 모델 선택…", + "title": "모델 선택", + "useDefault": "기본값 사용", + "usingDefault": "기본값 사용 중" + }, + "models": { + "addProviderToFavoritesAriaLabel": "{{provider}}를 즐겨찾기에 추가", + "addToFavorites": "즐겨찾기에 추가", + "addToFavoritesAriaLabel": "{{name}}을(를) 즐겨찾기에 추가", + "clearFilter": "필터 지우기", + "count": "{{count}}개 모델", + "descriptions": { + "executor": "이 작업을 구현하는 데 사용되는 AI 모델입니다.", + "override": "이 작업에 사용되는 AI 모델을 재정의합니다. 지정하지 않으면 프로젝트 또는 전역 기본값이 사용됩니다.", + "planning": "작업 명세(트리아지 단계)에 사용되는 AI 모델입니다.", + "reviewer": "이 작업의 코드 및 계획을 검토하는 데 사용되는 AI 모델입니다.", + "thinkingLevel": "AI 에이전트의 추론 노력을 제어합니다. 수준이 높을수록 더 많은 토큰을 사용합니다." + }, + "emptyStates": { + "noModels": "사용 가능한 모델이 없습니다. 모델 선택을 활성화하려면 설정에서 인증을 구성하세요." + }, + "errors": { + "failedSaveSettings": "모델 설정 저장에 실패했습니다", + "failedSaveThinking": "사고 수준 저장에 실패했습니다", + "failedUpdateFavorites": "즐겨찾기 업데이트에 실패했습니다", + "failedUpdateModelFavorites": "모델 즐겨찾기 업데이트에 실패했습니다" + }, + "filterPlaceholder": "모델 필터…", + "labels": { + "executorModel": "실행자 모델", + "planningModel": "계획 모델", + "reviewerModel": "검토자 모델", + "thinkingLevel": "사고 수준" + }, + "messages": { + "modelSetTo": "{{label}} 모델이 {{provider}}/{{modelId}}로 설정되었습니다", + "modelSetToDefault": "{{label}} 모델이 기본값으로 설정되었습니다", + "thinkingLevelSet": "사고 수준이 {{level}}로 설정되었습니다", + "thinkingLevelSetDefault": "사고 수준이 기본값({{level}})으로 설정되었습니다", + "upToDate": "모델 설정이 최신 상태입니다.", + "usingDefaults": "프로젝트 또는 전역 기본 모델을 사용 중입니다." + }, + "noResults": "'{{filter}}'와(과) 일치하는 모델이 없습니다", + "options": { + "default": "기본값", + "high": "높음", + "low": "낮음", + "medium": "중간", + "minimal": "최소", + "off": "끔" + }, + "placeholders": { + "selectExecutor": "실행자 모델 선택…", + "selectPlanning": "계획 모델 선택…", + "selectReviewer": "검토자 모델 선택…" + }, + "removeFromFavorites": "즐겨찾기에서 제거", + "removeFromFavoritesAriaLabel": "{{name}}을(를) 즐겨찾기에서 제거", + "removeProviderFromFavoritesAriaLabel": "{{provider}}를 즐겨찾기에서 제거", + "states": { + "loading": "사용 가능한 모델 불러오는 중…", + "usingDefault": "기본값 사용 중" + }, + "targetLabels": { + "executor": "실행자", + "planning": "계획", + "validator": "검토자" + }, + "titles": { + "configuration": "모델 구성" + }, + "useDefault": "기본값 사용" + }, + "nav": { + "activityLog": "활동 로그", + "agents": "에이전트", + "automation": "자동화", + "chat": "채팅", + "chatUnreadAriaLabel": "읽지 않은 채팅 응답", + "devServer": "개발 서버", + "documents": "문서", + "evals": "평가", + "files": "파일", + "gitManager": "Git 관리자", + "goals": "목표", + "importFromGitHub": "GitHub에서 가져오기", + "insights": "인사이트", + "loadingScripts": "스크립트 불러오는 중…", + "mailbox": "메일함", + "mailboxPendingAriaLabel": "승인 대기 중", + "manageScripts": "스크립트 관리…", + "memory": "메모리", + "missions": "미션", + "more": "더 보기", + "moreSheetTitle": "탐색", + "noScriptsAddOne": "스크립트 없음 — 추가하세요…", + "nodes": "노드", + "planning": "계획", + "primaryNavAriaLabel": "기본 탐색", + "projects": "프로젝트", + "reliability": "신뢰성", + "research": "연구", + "scriptsSubmenuAriaLabel": "스크립트 하위 메뉴", + "secrets": "시크릿", + "settings": "설정", + "showScriptsAriaLabel": "스크립트 표시", + "skills": "스킬", + "stashRecovery": "스태시 복구", + "systemStats": "시스템 통계", + "tasks": "작업", + "terminal": "터미널", + "todos": "할 일", + "usage": "사용량", + "workflowSteps": "워크플로우 단계" + }, + "newTaskModal": { + "addDependencies": "의존성 추가", + "assignAgent": "에이전트 할당", + "assignAgentButton": "에이전트 할당", + "branchRequired": "이 브랜치 전략에는 브랜치 이름이 필요합니다.", + "clearSelection": "선택 지우기", + "createTask": "작업 생성", + "creating": "생성 중...", + "dependencies": "의존성", + "discardChanges": "변경 사항 버리기", + "failedToCreate": "작업 생성에 실패했습니다", + "failedToUpload": "업로드 실패: {{files}}", + "loadingAgents": "에이전트 불러오는 중...", + "noAgentsAvailable": "사용 가능한 에이전트 없음", + "noAvailableTasks": "사용 가능한 작업 없음", + "searchTasks": "작업 검색…", + "selectAgent": "에이전트 선택", + "selectedCount": "{{count}}개 선택됨", + "taskCreated": "{{taskId}} 생성됨", + "title": "새 작업", + "unsavedChanges": "저장되지 않은 변경 사항이 있습니다. 버리시겠습니까?" + }, + "nodeStatus": { + "connecting": "연결 중", + "error": "오류", + "local": "로컬", + "offline": "오프라인", + "online": "온라인", + "unknown": "알 수 없음" + }, + "nodeSync": { + "error": { + "authSyncFailed": "인증 동기화에 실패했습니다", + "failedToFetchStatus": "동기화 상태 가져오기에 실패했습니다", + "pullFailed": "설정 가져오기에 실패했습니다", + "pushFailed": "설정 내보내기에 실패했습니다", + "someRequestsFailed": "일부 동기화 상태 요청이 실패했습니다" + } + }, + "nodes": { + "actions": { + "connect": "연결", + "connecting": "연결 중...", + "edit": { + "ariaLabel": "노드 편집", + "label": "편집", + "title": "편집" + }, + "health": { + "ariaLabel": "노드 상태 확인 실행", + "label": "상태", + "title": "상태 확인" + }, + "remove": { + "ariaLabel": "노드 제거", + "ariaLabelConfirm": "노드 제거 확인", + "label": "제거", + "labelConfirm": "확인", + "title": "제거", + "titleConfirm": "제거 확인" + }, + "restart": { + "ariaLabel": "노드 컨테이너 재시작", + "label": "재시작", + "title": "FN-3113 이후 사용 가능" + }, + "start": { + "ariaLabel": "노드 컨테이너 시작", + "label": "시작", + "title": "FN-3113 이후 사용 가능" + }, + "stop": { + "ariaLabel": "노드 컨테이너 중지", + "label": "중지", + "title": "FN-3113 이후 사용 가능" + } + }, + "addCliButton": "CLI 추가", + "addDockerNode": "Docker 노드 추가", + "addDockerNodeTitle": "관리형 Docker 노드 추가", + "addFirstNode": "첫 번째 노드 추가", + "addMountButton": "마운트 추가", + "addNode": "노드 추가", + "addVariableButton": "변수 추가", + "adding": "추가 중...", + "apiKey": "API 키", + "apiKeyMode": "API 키 모드", + "apiKeyNotConfigured": "구성되지 않음", + "apiKeyPlaceholder": "노드 API 키 입력", + "attachProjects": "기존 프로젝트 연결", + "attachProjectsHint": "이 노드에서 실행할 기존 프로젝트를 선택하고, 각 프로젝트의 노드 전용 절대 경로를 입력하세요.", + "auth": { + "differ": "인증 자격 증명이 다릅니다", + "differProviders": "인증 자격 증명이 다릅니다: {{providers}}", + "match": "인증 자격 증명이 일치합니다", + "notSynced": "인증이 동기화되지 않았습니다" + }, + "authSync": { + "differ": "자격 증명 불일치", + "label": "인증 동기화: {{status}}", + "match": "자격 증명 일치", + "notSynced": "동기화되지 않음" + }, + "autoAssignment": "자동 (할당 없음)", + "autoGenerate": "자동 생성", + "availableSoon": "FN-3113 이후 사용 가능", + "cancelButton": "취소", + "closeAriaLabel": "노드 보기 닫기", + "closeButton": "닫기", + "closeLogsAriaLabel": "로그 닫기", + "closeModalAriaLabel": "노드 상세 모달 닫기", + "closeNodeModal": "노드 추가 모달 닫기", + "concurrencyMin": "동시 실행 수는 최소 1이어야 합니다", + "concurrencyRange": "동시 실행 수는 {{min}}에서 {{max}} 사이여야 합니다", + "containerLogs": "컨테이너 로그", + "description": "연결 세부 정보와 동시 실행 설정을 입력하여 기존 Fusion 노드를 등록하세요.", + "discoverBeforeAdding": "이 노드를 추가하기 전에 원격 프로젝트를 검색하세요.", + "discoverRemoteProjects": "원격 프로젝트 검색", + "discoveredCount": "원격 프로젝트 {{count}}개{{plural}} 검색됨.", + "discovering": "검색 중...", + "discoveryFailed": "원격 프로젝트 검색에 실패했습니다", + "dismissError": "오류 닫기", + "docker": "Docker", + "dockerBadge": "관리형 Docker 노드", + "dockerConfigSaveFailed": "Docker 구성 저장에 실패했습니다", + "dockerConfigSaveSuccess": "Docker 구성이 저장되었습니다", + "dockerConfiguration": "Docker 구성", + "dockerContainerId": "컨테이너 ID", + "dockerContainerPath": "컨테이너 경로", + "dockerContextName": "컨텍스트 이름", + "dockerCpuCount": "CPU 수", + "dockerDefaultCpu": "기본 CPU", + "dockerDefaultMemory": "기본 메모리", + "dockerEnvVars": "환경 변수", + "dockerExitCode": "종료 코드:", + "dockerExtraClis": "추가 CLI", + "dockerFieldImage": "이미지", + "dockerHost": { + "local": "로컬 Docker", + "remote": "원격: {{host}}" + }, + "dockerHostConfig": "호스트 구성", + "dockerHostPath": "호스트 경로", + "dockerHostUrl": "Docker 호스트 URL", + "dockerLabel": "Docker", + "dockerMemoryBytes": "메모리 바이트 (2 GB = 2147483648)", + "dockerNeedsRecreate": "재생성 필요", + "dockerNodeCreated": "Docker 노드 \"{{name}}\"이(가) 생성되었습니다", + "dockerPersistence": "지속성", + "dockerPersistentStorage": "영구 스토리지", + "dockerPidsLimit": "PID 제한", + "dockerPort": "포트", + "dockerResourceDefault": "기본값", + "dockerResourceSizing": "리소스 크기", + "dockerResources": "리소스", + "dockerRetainOnDelete": "삭제 시 보존", + "dockerStatusUnknown": "알 수 없음", + "dockerTlsCaCert": "TLS CA 인증서 경로", + "dockerTlsCert": "TLS 인증서 경로", + "dockerTlsKey": "TLS 키 경로", + "dockerTlsVerify": "TLS 확인", + "dockerUptime": "가동 시간:", + "dockerVolumeMounts": "볼륨 마운트", + "dockerVolumeName": "볼륨 이름", + "editButton": "편집", + "errorFetching": "노드 가져오기에 실패했습니다", + "errorPersistMappings": "프로젝트 매핑 저장에 실패했습니다", + "errorUnregisterAfterMappingFailure": "매핑 실패 후 노드 등록 해제에 실패했습니다", + "errors": { + "connectFailed": "연결에 실패했습니다", + "connectToNode": "노드 연결에 실패했습니다" + }, + "failedCreateDocker": "Docker 노드 생성에 실패했습니다", + "failedRefresh": "노드 새로고침에 실패했습니다", + "failedRemove": "노드 제거에 실패했습니다", + "fetchContainerLogsFailed": "컨테이너 로그 가져오기에 실패했습니다", + "fetchContainerStatusFailed": "컨테이너 상태 가져오기에 실패했습니다", + "fetchingLogs": "로그 가져오는 중...", + "fieldApiKey": "API 키", + "fieldCreated": "생성일", + "fieldMaxConcurrent": "최대 동시 실행", + "fieldName": "이름", + "fieldStatus": "상태", + "fieldType": "유형", + "fieldUpdated": "수정일", + "fieldUrl": "URL", + "fields": { + "authKey": "인증 키", + "host": "호스트 / IP 주소", + "maxConcurrent": "최대 동시 실행", + "name": "노드 이름", + "port": "포트", + "url": "URL" + }, + "heading": "노드", + "healthCheckButton": "상태 확인", + "healthCheckComplete": "노드 상태 확인이 완료되었습니다", + "healthCheckFailed": "상태 확인에 실패했습니다", + "healthCheckSuccess": "{{name}}의 상태 확인이 완료되었습니다", + "healthLastCheck": "마지막 확인:", + "healthStatus": "상태:", + "local": "로컬", + "localDocker": "로컬 Docker", + "localNodeName": "로컬", + "maxConcurrent": "최대 동시 실행", + "maxConcurrentHint": "최대 동시 작업 에이전트 수 (1~10)", + "meshTopology": "메시 토폴로지", + "meshTopologyAriaLabel": "메시 토폴로지", + "metrics": { + "concurrency": "동시 실행", + "projects": "프로젝트" + }, + "modal": { + "closeButton": "노드 연결 모달 닫기", + "title": "노드에 연결" + }, + "modalAriaLabel": "{{name}}의 노드 상세 정보", + "modalTitle": "노드 상세 정보", + "multipleMatches": "이 이름과 일치하는 원격 프로젝트가 여러 개입니다. 올바른 경로를 직접 입력하세요.", + "name": "이름", + "namePlaceholder": "빌드 머신", + "nameRequired": "이름은 필수입니다", + "no": "아니요", + "noLogsAvailable": "사용 가능한 로그가 없습니다", + "noMatch": "일치하는 원격 이름이 없습니다. 이 경로를 직접 입력하세요.", + "noProjects": "현재 등록된 프로젝트가 없습니다.", + "noProjectsAssigned": "이 노드에 할당된 프로젝트가 없습니다.", + "noProjectsDiscovered": "원격 노드에서 검색된 프로젝트가 없습니다.", + "noProjectsRunning": "이 노드에서 실행 중인 프로젝트가 없습니다.", + "noRegistered": "아직 등록된 노드가 없습니다.", + "nodeLabel": "{{name}} ({{type}}) — {{status}}", + "offline": "오프라인", + "online": "온라인", + "pathDiscovered": "원격 권한 경로 검색됨: {{path}}", + "pathInvalid": "경로가 잘못되었습니다", + "pathOnNode": "이 노드의 경로", + "placeholders": { + "host": "192.0.2.10 또는 my-server.local", + "name": "빌드 서버", + "optional": "선택 사항" + }, + "provideManually": "키를 직접 입력", + "pullSettings": "설정 가져오기", + "pullSettingsFailed": "설정 가져오기에 실패했습니다", + "pullSettingsSuccess": "설정을 성공적으로 가져왔습니다", + "pulling": "가져오는 중...", + "pushSettings": "설정 내보내기", + "pushSettingsFailed": "설정 내보내기에 실패했습니다", + "pushSettingsSuccess": "설정을 성공적으로 내보냈습니다", + "pushing": "내보내는 중...", + "reachableUrl": "연결 가능한 URL / 호스트명", + "readOnly": "읽기 전용", + "refresh": "새로고침", + "refreshStatus": "상태 새로고침", + "refreshing": "새로고침 중...", + "registerFailed": "노드 등록에 실패했습니다", + "registered": "노드 \"{{name}}\"이(가) 등록되었습니다", + "registeredCount": "{{count}}개 등록됨", + "remote": "원격", + "removeButton": "제거", + "removed": "노드가 제거되었습니다", + "restartButton": "재시작", + "runtimeNodeLabel": "런타임 노드", + "saveButton": "저장", + "saveDockerConfig": "Docker 구성 저장", + "saving": "저장 중...", + "sectionAssignedProjects": "할당된 프로젝트", + "sectionDockerManagement": "Docker 관리", + "sectionHealth": "상태", + "sectionOverview": "개요", + "sectionProjects": "프로젝트", + "sectionSettingsSync": "설정 동기화", + "sectionSyncHistory": "동기화 기록", + "startButton": "시작", + "status": { + "connecting": "연결 중", + "creating": "생성 중", + "deleting": "삭제 중", + "error": "오류", + "exited": "종료됨", + "offline": "오프라인", + "online": "온라인", + "recreating": "재생성 중", + "running": "실행 중", + "stopped": "중지됨" + }, + "statusConnecting": "연결 중", + "statusError": "오류", + "statusOffline": "오프라인", + "statusOnline": "온라인", + "statusTitle": "상태: {{status}}", + "stopButton": "중지", + "success": { + "connected": "\"{{name}}\"에 연결되었습니다" + }, + "syncAuth": "인증 동기화", + "syncAuthFailed": "인증 동기화에 실패했습니다", + "syncAuthSuccess": "인증 자격 증명이 성공적으로 동기화되었습니다", + "syncDifferences": "차이점:", + "syncLastSync": "마지막 동기화:", + "syncNeverSynced": "동기화된 적 없음", + "synced": "동기화됨", + "syncing": "동기화 중...", + "total": "전체", + "type": { + "local": "로컬", + "remote": "원격" + }, + "typeLocal": "로컬", + "typeRemote": "원격", + "updateFailed": "노드 업데이트에 실패했습니다", + "updateSuccess": "{{name}}이(가) 업데이트되었습니다", + "urlRequired": "원격 노드에는 URL이 필요합니다", + "validation": { + "concurrencyRange": "동시 실행 수는 {{min}}에서 {{max}} 사이여야 합니다", + "hostRequired": "호스트 / IP 주소는 필수입니다", + "nameRequired": "노드 이름은 필수입니다", + "portRange": "포트는 1에서 65535 사이여야 합니다" + }, + "viewLogsButton": "로그 보기", + "yes": "예" + }, + "onboarding": { + "authToken": "인증 토큰 (선택 사항)", + "continue": "계속", + "continueOnboarding": "온보딩 계속", + "continueSetup": "설정 계속", + "defaultName": "원격 서버", + "description": "Fusion은 AI 지원 엔지니어링 작업을 계획하고, 실행하고, 검토하는 데 도움을 드립니다.", + "localFusion": "로컬 Fusion", + "onTheStep": "현재 ", + "profileName": "프로필 이름", + "progressText": "{{total}}단계 중 {{completed}}단계 완료 — 현재 ", + "remoteServer": "원격 서버", + "resumeOnboarding": "온보딩 재개", + "saving": "저장 중…", + "scanQr": "QR 스캔", + "scanning": "스캔 중…", + "serverUrl": "서버 URL", + "serverUrlPlaceholder": "https://your-fusion-host", + "stepContinue": "단계에 있습니다. 이전에 중단한 곳에서 계속하여 대시보드 설정을 완료하세요.", + "welcome": "Fusion에 오신 것을 환영합니다" + }, + "openclaw": { + "agentId": "에이전트 ID", + "agentIdHint": "실행할 OpenClaw 에이전트 정의 (기본값: main).", + "agentIdPlaceholder": "main", + "binaryPath": "바이너리 경로", + "binaryPathHint": "비워 두면 PATH에서 openclaw를 찾습니다.", + "binaryPathPlaceholder": "openclaw (PATH에서 기본값 사용)", + "cliTimeout": "OpenClaw 타임아웃 (초)", + "cliTimeoutHint": "OpenClaw 측 실행 타임아웃 (초 단위, 0 = 타임아웃 없음).", + "description": "로컬 openclaw CLI를 서브프로세스로 실행합니다. 각 Fusion 프롬프트는 openclaw agent --local --json을 통해 전달되며, 에이전트 정의, 모델, 사고 수준은 OpenClaw가 결정합니다. 이 카드에서는 재정의 옵션과 바이너리 경로만 설정합니다.", + "detected": "✓ openclaw 감지됨{{version}}{{path}}.", + "gateway": "OpenClaw 게이트웨이를 통해 라우팅 (비활성화 시 임베디드)", + "gatewayHint": "활성화하면 호출이 OpenClaw 게이트웨이 서비스를 통해 전달됩니다.", + "githubLink": "GitHub의 openclaw", + "model": "모델 재정의", + "modelHint": "선택 사항 — OpenClaw 기본 모델을 재정의합니다.", + "modelPlaceholder": "예: anthropic/claude-haiku-4-5, minimax/MiniMax-M3", + "notDetectedInstall": "openclaw가 감지되지 않았습니다. 업스트림 에이전트를 설치하세요:", + "notFound": "✗ openclaw를 찾을 수 없음", + "probing": "로컬 openclaw 바이너리 확인 중…", + "saved": "설정이 저장되었습니다.", + "savedDetected": "저장됨 · ✓ openclaw 감지됨{{version}}{{path}}.", + "savedNotFound": "저장됨 · ✗ openclaw를 찾을 수 없음", + "savedProbeFailed": "저장되었지만, 확인에 실패했습니다.", + "statusDetected": "✓ 감지됨{{version}}{{path}}", + "statusNotFound": "✗ PATH에서 감지되지 않음", + "subprocess": "CLI 서브프로세스 타임아웃 (ms)", + "subprocessHint": "CLI 서브프로세스가 종료되기 전 Fusion 측 최대 대기 시간 (기본값: {{default}}s).", + "testFailed": "테스트에 실패했습니다 — 위의 상태를 확인하세요.", + "thinking": "사고 수준", + "thinkingHint": "모델의 확장 사고 수준을 제어합니다." + }, + "paperclip": { + "agentHelp": "이 Fusion 런타임이 프록시할 Paperclip 에이전트를 선택하세요.", + "agentLabel": "에이전트", + "apiKeyHelp": "에이전트 API 키. 로컬 신뢰 배포에서는 비워 둘 수 있습니다.", + "apiKeyLabel": "API 키", + "apiKeyMinted": "paperclipai를 통해 API 키가 발급되었습니다 (에이전트 {{agentId}}에 'fusion-runtime' 키 설치됨). 저장을 클릭하여 유지하세요.", + "apiKeyPlaceholder": "•••••••• (기존 키 유지 시 비워 두기)", + "apiUrlHelp": "Paperclip 서버의 기본 URL.", + "apiUrlLabel": "API URL", + "cliApiKeyHelp": "로컬 신뢰 배포에서는 키가 필요하지 않습니다.", + "cliApiKeyLabel": "API 키 (재정의, 선택 사항)", + "cliApiKeyPlaceholder": "선택 사항 — 비로컬 신뢰 모드에서만 필요", + "cliBinaryHelp": "선택 사항 — 참고용으로, 어댑터는 현재 인스턴스 구성 파일을 직접 읽습니다.", + "cliBinaryLabel": "paperclipai 바이너리", + "cliConfigLabel": "CLI 구성:", + "cliConfigPathHelp": "config.json 경로를 재정의합니다. 기본값 사용 시 비워 두세요.", + "cliConfigPathLabel": "인스턴스 구성 경로", + "cliDiscoveryFailed": "CLI 검색에 실패했습니다: {{reason}}", + "cliDiscoveryFailedLabel": "CLI 검색에 실패했습니다: {{reason}}", + "companyHelp": "Paperclip 회사를 선택하세요.", + "companyIdRequired": "Paperclip API 키를 발급하려면 회사 ID가 필요합니다.", + "companyLabel": "회사", + "connectToPopulate": "연결하여 자동 입력", + "connected": "연결되었습니다.", + "connectedAsAgent": "{{agentName}}{{companyInfo}}(으)로 연결되었습니다.", + "connectionModeAriaLabel": "Paperclip 연결 모드", + "description": "Paperclip 회사에서 Paperclip 에이전트(직원)를 구동합니다. 각 프롬프트는 작업 형태의 요청을 전달하며, 거버넌스, 예산, 승인은 Paperclip이 처리합니다. 턴당 수 초에서 수 분의 지연이 발생할 수 있습니다.", + "docsLink": "Paperclip 문서", + "githubLink": "GitHub", + "goalIdHelp": "Paperclip 목표와 작업을 연결합니다.", + "goalIdLabel": "목표 ID (선택 사항)", + "mintButton": "paperclipai로 API 키 발급", + "mintFailed": "발급 실패: {{reason}}. CLI가 인증되지 않은 경우 먼저 `paperclipai onboard`를 실행하세요.", + "mode": { + "issue-per-prompt": "프롬프트별 이슈", + "rolling-issue": "롤링 이슈 (기본값)", + "wakeup-only": "웨이크업 전용 (고급)" + }, + "modeHelp": { + "issue-per-prompt": "각 프롬프트마다 새 최상위 Paperclip 이슈가 생성됩니다. 가장 명시적이지만 보드가 복잡해질 수 있습니다.", + "rolling-issue": "Fusion 세션당 Paperclip 이슈 하나를 생성하며, 이후 프롬프트는 댓글로 추가됩니다. 채팅 경험에 가장 가깝습니다.", + "wakeup-only": "이슈 부작용 없이 프롬프트가 웨이크업 페이로드로만 전달됩니다. 에이전트의 프롬프트 템플릿이 페이로드 기반 웨이크업을 처리할 수 있어야 합니다." + }, + "modeLabel": "대화 모드", + "name": "Paperclip", + "noAgentsDiscovered": "검색된 에이전트 없음", + "noCompaniesDiscovered": "검색된 회사 없음", + "onboardingStep1": "Paperclip 서버가 실행 중인지 확인하세요. Paperclip 설치 방법:", + "optionalPlaceholder": "선택 사항", + "parentIssueIdHelp": "기존 상위 이슈 아래 작업 범위를 지정합니다.", + "parentIssueIdLabel": "상위 이슈 ID (선택 사항)", + "pickCompanyFirst": "먼저 회사를 선택하세요", + "projectIdHelp": "작업을 특정 Paperclip 프로젝트에 고정합니다.", + "projectIdLabel": "프로젝트 ID (선택 사항)", + "resolved": "해결됨", + "runTimeoutHelp": "Fusion이 Paperclip 실행을 포기하기 전까지의 로컬 제한 시간.", + "runTimeoutLabel": "실행 타임아웃 (ms)", + "savedCliDiscoveryFailed": "저장됨 · CLI 검색에 실패했습니다: {{reason}}", + "savedConnected": "저장됨 · 연결되었습니다.", + "savedConnectedAsAgent": "저장됨 · {{agentName}}{{companyInfo}}(으)로 연결되었습니다.", + "savedProbeFailed": "저장되었지만, 확인에 실패했습니다.", + "savedUnreachable": "저장됨 · {{reason}}", + "settingsSaved": "설정이 저장되었습니다.", + "statusCliDiscoveryFailed": "CLI 검색에 실패했습니다: {{reason}}", + "statusConnected": "연결됨", + "statusConnectedAs": "{{agentName}}{{roleInfo}}{{companyInfo}}(으)로 연결됨", + "statusProbing": "Paperclip 서버 확인 중…", + "statusUnreachable": "{{reason}}", + "tabApi": "API (URL + 토큰)", + "tabCliAutoDerve": "로컬 CLI (자동 감지)", + "testFailed": "테스트에 실패했습니다 — 위의 상태를 확인하세요.", + "unreachable": "{{reason}}" + }, + "piManager": { + "addButton": "추가", + "discoveredDescription": "패키지 및 구성된 경로에서 확인된 설치된 확장 프로그램.", + "discoveredTitle": "검색된 확장 프로그램", + "enterSource": "패키지 소스를 입력하세요", + "extensionDisabled": "확장 프로그램이 비활성화되었습니다", + "extensionEnabled": "확장 프로그램이 활성화되었습니다", + "filterExtensions": "확장 프로그램:", + "filterPrompts": "프롬프트:", + "filterSkills": "스킬:", + "filterThemes": "테마:", + "installFailed": "패키지 설치에 실패했습니다: {{error}}", + "installSuccess": "패키지가 성공적으로 설치되었습니다", + "installing": "설치 중…", + "loadExtensionsFailed": "확장 프로그램 로드에 실패했습니다: {{error}}", + "loadSettingsFailed": "Pi 설정 로드에 실패했습니다: {{error}}", + "loading": "Pi 설정 로드 중…", + "loadingExtensions": "확장 프로그램 로드 중…", + "loadingFailed": "Pi 설정 로드에 실패했습니다.", + "noExtensions": "검색된 확장 프로그램이 없습니다.", + "noPackages": "구성된 패키지가 없습니다.", + "noPackagesHelp": "시작하려면 위에서 패키지 소스를 추가하세요.", + "packagePlaceholder": "npm:pi-extension-name 또는 git:https://github.com/...", + "packageRemoved": "패키지가 제거되었습니다", + "refreshButton": "새로고침", + "refreshExtensions": "확장 프로그램 새로고침", + "reinstallButton": "Fusion 스킬 재설치", + "reinstallFailed": "Fusion 스킬 재설치에 실패했습니다: {{error}}", + "reinstallSuccess": "Fusion 스킬이 성공적으로 재설치되었습니다", + "reinstalling": "Fusion 재설치 중…", + "removeFailed": "패키지 제거에 실패했습니다: {{error}}", + "removePackage": "패키지 제거", + "removePackageLabel": "패키지 {{label}} 제거", + "removeResource": "{{path}} 제거", + "resourceRemoved": "{{resource}}이(가) 제거되었습니다", + "sectionExtensions": "확장 프로그램", + "sectionPrompts": "프롬프트", + "sectionSkills": "스킬", + "sectionThemes": "테마", + "title": "Pi 확장 프로그램", + "toggleExtension": "{{name}} 전환", + "updateFailed": "확장 프로그램 업데이트에 실패했습니다: {{error}}", + "updateSettingsFailed": "설정 업데이트에 실패했습니다: {{error}}" + }, + "planning": { + "addSubtask": "하위 작업 추가", + "additionalComments": "추가 의견 (선택 사항)", + "additionalCommentsPlaceholder": "추가 맥락이나 방향을 입력하세요...", + "advancedSettings": "고급 계획 설정", + "aiThinking": "AI가 생각 중...", + "archiveSession": "세션 보관", + "backToSessions": "세션 목록으로", + "backToSummary": "요약으로 돌아가기", + "baseBranch": "병합 대상 / 기본 브랜치 (선택 사항)", + "baseBranchPlaceholder": "main", + "branchAutoNew": "작업별 자동 명명 브랜치 생성", + "branchCustomNew": "사용자 정의 브랜치 생성", + "branchExisting": "기존 브랜치 사용", + "branchName": "브랜치 이름", + "branchNameRequired": "이 브랜치 전략에는 브랜치 이름이 필요합니다.", + "branchProjectDefault": "프로젝트/기본 브랜치 사용", + "branchStrategy": "브랜치 전략", + "breakIntoTasks": "작업으로 분할", + "breakIntoTasksTitle": "계획을 의존성이 있는 여러 작업으로 분할", + "breakdownSubheading": "계획에서 생성된 하위 작업을 검토하고 편집하세요. 생성하기 전에 제목, 설명, 크기, 우선순위, 의존성을 조정하세요.", + "breakingDown": "분할 중...", + "collapse": "접기", + "continue": "계속", + "createSingleTask": "단일 작업 생성", + "createTasks": "작업 생성", + "creating": "생성 중...", + "delete": "삭제", + "deleteSession": "세션 삭제", + "dependencies": "의존성", + "dependencyCycle": "의존성에 순환 참조가 포함되어 있습니다. 작업을 생성하기 전에 순환 참조를 제거하세요.", + "depthBlurb": "계획 크기는 기본 인터뷰 깊이를 설정합니다. 질문 수를 직접 지정하려면 Questions를 사용하세요.", + "depthLarge": "대형", + "depthMedium": "중형", + "depthSmall": "소형", + "description": "설명", + "dismiss": "닫기", + "dragToReorder": "드래그하여 순서 변경", + "examplePlan1": "로그인 및 회원가입이 포함된 사용자 인증 시스템 구축", + "examplePlan2": "대시보드에 다크 모드 지원 추가", + "examplePlan3": "작업을 CSV로 내보내는 API 엔드포인트 생성", + "examplePlan4": "더 나은 성능을 위해 작업 카드 컴포넌트 리팩터링", + "expand": "펼치기", + "failedCreateTask": "작업 생성 실패", + "failedCreateTasks": "작업 생성 실패", + "failedDeleteSession": "세션 삭제 실패", + "failedGoBack": "이전 질문으로 돌아가기 실패", + "failedLoadModels": "모델 로드 실패", + "failedLoadSession": "세션 로드 실패", + "failedRefinePlan": "계획 다듬기 실패", + "failedStartBreakdown": "분류 시작 실패", + "failedStartSession": "계획 세션 시작 실패", + "failedSubmitResponse": "응답 제출 실패", + "firstSubtaskNoDeps": "첫 번째 하위 작업에는 의존성을 설정할 수 없습니다.", + "generatingQuestion": "다음 질문 생성 중...", + "generationStopped": "사용자가 생성을 중단했습니다. 다시 시도하거나 새 세션을 시작하세요.", + "hideArchived": "보관 항목 숨기기", + "hideThinking": "사고 과정 숨기기", + "initialHeading": "아이디어를 상세 작업으로 변환하세요", + "initialSubheading": "구축하고 싶은 내용을 일반 언어로 설명하세요. AI가 명확화 질문을 통해 잘 정의된 작업으로 구조화하는 데 도움을 드립니다.", + "keyDeliverables": "주요 산출물", + "loadingModels": "모델 로드 중…", + "markdown": "Markdown", + "moveDown": "아래로 이동", + "moveSubtaskDown": "하위 작업 아래로 이동", + "moveSubtaskUp": "하위 작업 위로 이동", + "moveUp": "위로 이동", + "newPlanningSession": "새 계획 세션", + "newSession": "새 세션", + "noActiveQuestion": "세션에 활성 질문이 없습니다", + "noPreviousSubtasks": "이전 하위 작업이 없습니다.", + "noSavedSessions": "저장된 세션이 없습니다. 오른쪽에서 세션을 시작하면 여기에 표시됩니다.", + "plain": "일반", + "planningComplete": "계획 완료!", + "planningCompleteSubheading": "작업을 생성하기 전에 검토하고 다듬으세요.", + "planningDepth": "계획 깊이", + "planningModel": "계획 모델", + "planningModelBlurb": "계획 인터뷰를 실행하고 최종 초안을 작성할 모델을 선택합니다.", + "planningSessions": "계획 세션", + "priority": "우선순위", + "questionProgress": "질문 {{progress}} / ~3", + "questionsAuto": "자동", + "questionsLabel": "질문 수", + "reconnecting": "재연결 중…", + "refineFurther": "추가 다듬기", + "relativeTimeDays": "{{count}}일 전", + "relativeTimeHours": "{{count}}시간 전", + "relativeTimeJustNow": "방금 전", + "relativeTimeMinutes": "{{count}}분 전", + "relativeTimeWeeks": "{{count}}주 전", + "remove": "제거", + "retryFailed": "재시도 실패. 다시 시도해 주세요.", + "retrying": "재시도 중...", + "sessionActiveOtherTab": "이 세션은 다른 탭에서 활성화되어 있습니다", + "sessionActiveOtherTabLive": "이 세션은 다른 탭에서 활성화되어 있습니다 (실시간 하트비트)", + "sessionFailed": "AI 연결 중 세션이 실패했습니다.", + "sessionFailed2": "세션 실패", + "showArchived": "보관 항목 표시", + "showFormattedMarkdown": "서식 있는 Markdown 표시", + "showQA": "사용자 Q&A 표시", + "showRawText": "원시 텍스트 표시", + "showThinking": "사고 과정 표시", + "sizeLarge": "L (대형)", + "sizeMedium": "M (중형)", + "sizeSmall": "S (소형)", + "startPlanning": "계획 시작", + "statusComplete": "완료", + "statusError": "오류", + "statusGenerating": "생성 중", + "statusNeedsInput": "입력 필요", + "stop": "중지", + "subtaskDescription": "설명", + "subtaskPriority": "우선순위", + "subtaskSize": "크기", + "subtaskTitle": "제목", + "suggestedDependencies": "제안된 의존성", + "suggestedSize": "제안된 크기", + "takeControl": "제어권 가져오기", + "takingControl": "제어권 가져오는 중...", + "thinkingElapsed": "사고 중… ({{seconds}}초)", + "title": "계획 모드", + "tryAnExample": "예시를 시도해 보세요:", + "typeAnswerPlaceholder": "여기에 답변을 입력하세요...", + "unarchiveSession": "세션 보관 해제", + "untitled": "제목 없음", + "untitledSession": "제목 없는 세션", + "usingDefault": "기본값 사용", + "whatToBuild": "무엇을 만들고 싶으신가요?", + "whatToBuildPlaceholder": "예: 로그인, 회원가입, 비밀번호 재설정이 포함된 사용자 인증 시스템 구축..." + }, + "plugins": { + "addItem": "항목 추가", + "agentBrowser": { + "groupBrowser": "브라우저", + "groupGeneral": "일반", + "groupPromptContributions": "프롬프트 기여", + "groupSkills": "스킬", + "labelAllowedDomains": "허용된 도메인", + "labelCommandTimeoutMs": "명령 타임아웃 (ms)", + "labelEnabled": "에이전트 브라우저 활성화", + "labelHeadlessMode": "헤드리스 모드", + "labelInstallChannel": "설치 채널", + "labelPromptExecutorSystem": "실행기 시스템 프롬프트", + "labelPromptExecutorTask": "실행기 작업 프롬프트", + "labelPromptHeartbeat": "하트비트 프롬프트", + "labelPromptReviewer": "검토자 프롬프트", + "labelPromptTriage": "분류 프롬프트", + "labelSkillExposure": "스킬 노출" + }, + "aiScanDisabled": "로드 시 AI 스캔 비활성화됨", + "aiScanEnabled": "로드 시 AI 스캔 활성화됨", + "aiScanHint": "이 기능을 켜면 구성만 업데이트됩니다. 지금 바로 실행하려면 재스캔 및 다시 로드를 사용하세요.", + "author": "작성자:", + "backToList": "플러그인 목록으로 돌아가기", + "builtinInstallFailed": "{{name}} 설치 실패: {{error}}", + "builtinInstalledGlobally": "{{name}} 전역 설치됨", + "builtinMetadataOnly": "기본 제공 메타데이터만", + "builtinNoPackage": "{{name}}은(는) 기본 제공이며 아직 설치 가능한 패키지가 없습니다", + "builtinPluginRecommendations": "기본 제공 플러그인 추천", + "builtinPlugins": "기본 제공 플러그인", + "builtinPluginsCatalog": "런타임 및 통합을 위한 기본 제공 플러그인 카탈로그.", + "cancel": "취소", + "checkingSetup": "설정 확인 중...", + "componentUnavailable": "플러그인 컴포넌트를 사용할 수 없습니다", + "couldNotResolve": "대시보드가 정적 호스트 레지스트리에서 이 플러그인 서피스를 확인할 수 없습니다.", + "disableInProject": "프로젝트에서 비활성화", + "disablePlugin": "{{name}} 비활성화", + "disablePluginFailed": "플러그인 비활성화 실패: {{error}}", + "disabledForProject": "이 프로젝트에서 {{name}} 비활성화됨", + "droidOnboardingTip": "팁: Droid CLI를 활성화하면 API 키 추가 없이 Factory AI 구독을 재사용할 수 있습니다.", + "droidRecommendDesc": "Fusion에서 로컬 Droid CLI 세션을 AI 공급자로 사용하세요.", + "droidRecommendTitle": "Droid CLI 활성화", + "enableAiScanBeforeLoad": "로드/다시 로드 전 AI 스캔 활성화", + "enableAiSecurityScan": "로드 시 AI 보안 스캔 활성화", + "enableFailed": "{{name}} 활성화 실패: {{error}}", + "enableInProject": "프로젝트에서 활성화", + "enablePlugin": "{{name}} 활성화", + "enablePluginFailed": "플러그인 활성화 실패: {{error}}", + "enabledForProject": "이 프로젝트에서 {{name}} 활성화됨", + "experimental": "실험적", + "findings": "발견 사항 ({{count}})", + "homepage": "홈페이지:", + "install": "설치", + "installFailed": "플러그인 설치 실패: {{error}}", + "installHint": "플러그인 패키지 루트(manifest.json 포함) 또는 빌드된 dist 디렉터리를 탐색하세요.", + "installNamed": "{{name}} 설치", + "installPathPlaceholder": "플러그인 디렉터리 또는 dist 폴더의 절대 경로", + "installPathRequired": "플러그인 경로를 입력하세요", + "installPluginGlobally": "플러그인 전역 설치", + "installSetup": "설정 설치", + "installedGlobally": "플러그인이 전역 설치되었습니다", + "installedPlugins": "설치된 플러그인", + "installing": "설치 중...", + "loadFailed": "플러그인 로드 실패: {{error}}", + "loading": "로드 중...", + "loadingPlugins": "플러그인 로드 중...", + "manage": "관리", + "noConfigurableSettings": "구성 가능한 설정이 없습니다.", + "noPluginsHint": "플러그인을 설치하여 시작하거나 아래 기본 제공 카탈로그를 사용하세요.", + "noPluginsInstalled": "설치된 플러그인이 없습니다.", + "noSecurityScan": "아직 보안 스캔을 실행하지 않았습니다.", + "openAuthentication": "인증 열기", + "openOnboarding": "온보딩 열기", + "refresh": "새로 고침", + "refreshPluginList": "플러그인 목록 새로 고침", + "reload": "다시 로드", + "reloadFailed": "플러그인 다시 로드 실패: {{error}}", + "reloaded": "{{name}} 다시 로드됨", + "reloading": "다시 로드 중...", + "removeItem": "항목 제거", + "rescanAndReload": "재스캔 및 다시 로드", + "rescanFailed": "플러그인 재스캔 실패: {{error}}", + "rescanned": "{{name}} 재스캔됨", + "saveSettings": "설정 저장", + "saveSettingsFailed": "설정 저장 실패: {{error}}", + "securityScan": "보안 스캔", + "selectOption": "선택...", + "settingUp": "설정 중...", + "settings": "설정", + "settingsSaved": "설정 저장됨", + "setupInstallFailed": "{{name}} 설정 설치 실패: {{error}}", + "setupInstalled": "{{name}} 설정 설치됨", + "setupReady": "설정 준비됨", + "setupRequired": "설정 필요", + "startPluginToCheckSetup": "설정 확인을 위해 플러그인을 시작하세요", + "statusBuiltIn": "기본 제공", + "statusInstalled": "설치됨", + "statusNotInstalled": "설치되지 않음", + "uninstallConfirm": "\"{{name}}\"을(를) 전역(모든 프로젝트)으로 제거하시겠습니까?", + "uninstallFailed": "플러그인 제거 실패: {{error}}", + "uninstallGlobally": "전역 제거", + "uninstallGloballyTitle": "전역 제거", + "uninstallTitle": "플러그인 전역 제거", + "uninstalledGlobally": "{{name}} 전역 제거됨", + "unknownError": "알 수 없는 오류", + "updateFailed": "플러그인 업데이트 실패: {{error}}", + "version": "버전:" + }, + "pr": { + "authFail": "gh auth login을 실행한 후 다시 시도하세요.", + "authOk": "GitHub CLI 인증을 사용할 수 있습니다.", + "baseBranch": "기본 브랜치", + "bodyLabel": "본문", + "branchRemoteFail": "PR을 생성하기 전에 브랜치를 원격에 푸시하세요.", + "branchRemoteOk": "원격 브랜치를 사용할 수 있습니다.", + "changedFilesLabel": "변경된 파일", + "checkAuth": "GitHub 인증 가능", + "checkBranch": "브랜치가 원격에 푸시됨", + "checkCommits": "커밋 사용 가능", + "checkConflicts": "기본 브랜치와 충돌 없음", + "commitsFail": "이 브랜치에서 커밋을 찾을 수 없습니다.", + "commitsLabel": "커밋", + "commitsOk": "커밋을 제출할 준비가 되었습니다.", + "conflictsDetected": "충돌이 감지되었습니다. 충돌을 해결하거나 사전 확인을 다시 실행하세요.", + "createAsDraft": "초안으로 생성", + "createDraftPr": "초안 PR 생성", + "createPr": "PR 생성", + "createTitle": "풀 리퀘스트 생성", + "dismissError": "PR 오류 닫기", + "loadingMetadata": "PR 메타데이터 로드 중…", + "noConflicts": "병합 충돌이 감지되지 않았습니다.", + "preflightChecks": "사전 확인", + "previewTitle": "Diff 및 커밋 미리보기", + "regenerate": "재생성", + "rerunPreflight": "사전 확인 다시 실행", + "revertToAi": "AI 버전으로 되돌리기", + "titleLabel": "제목", + "usingTemplate": ".github/pull_request_template.md 템플릿 사용 중" + }, + "preview": { + "blockedDescription": "별도의 브라우저 탭에서 미리보기를 볼 수 있습니다.", + "blockedTitle": "미리보기를 삽입할 수 없습니다", + "errorTitle": "미리보기를 로드할 수 없습니다", + "loading": "미리보기 로드 중...", + "openInNewTab": "새 탭에서 열기" + }, + "projectCard": { + "activeTasks": "활성 작업", + "agents": "에이전트", + "cannotPauseWhileInitializing": "초기화 중에는 일시 중지할 수 없습니다", + "completed": "완료됨", + "confirm": "확인", + "confirmRemove": "제거 확인", + "confirmRemoveProject": "프로젝트 제거 확인", + "daysAgo": "{{count}}일 전", + "hoursAgo": "{{count}}시간 전", + "justNow": "방금 전", + "lastActivity": "마지막 활동:", + "minutesAgo": "{{count}}분 전", + "moreItems": "+{{count}}개 더", + "never": "없음", + "noHealthData": "사용 가능한 상태 데이터가 없습니다", + "nodeAvailability": "프로젝트 노드 가용성", + "open": "열기", + "openProject": "프로젝트 열기", + "pause": "일시 중지", + "pauseProject": "프로젝트 일시 중지", + "removeProject": "프로젝트 제거", + "resume": "재개", + "resumeProject": "프로젝트 재개" + }, + "projectDetection": { + "editName": "이름 편집", + "empty": "감지된 프로젝트 없음", + "emptyHint": "다른 기본 경로를 시도하거나 프로젝트를 수동으로 추가하세요", + "noDbWarning": "fn 데이터베이스를 찾을 수 없습니다 - 초기화됩니다", + "registerAll": "모두 등록", + "registerSelected": "선택 항목 등록 ({{count}})", + "registering": "등록 중...", + "selectAll": "모두 선택 ({{count}})", + "selectedCount": "{{count}}개 선택됨" + }, + "projectSelector": { + "allProjects": "모든 프로젝트", + "ariaLabel": "프로젝트 선택", + "clearSearch": "검색 지우기", + "noResults": "검색 결과와 일치하는 프로젝트가 없습니다", + "recent": "최근", + "searchPlaceholder": "프로젝트 검색...", + "selectProject": "프로젝트 선택", + "viewAll": "모든 프로젝트 보기" + }, + "projects": { + "actions": { + "favoritesError": "즐겨찾기 업데이트 실패", + "modelFavoritesError": "모델 즐겨찾기 업데이트 실패", + "pauseError": "프로젝트 {{name}} 일시 중지 실패", + "pauseSuccess": "프로젝트 {{name}} 일시 중지됨", + "removeError": "프로젝트 {{name}} 제거 실패", + "removeSuccess": "프로젝트 {{name}} 제거됨", + "resumeError": "프로젝트 {{name}} 재개 실패", + "resumeSuccess": "프로젝트 {{name}} 재개됨" + }, + "activeTasksLabel": "활성 작업", + "addFirstProject": "첫 번째 프로젝트 추가", + "addProject": "프로젝트 추가", + "allNodes": "모든 노드", + "completedLabel": "완료됨", + "emptyStateDescription": "첫 번째 프로젝트를 추가하여 시작하세요. 프로젝트를 사용하면 여러 저장소에서 작업을 체계적으로 관리하고 추적할 수 있습니다.", + "erroredLabel": "오류", + "filterActive": "활성", + "filterAll": "전체", + "filterByNode": "노드로 필터", + "filterErrored": "오류", + "filterPaused": "일시 중지됨", + "noMatch": "현재 필터와 일치하는 프로젝트가 없습니다", + "noProjectsFound": "프로젝트를 찾을 수 없습니다", + "nodesLabel": "노드", + "setup": { + "success": "프로젝트 {{name}} 등록 완료" + }, + "showAll": "모든 프로젝트 표시", + "sortActivityNewest": "마지막 활동 (최신순)", + "sortActivityOldest": "마지막 활동 (오래된순)", + "sortNameAsc": "이름 (가-나)", + "sortNameDesc": "이름 (나-가)", + "sortProjects": "프로젝트 정렬", + "sortStatusAsc": "상태 (오류 → 활성)", + "sortStatusDesc": "상태 (활성 → 오류)", + "title": "프로젝트", + "totalLabel": "전체" + }, + "providers": { + "actions": { + "addModel": "+ 모델 추가", + "detectModels": "모델 감지", + "detectModelsTitle": "공급자의 /models 엔드포인트를 호출하여 사용 가능한 모델을 검색합니다", + "detecting": "감지 중…", + "removeModel": "모델 제거", + "save": "공급자 저장", + "saving": "저장 중..." + }, + "addCustom": "사용자 정의 공급자 추가", + "apiKeyLabel": "API 키", + "apiTypeAnthropic": "Anthropic 호환", + "apiTypeInvalid": "API 유형이 유효하지 않습니다.", + "apiTypeLabel": "API 유형", + "apiTypeOpenAi": "OpenAI 호환", + "apiTypeOpenAiResp": "OpenAI Responses", + "baseUrlLabel": "기본 URL", + "deleteConfirm": "사용자 정의 공급자 \"{{name}}\"을(를) 삭제하시겠습니까?", + "deleteLabel": "{{name}} 삭제", + "detectError": { + "allDuplicate": "검색된 모든 모델이 이미 목록에 있습니다.", + "failed": "모델 감지 실패", + "noModels": "모델을 찾을 수 없습니다. 공급자에 API 키가 필요할 수 있습니다.", + "urlRequired": "모델을 감지하려면 기본 URL이 필요합니다." + }, + "detectModels": "모델 감지", + "detectTitle": "공급자의 /models 엔드포인트에서 모델 자동 감지", + "detecting": "감지 중…", + "editLabel": "{{name}} 편집", + "failedDelete": "공급자 삭제 실패.", + "failedDetect": "모델 감지 실패", + "failedLoad": "사용자 정의 공급자 로드 실패.", + "failedSave": "공급자 저장 실패.", + "fields": { + "apiKey": "API 키", + "apiType": "API 유형", + "baseUrl": "기본 URL", + "contextWindow": "컨텍스트 창", + "id": "공급자 ID", + "maxTokens": "최대 토큰", + "modelId": "모델 ID", + "modelName": "표시 이름", + "models": "모델", + "name": "표시 이름", + "reasoning": "추론" + }, + "llamaCpp": { + "disable": "비활성화", + "disabling": "비활성화 중…", + "enable": "활성화", + "enabling": "활성화 중…", + "probing": "llama.cpp 서버 연결 확인 중…", + "reachable": "{{url}}에서 서버에 연결 가능합니다", + "test": "테스트", + "testing": "테스트 중…", + "title": "llama.cpp — HTTP 서버 경유", + "unavailable": "서버를 사용할 수 없습니다: {{reason}}" + }, + "loading": "사용자 정의 공급자 로드 중…", + "modelsLabel": "사용 가능한 모델", + "nameLabel": "공급자 이름", + "nameRequired": "공급자 이름이 필요합니다.", + "noModelsFound": "모델을 찾을 수 없습니다. 공급자에 API 키가 필요할 수 있습니다.", + "noneConfigured": "구성된 사용자 정의 공급자가 없습니다.", + "placeholders": { + "apiKey": "sk-..., MY_API_KEY, 또는 !command" + }, + "saveChanges": "변경 사항 저장", + "saveProvider": "공급자 저장", + "saving": "저장 중…", + "urlInvalid": "기본 URL은 유효한 http/https URL이어야 합니다.", + "urlRequired": "기본 URL이 필요합니다.", + "urlRequiredForDetect": "모델을 감지하려면 기본 URL이 필요합니다.", + "validation": { + "apiTypeRequired": "API 유형이 필요합니다.", + "idConflict": "공급자 ID가 기본 제공 공급자와 충돌합니다.", + "idKebabCase": "공급자 ID는 케밥 케이스여야 합니다.", + "idRequired": "공급자 ID가 필요합니다.", + "modelId": "각 모델에는 모델 ID가 있어야 합니다.", + "modelRequired": "최소 하나의 모델이 필요합니다.", + "urlProtocol": "기본 URL은 http 또는 https를 사용해야 합니다.", + "urlRequired": "기본 URL이 필요합니다.", + "urlValid": "기본 URL은 유효한 URL이어야 합니다." + } + }, + "quickChat": { + "errorAttachmentsBeforeSession": "채팅 세션이 준비되기 전에 첨부 파일을 보낼 수 없습니다", + "errorAttachmentsWhileStreaming": "응답이 스트리밍 중인 동안 첨부 파일을 보낼 수 없습니다", + "errorGettingResponse": "응답 가져오기 실패", + "errorInitializingChat": "채팅 초기화 실패", + "errorRefreshingSessions": "채팅 세션 새로 고침 실패", + "errorStartingNewChat": "새 채팅 시작 실패" + }, + "reliability": { + "bouncedEntered": "{{bounced}}개 반환 / {{entered}}개 진입 (최근 {{days}}일)", + "countingSince": "{{date}}부터 집계 중", + "details": "세부 정보", + "duration": { + "heading": "지속 시간", + "moreStats": "더 많은 통계", + "p50": "P50", + "p50Raw": "P50 원시값: {{value}} ms", + "p95": "P95", + "p95Raw": "P95 원시값: {{value}} ms", + "reason": "사유: {{reason}}", + "sampleCount": "샘플 수: {{count}}", + "samples": "샘플: {{count}}" + }, + "failureRate": "실패율: {{rate}}", + "heading": "안정성", + "hideEmptyDays": "빈 날 숨기기", + "inReviewFlow": "검토 중 흐름", + "insufficientData": "데이터 부족 — {{reason}}", + "mergeAttempts": { + "heading": "병합 시도", + "histogramTotal": "히스토그램 합계: {{count}}", + "max": "최대", + "mean": "평균", + "moreStats": "추가 통계", + "reason": "사유: {{reason}}", + "tasksCounted": "집계된 작업: {{count}}" + }, + "reason": "사유: {{reason}}", + "resetBaseline": "기준선 초기화: {{date}}", + "resetModal": { + "confirm": "초기화 확인", + "description": "안정성 통계의 새 기준선을 설정합니다. 초기화 시간보다 오래된 과거 이벤트는 집계에서 제외되지만 삭제되지는 않습니다.", + "failedError": "안정성 통계 초기화에 실패했습니다", + "title": "안정성 통계를 초기화하시겠습니까?" + }, + "resetStats": "통계 초기화", + "showEmptyDays": "빈 날 표시", + "successRateLabel": "검토 중 성공률 (최근 7일)", + "table": { + "bounced": "반송됨", + "date": "날짜", + "entered": "진입됨" + }, + "window": "기간: {{start}} → {{end}}" + }, + "research": { + "actionFailed": "작업 실패", + "addCredentialsHint": "인증 설정에서 제공자 자격 증명을 추가하세요.", + "alwaysOn": "항상 켜짐", + "attachExport": "마크다운 내보내기 결과물 첨부", + "createRun": "실행 생성", + "createRunFailed": "실행 생성에 실패했습니다", + "createTask": "작업 생성", + "createTaskButton": "작업 생성", + "createTaskTitle": "발견 항목에서 작업 생성", + "defaultFindingHeading": "리서치 발견 항목", + "descriptionLabel": "설명", + "disabled": "이 프로젝트에서는 리서치가 비활성화되어 있습니다.", + "enableResearchHint": "프로젝트 리서치 설정을 활성화하여 실행을 생성하세요.", + "enrichTask": "작업 보강", + "enrichTaskButton": "작업 보강", + "enrichTaskTitle": "기존 작업 보강", + "enterTaskId": "작업 ID 입력", + "exportFailed": "내보내기 실패", + "exportHtml": "HTML 내보내기", + "exportJson": "JSON 내보내기", + "exportMd": "MD 내보내기", + "exportedFile": "{{filename}} 내보냄", + "findingLabel": "발견 항목:", + "loadingRuns": "리서치 실행 불러오는 중…", + "loadingTasks": "작업 불러오는 중…", + "missingApiKey": "{{provider}}의 API 키가 없습니다.", + "noPreview": "미리보기를 사용할 수 없습니다.", + "noRunSelected": "선택된 실행 없음", + "noRunsYet": "아직 리서치 실행이 없습니다", + "noSourcesAvailable": "이 프로젝트에 사용 가능한 활성화된 리서치 소스가 없습니다.", + "noSummaryYet": "아직 요약이 없습니다.", + "openAuthSettings": "인증 설정 열기", + "openResearchSettings": "리서치 설정 열기", + "priorityHigh": "높음", + "priorityLabel": "우선순위", + "priorityLow": "낮음", + "priorityNormal": "보통", + "priorityUrgent": "긴급", + "providerGitHub": "GitHub", + "providerLlmSynthesis": "LLM 합성", + "providerLocalDocs": "로컬 문서", + "providerPageFetch": "페이지 가져오기", + "providerWebSearch": "웹 검색", + "providersLabel": "제공자", + "queryLabel": "쿼리", + "runCancelled": "실행 취소됨", + "runCreated": "리서치 실행이 생성되었습니다", + "runHistory": "실행 기록", + "runLabel": "실행:", + "runRetried": "실행 재시도됨", + "searchRunsPlaceholder": "실행 검색", + "selectRunToViewDetails": "실행을 선택하여 세부 정보를 확인하세요.", + "statCompleted": "완료됨", + "statFailed": "실패", + "statRunning": "실행 중", + "subtitle": "인용 검색 및 합성 실행: 소스 수집, 콘텐츠 가져오기, 발견 항목 합성.", + "targetTaskLabel": "대상 작업", + "taskCreatedFromResearch": "리서치에서 작업이 생성되었습니다", + "taskEnrichedFromResearch": "리서치에서 작업이 보강되었습니다", + "title": "리서치", + "titleLabel": "제목", + "unavailable": "이 프로젝트에서는 리서치를 사용할 수 없습니다.", + "viewLabel": "리서치 보기" + }, + "routine": { + "andMore": "…외 {{count}}개", + "delete": "삭제", + "deleteMessage": "루틴 {{name}}을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", + "deleteName": "{{name}} 삭제", + "deleteTitle": "루틴 삭제", + "disable": "비활성화", + "disableName": "{{name}} 비활성화", + "edit": "편집", + "editName": "{{name}} 편집", + "enable": "활성화", + "enableName": "{{name}} 활성화", + "resultFailed": "실패", + "resultSuccess": "성공", + "runHistory": "실행 기록 ({{count}})", + "runNameNow": "{{name}} 지금 실행", + "runNow": "지금 실행", + "running": "실행 중…", + "stepCount": "{{count}}개 단계" + }, + "routing": { + "cannotChangeWhileActive": "작업이 활성화된 동안에는 노드 재정의를 변경할 수 없습니다.", + "clearOverride": "재정의 초기화", + "effectiveNode": "유효 노드", + "errorLoadingNodes": "노드 불러오기 실패", + "errorUpdatingOverride": "노드 재정의 업데이트 실패", + "intro": "유효 실행 노드를 확인하고 작업별 노드 재정의를 제어합니다.", + "localNoConfiguration": "로컬 (라우팅 미구성)", + "lockedWhileActive": "이 작업이 활성화된 동안에는 라우팅이 잠겨 있습니다. 작업이 더 이상 활성 상태가 아닐 때까지 노드 재정의를 변경할 수 없습니다.", + "nodeUnavailable": "노드를 사용할 수 없거나 알 수 없음", + "overrideCleared": "노드 재정의가 초기화되었습니다", + "overrideSection": "노드 재정의", + "overrideSetTo": "재정의 설정:", + "overrideUpdated": "노드 재정의가 업데이트되었습니다", + "policyLabel": { + "block": "실행 차단", + "fallback": "로컬로 대체", + "notConfigured": "미구성" + }, + "selectLabel": "실행 노드 선택", + "source": { + "noRouting": "라우팅 없음", + "override": "작업별 재정의", + "projectDefault": "프로젝트 기본값" + }, + "summarySection": "라우팅 요약", + "title": "작업 라우팅", + "unavailablePolicy": "사용 불가 노드 정책", + "unhealthy": "비정상", + "useProjectDefault": "프로젝트 기본값 사용" + }, + "schedule": { + "actionAiPrompt": "AI 프롬프트", + "actionCommand": "명령어", + "actionCreateTask": "작업 생성", + "actionModeAdvanced": "다단계", + "actionModeAdvancedHint": "여러 작업을 순차적으로 실행", + "actionModeAriaLabel": "작업 모드", + "actionModeLabel": "작업 모드", + "actionModeSimple": "단순", + "actionModeSimpleHint": "명령어, 프롬프트 또는 작업 생성 액션 하나 실행", + "actionTypeAiPrompt": "AI 프롬프트", + "actionTypeAriaLabel": "작업 유형", + "actionTypeCommand": "명령어", + "actionTypeCreateTask": "작업 생성", + "actionTypeLabel": "작업 유형", + "addAiPromptStep": "AI 프롬프트 단계 추가", + "addCommandStep": "명령어 단계 추가", + "addCreateTaskStep": "작업 생성 단계 추가", + "advancedMode": "다단계", + "advancedModeHelp": "여러 단계를 순차적으로 실행 (명령어 및 AI 프롬프트)", + "aiPromptType": "AI 프롬프트", + "andMore": "…외 {{count}}개", + "apiEndpointHint": "이 루틴을 트리거하는 API 엔드포인트 경로", + "apiEndpointLabel": "API 엔드포인트", + "apiEndpointPlaceholder": "/api/routine/my-routine", + "automationCount": "{{count}}개 자동화{{plural}}", + "cancelButton": "취소", + "catchUpPolicyHint": "예약된 실행이 누락되었을 때 처리 방법", + "catchUpPolicyLabel": "누락 실행 정책", + "catchUpPolicyRunAll": "누락된 모든 실행 실행", + "catchUpPolicyRunOne": "가장 최근 누락된 실행 하나만 실행", + "catchUpPolicySkip": "누락된 실행 건너뛰기", + "columnTodo": "할 일", + "columnTriage": "분류", + "command": "명령어", + "commandHelp": "실행할 셸 명령어입니다. 사용자 권한으로 실행됩니다.", + "commandHint": "실행할 셸 명령어.", + "commandLabel": "명령어", + "commandPlaceholder": "예: npx runfusion.ai backup --create", + "commandRequired": "명령어는 필수입니다", + "commandType": "명령어", + "continueOnFailure": "실패 시 계속", + "continueOnFailureHelp": "체크하면 이 단계가 실패해도 다음 단계가 실행됩니다", + "continuesOnFailure": "실패 시 계속 진행", + "createButton": "스케줄 생성", + "createError": "루틴 생성에 실패했습니다", + "createFirst": "첫 번째 자동화 만들기", + "createNew": "새 자동화 만들기", + "createRoutine": "루틴 생성", + "createTaskType": "작업 생성", + "cronAutoFilled": "프리셋에서 자동 입력됨: {{cron}}", + "cronAutoFilledHint": "프리셋에서 자동 입력됨: {{expression}}", + "cronCustomHint": "분 시 일 월 요일", + "cronExpressionLabel": "Cron 표현식", + "cronHelp": "분 시 일 월 요일 — ", + "cronInvalid": "잘못된 cron 형식 — 5개의 필드가 필요합니다 (예: '0 */6 * * *')", + "cronLabel": "Cron 표현식", + "cronPresetCustom": "사용자 지정 cron 표현식", + "cronPresetDaily": "매일 (자정)", + "cronPresetHourly": "매시간", + "cronPresetMonthly": "매월 (1일)", + "cronPresetWeekly": "매주 (월요일)", + "cronRequired": "사용자 지정 스케줄에는 cron 표현식이 필요합니다", + "delete": "삭제", + "deleteError": "루틴 삭제에 실패했습니다", + "deleteMessage": "스케줄 {{name}}을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.", + "deleteName": "{{name}} 삭제", + "deleteStep": "{{name}} 삭제", + "deleteTitle": "스케줄 삭제", + "descriptionLabel": "설명 (선택 사항)", + "descriptionPlaceholder": "이 루틴은 무엇을 합니까?", + "disable": "비활성화", + "disableName": "{{name}} 비활성화", + "edit": "편집", + "editName": "{{name}} 편집", + "editRoutineHeading": "루틴 편집", + "editStep": "{{name}} 편집", + "editTitle": "스케줄 편집", + "emptyStateDescription": "스케줄, 웹훅, API 또는 수동 트리거로 자동화를 만드세요.", + "enable": "활성화", + "enableName": "{{name}} 활성화", + "enabledHelp": "비활성화되면 스케줄이 자동으로 실행되지 않습니다", + "enabledHint": "비활성화되면 루틴이 자동으로 실행되지 않습니다", + "enabledLabel": "활성화됨", + "errorApiEndpointRequired": "API 엔드포인트는 필수입니다", + "errorCommandRequired": "명령어는 필수입니다", + "errorCronInvalid": "잘못된 cron 형식 — 5개의 필드가 필요합니다 (예: '0 */6 * * *')", + "errorCronRequired": "Cron 표현식은 필수입니다", + "errorLoadModels": "모델 불러오기 실패", + "errorModelIncomplete": "모델 제공자와 모델 ID 모두 설정하거나 모두 비워야 합니다", + "errorNameRequired": "이름은 필수입니다", + "errorPromptRequired": "프롬프트는 필수입니다", + "errorScopeNoProject": "프로젝트 전용 항목에는 활성 프로젝트가 필요합니다.", + "errorStepCommandRequired": "단계 {{n}}: 명령어는 필수입니다", + "errorStepNameRequired": "단계 {{n}}: 이름은 필수입니다", + "errorStepPromptRequired": "단계 {{n}}: 프롬프트는 필수입니다", + "errorStepTaskDescRequired": "단계 {{n}}: 작업 설명은 필수입니다", + "errorStepsEditing": "루틴을 저장하기 전에 모든 단계 편집을 저장하거나 취소하세요", + "errorStepsRequired": "최소 하나의 단계가 필요합니다", + "errorTaskDescriptionRequired": "작업 설명은 필수입니다", + "errorTimeoutMin": "타임아웃은 최소 1초(1000ms) 이상이어야 합니다", + "errorWebhookPathRequired": "웹훅 경로는 필수입니다", + "executionPolicyHint": "이 루틴의 동시 실행 처리 방법", + "executionPolicyLabel": "실행 정책", + "executionPolicyParallel": "동시 실행 허용", + "executionPolicyQueue": "현재 실행 후 대기 (한 번에 하나씩)", + "executionPolicyReject": "실행 중 새 실행 거부", + "executorModelDropdownLabel": "실행자 모델", + "executorModelHelp": "생성된 작업 실행에 사용되는 AI 모델. 선택하지 않으면 기본값을 사용합니다.", + "executorModelLabel": "실행자 모델 (선택 사항)", + "executorModelOptional": "실행자 모델 (선택 사항)", + "executorModelPlaceholder": "기본값 사용", + "frequencyLabel": "빈도", + "global": "전체", + "globalScope": "전체", + "globalScopeTitle": "전체 범위", + "globalScoped": "이 스케줄은 전체 범위에서 생성됩니다.", + "loadRoutinesError": "루틴 불러오기 실패", + "manualTriggerInfo": "이 루틴은 대시보드 또는 API를 통해 수동으로 트리거됩니다.", + "modeAriaLabel": "실행 모드", + "modeLabel": "실행 모드", + "model": "모델", + "modelConsistency": "모델 제공자와 모델 ID 모두 설정하거나 모두 비워야 합니다", + "modelDropdownLabel": "모델", + "modelHelp": "이 프롬프트의 AI 모델. 선택하지 않으면 기본값을 사용합니다.", + "modelLabel": "모델 (선택 사항)", + "modelOptional": "모델 (선택 사항)", + "modelPlaceholder": "기본값 사용", + "modelProviderRequired": "모델 제공자와 모델 ID는 함께 설정해야 합니다", + "moveDown": "아래로 이동", + "moveStepDown": "{{name}} 아래로 이동", + "moveStepUp": "{{name}} 위로 이동", + "moveUp": "위로 이동", + "nameLabel": "이름", + "namePlaceholder": "예: 일일 스탠드업 알림", + "nameRequired": "이름은 필수입니다", + "newAutomation": "새 자동화", + "newRoutineHeading": "새 루틴", + "newTitle": "새 스케줄", + "noActiveProject": "활성 프로젝트 없음. 스케줄은 전체 범위에서 생성됩니다.", + "noAutomations": "아직 자동화가 없습니다", + "noStepsEmpty": "추가된 단계가 없습니다. 명령어 또는 AI 프롬프트 단계를 추가하여 시작하세요.", + "project": "프로젝트", + "projectRequired": "프로젝트 전용 항목에는 활성 프로젝트가 필요합니다.", + "projectScope": "프로젝트", + "projectScopeDisabled": "프로젝트를 선택하여 프로젝트 범위 활성화", + "projectScopeTitle": "프로젝트 범위", + "projectScoped": "이 스케줄은 현재 프로젝트 범위에서 생성됩니다.", + "prompt": "프롬프트", + "promptHelp": "실행할 AI 프롬프트. 작업에 대한 명확한 지침을 제공하세요.", + "promptHint": "실행할 AI 프롬프트.", + "promptLabel": "프롬프트", + "promptPlaceholder": "예: 최근 활동을 요약하고 실행 항목을 생성하세요", + "promptRequired": "프롬프트는 필수입니다", + "resultFailed": "실패", + "resultSuccess": "성공", + "routineCreated": "루틴이 생성되었습니다", + "routineDeleted": "\"{{name}}\" 삭제됨", + "routineDisabled": "\"{{name}}\" 비활성화됨", + "routineEnabled": "\"{{name}}\" 활성화됨", + "routineFailed": "\"{{name}}\" 실패: {{error}}", + "routineSuccess": "\"{{name}}\" 성공적으로 완료됨", + "routineUpdated": "루틴이 업데이트되었습니다", + "runError": "루틴 실행에 실패했습니다", + "runHistory": "실행 기록 ({{count}})", + "runNameNow": "{{name}} 지금 실행", + "runNow": "지금 실행", + "running": "실행 중…", + "saveChanges": "변경사항 저장", + "saveStep": "단계 저장", + "saving": "저장 중…", + "scheduleLabel": "스케줄", + "scopeAriaLabel": "루틴 범위", + "scopeGroup": "스케줄 범위", + "scopeHintGlobal": "이 루틴은 전체 범위에서 생성됩니다.", + "scopeHintNoProject": "활성 프로젝트 없음. 루틴은 전체 범위에서 생성됩니다.", + "scopeHintProject": "이 루틴은 현재 프로젝트 범위에서 생성됩니다.", + "scopeLabel": "범위", + "scopeLocked": "기존 스케줄의 범위는 {{scope}}으로 잠겨 있습니다", + "scopeLockedTitle": "기존 루틴의 범위는 {{scope}}으로 잠겨 있습니다", + "selectProjectTitle": "프로젝트를 선택하여 프로젝트 범위 활성화", + "simpleMode": "단순", + "simpleModeHelp": "단일 셸 명령어 또는 AI 프롬프트 실행", + "stepCommandRequired": "단계 {{index}}: 명령어는 필수입니다", + "stepCount": "{{count}}개 단계", + "stepName": "단계 이름", + "stepNamePlaceholder": "예: 테스트 실행", + "stepNameRequired": "단계 {{index}}: 이름은 필수입니다", + "stepPromptRequired": "단계 {{index}}: 프롬프트는 필수입니다", + "stepType": "단계 유형", + "steps": "단계", + "stepsEditing": "스케줄을 저장하기 전에 모든 단계 편집을 저장하거나 취소하세요", + "stepsRequired": "최소 하나의 단계가 필요합니다", + "targetColumn": "대상 열", + "targetColumnHelp": "새 작업이 생성될 열", + "targetColumnLabel": "대상 열", + "taskColumnLabel": "대상 열", + "taskColumnTodo": "할 일", + "taskColumnTriage": "분류", + "taskDescription": "작업 설명 *", + "taskDescriptionHelp": "생성될 작업을 설명합니다.", + "taskDescriptionHint": "생성될 작업을 설명합니다.", + "taskDescriptionLabel": "작업 설명", + "taskDescriptionPlaceholder": "예: npm 의존성에서 보안 취약점 확인", + "taskDescriptionRequired": "작업 설명은 필수입니다", + "taskTitleHelp": "비워두면 설명에서 자동 요약됩니다", + "taskTitleLabel": "작업 제목 (선택 사항)", + "taskTitleOptional": "작업 제목 (선택 사항)", + "taskTitlePlaceholder": "예: 주간 의존성 검토", + "timeoutHelp": "최대 실행 시간 (밀리초, 기본값 300000 = 5분)", + "timeoutHint": "최대 실행 시간 (밀리초).", + "timeoutLabel": "타임아웃 (ms)", + "timeoutMinimum": "타임아웃은 최소 1초(1000ms) 이상이어야 합니다", + "timeoutOptional": "타임아웃 (ms, 선택 사항)", + "timeoutPlaceholder": "스케줄 타임아웃 재정의", + "title": "자동화", + "todoColumn": "할 일", + "toggleError": "루틴 전환에 실패했습니다", + "triageColumn": "분류", + "triggerApi": "API", + "triggerCron": "Cron", + "triggerManual": "수동", + "triggerTypeAriaLabel": "트리거 유형", + "triggerTypeLabel": "트리거 유형", + "triggerWebhook": "Webhook", + "typeCustom": "사용자 지정 cron 표현식", + "typeDaily": "매일 (자정)", + "typeEvery12Hours": "12시간마다", + "typeEvery15Min": "15분마다", + "typeEvery2Hours": "2시간마다", + "typeEvery30Min": "30분마다", + "typeEvery6Hours": "6시간마다", + "typeHourly": "매시간", + "typeMonthly": "매월 (1일)", + "typeWeekdays": "평일 오전 9시 (월~금)", + "typeWeekly": "매주 (월요일)", + "unknownError": "알 수 없는 오류", + "updateError": "루틴 업데이트에 실패했습니다", + "useDefault": "기본값 사용", + "webhookPathHint": "웹훅 엔드포인트의 URL 경로", + "webhookPathLabel": "Webhook 경로", + "webhookPathPlaceholder": "/trigger/my-routine", + "webhookSecretHint": "서명 검증용 HMAC 시크릿. 미인증 웹훅은 비워두세요.", + "webhookSecretLabel": "Webhook 시크릿 (선택 사항)", + "webhookSecretPlaceholder": "선택 사항 — 미인증 웹훅은 비워두세요" + }, + "scriptsModal": { + "addScript": "스크립트 추가", + "addScriptsHint": "대시보드에서 자주 사용하는 명령어를 빠르게 실행할 스크립트를 추가하세요.", + "cancelDelete": "삭제 취소", + "command": "명령어", + "commandPlaceholder": "예: npm run build", + "confirmDelete": "삭제 확인", + "confirmDeleteNamed": "{{name}} 삭제 확인", + "deleteScriptNamed": "{{name}} 삭제", + "editScriptNamed": "{{name}} 편집", + "failedToDelete": "스크립트 삭제에 실패했습니다", + "failedToLoadScripts": "스크립트 불러오기에 실패했습니다", + "failedToSave": "스크립트 저장에 실패했습니다", + "loadingScripts": "스크립트 불러오는 중...", + "nameErrorMsg": "이름은 문자, 숫자, 하이픈, 언더스코어만 포함할 수 있습니다 (공백 없음)", + "nameHint": "문자, 숫자, 하이픈, 언더스코어만 가능", + "noScriptsDefined": "정의된 스크립트 없음", + "noScriptsYet": "아직 정의된 스크립트가 없습니다.", + "runScript": "스크립트 실행", + "runScriptNamed": "{{name}} 실행", + "saving": "저장 중...", + "scriptAlreadyExists": "같은 이름의 스크립트가 이미 존재합니다", + "scriptCommandRequired": "스크립트 명령이 필요합니다", + "scriptCount": "스크립트 {{count}}개", + "scriptCreated": "스크립트가 생성되었습니다", + "scriptDeleted": "스크립트가 삭제되었습니다", + "scriptName": "스크립트 이름", + "scriptNamePlaceholder": "예: build, test, lint", + "scriptNameRequired": "스크립트 이름이 필요합니다", + "scriptUpdated": "스크립트가 업데이트되었습니다", + "title": "스크립트" + }, + "secrets": { + "accessPolicyAuto": "auto", + "accessPolicyDeny": "deny", + "accessPolicyLabel": "접근 정책", + "accessPolicyPrompt": "prompt", + "addSecret": "시크릿 추가", + "addSecretModalTitle": "시크릿 추가", + "cancelBtn": "취소", + "cancelDelete": "취소", + "clearSyncPassphrase": "지우기", + "closeAriaLabel": "닫기", + "confirmClearSyncPassphrase": "크로스 노드 동기화 패스프레이즈를 지우시겠습니까? 새 패스프레이즈를 설정하기 전까지 기존 동기화 쌍의 작동이 중단됩니다.", + "confirmDelete": "확인", + "confirmPassphraseLabel": "패스프레이즈 확인", + "copied": "복사됨", + "copyAriaLabel": "복사", + "createBtn": "생성", + "deleteAriaLabel": "삭제", + "descriptionLabel": "설명", + "editAriaLabel": "편집", + "editSecretModalTitle": "시크릿 편집", + "empty": "시크릿이 없습니다.", + "envExportableChip": "env 내보내기 가능", + "envKeyLabel": "Env 키", + "errorClearSyncPassphrase": "동기화 패스프레이즈 지우기 실패: {{error}}", + "errorLoadSyncStatus": "동기화 패스프레이즈 상태 로드 실패: {{error}}", + "errorSaveSyncPassphrase": "동기화 패스프레이즈 저장 실패: {{error}}", + "exportToEnvLabel": "env로 내보내기", + "hideAriaLabel": "숨기기", + "hideValueAriaLabel": "값 숨기기", + "keyLabel": "키", + "loading": "불러오는 중…", + "neverRead": "읽은 적 없음", + "passphraseLabel": "패스프레이즈", + "passphraseMustMatch": "패스프레이즈가 일치해야 합니다.", + "refresh": "새로 고침", + "revealAriaLabel": "표시", + "revealed": "표시됨", + "rotateSyncPassphrase": "교체", + "rotateSyncPassphraseModalTitle": "동기화 패스프레이즈 교체", + "saveBtn": "저장", + "scopeGlobal": "전역", + "scopeLabel": "범위", + "scopeProject": "프로젝트", + "setPassphrase": "패스프레이즈 설정", + "setSyncPassphraseModalTitle": "동기화 패스프레이즈 설정", + "showValueAriaLabel": "값 표시", + "syncConfigured": "구성됨", + "syncNotConfigured": "구성되지 않음", + "syncPassphraseCleared": "동기화 패스프레이즈가 지워졌습니다", + "syncPassphraseDescription": "크로스 노드 시크릿 번들을 래핑하는 데 사용되는 공유 패스프레이즈입니다. 동기화 쌍의 두 노드 모두 동일한 값을 공유해야 합니다. 로컬에만 저장되며 전송되지 않습니다.", + "syncPassphraseRotated": "동기화 패스프레이즈가 교체되었습니다", + "syncPassphraseSet": "동기화 패스프레이즈가 설정되었습니다", + "syncPassphraseTitle": "크로스 노드 동기화 패스프레이즈", + "title": "시크릿", + "valueLabel": "값" + }, + "sessionBanner": { + "dismissAll": "모두 닫기", + "dismissItem": "{{title}} 닫기", + "failed": "실패", + "headerAwaitingAndErrorPlural": "AI 세션 {{awaitingCount}}개가 입력을 기다리고 있으며, {{errorCount}}개가 실패했습니다", + "headerAwaitingAndErrorSingular": "AI 세션 {{awaitingCount}}개가 입력을 기다리고 있으며, {{errorCount}}개가 실패했습니다", + "headerAwaitingPlural": "AI 세션 {{count}}개가 입력을 기다리고 있습니다", + "headerAwaitingSingular": "AI 세션 {{count}}개가 입력을 기다리고 있습니다", + "headerErrorPlural": "AI 세션 {{count}}개가 실패했습니다", + "headerErrorSingular": "AI 세션 {{count}}개가 실패했습니다", + "regionLabel": "입력 대기 중이거나 실패한 AI 세션", + "resume": "재개", + "retry": "재시도", + "typeLabel": { + "milestoneInterview": "마일스톤 인터뷰", + "missionInterview": "미션 인터뷰", + "planning": "계획", + "sliceInterview": "슬라이스 인터뷰", + "subtask": "하위 작업 분해" + } + }, "settings": { + "actions": { + "cancel": "취소", + "save": "저장" + }, "appearance": { - "title": "모양", "language": "언어", "languageAuto": "자동", "languageAutoHint": "브라우저 언어를 따릅니다", - "languageHint": "{{brand}} 인터페이스의 언어를 선택하세요." + "languageHint": "{{brand}} 인터페이스의 언어를 선택하세요.", + "title": "모양" + }, + "auth": { + "apiKeyCleared": "API 키가 지워졌습니다", + "apiKeySaved": "API 키가 저장되었습니다", + "authCodeAlreadySubmitted": "이미 제출된 인증 코드입니다. 로그인을 기다리는 중…", + "authCodeReceived": "인증 코드를 받았습니다. 로그인을 완료하는 중…", + "clearKey": "지우기", + "continueToLogin": "로그인 계속", + "copiedCodeToClipboard": "코드가 클립보드에 복사되었습니다", + "copyCode": "코드 복사", + "enterCodeOnGitHub": "GitHub에 이 코드를 입력하세요", + "failedToCopyCode": "코드 복사 실패 — 위의 상자에서 직접 복사하세요", + "groupAuthenticated": "인증됨", + "groupAvailable": "사용 가능", + "hint": "인증 변경 사항은 즉시 적용됩니다 — 저장할 필요가 없습니다.", + "loadingStatus": "인증 상태를 불러오는 중…", + "loggedOut": "로그아웃됨", + "loggingOut": "로그아웃 중…", + "login": "로그인", + "loginAlreadyInProgress": "로그인이 이미 진행 중입니다. 취소 후 다시 시도할 수 있습니다.", + "loginCancelled": "로그인이 취소되었습니다", + "loginDidNotComplete": "로그인이 완료되지 않았습니다. 다시 시도해 주세요.", + "loginSuccessful": "로그인에 성공했습니다", + "logout": "로그아웃", + "manualPasteMessage": "{{name}}으로 로그인하면 브라우저가 이 대시보드에서 접근할 수 없는 localhost 주소로 리디렉션을 시도합니다. 리디렉션 탭은 실패한 것처럼 보일 수 있습니다. 그 전에 브라우저 주소 표시줄에서 전체 URL을 복사해 두세요 — 로그인을 완료하려면 여기에 붙여넣어야 합니다. 계속하시겠습니까?", + "manualPasteTitle": "주의 — 수동 붙여넣기가 필요합니다", + "noProviders": "사용 가능한 공급자가 없습니다", + "openGitHub": "GitHub 열기", + "pasteRedirectUrlFirst": "먼저 전체 리디렉션 URL 또는 인증 코드를 붙여넣으세요.", + "reopenOnboarding": "온보딩 가이드 다시 열기", + "reopenOnboardingHint": "설정 마법사를 다시 실행하여 AI 공급자 및 모델 구성을 검토하거나 업데이트하세요.", + "savingKey": "저장 중…", + "signInHint": "AI 모델을 사용하려면 하나 이상의 공급자에 로그인하세요.", + "statusActive": "✓ 활성", + "statusNotConnected": "✗ 연결되지 않음", + "title": "인증", + "waitingForLogin": "로그인을 기다리는 중…" + }, + "backups": { + "backupCreated": "백업이 성공적으로 생성되었습니다", + "backupNow": "지금 백업", + "creating": "생성 중…" + }, + "closeModal": "충돌 모달 닫기", + "conflictModalTitle": "설정 충돌 해결", + "footer": { + "help": "도움말", + "version": "버전 {{version}}" + }, + "general": { + "learnMore": "더 알아보기", + "settingsSaved": "설정이 저장되었습니다", + "upToDate": "최신 버전입니다 ✓", + "updateAvailablePrefix": "v{{version}} 사용 가능" + }, + "header": { + "discord": "Discord" + }, + "importExport": { + "confirmImport": "가져오기 확인", + "exportBtn": "내보내기", + "exportTitle": "JSON 파일로 설정 내보내기", + "importBtn": "가져오기", + "importTitle": "설정 가져오기", + "importing": "가져오는 중…", + "loadingFile": "불러오는 중…", + "reviewPrompt": "가져올 설정을 검토하세요:" + }, + "jsonPlaceholder": "JSON 값을 입력하세요...", + "keepLocal": "로컬 유지", + "keepRemote": "원격 유지", + "loading": "불러오는 중…", + "memory": { + "compactSelectedFile": "선택한 파일 압축", + "compacting": "압축 중…", + "dreamCompleted": "드림 처리가 완료되었습니다", + "dreamNow": "지금 드림", + "installQmd": "qmd 설치", + "installing": "설치 중…", + "memoryCompacted": "메모리 파일이 압축되었습니다", + "memorySaved": "메모리가 저장되었습니다", + "saveMemory": "메모리 저장", + "testRetrieval": "검색 테스트", + "testing": "테스트 중…" + }, + "mergeManually": "수동으로 병합", + "mobileNav": { + "label": "설정 섹션" + }, + "models": { + "deletePresetMessage": "프리셋 \"{{name}}\"은(는) 자동 선택에 사용 중입니다. 그래도 삭제하시겠습니까?", + "deletePresetTitle": "프리셋 삭제", + "loadingModels": "사용 가능한 모델을 불러오는 중…", + "noModels": "사용 가능한 모델이 없습니다. 먼저 인증을 설정하세요.", + "presetNameRequired": "프리셋 이름이 필요합니다", + "savePreset": "프리셋 저장" + }, + "nav": { + "accountHeader": "계정", + "agentPermissions": "에이전트 권한", + "appearance": "외관", + "aria": { + "global": "전역 설정", + "project": "프로젝트 설정" + }, + "authentication": "인증", + "backups": "백업", + "commands": "명령", + "experimental": "실험적 기능", + "globalGeneral": "일반", + "globalHeader": "전역", + "globalModels": "모델", + "hermesRuntime": "Hermes", + "memory": "메모리", + "merge": "병합", + "nodeRouting": "노드 라우팅", + "nodeSync": "노드 동기화", + "notifications": "알림", + "openclawRuntime": "OpenClaw", + "paperclipRuntime": "Paperclip", + "plugins": "플러그인", + "projectGeneral": "프로젝트 일반", + "projectHeader": "프로젝트", + "projectModels": "프로젝트 모델", + "prompts": "프롬프트", + "remote": "원격 접근", + "researchGlobal": "연구 기본값", + "researchProject": "연구", + "runtimesHeader": "런타임", + "scheduledEvals": "예약된 평가", + "scheduling": "스케줄링", + "secrets": "시크릿", + "tooltip": { + "global": "모든 프로젝트에서 공유됨", + "project": "이 프로젝트에만 적용됨" + }, + "worktrees": "Worktrees" + }, + "notifications": { + "sending": "전송 중…", + "testMessageInbox": "테스트 메시지 받은 편지함", + "testNotification": "테스트 알림", + "testRoomReply": "테스트 룸 답장" + }, + "remote": { + "cloudflaredInstalled": "cloudflared가 성공적으로 설치되었습니다", + "persistentTokenRegenerated": "영구 토큰이 재생성되었습니다", + "restarting": "재시작 중…", + "shortLivedTokenGenerated": "단기 토큰이 생성되었습니다", + "startFresh": "새로 시작", + "startTunnel": "터널 시작", + "starting": "시작 중…", + "stopTunnel": "터널 중지", + "stopping": "중지 중…", + "tunnelRestarted": "원격 터널이 재시작되었습니다", + "tunnelStarted": "원격 터널이 시작되었습니다", + "tunnelStopped": "원격 터널이 중지되었습니다", + "useExisting": "기존 사용" + }, + "resolveAllLocal": "모두 해결: 로컬 유지", + "resolveAllRemote": "모두 해결: 원격 유지", + "resolveFailed": "충돌 해결에 실패했습니다", + "resolvedSuccess": "설정 충돌이 성공적으로 해결되었습니다", + "resolving": "해결 중...", + "scheduling": { + "selectCurrentDir": "현재 디렉터리 선택", + "selectIgnoredOverlapPath": "무시된 겹침 경로 선택" + }, + "scope": { + "globalBanner": "이 설정은 모든 Fusion 프로젝트에서 공유됩니다.", + "projectBanner": "이 설정은 현재 프로젝트에만 적용됩니다." + }, + "title": "설정", + "worktrees": { + "awaitingApproval": "승인 대기 중 — 승인을 열어 계속하세요.", + "installWorktrunk": "worktrunk 바이너리 설치", + "openApprovals": "승인 열기", + "selectWorktreesDir": "Worktrees 디렉터리 선택", + "tryAgain": "다시 시도" } + }, + "setup": { + "addCustomProvider": "맞춤 공급자 추가", + "addMoreProjectsHint": "프로젝트 개요에서 언제든지 프로젝트를 더 추가할 수 있습니다.", + "advancedProviderSettings": "고급 공급자 설정", + "advancedSettings": "고급 설정", + "advancedSetupDetails": "고급 설정 세부 정보", + "aiSetupDescription": "Fusion은 AI 모델을 사용하여 코드를 계획, 작성 및 검토합니다. 아래에서 AI 공급자를 연결하여 시작하세요 — 호스팅 서비스를 사용하거나 API 키를 입력할 수 있습니다.", + "allProvidersShown": "현재 사용 가능한 모든 공급자가 이미 위에 표시되어 있습니다.", + "allSet": "모두 완료!", + "apiKeyFormatError": "{{providerName}} 키는 다음 형식을 따라야 합니다: {{hint}} (예: {{example}})", + "apiKeyFormatHint": "형식: {{hint}}", + "apiKeyHint": "키: {{keyHint}}", + "apiKeyLabel": { + "fallback": "API 키", + "kimiCoding": "Kimi API 키", + "minimax": "MiniMax API 키", + "ollama": "Ollama 엔드포인트", + "openai": "OpenAI API 키", + "openrouter": "OpenRouter API 키", + "zai": "Zhipu AI API 키" + }, + "apiKeyPlaceholder": { + "fallback": "API 키 입력", + "kimiCoding": "Kimi API 키를 입력하세요", + "minimax": "MiniMax API 키를 입력하세요", + "zai": "Zhipu AI API 키를 입력하세요" + }, + "apiKeyRemoved": "API 키가 제거되었습니다", + "apiKeyRequired": "API 키가 필요합니다", + "apiKeySaved": "✓ API 키가 저장되었습니다", + "apiKeySavedToast": "API 키가 저장되었습니다", + "apiKeySetup": { + "fallback": "이 공급자의 API 키를 입력하세요.", + "kimiCoding": "Moonshot 플랫폼 계정 설정에서 API 키를 생성하세요.", + "minimax": "MiniMax 플랫폼 개발자 콘솔에서 API 키를 생성하세요.", + "ollama": "Ollama 엔드포인트 URL을 입력하세요 (예: http://localhost:11434).", + "openai": "OpenAI 대시보드의 API 키 메뉴에서 API 키를 생성하세요.", + "openrouter": "OpenRouter 계정 키 관리 페이지에서 API 키를 생성하세요.", + "zai": "Zhipu AI 오픈 플랫폼 계정 설정에서 API 키를 생성하세요." + }, + "apiKeyUsage": { + "fallback": "Fusion이 이 공급자에 요청을 인증하는 데 사용됩니다", + "kimiCoding": "작업 실행 및 계획에서 Kimi/Moonshot AI 모델에 사용됩니다", + "minimax": "작업 실행에서 MiniMax 모델에 사용됩니다", + "ollama": "로컬 Ollama 인스턴스에 연결합니다", + "openai": "작업 실행 및 계획에서 GPT 모델에 사용됩니다", + "openrouter": "단일 키를 통해 여러 AI 모델 공급자로 라우팅합니다", + "zai": "작업 실행에서 GLM 모델에 사용됩니다" + }, + "ariaDismissRecommendations": "추천 닫기", + "ariaSetupRecommendations": "설정 추천", + "authCodeAlreadySubmitted": "이미 제출된 인증 코드입니다. 로그인을 기다리는 중…", + "authCodeReceived": "인증 코드를 받았습니다. 로그인을 완료하는 중…", + "authDescription": "이 대시보드는 Fusion 데몬과 통신하기 위해 인증 토큰이 필요합니다. 아래에 토큰을 붙여넣어 계속하세요.", + "authToken": "인증 토큰", + "authTokenOptional": "인증 토큰 (선택 사항)", + "back": "← 뒤로", + "browserAuthToken": "브라우저 인증 토큰", + "cancelLogin": "취소", + "childProcess": "Child-Process", + "childProcessDesc": "충돌 격리 기능이 있는 독립 실행 환경입니다.", + "childProcessLabel": "Child Process (격리)", + "chooseModel": "모델 선택", + "claudeCli": { + "active": "✓ 활성", + "binaryNotFound": "PATH에서 `claude` 바이너리가 감지되지 않았습니다 — 먼저 Claude CLI를 설치하세요.", + "binaryNotFoundPath": "PATH에서 `claude`를 찾을 수 없습니다", + "connected": "✓ 연결됨{{version}}", + "description": "로컬에 설치된 claude CLI를 통해 AI 호출을 라우팅합니다. API 키 대신 기존 Claude 구독/할당량을 사용합니다.", + "details": "세부 정보", + "detectedPrompt": "{{path}}이(가) 감지되었습니다. 활성화를 클릭하면 AI 호출이 이를 통해 라우팅됩니다.", + "disable": "비활성화", + "disabledMessage": "Claude CLI 라우팅 모델이 모델 선택기에서 숨겨집니다.", + "disabledVerb": "비활성화됨", + "disabling": "비활성화 중…", + "enable": "활성화", + "enabledMessage": "Claude CLI 라우팅 모델이 이제 모델 선택기에 표시됩니다.", + "enabledVerb": "활성화됨", + "enabling": "활성화 중…", + "extensionFailed": "확장 프로그램 로드 실패: {{reason}}", + "name": "Anthropic — Claude CLI 경유", + "notConnected": "✗ 연결되지 않음", + "notInstalled": "✗ 설치되지 않음", + "probing": "로컬 CLI를 확인하는 중…", + "test": "테스트", + "testing": "테스트 중…", + "validating": "활성화됨. 유효성 검사 중…" + }, + "cloneGitHint": "Fusion이 대상 디렉터리로 git clone을 실행한 후 해당 폴더를 등록합니다.", + "cloneGitRepository": "Git 저장소 복제", + "clonePathHint": "절대 경로를 선택하거나 입력하세요. Fusion이 이 디렉터리로 복제합니다.", + "clonePathPlaceholder": "/path/for/new-clone", + "closeWizard": "마법사 닫기", + "compactWarning": "⚠ 설정 미완료 — AI 및/또는 GitHub 기능이 제한됩니다.", + "completeSetup": "Fusion을 최대한 활용하려면 다음 설정 항목을 완료하세요.", + "connect": "연결", + "connectAiProvider": "AI 공급자 연결", + "connectAiProviderDesc": "AI 에이전트의 작업 계획 및 코드 생성을 활성화하려면 AI 공급자를 연결하세요", + "connectAnyway": "그래도 연결", + "connectGitHub": "GitHub 연결", + "connectGitHubAnytime": "준비가 되지 않았다면 괜찮습니다 — 설정 → 인증에서 언제든지 GitHub를 연결할 수 있습니다.", + "connectGitHubButton": "GitHub 연결", + "connectGitHubDesc": "GitHub를 연결하여 이슈를 가져오고 풀 리퀘스트를 추적하세요", + "connectOauthOptional": "OAuth 연결 (선택 사항)", + "connectRemoteServer": "원격 Fusion 서버 연결", + "connectedProviders": "연결된 공급자", + "continueToLogin": "로그인 계속", + "continueWithGhCli": "gh CLI 인증으로 계속 →", + "continueWithoutGitHub": "GitHub 없이 계속 →", + "copiedCodeToClipboard": "코드가 클립보드에 복사되었습니다", + "copyCode": "코드 복사", + "couldNotReachServer": "서버에 연결할 수 없습니다. 연결을 확인하고 다시 시도하세요.", + "createFirstTask": "첫 번째 작업 생성", + "createNewTask": "새 작업 생성", + "createNewTaskSubtitle": "필요한 것을 설명하면 AI가 작업합니다", + "createProject": "프로젝트 생성", + "createTasksAnytimeNote": "보드에서 언제든지 작업을 생성하거나", + "createTasksAnytimeNoteTerminal": "터미널에서 사용하세요.", + "creating": "생성 중...", + "creatingTask": "작업을 생성하는 중…", + "cursorCli": { + "active": "✓ 활성", + "binaryNotFound": "PATH에서 `cursor-agent`를 찾을 수 없습니다", + "connected": "연결됨{{version}}", + "description": "로컬 Cursor 에이전트 런타임을 통해 AI 호출을 라우팅합니다.", + "detectedPrompt": "감지되었습니다. 활성화를 클릭하면 Cursor CLI를 통해 호출이 라우팅됩니다.", + "disable": "비활성화", + "disabling": "비활성화 중…", + "enable": "활성화", + "enabling": "활성화 중…", + "notConnected": "✗ 연결되지 않음", + "probing": "로컬 CLI를 확인하는 중…", + "test": "테스트", + "testing": "테스트 중…" + }, + "defaultModelDescription": "AI 작업의 기본 모델을 선택하거나, 나중에 선택하려면 비워 두세요. 모델마다 속도, 성능, 비용이 다릅니다.", + "defaultModelLabel": "기본 모델", + "defaultModelOptional": "기본 모델 (선택 사항)", + "describeFirstTask": "첫 번째 작업 설명", + "destinationDirectory": "대상 디렉터리", + "directoryPath": "디렉터리 경로", + "disconnect": "연결 해제", + "dismissWarning": "설정 경고 닫기", + "enterApiKey": "API 키 입력", + "enterCodeOnGitHub": "GitHub에 이 코드를 입력하세요", + "executionMode": "실행 모드", + "failedToCancelLogin": "로그인 취소에 실패했습니다", + "failedToClearApiKey": "API 키 지우기에 실패했습니다", + "failedToCopyCode": "코드 복사 실패 — 위의 상자에서 직접 복사하세요", + "failedToCreateCustomProvider": "맞춤 공급자 생성에 실패했습니다", + "failedToSaveApiKey": "API 키 저장에 실패했습니다", + "failedToSaveShellConnection": "셸 연결 저장에 실패했습니다", + "failedToSubmitAuthCode": "인증 코드 제출에 실패했습니다", + "finishSetup": "설정 완료", + "firstTaskDescription": "첫 번째 작업을 생성하여 보드를 시작하고 AI 실행을 시작하세요.", + "firstTaskPlaceholder": "예: 이메일과 비밀번호를 사용하는 로그인 페이지 만들기", + "firstTaskReady": "첫 번째 작업이 준비되었습니다!", + "getApiKeyLink": "API 키 받기 →", + "getStarted": "시작하기", + "githubCliAlreadyAuth": "GitHub CLI가 이미 인증되어 있습니다 — 이슈 가져오기 및 풀 리퀘스트 추적이 즉시 작동합니다. 모두 완료되었으며 추가 작업이 필요하지 않습니다.", + "githubCliAuthNote": "GitHub CLI가 이미 인증되어 있어 가져오기 및 PR 추적이 지금 작동합니다. 대시보드의 OAuth는 선택 사항이며 대시보드 관리 연결/연결 해제만 제어합니다.", + "githubCliAuthSuccess": "GitHub CLI가 인증되었습니다. 가져오기 및 풀 리퀘스트 추적을 사용할 수 있습니다. 대시보드 관리 로그인 제어를 원하면 설정 → 인증에서 OAuth를 연결하세요.", + "githubConnected": "GitHub가 연결되었습니다 — 이슈 가져오기 및 풀 리퀘스트 추적을 사용할 수 있습니다. 모두 완료되었으며 추가 작업이 필요하지 않습니다.", + "githubConnectionDescription": "GitHub를 연결하면 이슈 가져오기 및 풀 리퀘스트 추적이 활성화됩니다. 건너뛸 수 있으며, GitHub 없이도 작업 생성이 가능합니다.", + "githubConnectionFailed": "연결에 실패하거나 시간이 초과되었습니다.", + "githubOauthConnected": "GitHub OAuth가 연결되었습니다. 이슈를 가져오고 풀 리퀘스트를 추적할 수 있습니다.", + "githubOauthNotConnected": "GitHub OAuth가 아직 연결되지 않았습니다. 설정 → 인증에서 설정하거나, 지금 계속하고 나중에 연결할 수 있습니다.", + "githubSkipped": "GitHub를 건너뛰었습니다. 설정 → 인증에서 언제든지 연결할 수 있습니다.", + "goBackToStep": "{{label}}(으)로 돌아가기", + "goToDashboard": "대시보드로 이동", + "howDoIChooseModel": "모델을 어떻게 선택하나요?", + "howDoIChooseModelBody": "모델마다 속도, 성능, 비용이 다릅니다. 일반적으로 연결된 공급자의 최신 모델이 좋은 기본값입니다. 나중에 설정에서 언제든지 변경할 수 있습니다.", + "howDoesLoginWork": "로그인은 어떻게 작동하나요?", + "howDoesLoginWorkBody": "로그인을 클릭하면 새 탭에서 공급자 웹사이트가 열리고 로그인합니다. Fusion을 승인하면 이 페이지가 자동으로 연결을 감지합니다. 자격 증명은 Fusion에 저장되지 않습니다.", + "importFromGitHub": "GitHub에서 가져오기", + "importFromGitHubSubtitle": "GitHub 이슈를 여기서 추적할 수 있는 작업으로 전환하세요", + "inProcess": "In-Process", + "inProcessDesc": "오버헤드가 낮고 메모리를 공유합니다. 대부분의 프로젝트에 최적입니다.", + "inProcessLabel": "In-Process (기본값)", + "isolationMode": "격리 모드", + "keySavedInline": "✓ 키가 저장되었습니다", + "loadingProviders": "공급자를 불러오는 중…", + "localNode": "로컬 노드", + "loggedOut": "로그아웃됨", + "loggingOut": "로그아웃 중…", + "login": "로그인", + "loginAlreadyInProgress": "로그인이 이미 진행 중입니다. 취소 후 다시 시도하세요.", + "loginCancelled": "로그인 취소됨", + "loginDidNotComplete": "로그인이 완료되지 않았습니다. 다시 시도해 주세요.", + "loginFailed": "로그인 실패", + "loginFailedInline": "로그인에 실패했습니다. 다시 시도해 주세요.", + "loginSuccessful": "로그인 성공", + "loginTimedOut": "로그인 시간이 초과되었습니다. 다시 시도해 주세요.", + "loginTimedOutInline": "로그인 시간이 초과되었습니다. 다시 시도해 주세요.", + "logout": "로그아웃", + "logoutFailed": "로그아웃 실패", + "manualPastebackTitle": "알림 — 수동 붙여넣기 필요", + "nameHint": "영문자, 숫자, 하이픈, 밑줄만 사용하세요", + "namePlaceholder": "my-project", + "needHelp": "도움이 필요하신가요?", + "next": "다음 →", + "noAiProvider": "AI 제공자가 연결되지 않음", + "noAiProviderBody": "제공자를 연결하기 전까지는 작업 계획 및 코드 생성 등 AI 기능을 사용할 수 없습니다. 나중에 설정에서 구성할 수 있습니다.", + "noAiProviderConnected": "AI 제공자가 연결되지 않음", + "noAiProviderDesc": "제공자를 연결하기 전까지는 AI 에이전트가 작업을 처리할 수 없습니다. 설정 → AI 설정에서 구성하세요.", + "noGithub": "GitHub 미연결", + "noGithubDesc": "GitHub에서 이슈를 가져올 수 없지만, 작업을 수동으로 생성할 수 있습니다.", + "noModelsAvailable": "아직 사용 가능한 모델이 없습니다. 위에서 제공자를 연결하면 모델 옵션을 확인할 수 있습니다.", + "noProvidersConfigured": "AI 제공자가 구성되어 있지 않습니다. Fusion 설정을 확인해 주세요.", + "noProvidersConnectedYet": "아직 연결된 제공자 없음", + "noQuickStartProviders": "이 환경에서는 빠른 시작 제공자를 사용할 수 없습니다.", + "noTokenHint": "저장된 토큰이 없습니다. 마법사 상단의 인증 프롬프트를 사용하거나 여기서 직접 설정하세요.", + "onlyNeedOneProvider": "시작하려면 제공자 하나만 있으면 됩니다.", + "openGitHub": "GitHub 열기", + "openManager": "관리자 열기", + "optionalBadge": "선택 사항", + "pasteRedirectUrlFirst": "전체 리디렉션 URL 또는 인증 코드를 먼저 붙여넣으세요.", + "pasteTokenForBrowserPlaceholder": "이 브라우저의 인증 토큰 붙여넣기", + "pasteTokenPlaceholder": "데몬 인증 토큰 붙여넣기", + "pathHint": "프로젝트 디렉터리의 절대 경로를 입력하세요", + "pathPlaceholder": "/path/to/your/project", + "pleaseEnterTaskDescription": "작업 설명을 입력해 주세요.", + "profileName": "프로필 이름", + "projectDirectory": "프로젝트 디렉터리", + "projectMustBeSelected": "작업을 생성하거나 GitHub에서 가져오려면 먼저 프로젝트를 선택해야 합니다.", + "projectName": "프로젝트 이름", + "projectNameHintClone": "기본적으로 대상 폴더 이름을 따르며, 직접 편집할 수 있습니다.", + "projectNameHintExisting": "기본적으로 선택된 디렉터리 이름을 따르며, 직접 편집할 수 있습니다.", + "projectNamePlaceholder": "my-project", + "projectPathHint": "프로젝트의 절대 경로를 선택하거나 입력하세요", + "projectPathPlaceholder": "/path/to/your/project", + "projectRegisteredSuccess": "프로젝트가 성공적으로 등록되었습니다.", + "projectRequired": "첫 번째 작업 동작을 사용하려면 프로젝트가 필요합니다.", + "projectSelected": "프로젝트 선택됨 — 작업 생성 및 가져오기를 사용할 수 있습니다.", + "projectSetupDescription": "작업을 생성하거나 가져오기 전에 첫 번째 프로젝트를 선택하세요. 기존 로컬 디렉터리를 등록하거나, 설정 마법사를 통해 GitHub 저장소 URL을 클론할 수 있습니다.", + "providerDesc": { + "anthropic": "Claude 모델 — 추론, 분석, 코드에 강점", + "fallback": "AI 제공자 — 연결하여 AI 모델 사용 시작", + "gemini": "Gemini 모델 — 멀티모달 및 강력한 추론", + "google": "Gemini 모델 — 멀티모달 및 강력한 추론", + "kimi": "Kimi by Moonshot AI — 긴 컨텍스트 처리 능력", + "kimiCoding": "Kimi by Moonshot AI — 긴 컨텍스트 처리 능력", + "minimax": "MiniMax 모델 — 대용량 사용에 비용 효율적", + "moonshot": "Kimi by Moonshot AI — 긴 컨텍스트 처리 능력", + "ollama": "로컬 머신에서 오픈소스 모델 실행", + "openai": "GPT 모델 — 다양한 작업에 범용적", + "openaiCodex": "Codex models by OpenAI — 코딩 작업에 최적화", + "openrouter": "OpenRouter — 여러 AI 제공자로 요청 라우팅", + "zai": "GLM models by Zhipu AI — 강력한 다국어 지원" + }, + "providersConnectedSummary": "✓ {{total}}개 제공자 중 {{connected}}개 연결됨", + "providersSkippedSummary": "{{count}}개 제공자 건너뜀", + "providersSkippedSummary_one": "{{count}}개 제공자 건너뜀", + "providersSkippedSummary_other": "{{count}}개 제공자 건너뜀", + "quickStartProviders": "빠른 시작 제공자", + "readinessAiProviderConnected": "{{name}} 연결됨 — AI 에이전트가 작업을 처리할 수 있습니다", + "readinessAiProviderLabel": "AI 제공자", + "readinessAiProviderMissing": "설정 → AI 설정에서 제공자를 연결하세요", + "readinessAiProviderSkipped": "제공자를 연결하기 전까지는 AI 에이전트를 사용할 수 없습니다", + "readinessAllConnected": "✓ 모든 통합 연결됨", + "readinessDefaultModelLabel": "기본 모델", + "readinessGitHubConnected": "이슈 및 PR을 가져올 수 있습니다", + "readinessGitHubLabel": "GitHub", + "readinessGitHubMissing": "연결하여 이슈를 작업으로 가져오세요", + "readinessGitHubSkipped": "언제든지 설정에서 연결할 수 있습니다", + "readinessGitHubViaCli": "GitHub CLI를 통해 연결됨 — 가져오기 및 PR 추적 사용 가능", + "readinessProjectConnected": "프로젝트 선택됨 — 작업 생성 및 가져오기를 사용할 수 있습니다", + "readinessProjectLabel": "프로젝트", + "readinessProjectMissing": "프로젝트를 등록하여 작업 생성 및 가져오기를 활성화하세요", + "readinessSummaryHeader": "설정 요약", + "recommended": "권장", + "recommendedNextSteps": "권장 다음 단계", + "registerProject": "프로젝트 등록", + "registering": "등록 중...", + "remoteServerNote": "대시보드 핸드오프를 완료하려면 네이티브 셸에 활성 원격 프로필이 필요합니다.", + "remoteServerProfileSaved": "원격 서버 프로필 저장됨", + "removeKey": "키 제거", + "removingKey": "제거 중…", + "replaceTokenPlaceholder": "저장된 토큰을 교체할 새 토큰 입력", + "repositoryUrl": "저장소 URL", + "repositoryUrlPlaceholder": "https://github.com/owner/repo.git", + "requiresGitHubConnection": "GitHub 연결 필요", + "researchRunsNote": "리서치 실행에는 제공자 자격 증명과 활성화된 리서치 보기가 필요합니다. 온보딩 후 설정 → 인증 및 설정 → 실험적 기능에서 확인하세요.", + "resetToken": "토큰 초기화", + "retry": "재시도", + "reviewStep": "{{label}} 검토", + "runtimeNode": "런타임 노드", + "saveKey": "저장", + "saveRemoteServer": "원격 서버 저장", + "savedProfileButFailedToActivate": "프로필을 저장했지만 활성화에 실패했습니다", + "saving": "저장 중…", + "savingKey": "저장 중…", + "savingRemoteServer": "저장 중…", + "selectDefaultModel": "기본 모델 선택…", + "selectDefaultModelDesc": "작업 실행에 사용할 기본 AI 모델을 선택하세요", + "selectedModel": "선택됨:", + "serverUrl": "서버 URL", + "serverUrlPlaceholder": "https://your-fusion-host", + "setAuthToken": "인증 토큰 설정", + "setToken": "토큰 설정", + "setTokenContinue": "토큰 설정 및 계속", + "setUpAi": "AI 설정", + "setUpProject": "프로젝트 설정", + "setupComplete": "설정 완료! 보드로 이동하여 첫 번째 작업을 만들거나, 대시보드를 탐색해 보세요.", + "setupMode": "설정 모드", + "setupWizardHint": "설정 마법사에서 기존 디렉터리를 선택하거나 GitHub 클론 URL을 붙여넣으세요.", + "skip": "건너뛰기", + "skipForNow": "지금은 건너뛰기", + "skipGitHub": "GitHub 건너뛰기 →", + "skipOnboardingAriaLabel": "온보딩 건너뛰기", + "skipProviderHint": "원하시면 이 단계를 건너뛸 수 있습니다 — 나중에 설정에서 언제든지 제공자를 추가할 수 있습니다.", + "skipSetup": "설정 건너뛰기 →", + "statusConnected": "✓ 연결됨", + "statusConnecting": "⏳ 연결 중…", + "statusConnectionFailed": "✗ 연결 실패", + "statusNotConnected": "연결되지 않음", + "statusRetry": "재시도", + "statusSkipped": "건너뜀", + "stepAiSetup": "AI 설정", + "stepFirstTask": "첫 번째 작업", + "stepGithub": "GitHub", + "stepProject": "프로젝트", + "submitCode": "코드 제출", + "submittingCode": "제출 중…", + "taskCreated": "작업 생성됨", + "taskCreatedHint": "작업이 생성되어 보드에 표시됩니다.", + "taskCreationFailed": "작업 생성 중 오류가 발생했습니다. 다시 시도해 주세요.", + "taskErrorHint": "텍스트가 보존되었습니다 — 문제를 수정하고 다시 시도하세요.", + "titleAiSetup": "AI 설정", + "titleAllSet": "모두 완료!", + "titleConnectGitHub": "GitHub 연결", + "titleCreateFirstTask": "첫 번째 작업 만들기", + "titleSetUpProject": "프로젝트 설정", + "tokenEnvVar": "대시보드 시작 시 {{env}} 환경 변수를 통해 토큰이 설정되었습니다.", + "tokenStoredHint": "이 브라우저에 이미 토큰이 저장되어 있습니다. 아래에서 업데이트하거나 초기화할 수 있습니다.", + "updateToken": "토큰 업데이트", + "useExistingDirectory": "기존 디렉터리 사용", + "viewTask": "작업 보기", + "waitingForGitHubAuth": "GitHub 인증 대기 중…", + "waitingForLogin": "로그인 대기 중…", + "waitingForOauthLogin": "OAuth 로그인 대기 중…", + "welcomeToFusion": "Fusion에 오신 것을 환영합니다", + "whatAreAiProviders": "AI 제공자란 무엇인가요?", + "whatAreAiProvidersBody": "OpenAI, Anthropic 같은 AI 제공자는 Fusion의 AI 기능을 지원합니다. 제공자를 연결하면 Fusion의 에이전트가 AI 모델을 사용하여 작업을 도울 수 있습니다.", + "whatDoesGitHubIntegrationDo": "GitHub 통합은 무엇을 하나요?", + "whatDoesGitHubIntegrationDoBody": "GitHub 없이도 작업을 수동으로 생성하고 관리할 수 있습니다. GitHub 통합을 사용하면 이슈를 작업으로 가져오고, 작업과 함께 풀 리퀘스트 상태를 추적하며, 커밋을 작업에 자동으로 연결할 수 있습니다. 설정 → 인증에서 언제든지 연결하세요.", + "whatDoesProjectSetupDo": "프로젝트 설정은 무엇을 하나요?", + "whatDoesProjectSetupDoBody": "프로젝트 설정은 Fusion이 파일을 읽고, 명령을 실행하며, 작업 변경 사항을 추적할 수 있도록 작업 공간을 등록합니다.", + "whatHappensWhenCreateTask": "작업을 만들면 어떻게 되나요?", + "whatHappensWhenCreateTaskBody": "작업은 원하는 내용을 설명합니다. Fusion의 AI 에이전트가 설명을 읽고 구현을 진행합니다. 보드에서 진행 상황을 추적하고 결과를 검토할 수 있습니다.", + "whatIsApiKey": "API 키란 무엇인가요?", + "whatIsApiKeyBody": "API 키는 Fusion이 제공자에 인증하는 데 사용되는 비밀 토큰입니다. 제공자 대시보드의 API 설정에서 키를 확인할 수 있습니다. 키는 사용자 머신에 안전하게 저장됩니다.", + "withGitHub1": "이슈를 작업으로 가져오기", + "withGitHub2": "풀 리퀘스트 상태 동기화", + "withGitHub3": "코드 변경 사항을 작업에 연결", + "withGitHubHeading": "GitHub 사용 시 (연결 후):", + "withoutGitHub1": "작업 수동 생성", + "withoutGitHub2": "AI 에이전트를 위한 작업 설명", + "withoutGitHub3": "보드에서 진행 상황 추적", + "withoutGitHubHeading": "GitHub 없이 (지금 사용 가능):" + }, + "shell": { + "activePill": "활성", + "addConnection": "연결 추가", + "addServer": "서버 추가", + "authTokenLabel": "인증 토큰 (선택 사항)", + "connectionManager": "연결 관리자", + "connectionManagerLabel": "연결 관리자", + "defaultProfileName": "원격 서버", + "deleteConfirmLabel": "서버 삭제 확인", + "deleteConfirmMessage": "{{name}}을(를) 삭제하시겠습니까? 저장된 프로필이 제거됩니다.", + "deleteProfile": "{{name}} 삭제", + "editProfile": "{{name}} 편집", + "modeLocal": "로컬", + "modeRemote": "원격", + "nameLabel": "이름", + "noServersSaved": "저장된 원격 서버가 없습니다.", + "scanQr": "QR 스캔", + "serverUrlLabel": "서버 URL", + "serverUrlProtocolError": "서버 URL은 http 또는 https를 사용해야 합니다", + "use": "사용", + "useProfile": "{{name}} 사용" + }, + "skills": { + "addSkill": "스킬 추가…", + "allSkillsSelected": "모든 스킬 선택됨", + "catalogSection": "스킬 카탈로그", + "catalogUnavailable": "카탈로그를 일시적으로 사용할 수 없습니다. 나중에 다시 시도해 주세요.", + "closeDetail": "스킬 상세 닫기", + "closeView": "스킬 보기 닫기", + "disableSkill": "{{name}} 비활성화", + "disabled": "스킬 비활성화됨", + "discovered": "검색됨", + "discoveredCount": "{{count}}개 스킬 검색됨", + "discoveredSection": "검색된 스킬", + "enableSkill": "{{name}} 활성화", + "enabled": "스킬 활성화됨", + "filesLabel": "파일", + "install": "설치", + "installError": "스킬 설치 실패", + "installFailed": "{{name}} 설치 실패: {{message}}", + "installSkill": "{{name}} 설치", + "installSuccess": "{{name}} 설치됨", + "installing": "설치 중…", + "installsCount": "{{count}}회 설치", + "loadCatalogError": "카탈로그 로드 실패", + "loadContentError": "스킬 콘텐츠 로드 실패", + "loadDiscoveredError": "검색된 스킬 로드 실패", + "loading": "스킬 로드 중…", + "loadingCatalog": "카탈로그 로드 중...", + "loadingContent": "스킬 콘텐츠 로드 중...", + "loadingDiscovered": "검색된 스킬 로드 중...", + "noCatalogAvailable": "카탈로그에 사용 가능한 스킬이 없습니다.", + "noDiscovered": "이 프로젝트에서 검색된 스킬이 없습니다.", + "noMatchingDiscovered": "검색어와 일치하는 검색된 스킬이 없습니다.", + "noMatchingSearch": "검색어와 일치하는 스킬이 없습니다.", + "noSkillMd": "(SKILL.md 없음)", + "noSkillsDiscovered": "검색된 스킬 없음", + "removeSkill": "{{name}} 제거", + "searchLabel": "스킬 검색", + "searchPlaceholder": "스킬 검색...", + "title": "스킬", + "toggleError": "스킬 전환 실패", + "toggleFailed": "스킬 전환 실패: {{message}}", + "viewDetails": "{{name}} 상세 보기" + }, + "specEditor": { + "edit": "편집", + "empty": "(명세 없음)", + "feedbackPlaceholder": "예: '오류 처리에 대한 세부 사항 추가', '더 작은 단계로 분할', 'API 엔드포인트 테스트 포함'...", + "keyboardHint": "Ctrl+Enter (또는 Cmd+Enter)를 눌러 저장", + "placeholder": "Markdown으로 작업 명세를 입력하세요...", + "requestRevision": "AI 수정 요청", + "requesting": "요청 중…", + "revisionHelp": "AI가 이 명세를 개선할 수 있도록 피드백을 제공하세요. 작업은 재계획을 위해 계획 단계로 이동합니다.", + "revisionTitle": "AI에게 수정 요청", + "saving": "저장 중…", + "view": "보기" + }, + "stashRecovery": { + "applied": "적용됨", + "apply": "적용", + "applyFailed": "적용 실패", + "changedPathsLabel": "변경된 경로", + "classificationLabel": "분류", + "closeDiffDialog": "diff 대화상자 닫기", + "diffDialogLabel": "{{sha}}의 diff", + "diffHeader": "{{sha}}의 diff", + "diffTruncated": "diff 출력이 잘렸습니다.", + "drop": "삭제", + "dropConfirm": "삭제", + "dropMessage": "이 작업은 스태시 항목을 영구적으로 제거합니다.", + "dropTitle": "고아 스태시를 삭제하시겠습니까?", + "failedToLoadDiff": "diff 로드 실패", + "failedToLoadOrphans": "고아 항목 로드 실패", + "fileCount": "{{count}}개 파일", + "inspectDiff": "diff 검사", + "loadingDiff": "diff 로드 중…", + "noDiffOutput": "사용 가능한 diff 출력이 없습니다.", + "noOrphans": "고아 merger 자동 스태시가 없습니다.", + "orphanCount": "{{count}}개 고아", + "shaLabel": "SHA", + "title": "스태시 복구", + "unknownSource": "알 수 없는 출처" + }, + "stepType": { + "aiPrompt": "AI 프롬프트", + "aiPromptStepTitle": "AI 프롬프트 단계", + "command": "명령", + "commandStepTitle": "명령 단계", + "createTask": "작업 생성", + "createTaskStepTitle": "작업 생성 단계" + }, + "subtasks": { + "addSubtask": "하위 작업 추가", + "baseBranchLabel": "병합 대상 / 기본 브랜치 (선택 사항)", + "baseBranchPlaceholder": "main", + "branchAssignmentPerTask": "계획 브랜치에서 파생된 작업별 브랜치", + "branchAssignmentShared": "공유 병합 대상 — 하위 작업은 각자의 브랜치에서 실행", + "branchModeAutoNew": "작업별 자동 이름 브랜치 생성", + "branchModeCustomNew": "커스텀 새 브랜치 생성", + "branchModeExisting": "기존 브랜치 사용", + "branchModeProjectDefault": "프로젝트/기본 브랜치 사용", + "branchNameLabel": "브랜치 이름", + "branchStrategyLabel": "브랜치 전략", + "createTasks": "작업 생성", + "creating": "생성 중...", + "dependenciesLabel": "의존성", + "dependencyCycleError": "의존성에 순환이 있습니다. 작업을 생성하기 전에 순환 참조를 제거하세요.", + "descriptionLabel": "설명", + "discardChangesMessage": "하위 작업 분류를 닫으시겠습니까? 저장되지 않은 변경 사항이 손실됩니다.", + "discardChangesTitle": "변경 사항 취소", + "dragToReorder": "드래그하여 순서 변경", + "errorCreateTasks": "작업 생성 실패", + "errorRefreshSession": "하위 작업 세션 새로 고침 실패.", + "errorResumeSession": "세션 재개 실패", + "errorRetryFailed": "재시도에 실패했습니다. 다시 시도해 주세요.", + "errorSessionEncountered": "세션에서 오류 발생", + "errorSessionFailed": "AI에 연결하는 중 세션이 실패했습니다.", + "errorSessionNoResult": "하위 작업 세션이 완료되었지만 결과가 없습니다.", + "errorStartBreakdown": "하위 작업 분류 시작 실패", + "generatingSubtasks": "AI가 하위 작업을 생성 중...", + "groupedOnSharedBranch": "공유 브랜치에 그룹화됨", + "hideThinking": "사고 과정 숨기기", + "modalTitle": "하위 작업 분류", + "moveDown": "아래로 이동", + "moveSubtaskDownAriaLabel": "하위 작업 아래로 이동", + "moveSubtaskUpAriaLabel": "하위 작업 위로 이동", + "moveUp": "위로 이동", + "noDepsFirstSubtask": "첫 번째 하위 작업에는 의존성을 설정할 수 없습니다.", + "noPreviousSubtasks": "이전 하위 작업이 없습니다.", + "openGroupModal": "그룹 모달 열기", + "planningBranchModeLabel": "계획 브랜치 모드", + "preparingBreakdown": "이 작업을 하위 작업으로 분류할 준비 중입니다.", + "reconnecting": "재연결 중…", + "remove": "제거", + "retry": "재시도", + "retrying": "재시도 중...", + "reviewSubtasksHeading": "하위 작업 검토", + "reviewSubtasksHint": "모든 작업을 한 번에 생성하기 전에 제목, 설명, 크기, 의존성을 편집하세요.", + "sendToBackgroundAriaLabel": "백그라운드로 보내기", + "sendToBackgroundTitle": "백그라운드로 보내기", + "sessionActiveAnotherTab": "다른 탭에서 세션이 활성 상태입니다.", + "sessionActiveAnotherTabLive": "이 세션은 다른 탭에서 활성 상태입니다 (실시간 하트비트)", + "sessionActiveAnotherTabTakeover": "이 세션은 다른 탭에서 활성 상태입니다", + "showThinking": "사고 과정 보기", + "sizeLabel": "크기", + "takeControl": "제어 가져오기", + "takingControl": "제어 가져오는 중...", + "titleLabel": "제목", + "untitled": "제목 없음" + }, + "syncLog": { + "entryCount": "{{count}}개 항목", + "filterAll": "전체", + "filterAllNodes": "모든 노드", + "filterDirection": "방향:", + "filterNode": "노드:", + "filterPull": "Pull", + "filterPush": "Push", + "loading": "로드 중...", + "noHistory": "사용 가능한 동기화 기록이 없습니다", + "resultConflict": "충돌", + "resultError": "오류", + "resultSuccess": "성공" + }, + "systemStats": { + "agentActive": "활성", + "agentError": "오류", + "agentIdle": "유휴", + "agentRunning": "실행 중", + "autoKillLabel": "메모리 압박 시 vitest 자동 종료", + "autoRefresh": "자동 새로 고침 · 5초", + "closeAriaLabel": "닫기", + "confirmKill": "종료를 확인하시겠습니까?", + "cpuFirstSamplePending": "첫 번째 샘플 대기 중", + "cpuProcessUsage": "프로세스 사용량", + "cpuProgressLabel": "앱 CPU 사용량: {{percent}}%", + "cpuProgressUnavailable": "앱 CPU 사용량 불가: 다음 샘플 대기 중", + "cpuSampling": "샘플링 중…", + "errorKillVitest": "vitest 프로세스 종료 실패", + "errorLoadStats": "시스템 통계 로드 실패", + "errorLoadVitestSettings": "vitest 설정 로드 실패", + "errorSaveVitestSettings": "vitest 설정 저장 실패", + "footerRefreshFailed": "최신 새로 고침 실패: {{error}}", + "killThresholdInputAriaLabel": "종료 임계값 (%)", + "killThresholdLabel": "종료 임계값 (%)", + "killThresholdSliderAriaLabel": "종료 임계값 슬라이더 (%)", + "killVitest": "Vitest 프로세스 종료", + "killedProcesses": "{{count}}개 프로세스 종료됨", + "lastAutoKill": "마지막 자동 종료: {{time}}", + "loading": "시스템 통계 로드 중…", + "notYet": "아직 없음", + "refreshAriaLabel": "시스템 통계 새로 고침", + "refreshTitle": "새로 고침", + "rowAppCpu": "앱 CPU", + "rowArrayBuffers": "배열 버퍼", + "rowCores": "코어", + "rowExternal": "외부", + "rowHeapLimit": "힙 한도", + "rowHeapLimitDetail": "V8 한도", + "rowHeapUsed": "힙 사용량", + "rowHeapUsedDetail": "{{total}} 중", + "rowLoadAvg": "평균 부하", + "rowMemoryFree": "여유 메모리", + "rowMemoryUsed": "사용 중인 메모리", + "rowNode": "Node", + "rowPid": "PID", + "rowPlatform": "플랫폼", + "rowRss": "RSS", + "rowTotal": "전체", + "sectionAgents": "에이전트", + "sectionAgentsAriaLabel": "에이전트 통계", + "sectionCpu": "CPU 및 부하", + "sectionCpuAriaLabel": "CPU 및 부하 통계", + "sectionProcess": "프로세스", + "sectionProcessAriaLabel": "프로세스 통계", + "sectionSystem": "시스템", + "sectionSystemMemAriaLabel": "시스템 메모리 통계", + "sectionTasks": "작업", + "sectionTasksAriaLabel": "작업 통계", + "sectionVitest": "Vitest 컨트롤", + "sectionVitestAriaLabel": "Vitest 컨트롤", + "systemMemProgressLabel": "시스템 메모리 사용: {{percent}}% ({{total}} 중 {{used}})", + "systemMemUnavailable": "시스템 메모리 사용량을 확인할 수 없습니다", + "title": "시스템 통계", + "updatedAt": "{{time}} 업데이트됨", + "vitestProcesses": "Vitest 프로세스", + "waitingFirstUpdate": "첫 업데이트 대기 중" + }, + "taskChanges": { + "attributionFailed": "착륙된 파일 집합에 외부 커밋이 포함될 수 있습니다 (기여 정보 없음).", + "disableWordWrap": "자동 줄 바꿈 해제", + "emptyWorktreeHint": "라이브 worktree diff가 비어 있습니다. 실행 중 캡처된 마지막 파일 경로를 표시합니다 — 패치를 사용할 수 없습니다.", + "enableWordWrap": "자동 줄 바꿈 활성화", + "error": "변경 사항 로드 오류: {{error}}", + "executionFilesHint": "실행 중 worktree에서 캡처된 파일입니다. main에 실제로 반영된 파일과 다를 수 있습니다. 이 작업에서는 계보 기반 diff를 사용할 수 없습니다.", + "expandDiff": "전체 화면 diff 보기로 확장", + "expandDiffView": "diff 보기 확장", + "fileCount": "{{count}}개 파일{{plural}} 변경됨.", + "filesChangedHeading": "변경된 파일 ({{count}})", + "landedFilesHint": "병합 커밋 메타데이터에서 캡처된 파일입니다. 이 작업에서는 계보 기반 diff를 사용할 수 없습니다.", + "loadError": "작업 변경 사항을 불러오지 못했습니다", + "loading": "변경 사항 로드 중...", + "merged": "{{date}} 병합됨", + "mergedAt": "{{date}} 병합됨", + "nextFile": "다음 파일", + "noExecutionModifications": "에이전트가 실행 중 파일을 수정하지 않았습니다.", + "noFilesModified": "수정된 파일 없음.", + "noMergeCommit": "이 작업에 병합 커밋이 기록되지 않았습니다.", + "noMergeFileChanges": "병합 커밋에 파일 변경 사항이 기록되지 않았습니다.", + "noOpShortCircuit": "단락 검증됨 — 작업이 이미 main에 있었습니다 (rebase가 외부 커밋을 통과).", + "noWorktree": "이 작업에 사용 가능한 worktree가 없습니다.", + "noWorktreeHint": "작업이 진행 중일 때 변경 사항이 표시됩니다.", + "previousFile": "이전 파일", + "statusUnknown": "상태 알 수 없음", + "summaryHint": "최종 커밋 요약: {{files}}개 파일{{plural}} 변경, +{{additions}} 추가, -{{deletions}} 삭제. 전체 작업 계보가 아닌 기록된 병합/스쿼시 커밋만 포함됩니다.", + "toggleWordWrap": "자동 줄 바꿈 전환", + "unavailable": "상세 파일 변경 사항을 사용할 수 없습니다." + }, + "taskDetail": { + "actions": { + "menuBtn": "작업" + }, + "ageStaleness": { + "active": "활성", + "age": "경과 시간", + "column": "컬럼", + "critical": "위험", + "observed": "관측됨", + "paused": "일시 정지됨", + "title": "작업 경과 오래됨", + "warning": "경고" + }, + "agent": { + "assignBtn": "에이전트 할당", + "assignFailed": "에이전트 할당 실패: {{error}}", + "assignedUpdated": "할당된 에이전트가 업데이트되었습니다", + "label": "에이전트", + "loadFailed": "에이전트 로드 실패: {{error}}", + "loadingAgents": "에이전트 로드 중...", + "noAgents": "사용 가능한 에이전트 없음", + "unassignFailed": "에이전트 할당 해제 실패: {{error}}", + "unassignTitle": "에이전트 할당 해제", + "unassigned": "에이전트 할당이 해제되었습니다" + }, + "agentLink": "에이전트 {{id}}", + "attachments": { + "attachBtn": "스크린샷 첨부", + "attached": "스크린샷이 첨부되었습니다", + "deleteTitle": "첨부 파일 삭제", + "deleted": "첨부 파일이 삭제되었습니다", + "heading": "첨부 파일", + "none": "(첨부 파일 없음)", + "uploading": "업로드 중…" + }, + "blockedByLink": "{{id}}에 의해 차단됨", + "blocking": { + "heading": "차단 중", + "none": "(차단된 다운스트림 작업 없음)", + "stale": "(오래됨)", + "staleTitle": "오래된 blockedBy 엣지: clearStaleBlockedBy 자가 복구로 자동 제거됩니다" + }, + "branchBinding": { + "candidates": "후보:", + "copy": "이 검토 중인 작업은 현재 fusion 브랜치에 연결되지 않았습니다. 살아있는 fusion 브랜치가 있다면 여기서 재연결할 수 있습니다.", + "headline": "브랜치 재연결 필요", + "reattachBtn": "브랜치 재연결", + "reattached": "{{id}}의 브랜치가 재연결되었습니다 ({{branch}})", + "reattachedResult": "{{branch}} 재연결됨 ({{base}} 기준 {{count}}개 커밋 앞).", + "reattaching": "재연결 중…", + "skipped": "{{id}}의 브랜치 재연결을 건너뜀: {{reason}}", + "skippedResult": "재연결 건너뜀: {{reason}}" + }, + "cacheBreakdown": "(읽기 {{read}} / 쓰기 {{write}} / 입력 {{input}})", + "cacheHitRatio": "캐시 적중률:", + "cacheRead": "캐시 읽기", + "cacheWrite": "캐시 쓰기", + "checkoutLink": "{{id}} 체크아웃", + "delete": { + "actionClosed": "닫힘", + "actionDeleted": "삭제됨", + "actionLeft": "유지됨", + "allowRecreation": "나중에 재생성 허용 (운영자 잠금 해제)", + "allowRecreationDesc": "에이전트가 --force-resurrect 없이 이 작업 ID를 재생성할 수 있습니다. 이 작업을 삭제 표시로 유지하려면 선택 해제하세요.", + "archiveInstead": "보관으로 대체", + "archiveUnlinkPrompt": "이 참조를 먼저 연결 해제하고 보관하시겠습니까?", + "archivedAfterUnlink": "계보 참조 연결 해제 후 {{id}} 보관됨", + "ariaLabel": "작업 삭제", + "btn": "삭제", + "closeIssue": "이슈 닫기", + "confirm": "삭제", + "deleteIssue": "이슈 삭제", + "deleteLinkedIssueMessage": "GitHub에서 {{issueRef}}를 삭제하시겠습니까, 아니면 변경하지 않고 유지하시겠습니까?", + "deleteLinkedIssueTitle": "연결된 GitHub 이슈 삭제", + "deleteUnlinkDepsPrompt": "이 의존성 참조를 먼저 제거하고 삭제하시겠습니까?", + "deleteUnlinkLineagePrompt": "이 참조를 먼저 연결 해제하고 삭제하시겠습니까?", + "deletedAfterRemovingDeps": "의존성 참조 제거 후 {{id}} 삭제됨", + "deletedAfterUnlinkLineage": "계보 참조 연결 해제 후 {{id}} 삭제됨", + "deletedToast": "{{id}} 삭제됨{{suffix}}", + "forceDeleteTitle": "강제 작업 삭제", + "issueSuffix": "및 이슈 {{ref}} {{action}}", + "leaveUnchanged": "변경하지 않음", + "linkedIssueMessage": "{{id}} 삭제 시 {{issueRef}}에 대해 수행할 작업을 선택하세요.\n\n이슈를 닫으시겠습니까?", + "linkedIssueTitle": "연결된 GitHub 이슈", + "message": "{{id}}를 삭제하시겠습니까?", + "moreOptions": "추가 옵션", + "title": "작업 삭제" + }, + "deps": { + "addBtn": "의존성 추가", + "clearBlockerTitle": "겹침 차단기 {{id}} 제거", + "clearBtn": "제거", + "clickToView": "{{id}} 보기 클릭", + "heading": "의존성", + "loadFailed": "의존성 {{id}} 로드 실패", + "noAvailableTasks": "사용 가능한 작업 없음", + "none": "(의존성 없음)", + "overlapBlocker": "파일 범위 겹침 차단기:", + "removeTitle": "의존성 {{id}} 제거", + "searchPlaceholder": "작업 검색…", + "stale": "(오래됨)" + }, + "description": { + "showLess": "간략히 보기", + "showMore": "더 보기" + }, + "duplicate": { + "btn": "복제", + "message": "{{id}}를 복제하시겠습니까? 같은 설명과 프롬프트로 Triage에 새 작업이 생성됩니다.", + "success": "{{id}} 복제됨 → {{newId}}", + "title": "작업 복제" + }, + "edit": { + "autosaveHint": "편집 시 변경 사항이 자동 저장됩니다", + "autosaving": "자동 저장 중…", + "nodeOverrideLocked": "작업이 활성/진행 중일 때는 실행 노드 재정의가 잠겨 있습니다.", + "saveFailed": "저장 실패", + "saved": "저장됨", + "saving": "저장 중…", + "sourceExternalIdPlaceholder": "이슈 식별자", + "sourceIssueHint": "모든 필드를 비워 두면 소스 이슈 메타데이터가 삭제됩니다.", + "sourceIssueIdentifierNumeric": "새 메타데이터의 소스 이슈 식별자는 숫자여야 합니다", + "sourceIssueLabel": "소스 이슈", + "sourceIssueRequiredFields": "소스 이슈 제공자, 저장소, 이슈 식별자가 필요합니다", + "sourceProviderPlaceholder": "제공자 (예: github)", + "sourceRepositoryPlaceholder": "저장소 (예: owner/repo)", + "sourceUrlPlaceholder": "이슈 URL" + }, + "error": { + "taskFailed": "작업 실패" + }, + "executionAndTokenStats": "실행 및 토큰 통계", + "executionDetails": "실행 세부 정보", + "executionMode": { + "ariaLabel": "실행 모드: {{mode}}", + "fast": "빠름", + "standard": "표준", + "updated": "실행 모드가 {{mode}}로 업데이트되었습니다" + }, + "executionModeFast": "빠름", + "executionModeStandard": "표준", + "executionStatsAria": "작업 실행 통계", + "executionTiming": "실행 시간", + "executionTimingMetricsAria": "실행 타이밍 지표", + "firstUsed": "최초 사용", + "githubTracking": { + "addTitleBeforeCreating": "추적 이슈 생성 전 제목을 추가하세요", + "checking": "추적 상태 확인 중", + "collapse": "GitHub 추적 세부 정보 접기", + "createIssueBtn": "추적 이슈 생성", + "createIssueDisabledTitle": "추적 이슈를 생성하려면 제목 또는 설명을 추가하세요.", + "createIssueHelper": "이 작업에 요약할 제목 또는 설명이 생기면 추적 이슈가 생성됩니다.", + "disabled": "추적이 현재 비활성화되어 있습니다", + "enableAriaLabel": "GitHub 추적 활성화", + "enableBtn": "활성화", + "enableCheckboxLabel": "GitHub 추적 활성화", + "enabling": "GitHub 추적 활성화 중…", + "enablingAriaLabel": "GitHub 추적 활성화 중", + "expand": "GitHub 추적 세부 정보 펼치기", + "issue": "이슈", + "issueCreationRequested": "GitHub 추적 이슈 생성 요청됨", + "issueUnlinked": "GitHub 이슈 연결이 해제되었습니다", + "label": "GitHub 추적", + "loading": "GitHub 추적 상태 로드 중…", + "loadingAriaLabel": "GitHub 추적 상태 로드 중", + "notYetCreated": "이슈가 아직 생성되지 않았습니다", + "repoOverrideFormat": "저장소 재정의는 owner/repo 형식이어야 합니다", + "state": "상태", + "statusAriaLabel": "GitHub 추적 상태", + "statusDisabled": "비활성화됨", + "statusEnabled": "활성화됨", + "statusLinked": "연결됨", + "statusLoading": "로드 중", + "unlinkBtn": "GitHub 이슈 연결 해제", + "unlinkConfirm": "연결 해제", + "unlinkMessage": "연결된 GitHub 이슈와의 Fusion 동기화가 중단됩니다. 이슈 자체는 수정되지 않습니다.", + "unlinkTitle": "GitHub 이슈 연결을 해제하시겠습니까?" + }, + "hasSession": "세션 있음", + "header": { + "back": "뒤로", + "backToList": "작업 목록으로 돌아가기", + "editTask": "작업 편집" + }, + "inputTokens": "입력", + "lastUsed": "마지막 사용", + "loadingTokenStats": "토큰 통계 로드 중…", + "logs": { + "activity": "활동", + "activityHeading": "활동", + "agentLog": "에이전트 로그", + "noActivity": "(활동 없음)", + "truncated": "최근 {{count}}개의 활동 항목을 표시합니다." + }, + "longestTimingEvent": "가장 긴 타이밍 이벤트", + "longestWorkflowStep": "가장 긴 워크플로 단계", + "merge": { + "closed": "{{id}} 닫힘 ({{reason}})", + "merged": "{{id}} 병합됨 (브랜치: {{branch}})", + "merging": "{{id}} 병합 중…", + "message": "{{id}}를 현재 브랜치에 병합하시겠습니까?", + "noBranchToMerge": "병합할 브랜치 없음", + "title": "작업 병합" + }, + "move": { + "backToInProgress": "진행 중으로 돌아가기", + "cancelMove": "이동 취소", + "keepProgress": "진행 상태 유지", + "moveTo": "{{column}}으로 이동", + "movedTo": "{{column}}으로 이동됨", + "preserveProgressMessage": "이 작업에 완료된 단계가 있습니다. 이동 전 진행 상태를 유지하시겠습니까?", + "preserveProgressTitle": "진행 상태 유지?", + "resetProgress": "진행 상태 초기화", + "resetProgressMessage": "이 작업을 이동하기 전에 모든 단계 진행 상태를 초기화하시겠습니까?", + "resetProgressTitle": "진행 상태 초기화?" + }, + "nearDuplicate": { + "actions": "보관을 선택하면 이 작업이 보관 상태로 이동하고, 유지를 선택하면 이 작업을 계속합니다.", + "archiveBtn": "보관", + "archiveConfirm": "보관", + "archiveMessage": "{{id}}를 {{duplicateOf}}의 중복으로 보관하시겠습니까?", + "archiveTitle": "근사 중복 작업 보관", + "archived": "{{id}} 보관됨", + "copy": "이 작업은 다음의 근사 중복으로 보입니다", + "headline": "잠재적 중복 감지됨", + "keepBtn": "유지", + "kept": "{{id}} 유지 및 중복 경고 무시됨" + }, + "nextRecoveryAt": "다음 복구 시각: {{time}}", + "no": "아니요", + "noCommits": { + "disabled": "커밋 없음 기대 설정 비활성화됨", + "enabled": "커밋 없음 기대 설정 활성화됨", + "hint": "git 커밋 없이 작업을 완료할 수 있습니다. 결정이 기록 결과물인 평가, 검증 또는 감사 작업에 사용하세요.", + "label": "커밋 없음 예상 (결정 전용 작업)" + }, + "noRuntimeLinks": "런타임 링크 없음", + "noScheduledRecovery": "예약된 복구 없음", + "noSteps": "단계 없음", + "noTimedEvents": "아직 기록된 타이밍 이벤트가 없습니다.", + "noTokenUsage": "이 작업에 대해 아직 기록된 토큰 사용량이 없습니다.", + "noWorkflowStepTimings": "완료된 워크플로 단계 타이밍이 아직 없습니다.", + "notSet": "설정되지 않음", + "outputTokens": "출력", + "pause": { + "pauseBtn": "일시 정지", + "paused": "{{id}} 일시 정지됨", + "pausedByAgent": "에이전트에 의해 일시 정지됨", + "unpauseBtn": "재개", + "unpaused": "{{id}} 재개됨", + "worktrunkFailed": "Worktrunk 작업 실패" + }, + "paused": "일시 정지됨", + "plan": { + "approveBtn": "계획 승인", + "approved": "계획 승인됨 — {{id}}이(가) Todo로 이동됨", + "rebuildMessage": "이 작업의 계획을 다시 빌드하시겠습니까? 작업이 재계획을 위해 계획 단계로 이동합니다.", + "rebuildTitle": "계획 재빌드", + "rejectBtn": "계획 거부", + "rejectMessage": "이 계획을 거부하시겠습니까? 명세가 삭제되고 재생성됩니다.", + "rejectTitle": "계획 거부", + "rejected": "계획 거부됨 — {{id}}이(가) 재계획을 위해 Planning으로 반환됨", + "replanning": "{{id}} 재계획 중…" + }, + "pr": { + "awaitingChecks": "PR 검사 대기 중", + "checkPrStatus": "PR 상태 확인", + "creatingPr": "PR 생성 중…", + "finishAndClose": "완료 및 닫기", + "mergeAndClose": "병합 및 닫기", + "mergingFixes": "수정 사항 병합 중…", + "mergingPr": "PR 병합 중…", + "startPrReview": "PR 검토 시작", + "statusRefreshed": "PR 상태가 새로 고침되었습니다" + }, + "priority": { + "ariaLabel": "작업 우선순위", + "label": "우선순위:", + "updated": "우선순위가 {{priority}}로 업데이트되었습니다" + }, + "progress": { + "heading": "진행 상태", + "noSteps": "(정의된 단계 없음)", + "stepCount": "{{total}}단계 중 {{count}}단계" + }, + "provenance": { + "agent": "에이전트", + "api": "API", + "automation": "자동화", + "chatSession": "채팅 세션", + "cli": "CLI", + "createdBy": "작성자", + "createdVia": "생성 경로", + "dashboard": "대시보드", + "duplicate": "복제", + "githubImport": "GitHub 가져오기", + "openIssue": "이슈 열기", + "quickChat": "빠른 채팅", + "recovery": "복구", + "refinement": "개선", + "research": "조사", + "scheduledTask": "예약 작업", + "workflowStep": "워크플로 단계" + }, + "recoveryState": "복구 상태", + "refine": { + "btn": "개선", + "charCount": "{{count}}/2000자", + "createBtn": "개선 작업 생성", + "creating": "생성 중...", + "feedbackRequired": "개선이 필요한 내용을 설명하는 피드백을 입력하세요", + "feedbackTooLong": "피드백은 2000자 이하여야 합니다", + "help": "개선하거나 향상시킬 내용을 설명하세요...", + "modalTitle": "개선", + "placeholder": "피드백을 입력하세요...", + "taskCreated": "개선 작업 생성됨: {{id}}" + }, + "reset": { + "btn": "초기화", + "confirmMessage": "{{id}}의 모든 진행 상태가 삭제되고 작업이 처음부터 다시 시작됩니다. 계속하시겠습니까?", + "resetSuccess": "{{id}} 초기화됨 — 새 실행이 할당됩니다" + }, + "respecify": { + "btn": "재명세" + }, + "retries": { + "branchConflict": "브랜치 충돌 복구", + "branchConflictTitle": "FN-4068 브랜치 충돌 복구 재시도", + "capReached": "이 작업의 재시도 한도에 도달했습니다.", + "collapse": "재시도 세부 정보 접기", + "expand": "재시도 세부 정보 펼치기", + "label": "재시도", + "mergeConflict": "병합 충돌 반송", + "mergeConflictTitle": "병합 충돌 반송 재시도", + "postReviewFix": "검토 후 수정", + "postReviewFixTitle": "검토 후 개선 재시도", + "recovery": "복구 재시도", + "recoveryTitle": "일시적 실행기 복구 재시도", + "reviewerContext": "검토자 컨텍스트 재시도", + "reviewerContextTitle": "FN-4082 컴팩트 검토자 재시도", + "reviewerFallback": "검토자 폴백 재시도", + "reviewerFallbackTitle": "FN-4092 폴백 모델 재시도", + "stuckKill": "멈춤 강제 종료", + "stuckKillTitle": "멈춘 작업 감지기의 에이전트 강제 종료 재시도", + "taskDone": "task_done 재시도", + "taskDoneTitle": "에이전트가 task_done 없이 종료되어 작업이 재시도됨", + "verification": "검증 반송", + "verificationTitle": "검증 실패 반송 재시도", + "workflowStep": "워크플로 재시도", + "workflowStepTitle": "워크플로 단계 실패 재시도" + }, + "retriesLabel": "재시도 (복구 / 워크플로 / 병합 / task_done)", + "retry": { + "btn": "재시도", + "retried": "{{id}} 재시도됨" + }, + "runtimeLinks": "런타임 링크", + "runtimeStatus": "런타임 상태", + "selfHealCounters": "자가 복구 카운터", + "selfHealValues": "멈춤 강제 종료: {{stuckKills}}, 검토 후 수정: {{postReviewFixes}}", + "sourceIssue": { + "collapse": "소스 이슈 세부 정보 접기", + "expand": "소스 이슈 세부 정보 펼치기", + "githubAriaLabel": "GitHub 소스 이슈", + "githubBadge": "GitHub", + "identifier": "이슈 식별자", + "label": "소스 이슈", + "none": "(없음)", + "provider": "제공자", + "repository": "저장소", + "url": "URL" + }, + "spec": { + "aiReviseHeading": "AI에 수정 요청", + "aiReviseHelp": "AI가 이 명세를 개선할 수 있도록 피드백을 제공하세요. 작업이 재계획을 위해 계획 단계로 이동합니다.", + "editBtn": "편집", + "feedbackPlaceholder": "예: '오류 처리에 대한 세부 정보 추가', '더 작은 단계로 분할', 'API 엔드포인트 테스트 포함'...", + "hintCancel": "취소", + "hintSave": "저장", + "loading": "명세 로드 중…", + "noPrompt": "(프롬프트 없음)", + "placeholder": "Markdown으로 작업 명세를 입력하세요...", + "requestRevisionBtn": "AI 수정 요청", + "requesting": "요청 중…", + "revisionColumnError": "수정 요청 불가: 작업이 'triage', 'todo', 'in-progress' 또는 'in-review' 컬럼에 있어야 합니다.", + "revisionRequested": "AI 수정 요청됨. 작업이 계획 단계로 이동되었습니다.", + "saving": "저장 중…", + "updated": "명세 업데이트됨" + }, + "stall": { + "noLogEntry": "아직 로그 항목 없음", + "noLogEntryTitle": "이 작업에 '검토 중 지연 감지됨' 항목이 아직 없습니다 — 자가 복구가 속도 제한 창 내에 기록하지 않았을 수 있습니다.", + "observed": "관측됨", + "threshold": "임계값", + "viewActivityLog": "활동 로그 보기" + }, + "stepProgress": "단계 진행 상태", + "summary": { + "heading": "요약" + }, + "tabs": { + "changes": "변경 사항", + "comments": "댓글", + "definition": "정의", + "documents": "문서", + "logs": "로그", + "model": "모델", + "pullRequest": "풀 리퀘스트", + "review": "검토", + "routing": "라우팅", + "stats": "통계", + "workflow": "워크플로" + }, + "timedDuration": "타이밍 기간", + "timestamps": { + "ariaLabel": "작업 타임스탬프", + "created": "생성됨", + "updated": "업데이트됨" + }, + "timingEvents": "타이밍 이벤트", + "tokenTotalsAria": "작업 토큰 합계", + "tokenUsage": "토큰 사용량", + "totalExecutionTime": "총 실행 시간", + "totalTokens": "합계", + "updateFailed": "{{id}} 업데이트 실패: {{error}}", + "updateSuccess": "{{id}} 업데이트됨", + "wallClockSinceFirst": "첫 번째 실행 이후 경과 시간", + "workflow": { + "loadFailed": "워크플로 결과 로드 실패: {{error}}", + "stepsUpdateFailed": "워크플로 단계 업데이트 실패: {{error}}", + "stepsUpdated": "워크플로 단계 업데이트됨" + }, + "workflowRuntime": "워크플로 런타임", + "workflowTimedSteps": "워크플로 시간 측정 단계", + "yes": "예" + }, + "taskDocuments": { + "cancel": "취소", + "collapse": "접기", + "contentLabel": "내용", + "contentPlaceholder": "문서 내용을 입력하세요…", + "contentRequired": "내용을 입력해 주세요", + "create": "만들기", + "created": "문서가 생성되었습니다", + "creating": "생성 중…", + "deleteConfirm": "삭제하시겠습니까?", + "deleted": "문서가 삭제되었습니다", + "edit": "편집", + "expand": "펼치기", + "failedToCreate": "문서 생성에 실패했습니다", + "failedToDelete": "문서 삭제에 실패했습니다", + "failedToLoad": "문서 불러오기에 실패했습니다", + "failedToLoadRevisions": "개정 이력 불러오기에 실패했습니다", + "failedToSave": "문서 저장에 실패했습니다", + "heading": "문서", + "history": "이력", + "invalidKeyFormat": "키 형식이 올바르지 않습니다. 1~64자의 영숫자, 하이픈 또는 밑줄을 사용하세요.", + "keyHint": "영숫자, 하이픈, 밑줄 (1~64자)", + "keyLabel": "키", + "keyPlaceholder": "예: plan, notes, research", + "keyRequired": "문서 키를 입력해 주세요", + "loading": "문서 불러오는 중…", + "loadingRevisions": "불러오는 중…", + "modeMarkdown": "Markdown", + "modePlain": "일반 텍스트", + "newDocumentButton": "새 문서", + "newDocumentTitle": "새 문서", + "no": "아니요", + "noDocuments": "문서가 없습니다.", + "noPreviousRevisions": "이전 개정 이력이 없습니다.", + "revisionHistory": "개정 이력", + "save": "저장", + "saved": "문서가 저장되었습니다", + "saving": "저장 중…", + "switchToMarkdown": "Markdown으로 전환", + "switchToPlainText": "일반 텍스트로 전환", + "yes": "예" + }, + "taskForm": { + "addDependencies": "의존성 추가", + "attachHint": "이미지를 붙여넣거나 끌어다 놓을 수도 있습니다", + "attachScreenshot": "스크린샷 첨부", + "attachmentsLabel": "첨부 파일", + "autoMergeDefault": "기본값 (프로젝트 설정 따르기)", + "autoMergeDisabled": "비활성화됨", + "autoMergeEnabled": "활성화됨", + "autoMergeHint": "기본값은 프로젝트 자동 병합 설정을 따릅니다.", + "autoMergeLabel": "자동 병합", + "autoSaveSaved": "저장됨", + "autoSaveSaving": "저장 중...", + "baseBranchCustom": "직접 입력…", + "baseBranchDefault": "(기본값 / 프로젝트 브랜치)", + "baseBranchLabel": "병합 대상 / 베이스 브랜치", + "baseBranchPlaceholder": "예: main", + "branchModeAutoNew": "작업별 자동 브랜치 생성", + "branchModeCustomNew": "새 브랜치 직접 생성", + "branchModeExisting": "기존 브랜치 사용", + "branchModeProjectDefault": "프로젝트/기본 브랜치 사용", + "branchModeSharedGroup": "공유 피처 브랜치에 병합", + "branchNameLabel": "브랜치 이름", + "branchPlaceholder": "예: feature/my-task", + "branchSettingsLabel": "브랜치 설정", + "branchStrategyLabel": "브랜치 전략", + "collapseDescription": "설명 접기", + "dependenciesLabel": "의존성", + "dependenciesSelected": "{{count}}개 선택됨", + "descriptionLabel": "설명", + "descriptionPlaceholder": "무엇을 해야 하나요?", + "descriptionRefinedToast": "AI로 설명이 다듬어졌습니다", + "editingDescription": "설명 편집 중", + "enterDescriptionFirst": "먼저 설명을 입력해 주세요", + "executionModeFast": "빠름", + "executionModeLabel": "실행 모드", + "executionModeStandard": "표준", + "executionOrderLabel": "실행 순서:", + "executorLabel": "실행기", + "executorModelLabel": "실행기 모델", + "expandDescription": "설명 펼치기", + "githubRepoFormatError": "저장소는 owner/repo 형식이어야 합니다.", + "githubRepoLabel": "저장소 (owner/repo)", + "githubTrackingEnable": "이 작업에 GitHub 이슈 추적 사용", + "githubTrackingLabel": "GitHub 추적", + "loadingModels": "모델 불러오는 중…", + "modelConfigLabel": "모델 설정", + "moreOptions": "추가 옵션", + "moveDown": "아래로 이동", + "moveUp": "위로 이동", + "noAvailableTasks": "사용 가능한 작업이 없습니다", + "noModelsAvailable": "사용 가능한 모델이 없습니다. 설정에서 인증을 구성해 주세요.", + "nodeDefaultOption": "프로젝트 기본값 / 로컬 사용", + "nodeOverrideHint": "작업 재정의는 프로젝트 기본 노드 라우팅보다 우선합니다.", + "nodeOverrideLabel": "실행 노드 재정의", + "nodeStatusConnecting": "연결 중", + "nodeStatusError": "오류", + "nodeStatusOffline": "오프라인", + "nodeStatusOnline": "온라인", + "overridePreset": "재정의", + "phasePostMerge": "병합 후", + "phasePreMerge": "병합 전", + "planButton": "계획", + "planningLabel": "계획 수립", + "planningModelLabel": "계획 모델", + "presetCustom": "사용자 정의", + "presetLabel": "프리셋", + "presetUseDefault": "기본값 사용", + "priorityLabel": "우선순위", + "priority_high": "높음", + "priority_low": "낮음", + "priority_normal": "보통", + "priority_urgent": "긴급", + "refineAddDetailsDesc": "구현 세부 사항과 맥락 추가", + "refineAddDetailsTitle": "세부 사항 추가", + "refineButton": "다듬기", + "refineClarifyDesc": "설명을 더 명확하고 구체적으로 수정", + "refineClarifyTitle": "명확히 하기", + "refineExpandDesc": "더 포괄적인 설명으로 확장", + "refineExpandTitle": "확장", + "refineInProgress": "다듬는 중...", + "refineSimplifyDesc": "더 간결하게 단순화", + "refineSimplifyTitle": "단순화", + "refineTitle": "AI로 설명 다듬기", + "removeImage": "이미지 제거", + "removeStep": "제거", + "reviewDefault": "기본값 (자동 — 트리아지가 결정)", + "reviewLabel": "검토", + "reviewLevel0": "0 — 없음", + "reviewLevel1": "1 — 계획만", + "reviewLevel2": "2 — 계획 및 코드", + "reviewLevel3": "3 — 전체", + "reviewerLabel": "검토자", + "reviewerModelLabel": "검토자 모델", + "searchTasksPlaceholder": "작업 검색…", + "sharedBranchPlaceholder": "예: clionboarding", + "sharedFeatureBranchLabel": "공유 피처 브랜치", + "subtaskButton": "하위 작업", + "thinkingDefault": "기본값 ({{level}})", + "thinkingHigh": "높음", + "thinkingLabel": "사고", + "thinkingLow": "낮음", + "thinkingMedium": "중간", + "thinkingMinimal": "최소", + "thinkingOff": "끔", + "titleLabel": "제목", + "titlePlaceholder": "작업 제목", + "useDropdown": "드롭다운 사용", + "usingPreset": "프리셋 사용 중: {{name}}", + "workflowStepsDescription": "작업 구현 완료 후 실행할 단계 선택", + "workflowStepsLabel": "워크플로우 단계", + "workingBranchLabel": "작업 브랜치" + }, + "taskHandlers": { + "githubImported": "GitHub에서 {{id}}를 가져왔습니다" + }, + "taskReview": { + "autoMergeOff": "자동 병합 끔", + "autoMergeOn": "자동 병합 켬", + "autoMergePreferenceUpdated": "작업별 자동 병합 기본 설정이 업데이트되었습니다", + "completed": "완료됨", + "completedAtSep": " · 완료: {{timestamp}}", + "createPr": "PR 생성", + "effective": "적용: {{label}}", + "effectiveFrozen": "적용: {{label}} — 검토 진입 시 고정됨", + "error": "오류", + "errorSep": " · 오류: {{message}}", + "followDefault": "기본값 따르기", + "lastRefreshed": "마지막 갱신", + "loadError": "검토 데이터를 불러오지 못했습니다.", + "loadingData": "검토 데이터 불러오는 중…", + "markdown": "Markdown", + "never": "없음", + "noCapturedFeedback": "아직 캡처된 검토 피드백이 없습니다.", + "noFeedbackDirect": "아직 검토자 피드백이 없습니다 — 이 작업은 직접 모드에서 검토자 에이전트 피드백을 생성하지 않았습니다.", + "noReviewItems": "아직 검토 항목이 없습니다.", + "perTaskAutoMerge": "작업별 자동 병합", + "plain": "일반 텍스트", + "prSummaryLine": "{{decision}} · {{count}}개의 검토 항목", + "queueing": "대기열에 추가 중…", + "refresh": "새로 고침", + "refreshDataFailed": "검토 데이터 새로 고침에 실패했습니다.", + "refreshFailed": "새로 고침 실패", + "refreshSourceBackground": "백그라운드", + "refreshSourceInitialLoad": "초기 로드", + "refreshSourceManual": "수동", + "refreshStatusLine": "{{status}} · 마지막 갱신: {{timestamp}} · {{source}}", + "refreshed": "검토가 새로 고침되었습니다", + "refreshing": "새로 고침 중…", + "requestRevision": "재검토 요청", + "reviewerSummaryLine": "{{reviewer}} · {{count}}개의 검토 항목", + "revisionQueueFailed": "개정 대기열 추가에 실패했습니다", + "revisionStarted": "선택한 검토 피드백을 기반으로 동일 작업 AI 개정이 시작되었습니다", + "selected": "선택됨", + "selectedAt": "선택됨: {{timestamp}}", + "showMarkdown": "서식 있는 Markdown 표시", + "showRawText": "원시 텍스트 표시", + "started": "시작됨", + "startedAtSep": " · 시작: {{timestamp}}", + "upToDate": "최신 상태", + "updateFailed": "{{taskId}} 업데이트에 실패했습니다: {{error}}" + }, + "tasks": { + "addTaskPlaceholder": "작업 추가...", + "agent": "에이전트", + "agentLabel": "에이전트", + "archive": "보관", + "archiveFailed": "{{taskId}} 보관에 실패했습니다: {{error}}", + "archiveLineageConflict": "{{taskId}}에는 소스 부모로 참조하는 계보 자식({{children}})이 있습니다.\n\n이 참조를 먼저 해제하고 보관하시겠습니까?", + "archiveTask": "작업 보관", + "archived": "{{taskId}}을(를) 보관했습니다", + "archivedUnlinked": "계보 참조 해제 후 {{taskId}}을(를) 보관했습니다", + "assignedTo": "{{name}}에게 할당됨", + "attach": "첨부", + "attachCount": "첨부 ({{count}})", + "attachFileFailed": "{{fileName}} 첨부에 실패했습니다: {{error}}", + "attachedFile": "{{taskId}}에 {{fileName}}을(를) 첨부했습니다", + "awaitingApproval": "승인 대기 중", + "baseBranch": "베이스", + "blockedByTooltip": "{{taskId}}에 의해 차단됨 (파일 충돌)", + "branch": "브랜치", + "branchMetadata": "브랜치 메타데이터", + "cancelMove": "이동 취소", + "clearSelection": "선택 해제", + "closeIssue": "이슈 닫기", + "collapse": "접기", + "createFailed": "작업 생성에 실패했습니다", + "createPr": "PR 생성", + "createPrAriaLabel": "풀 리퀘스트 생성", + "createPrTitle": "이 작업에 대한 PR 생성", + "createTaskTitle": "작업 생성", + "createdByAgent": "에이전트가 생성함", + "createdByAgentNamed": "에이전트가 생성함: {{name}}", + "createdPr": "PR #{{number}} 생성됨", + "creating": "생성 중...", + "decisionOnly": "의사결정만", + "decisionOnlyTitle": "의사결정 전용 작업", + "deleteConfirm": "{{taskId}}을(를) 삭제하시겠습니까?", + "deleteFailed": "{{taskId}} 삭제에 실패했습니다: {{error}}", + "deleteIssue": "이슈 삭제", + "deleteLinkedIssueMessage": "GitHub의 {{issueLabel}}을(를) 삭제하거나 그대로 두시겠습니까?", + "deleteLinkedIssueTitle": "연결된 GitHub 이슈 삭제", + "deleteTask": "작업 삭제", + "deleteTitle": "작업 삭제", + "deleted": "{{taskId}}{{suffix}}을(를) 삭제했습니다", + "deletedRemovedDeps": "의존성 참조 제거 후 {{taskId}}을(를) 삭제했습니다", + "deletedUnlinked": "계보 참조 해제 후 {{taskId}}을(를) 삭제했습니다", + "dependencyConflict": "{{taskId}}은(는) {{dependentList}}의 의존성입니다.\n\n이 의존성 참조를 먼저 제거하고 삭제하시겠습니까?", + "deps": "의존성", + "depsCount": "의존성 {{count}}개", + "descriptionPlaceholder": "작업 설명", + "descriptionRefined": "AI로 설명이 다듬어졌습니다", + "doneNoMerge": "완료 (병합 없음)", + "duplicateCheckFailed": "중복 확인에 실패했습니다. 작업을 그대로 생성합니다.", + "duplicateDismissed": "{{taskId}}을(를) 유지했습니다. 중복 경고가 해제되었습니다", + "duplicateOf": "{{id}}의 중복", + "editTask": "작업 편집", + "enterDescriptionFirst": "먼저 설명을 입력해 주세요", + "executionTime": "실행 시간 {{elapsed}}", + "executionTimeCompleted": "실행 시간 {{elapsed}}. {{completedAt}}에 완료됨", + "executionTimeMergePhase": "실행 시간 {{elapsed}}. 병합 단계 {{merge}}", + "executionTimeMerging": "실행 시간 {{elapsed}}. 병합 중", + "executorModel": "실행기 모델", + "expand": "펼치기", + "fanoutBlocks": "차단", + "fanoutBottleneck": "중복 병목", + "fanoutEscalated": "에스컬레이션된 중복", + "fanoutEscalationSuffix": " · 차단 열에서 {{minutes}}분 후 에스컬레이션됨", + "fanoutHighFanoutSuffix": " (중복 병목 임계값: {{threshold}})", + "fanoutStale": "{{count}}개 오래됨", + "fanoutTooltip": "{{count}}개의 활성 작업 차단 중; 중복 차단 대기열: {{queueCount}}개 할 일{{highFanout}}{{escalation}}", + "fast": "빠름", + "fastMode": "빠른 모드", + "filesChanged": "{{count}}개 파일 변경됨", + "forceDeleteTitle": "작업 강제 삭제", + "githubTrackingDefaultOff": "끔", + "githubTrackingDefaultOn": "켬", + "githubTrackingDisabled": "이 프로젝트에서 GitHub 추적이 비활성화되어 있습니다 — 작업별 추적을 사용하려면 설정에서 활성화하세요", + "githubTrackingOff": "다음 작업에 GitHub 추적 끔", + "githubTrackingOn": "다음 작업에 GitHub 추적 켬 (프로젝트 기본값: {{default}})", + "groupBranch": "그룹", + "hideSteps": "단계 숨기기", + "importedFromGitHub": "GitHub에서 가져옴", + "importedFromGitHubUrl": "GitHub에서 가져옴: {{url}}", + "inProgressTime": "진행 중 {{elapsed}}", + "issueClosed": "닫힘", + "issueDeleted": "삭제됨", + "issueLeft": "그대로 둠", + "keep": "유지", + "keepFailed": "{{taskId}} 유지에 실패했습니다: {{error}}", + "keepProgress": "진행 상황 유지", + "keepTaskTitle": "이 작업을 유지하고 중복 경고 해제", + "leaveUnchanged": "그대로 두기", + "lineageConflict": "{{taskId}}에는 소스 부모로 참조하는 계보 자식({{children}})이 있습니다.\n\n이 참조를 먼저 해제하고 삭제하시겠습니까?", + "linkedIssueChipAriaLabel": "연결된 GitHub 이슈 #{{number}}", + "linkedIssueChipTitle": "연결된 GitHub 이슈: {{owner}}/{{repo}}#{{number}}", + "linkedIssueMessage": "{{taskId}}을(를) 삭제할 때 {{issueLabel}}을(를) 어떻게 처리하시겠습니까?\n\n이슈를 닫으시겠습니까?", + "linkedIssueTitle": "연결된 GitHub 이슈", + "loadAgentsFailed": "에이전트 불러오기에 실패했습니다: {{msg}}", + "loadAgentsFailedGeneric": "에이전트 불러오기에 실패했습니다", + "loadDependencyFailed": "의존성 {{depId}} 불러오기에 실패했습니다", + "loadModelsFailed": "모델 불러오기에 실패했습니다", + "loadingAgents": "에이전트 불러오는 중...", + "missionBadgeTitle": "미션: {{name}}", + "modelExecutor": "실행기", + "modelPlan": "계획", + "modelReviewer": "검토자", + "models": "모델", + "modelsCount": "모델 {{count}}개", + "moreOptions": "추가 옵션", + "move": "이동", + "moveFailed": "{{taskId}} 이동에 실패했습니다: {{error}}", + "moveTask": "작업 이동", + "moved": "{{taskId}}을(를) {{column}}으로 이동했습니다", + "nearDuplicateTitle": "{{id}}의 잠재적 유사 중복", + "noAgentsAvailable": "사용 가능한 에이전트가 없습니다", + "noExistingTasks": "기존 작업이 없습니다", + "node": "노드", + "openRetryBreakdown": "재시도 내역 열기", + "paused": "일시 중지됨", + "pausedByAgent": "에이전트에 의해 일시 중지됨", + "plan": "계획", + "planButtonTitle": "현재 설명으로 계획 모드 열기", + "planModel": "계획 모델", + "prBadgeTitle": "PR #{{number}}: {{title}}", + "preserveProgressMessage": "이 작업에는 완료된 단계가 있습니다. 이동하기 전에 진행 상황을 유지하시겠습니까?", + "preserveProgressTitle": "진행 상황을 유지하시겠습니까?", + "projectDefaultLocal": "프로젝트 기본값 / 로컬", + "queued": "대기 중", + "quickEntryHint": "Enter로 생성 · Esc로 취소", + "refine": "다듬기", + "refineAddDetails": "세부 사항 추가", + "refineAddDetailsDesc": "구현 세부 사항과 맥락 추가", + "refineButtonTitle": "AI로 설명 다듬기", + "refineClarify": "명확히 하기", + "refineClarifyDesc": "설명을 더 명확하고 구체적으로 수정", + "refineExpand": "확장", + "refineExpandDesc": "더 포괄적인 설명으로 확장", + "refineSimplify": "단순화", + "refineSimplifyDesc": "더 간결하게 단순화", + "refining": "다듬는 중...", + "removeImage": "이미지 제거", + "resetProgress": "진행 상황 초기화", + "resetProgressMessage": "이 작업을 이동하기 전에 모든 단계 진행 상황을 초기화하시겠습니까?", + "resetProgressTitle": "진행 상황을 초기화하시겠습니까?", + "retriesAriaLabel": "재시도 {{count}}회", + "retry": "재시도", + "retryFailed": "{{taskId}} 재시도에 실패했습니다: {{error}}", + "retrying": "재시도 중…", + "reviewerModel": "검토자 모델", + "save": "저장", + "saving": "저장 중...", + "searchTasksPlaceholder": "작업 검색…", + "selectAgent": "에이전트 선택", + "selectExecutionNode": "실행 노드 선택", + "selectPriority": "우선순위 선택", + "sendBack": "되돌리기", + "sharedBranch": "공유", + "showSteps": "단계 표시", + "stalled": "중단됨", + "statusMergingFix": "수정 사항 병합 중…", + "stepCount": "{{count}}개 단계", + "stuck": "막힘", + "subtask": "하위 작업", + "subtaskButtonTitle": "AI 생성 하위 작업으로 분해", + "toggleFastMode": "빠른 실행 모드 전환", + "unarchive": "보관 해제", + "unarchiveFailed": "{{taskId}} 보관 해제에 실패했습니다: {{error}}", + "unarchiveTask": "작업 보관 해제", + "unarchived": "{{taskId}}의 보관을 해제했습니다", + "updateFailed": "{{taskId}} 업데이트에 실패했습니다: {{error}}", + "updated": "{{taskId}}이(가) 업데이트되었습니다", + "uploadFailed": "업로드에 실패했습니다: {{files}}", + "usingDefault": "기본값 사용 중", + "viewDependency": "클릭하여 {{depId}} 보기", + "workflow": "워크플로우", + "workflowCheck": "워크플로우 확인" + }, + "terminal": { + "clear": "지우기", + "clearTerminal": "터미널 지우기", + "closeTab": "탭 닫기", + "closeTerminal": "터미널 닫기", + "decreaseFontSize": "터미널 글꼴 크기 줄이기", + "exitLabel": "종료: {{code}}", + "failedToStartTerminal": "터미널 시작에 실패했습니다: {{error}}", + "helpText": "Ctrl++/- 확대/축소 • ⌨ 단축키 패널 • Esc 닫기", + "increaseFontSize": "터미널 글꼴 크기 늘리기", + "initializeError": "터미널 UI 초기화에 실패했습니다: {{error}}", + "newSession": "새 세션", + "newTerminal": "새 터미널", + "reconnect": "재연결", + "refreshPage": "페이지 새로 고침", + "reinitialize": "다시 초기화", + "shortcuts": "단축키", + "startingTerminal": "터미널 시작 중...", + "statusConnected": "연결됨", + "statusConnecting": "연결 중...", + "statusDisconnected": "연결 끊김", + "statusReconnecting": "재연결 중..." + }, + "theme": { + "colorTheme": { + "default": "기본값" + }, + "colorThemeLabel": "색상 테마", + "currentTheme": "현재 테마", + "dark": "어두움", + "darkMode": "다크 모드", + "fontSize": { + "Default": "기본값", + "Large": "크게", + "Largest": "가장 크게", + "Small": "작게" + }, + "fontSizeLabel": "대시보드 글꼴 크기", + "light": "밝음", + "lightMode": "라이트 모드", + "modeLabel": "테마 모드", + "resetButton": "기본값으로 재설정", + "resetLabel": "기본 테마로 초기화", + "system": "시스템", + "systemMode": "시스템 모드" + }, + "time": { + "daysAgo": "{{n}}일 전", + "hoursAgo": "{{n}}시간 전", + "inAMoment": "잠시 후", + "inDays": "{{n}}일 후", + "inHours": "{{n}}시간 후", + "inMinutes": "{{n}}분 후", + "justNow": "방금", + "minutesAgo": "{{n}}분 전" + }, + "todo": { + "addItemPlaceholder": "할 일 항목 추가", + "addList": "목록 추가", + "assignAgent": "{{text}}을(를) 에이전트에 할당", + "cancelItemEdit": "항목 편집 취소", + "cancelList": "목록 취소", + "cancelListRename": "목록 이름 바꾸기 취소", + "createList": "목록 만들기", + "createTaskFrom": "{{text}}에서 작업 만들기", + "deleteItem": "{{text}} 삭제", + "deleteList": "{{title}} 삭제", + "deleteListConfirm": "이 목록과 모든 항목을 삭제하시겠습니까?", + "deleteListTitle": "목록 삭제", + "editItem": "{{text}} 편집", + "failedCreateItem": "항목 생성 실패", + "failedCreateItemToast": "할 일 항목 생성에 실패했습니다", + "failedCreateList": "목록 생성 실패", + "failedCreateListToast": "할 일 목록 생성에 실패했습니다", + "failedDeleteItem": "항목 삭제 실패", + "failedDeleteItemToast": "할 일 항목 삭제에 실패했습니다", + "failedDeleteList": "목록 삭제 실패", + "failedDeleteListToast": "할 일 목록 삭제에 실패했습니다", + "failedRenameList": "목록 이름 바꾸기 실패", + "failedRenameListToast": "할 일 목록 이름 바꾸기에 실패했습니다", + "failedReorderItems": "항목 순서 변경 실패", + "failedReorderItemsToast": "할 일 항목 순서 변경에 실패했습니다", + "failedToCreateAndAssign": "작업 생성 및 할당 실패: {{error}}", + "failedToCreateTask": "작업 생성 실패: {{error}}", + "failedToLoadAgents": "에이전트 불러오기 실패: {{error}}", + "failedUpdateItem": "항목 업데이트 실패", + "failedUpdateItemToast": "할 일 항목 업데이트에 실패했습니다", + "itemsLabel": "할 일 항목", + "lists": "목록", + "listsLabel": "할 일 목록 사이드바", + "loading": "할 일 불러오는 중...", + "loadingAgents": "에이전트 불러오는 중...", + "manageDescription": "프로젝트에서 재사용 가능한 할 일 목록을 관리합니다.", + "moveItemDown": "{{text}} 아래로 이동", + "moveItemUp": "{{text}} 위로 이동", + "newListTitle": "새 목록 제목", + "noAgentsAvailable": "사용 가능한 에이전트 없음", + "noItemsEmpty": "이 목록에 항목이 없습니다. 위에서 추가하세요.", + "noListsEmpty": "할 일 목록이 없습니다. 목록을 만들어 시작하세요.", + "renameList": "{{title}} 이름 바꾸기", + "saveItemEdit": "항목 편집 저장", + "saveList": "목록 저장", + "saveListRename": "목록 이름 바꾸기 저장", + "selectList": "{{title}} 목록 선택", + "selectListEmpty": "사이드바에서 목록을 선택하세요", + "startPlanning": "{{text}}에서 계획 시작", + "taskCreatedAndAssigned": "{{id}} 생성 후 {{agent}}에 할당됨", + "taskCreatedFromTodo": "할 일에서 {{id}} 생성됨", + "todoListsLabel": "할 일 목록", + "todos": "할 일" + }, + "trackingRepoSelect": { + "customOption": "직접 입력…", + "loadingHint": "감지된 GitHub 원격 저장소 불러오는 중…" + }, + "updateBanner": { + "dismissLabel": "업데이트 알림 닫기", + "learnMore": "자세히 보기", + "message": "업데이트 가능: v{{latestVersion}} (현재: v{{currentVersion}}). 설치된 CLI는 fn update를 실행하거나, 소스 체크아웃을 pull하세요.", + "releaseNotes": "릴리스 노트" + }, + "usage": { + "configureAuthHint": "사용량 데이터를 보려면 설정에서 인증을 구성하세요.", + "failedToLoad": "사용량 데이터 불러오기 실패", + "hideWindow": "{{label}} 숨기기", + "lastUpdated": "마지막 업데이트: {{time}}", + "moveProviderDown": "{{provider}} 아래로 이동", + "moveProviderUp": "{{provider}} 위로 이동", + "noDataAvailable": "사용량 데이터 없음", + "noProvidersConfigured": "AI 공급자가 구성되지 않았습니다", + "percentLeft": "{{percent}}% 남음", + "percentRemaining": "{{percent}}% 남음", + "percentUsed": "{{percent}}% 사용됨", + "reorderProvider": "{{provider}} 순서 변경", + "resetsInDays": "{{days}}일 후 초기화", + "resetsInDaysHours": "{{days}}일 {{hours}}시간 후 초기화", + "resetsInHours": "{{hours}}시간 후 초기화", + "resetsInMinutes": "{{mins}}분 후 초기화", + "showHidden": "숨김 항목 표시 ({{count}})", + "statusError": "오류", + "statusNotConfigured": "구성되지 않음", + "title": "사용량", + "viewModeLabel": "사용량 보기 모드", + "viewModeRemaining": "남은 양", + "viewModeUsed": "사용량" + }, + "workflow": { + "add": "추가", + "addTemplate": "템플릿 추가", + "addWorkflowStep": "워크플로 단계 추가", + "adding": "추가 중...", + "advisoryExplanation": "권고 워크플로 단계에서 비차단 개선 사항이 감지되었습니다:", + "agentPromptLabel": "에이전트 프롬프트", + "agentPromptPlaceholder": "비워두면 AI 개선을 사용합니다", + "badgeAdvisory": "권고", + "badgeAiPrompt": "AI 프롬프트", + "badgeDefaultOn": "기본 켜짐", + "badgeDisabled": "비활성화됨", + "badgeEnabled": "활성화됨", + "badgeGate": "게이트", + "badgePostMerge": "병합 후", + "badgePreMerge": "병합 전", + "badgeScript": "스크립트", + "cancelDeleteAriaLabel": "삭제 취소", + "cancelDeleteTitle": "삭제 취소", + "clearModelOverrideTitle": "모델 재정의 초기화 (전역 기본값 사용)", + "configuredSteps": "구성된 워크플로 단계", + "confirmDeleteAriaLabel": "{{name}} 삭제 확인", + "confirmDeleteTitle": "삭제 확인", + "createChooserHint": "기본 제공 템플릿에서 시작하거나 완전히 맞춤화된 워크플로 단계를 만드세요.", + "createChooserTitle": "워크플로 단계를 어떻게 만드시겠습니까?", + "createCustomStep": "맞춤 워크플로 단계", + "defaultOnCheckbox": "새 작업의 기본 켜짐", + "deleteStepAriaLabel": "{{name}} 삭제", + "done": "완료", + "doneEditingAriaLabel": "워크플로 단계 편집 완료", + "edit": "편집", + "editAriaLabel": "워크플로 단계 편집", + "editStepAriaLabel": "{{name}} 편집", + "editStepTitle": "워크플로 단계 편집", + "emptySteps": "정의된 워크플로 단계가 없습니다. 새로 만들거나 템플릿 탭에서 추가하세요.", + "enabledCheckbox": "활성화됨 (새 작업에서 선택 가능)", + "errorAddTemplate": "템플릿에서 워크플로 단계 추가 실패", + "errorDeleteStep": "워크플로 단계 삭제 실패", + "errorLoadSteps": "워크플로 단계 불러오기 실패", + "errorLoadTemplates": "템플릿 불러오기 실패", + "errorNameDescRequired": "이름과 설명을 입력해야 합니다", + "errorNameDescRequiredRefine": "개선하기 전에 이름과 설명을 입력해야 합니다", + "errorRefinePrompt": "프롬프트 개선 실패", + "errorSaveStep": "워크플로 단계 저장 실패", + "errorTemplateAlreadyExists": "'{{name}}' 이름의 워크플로 단계가 이미 존재합니다", + "executionModeLabel": "실행 모드", + "executionOrder": "실행 순서:", + "executionPhaseLabel": "실행 단계", + "expandOutput": "출력 펼치기", + "failureBehaviorLabel": "실패 동작", + "formDescriptionLabel": "설명", + "formDescriptionPlaceholder": "이 단계가 하는 작업의 간략한 설명", + "formNameLabel": "이름", + "formNamePlaceholder": "예: 문서 검토", + "gateModeAdvisory": "권고", + "gateModeAdvisoryHint": "실패는 권고 사항으로 기록되며 병합을 차단하지 않습니다.", + "gateModeGate": "게이트", + "gateModeGateHint": "실패 시 병합을 차단하고 수정을 요청합니다.", + "hideOutput": "출력 숨기기", + "loadingBuiltInTemplates": "기본 제공 템플릿 불러오는 중...", + "loadingResults": "워크플로 결과 불러오는 중…", + "loadingTemplates": "템플릿 불러오는 중...", + "markdown": "Markdown", + "modalAriaLabel": "워크플로 단계", + "modalTitle": "워크플로 단계", + "modeAiPrompt": "AI 프롬프트", + "modeScript": "스크립트 실행", + "modelHintCustom": "{{provider}}/{{modelId}} 사용 중", + "modelHintDefault": "전역 기본 모델 사용 중", + "modelOverrideDropdownLabel": "이 워크플로 단계의 모델 재정의", + "modelOverrideLabel": "모델 재정의", + "modelOverridePlaceholder": "모델 재정의 선택…", + "moveDown": "아래로 이동", + "moveUp": "위로 이동", + "needsReview": "후속 검토가 필요합니다.", + "newStepTitle": "새 워크플로 단계", + "noBuiltInTemplates": "현재 사용 가능한 기본 제공 템플릿이 없습니다. 맞춤 단계를 만들 수 있습니다.", + "noScripts": "구성된 스크립트가 없습니다. 먼저 설정 → 스크립트에서 스크립트를 추가하세요.", + "noStepsConfigured": "이 작업에 구성된 워크플로 단계가 없습니다.", + "noTemplates": "사용 가능한 템플릿이 없습니다.", + "notes": "참고:", + "output": "출력:", + "phasePostMerge": "병합 후", + "phasePostMergeHint": "병합 성공 후 실행됩니다 — 실패는 기록되지만 차단하지 않습니다", + "phasePreMerge": "병합 전", + "phasePreMergeHint": "병합 전에 실행됩니다 — 실패 시 병합을 차단할 수 있습니다", + "plain": "일반 텍스트", + "polishNotes": "노트 다듬기", + "postMerge": "병합 후", + "preMerge": "병합 전", + "promptRefined": "AI로 프롬프트 개선됨", + "refineWithAi": "AI로 개선", + "refineWithAiAriaLabel": "AI로 프롬프트 개선", + "refineWithAiTitle": "AI로 개선", + "remove": "제거", + "scriptLabel": "스크립트", + "selectScript": "스크립트 선택…", + "selectStepsDescription": "작업 구현 완료 후 실행할 단계를 선택하세요", + "showOutput": "출력 표시", + "started": "시작됨:", + "statusAdvisory": "권고 실패", + "statusFailed": "실패", + "statusPassed": "통과", + "statusRunning": "실행 중…", + "statusSkipped": "건너뜀", + "stepCount": "{{count}}개 단계{{count_one::count_other:}}", + "stepCreated": "워크플로 단계 생성됨", + "stepDefinitionNotFound": "단계 정의를 찾을 수 없습니다.", + "stepDeleted": "워크플로 단계 삭제됨", + "stepUpdated": "워크플로 단계 업데이트됨", + "steps": "워크플로 단계", + "stepsExplanation": "병합 전 단계는 구현 후, 병합 전에 실행됩니다. 병합 후 단계는 병합 성공 후 실행됩니다.", + "summaryAdvisory": "{{count}}개 권고", + "summaryFailed": "{{count}}개 실패", + "summaryPassed": "{{count}}개 통과", + "summaryRunning": "{{count}}개 실행 중", + "summarySeparator": " · ", + "summarySkipped": "{{count}}개 건너뜀", + "switchToMarkdown": "Markdown으로 전환", + "switchToPlain": "일반 텍스트로 전환", + "tabMySteps": "내 워크플로 단계 ({{count}})", + "tabTemplates": "템플릿 ({{count}})", + "templateAdded": "{{name}} 워크플로 단계 추가됨", + "useDefault": "기본값 사용", + "waitingForOutput": "에이전트 출력 대기 중…" + }, + "workspace": { + "projectRoot": "프로젝트 루트", + "selectWorkspace": "워크스페이스 선택", + "taskWorktrees": "작업 워크트리" + }, + "worktree": { + "unassigned": "미할당", + "upNext": "다음 예정" + }, + "worktrunk": { + "assetUrl": "Asset URL", + "installPath": "설치 경로", + "installRequestTitle": "Worktrunk 설치 요청", + "sha256": "SHA-256", + "version": "버전" } } diff --git a/packages/i18n/locales/ko/cli.json b/packages/i18n/locales/ko/cli.json index 6c38171a78..ca9f3bf866 100644 --- a/packages/i18n/locales/ko/cli.json +++ b/packages/i18n/locales/ko/cli.json @@ -1,9 +1,233 @@ { "tui": { + "agentDeleteConfirmHints": "[y] 삭제 확인 [다른 키] 취소", + "agentDeleteConfirmId": "ID:", + "agentDeleteConfirmName": "에이전트:", + "agentDeleteConfirmTitle": "에이전트를 삭제하시겠습니까?", + "agentDeleted": "에이전트 {{name}} 삭제됨", + "agentDetailCaps": "권한:", + "agentDetailLoadError": "에이전트 상세 정보를 불러올 수 없습니다.", + "agentDetailRole": "역할:", + "agentDetailSelectHint": "목록에서 에이전트를 선택하세요.", + "agentDetailState": "상태:", + "agentDetailTask": "작업:", + "agentDetailTitle": "에이전트 상세", + "agentDetailTitle2": "제목:", + "agentNarrowDetail": "상세", + "agentNarrowList": "목록", + "agentOpenLogsHint": "[Enter] 로그 열기", + "agentRunHistory": "실행 기록 (최신 순):", + "agentRunId": "ID:", + "agentRunLogsBackHint": "[Esc/q] 실행 목록으로 돌아가기", + "agentRunLogsTitle": "실행 로그 ({{index}})", + "agentStarted": "에이전트 시작됨", + "agentStopped": "에이전트 중지됨", + "agentsFooterHints": "[s] 시작 [x] 중지 [D] 삭제 [r] 새로고침 [Tab] 포커스 ↑↓ 선택", + "agentsListTitle": "에이전트 ({{count}})", + "agentsNoAgents": "에이전트가 없습니다.", + "boardCreateTaskHints": "Enter로 생성 · Esc로 취소", + "boardCreateTaskNoProject": "선택된 프로젝트 없음", + "boardCreateTaskTitleEmpty": "제목을 입력해야 합니다", + "boardCreatingTask": "생성 중…", + "boardNewTaskPlaceholder": "무엇을 해야 하나요?", + "boardNewTaskProject": "프로젝트: {{name}}", + "boardNewTaskTitle": "새 작업", + "boardNewTaskTitleLabel": "제목", + "copiedSuccess": "✓ 복사됨!", + "copyFailed": "✗ 복사 실패", + "expandedLogHeader": "항목 {{index}}/{{total}} · [Enter/Esc] 닫기 · [c] 복사", + "expandedLogLevel": "레벨:", + "expandedLogPrefix": "접두사:", + "expandedLogTime": "시간:", + "filesBinary": "[바이너리 파일, {{size}}]", + "filesEmpty": "(비어 있음)", + "filesEmptyFile": "(빈 파일)", + "filesFooterHints": "[Tab] 창 전환 [↑↓/jk] 이동 [Enter] 열기 [←/→] 접기/펼치기 [.] 숨김 [w] 줄 바꿈 [p] 프로젝트 [r] 새로고침", + "filesMoreLines": "… {{count}}줄 더 있음", + "filesSelectProject": "프로젝트 선택", + "filesSelectToPreview": "미리볼 파일을 선택하세요", + "filesTooLarge": "{{size}} — [미리보기에 너무 큼]", + "filesUnableToRead": "파일을 읽을 수 없습니다", + "gitFetchFailed": "Fetch 실패: {{output}}", + "gitFetched": "Fetch 완료", + "gitFetching": "Fetch 중…", + "gitFooterHints": "[r] 새로고침 {{push}}[F] fetch [↑↓] 행 [←→] 상태▸브랜치{{worktrees}}▸커밋▸변경사항 [p] 프로젝트 [Esc/s] 뒤로", + "gitNoCommits": "커밋 없음", + "gitNoProject": "프로젝트 없음", + "gitPushDismissHint": "[Esc] 닫기", + "gitPushFailed": "Push 실패", + "gitPushModalAhead": "앞서 있음", + "gitPushModalBranch": "브랜치:", + "gitPushModalCommits": "Push할 커밋 (오래된 순→최신 순):", + "gitPushModalHints": "[Enter] push [Esc] 취소", + "gitPushModalTitle": "원격 저장소에 Push", + "gitPushSuccessful": "Push 성공", + "gitPushingToOrigin": "origin/{{branch}}에 Push 중", + "gitRefreshing": "새로고침 중", + "gitWorkingTreeClean": "작업 트리가 깨끗합니다", + "headerHelpQuitHint": "[?] 도움말 [q] 종료", + "headerTunnelQrHint": " [^Q] QR", + "headerTunnelRunning": "터널", + "headerTunnelStarting": "터널 시작 중…", + "helpShortcutAdjustNumber": "숫자 조정 (설정)", + "helpShortcutAdjustThreshold": "vitest 메모리 임계값 조정 (유틸리티)", + "helpShortcutAgents": "에이전트 보기", + "helpShortcutBoard": "보드 보기", + "helpShortcutClearLogs": "로그 지우기 (유틸리티)", + "helpShortcutCopyEntry": "선택한 로그 항목을 클립보드에 복사 (로그)", + "helpShortcutCopyToken": "인증 토큰을 클립보드에 복사 (시스템)", + "helpShortcutDeleteAgent": "에이전트 삭제 — 확인 필요 (에이전트)", + "helpShortcutExpandEntry": "로그 항목 펼치기 (로그)", + "helpShortcutExpandLog": "로그 펼치기 + 텍스트 선택을 위해 마우스 해제 (로그)", + "helpShortcutFiles": "파일 (로그 외 화면); 로그에서 로그 심각도 필터 순환", + "helpShortcutFirstLast": "첫 번째 / 마지막 로그 항목 (로그)", + "helpShortcutForceQuit": "강제 종료", + "helpShortcutGit": "Git 보기", + "helpShortcutHiddenFiles": "숨김 파일 토글 (파일)", + "helpShortcutJumpPanel": "패널로 이동 (메인: 시스템/로그/통계/유틸리티/설정)", + "helpShortcutKillVitest": "모든 vitest 프로세스 종료 (유틸리티)", + "helpShortcutMain": "메인 (상태 모드)", + "helpShortcutMouseToggle": "수동 마우스 모드 전환 (자동: 로그/파일/Git/보드는 켜짐, 그 외 꺼짐)", + "helpShortcutNavigate": "목록 / 로그 항목 탐색", + "helpShortcutNewTask": "새 작업 (보드)", + "helpShortcutNextPanel": "다음 패널 (메인; 로그에서 ↑/↓ 스크롤)", + "helpShortcutOpenUrl": "브라우저에서 대시보드 URL 열기 (시스템)", + "helpShortcutPrevPanel": "이전 패널 (메인; 로그에서 ↑/↓ 스크롤)", + "helpShortcutProjectPicker": "프로젝트 선택기 (보드, 파일)", + "helpShortcutPushFetch": "Push / fetch (Git)", + "helpShortcutQuit": "종료", + "helpShortcutRefreshStats": "통계 새로고침 (유틸리티)", + "helpShortcutSettings": "설정 보기", + "helpShortcutSwitchPane": "창 전환 (에이전트, 설정, 파일, Git)", + "helpShortcutTabBackward": "포커스된 패널/창 뒤로 순환", + "helpShortcutTabForward": "포커스된 패널/창 앞으로 순환", + "helpShortcutToggleAutoKill": "메모리 부족 시 vitest 자동 종료 토글 (유틸리티)", + "helpShortcutToggleBool": "불리언 토글 (설정)", + "helpShortcutToggleHelp": "도움말 토글", + "helpShortcutWordWrap": "줄 바꿈 토글 (로그 / 파일)", + "helpTitle": "키보드 단축키", + "interactiveModeUnavailable": "대화형 모드 사용 불가 — 데이터 소스 없음", "loading": "불러오는 중…", "loadingTasks": "작업을 불러오는 중…", + "logsPanelTitle": "로그", + "narrowModeIndicator": "[좁은 화면]", + "noEntriesMatchFilter": "필터 {{filter}}에 일치하는 항목이 없습니다.", + "noLogEntries": "로그 항목이 아직 없습니다.", "noTasks": "이 프로젝트에 작업이 없습니다.", + "projectSelectorChangeHint": "[p] 변경", + "projectSelectorLabel": "프로젝트:", + "projectSelectorNavHints": "↑↓ 탐색 · Enter 선택 · Esc 취소", + "projectSelectorNoProjects": "(등록된 프로젝트 없음)", + "projectSelectorNone": "(없음)", + "projectSelectorPickTitle": "프로젝트 선택", + "qrCloseHint": "[Esc] 닫기", + "qrGenerating": "QR 생성 중…", + "qrNoTunnelRunning": "실행 중인 원격 터널이 없습니다. 설정(g)에서 시작하세요.", + "qrOverlayTitle": "원격 접속 — QR 스캔하여 연결", + "quit": "종료", + "readyIn": "{{secs}}초 후 준비", + "runLogNone": "이 실행에 캡처된 로그가 없습니다.", + "runLogResult": "결과:", + "runLogSource": "소스", + "runLogStderr": "stderr:", + "runLogStdout": "stdout:", + "runLogTrigger": "트리거", + "runStatusActive": "활성", + "runStatusCompleted": "완료됨", + "runStatusFailed": "실패", + "runStatusTerminated": "종료됨", + "runStatusUnknown": "알 수 없음", + "settingAutoMerge": "자동 병합", + "settingEnginePaused": "엔진 일시 정지", + "settingGlobalPause": "전역 일시 정지", + "settingMaxConcurrent": "최대 동시 실행", + "settingMaxWorktrees": "최대 워크트리", + "settingMergeStrategy": "병합 전략", + "settingPollIntervalMs": "폴링 간격 (ms)", + "settingRemoteActiveProvider": "원격 공급자", + "settingRemoteShortLivedEnabled": "단기 토큰", + "settingRemoteShortLivedTtlMs": "단기 TTL (ms)", + "settingsActivatedProvider": "활성화된 공급자: {{provider}}", + "settingsAdjust1": "[+/-] 1씩 조정", + "settingsAdjust5000ms": "[+/-] 5000ms씩 조정", + "settingsAvailableModelsHeader": "──── 사용 가능한 모델 ────", + "settingsBoolToggleHint": "[Space] 토글", + "settingsCancelledTokenInput": "단기 토큰 입력 취소됨", + "settingsConfigureModelInDashboard": "웹 대시보드에서 기본 모델 구성", + "settingsCurrentLabel": "현재:", + "settingsEditModelsTitle": "편집 / 모델", + "settingsEnterTtl": "TTL 밀리초를 입력하고 Enter를 누르세요", + "settingsEnumCycleHint": "[←/→] 옵션 순환:", + "settingsFooterHints": "[Tab] 패널 전환 ↑↓ 설정 선택 [Space] 불리언 토글 [+/-] 숫자 조정 [←/→] 열거형 순환 [C/V/X/P/L/U/K/R] 원격 작업", + "settingsInteractivePanelTitle": "설정", + "settingsLoadingSettings": "설정 불러오는 중…", + "settingsMoreModels": "… 및 {{count}}개 더", + "settingsPanelTitle": "설정", + "settingsPersistentTokenRegenerated": "영구 토큰이 재생성됨", + "settingsQrFetched": "QR 페이로드 가져옴", + "settingsRemoteActions1": "[C] 공급자 활성화 [V] 시작 [X] 중지 [P] 영구 토큰 [L] 단기 토큰", + "settingsRemoteActions2": "[U] URL 전달 [K] QR 전달 [R] 새로고침", + "settingsRemoteAuthUrl": "인증 URL:", + "settingsRemoteHeader": "──── 원격 ────", + "settingsRemoteOff": "꺼짐", + "settingsRemoteOn": "켜짐", + "settingsRemotePersistentToken": "영구 토큰:", + "settingsRemoteProvider": "공급자:", + "settingsRemoteProviderNone": "없음", + "settingsRemoteShortLived": "단기:", + "settingsRemoteShortLivedExpires": "단기 만료:", + "settingsRemoteState": "상태:", + "settingsRemoteStateUnknown": "알 수 없음", + "settingsRemoteStatusRefreshed": "원격 상태가 새로고침되었습니다", + "settingsRemoteToken": "토큰:", + "settingsRemoteTunnelUrl": "터널 URL:", + "settingsRemoteUrlFetched": "원격 URL을 가져왔습니다", + "settingsSaved": "저장됨", + "settingsSavingInProgress": "저장 중…", + "settingsSelectProviderFirst": "먼저 원격 제공자를 선택하세요", + "settingsShortLivedTokenGenerated": "단기 토큰이 생성되었습니다", + "settingsTtlHints": "[Enter] 생성 [Esc] 취소", + "settingsTtlLabel": "TTL ms:", + "settingsTtlMustBePositive": "TTL은 양수(ms)여야 합니다", + "settingsTunnelStarting": "원격 터널을 시작하는 중", + "settingsTunnelStopped": "원격 터널이 중지되었습니다", + "settingsUnavailable": "설정을 사용할 수 없습니다.", + "statsPanelTitle": "통계", + "statsUnavailable": "통계를 사용할 수 없습니다.", + "statusBarHelp": "Tab 패널 순환 · 1-5 이동", + "stepDurationDone": " ({{status}} — {{duration}})", + "stepDurationRunning": " (실행 중 — {{duration}})", "switchProjectsHint": "[{{key}}] 키를 눌러 프로젝트를 전환합니다.", - "quit": "종료" + "systemCopyTokenHint": "토큰 복사 · 토큰 텍스트를 직접 선택하여 복사", + "systemDragToSelect": "드래그하여 선택", + "systemInfoUnavailable": "시스템 정보를 사용할 수 없습니다.", + "systemOpenUrl": "URL 열기", + "systemPanelTitle": "시스템", + "tabAgents": "에이전트", + "tabBoard": "보드", + "tabFiles": "파일", + "tabGit": "Git", + "tabMain": "메인", + "tabSettings": "설정", + "taskCardUntitled": "(제목 없음)", + "taskDetailBack": "[Esc] 뒤로", + "taskDetailLoading": "작업 세부 정보를 불러오는 중…", + "taskDetailLogsLive": "[실시간]", + "taskDetailLogsPaused": "[일시 정지]", + "taskDetailLogsSectionHeader": "── 로그 ───────────────────────────────────────", + "taskDetailNoLogEntries": "(아직 로그 항목이 없습니다)", + "taskDetailNoSteps": "(아직 단계가 없습니다)", + "taskDetailScrollHints": "↑↓/j/k 스크롤 · PgUp/PgDn 반 페이지 · g 맨 위 · G 맨 아래 · Esc 뒤로", + "taskDetailStepsSectionHeader": "── 단계 ──────────────────────────────────────", + "taskDetailUnavailable": "작업을 더 이상 사용할 수 없습니다 — Esc로 돌아가기", + "updateAvailable": "업데이트 가능: v{{currentVersion}} → v{{latestVersion}}. 설치된 CLI는 `fn update`를 실행하거나, 소스 체크아웃을 pull하세요.", + "utilitiesAdjustThreshold": "임계값 조정 ({{pct}}%)", + "utilitiesAutoKillVitest": "Vitest 자동 종료 >{{pct}}% 메모리: {{state}}", + "utilitiesClearLogs": "로그 지우기", + "utilitiesHelp": "도움말", + "utilitiesKillVitest": "Vitest 프로세스 종료", + "utilitiesPanelTitle": "유틸리티", + "utilitiesRefreshStats": "통계 새로고침", + "utilitiesToggleEnginePause": "엔진 일시 정지 전환" } } diff --git a/packages/i18n/locales/ko/common.json b/packages/i18n/locales/ko/common.json index 2f7cbbab9e..657ad48816 100644 --- a/packages/i18n/locales/ko/common.json +++ b/packages/i18n/locales/ko/common.json @@ -1,15 +1,23 @@ { + "actions": { + "cancel": "취소", + "close": "닫기", + "save": "저장" + }, + "archive": "보관", + "cancel": "취소", + "close": "닫기", "columns": { - "triage": "계획", - "todo": "할 일", + "archived": "보관됨", + "done": "완료", "in-progress": "진행 중", "in-review": "검토 중", - "done": "완료", - "archived": "보관됨" + "todo": "할 일", + "triage": "계획" }, - "actions": { - "save": "저장", - "cancel": "취소", - "close": "닫기" - } + "delete": "삭제", + "refresh": "새로고침", + "retry": "재시도", + "skip": "건너뛰기", + "tryAgain": "다시 시도" }