mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-19 13:33:35 +08:00
Trace is a low-frequency diagnostic feature, so its entry points no longer sit in primary chrome: - Remove the Trace nav item above the session list in the sidebar - Remove the trace open/open-window buttons from the session header - Add a Trace tab in Settings between Token usage and Diagnostics, embedding the existing TraceList page full-bleed - Add settings.tab.trace and drop unused sidebar.traces across locales
1865 lines
128 KiB
TypeScript
1865 lines
128 KiB
TypeScript
import type { TranslationKey } from './en'
|
|
|
|
export const kr: Record<TranslationKey, string> = {
|
|
// ─── Common ──────────────────────────────────────
|
|
'common.cancel': '취소',
|
|
'common.save': '저장',
|
|
'common.delete': '삭제',
|
|
'common.add': '추가',
|
|
'common.run': '실행',
|
|
'common.send': '전송',
|
|
'common.stop': '중지',
|
|
'common.rename': '이름 바꾸기',
|
|
'common.retry': '다시 시도',
|
|
'common.loading': '불러오는 중...',
|
|
'common.select': '선택',
|
|
'common.enable': '사용',
|
|
'common.disable': '사용 안 함',
|
|
'common.active': '활성',
|
|
'common.error': '오류',
|
|
'common.copyFailed': '복사하지 못했습니다.',
|
|
'common.copied': '복사됨',
|
|
|
|
// ─── Sidebar ──────────────────────────────────────
|
|
'sidebar.newSession': '새 세션',
|
|
'sidebar.scheduled': '예약 작업',
|
|
'sidebar.terminal': '터미널',
|
|
'sidebar.settings': '설정',
|
|
'sidebar.searchPlaceholder': '세션 검색...',
|
|
'sidebar.noSessions': '아직 세션이 없습니다',
|
|
'sidebar.noMatching': '일치하는 세션이 없습니다',
|
|
'sidebar.sessionListFailed': '세션 목록을 불러오지 못했습니다',
|
|
'sidebar.refreshSessions': '세션 새로 고침',
|
|
'sidebar.projects': '프로젝트',
|
|
'sidebar.projectMenu': '프로젝트 메뉴',
|
|
'sidebar.newProject': '새 프로젝트',
|
|
'sidebar.archiveAllChats': '모든 채팅 보관',
|
|
'sidebar.organizeSidebar': '사이드바 정리',
|
|
'sidebar.sortCondition': '정렬 조건',
|
|
'sidebar.organizeByProject': '프로젝트별',
|
|
'sidebar.organizeByRecentProject': '최근 프로젝트',
|
|
'sidebar.organizeByTime': '시간순',
|
|
'sidebar.sortByCreatedAt': '생성 시간',
|
|
'sidebar.sortByUpdatedAt': '업데이트 시간',
|
|
'sidebar.newBlankProject': '새 빈 프로젝트',
|
|
'sidebar.useExistingFolder': '기존 폴더 사용',
|
|
'sidebar.chooseProjectFolderUnavailable': '폴더 선택은 데스크톱 앱에서만 사용할 수 있습니다.',
|
|
'sidebar.projectActions': '{project}의 프로젝트 작업',
|
|
'sidebar.pinProject': '프로젝트 고정',
|
|
'sidebar.unpinProject': '고정 해제',
|
|
'sidebar.openInFinder': 'Finder에서 열기',
|
|
'sidebar.openInFinderFailed': 'Finder에서 프로젝트를 열 수 없습니다.',
|
|
'sidebar.openInFinderUnavailable': '사용할 수 있는 파일 관리자가 없습니다.',
|
|
'sidebar.hideProjectFromSidebar': '사이드바에서 숨기기',
|
|
'sidebar.restoreProjectToSidebar': '사이드바로 복원',
|
|
'sidebar.restoreHiddenProjects': '숨긴 프로젝트 복원 ({count})',
|
|
'sidebar.projectHidden': '{project}을(를) 사이드바에서 숨겼습니다. 기존 세션은 삭제되지 않았습니다.',
|
|
'sidebar.newSessionInProject': '{project}에서 새 세션',
|
|
'sidebar.showMoreSessions': '펼쳐서 표시',
|
|
'sidebar.showFewerSessions': '접어서 표시',
|
|
'sidebar.expandProject': '{project} 펼치기',
|
|
'sidebar.collapseProject': '{project} 접기',
|
|
'sidebar.worktree': 'worktree',
|
|
'sidebar.sessionRunning': '세션 실행 중',
|
|
'sidebar.missingDir': '디렉터리 없음',
|
|
'sidebar.confirmDelete': '이 세션을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',
|
|
'sidebar.batchManage': '일괄 관리',
|
|
'sidebar.batchSelectedCount': '{count}개 선택됨',
|
|
'sidebar.batchSelectAll': '모두 선택',
|
|
'sidebar.batchDeselectAll': '모두 선택 해제',
|
|
'sidebar.batchSelectGroup': '{group} 선택',
|
|
'sidebar.batchDeleteSelected': '선택 항목 삭제 ({count})',
|
|
'sidebar.batchDeleteConfirm': '{count}개의 세션을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',
|
|
'sidebar.batchDeleteConfirmBody': '다음 세션이 삭제됩니다:',
|
|
'sidebar.batchDeleteMore': '...외 {count}개',
|
|
'sidebar.batchExit': '일괄 모드 취소',
|
|
'sidebar.batchDeleteSucceeded': '{count}개의 세션을 삭제했습니다.',
|
|
'sidebar.batchDeleteFailed': '{count}개의 세션을 삭제하지 못했습니다.',
|
|
'sidebar.allProjects': '모든 프로젝트',
|
|
'sidebar.other': '기타',
|
|
'sidebar.timeGroup.today': '오늘',
|
|
'sidebar.timeGroup.yesterday': '어제',
|
|
'sidebar.timeGroup.last7days': '지난 7일',
|
|
'sidebar.timeGroup.last30days': '지난 30일',
|
|
'sidebar.timeGroup.older': '그 이전',
|
|
'sidebar.collapse': '사이드바 접기',
|
|
'sidebar.expand': '사이드바 펼치기',
|
|
|
|
// ─── Title Bar ──────────────────────────────────────
|
|
'titlebar.code': '코드',
|
|
'titlebar.terminal': '터미널',
|
|
'titlebar.history': '기록',
|
|
|
|
// ─── Open Project ──────────────────────────────────────
|
|
'openProject.openProject': '프로젝트 열기',
|
|
'openProject.openIn': '{target}에서 열기',
|
|
'openProject.openFailed': '프로젝트를 열 수 없습니다',
|
|
|
|
// ─── Open With ─────────────────────────────────────
|
|
'openWith.title': '열기 방식',
|
|
'openWith.inAppBrowser': '앱 내 브라우저',
|
|
'openWith.systemBrowser': '시스템 브라우저',
|
|
'openWith.workspacePreview': '작업 공간 미리 보기',
|
|
'openWith.openInTarget': '{target}에서 열기',
|
|
'openWith.revealInTarget': '{target}에서 표시',
|
|
'openWith.fileType.document': '문서',
|
|
'openWith.fileType.web': '웹',
|
|
'openWith.fileType.image': '이미지',
|
|
'openWith.fileType.code': '코드',
|
|
'openWith.fileType.file': '파일',
|
|
|
|
// ─── Assistant Output Targets ──────────────────────
|
|
'assistantOutputs.kind.markdown': 'Markdown',
|
|
'assistantOutputs.kind.html': 'HTML',
|
|
'assistantOutputs.kind.image': '이미지',
|
|
'assistantOutputs.kind.localhost': 'Localhost',
|
|
'assistantOutputs.moreOutputs': '+{count}개',
|
|
'assistantOutputs.open': '열기',
|
|
|
|
// ─── Workspace Panel ───────────────────────────────
|
|
'workspace.changedFiles': '변경된 파일',
|
|
'workspace.allFiles': '모든 파일',
|
|
'workspace.viewTabs': '작업 공간 보기',
|
|
'workspace.previewTabs': '미리 보기 탭',
|
|
'workspace.filterPlaceholder': '파일 필터링...',
|
|
'workspace.clearFilter': '파일 필터 지우기',
|
|
'workspace.refresh': '작업 공간 새로 고침',
|
|
'workspace.closePanel': '작업 공간 패널 닫기',
|
|
'workspace.resizePanel': '작업 공간 패널 크기 조정',
|
|
'workbench.modeSwitch': '워크벤치 모드',
|
|
'workbench.modeWorkspace': '파일',
|
|
'workbench.modeBrowser': '브라우저',
|
|
'workbench.close': '닫기',
|
|
'workspace.closeTab': '탭 닫기',
|
|
'workspace.preview': '미리 보기',
|
|
'workspace.previewEmpty': '미리 볼 파일을 선택하세요.',
|
|
'workspace.notGitRepo': 'Git 저장소가 아닙니다.',
|
|
'workspace.missingWorkdir': '작업 디렉터리가 없습니다.',
|
|
'workspace.loadError': '작업 공간 데이터를 불러오지 못했습니다.',
|
|
'workspace.noChanges': '변경 사항 없음',
|
|
'workspace.noFiles': '파일 없음',
|
|
'workspace.noMatchingFiles': '일치하는 파일 없음',
|
|
'workspace.previewKind.diff': '변경 내용',
|
|
'workspace.previewKind.file': '파일',
|
|
'workspace.previewState.loading': '미리 보기 불러오는 중...',
|
|
'workspace.previewState.binary': '바이너리 파일은 미리 볼 수 없습니다.',
|
|
'workspace.previewState.tooLarge': '파일이 너무 커서 미리 볼 수 없습니다.',
|
|
'workspace.previewState.missing': '파일을 찾을 수 없습니다.',
|
|
'workspace.imagePreviewUnavailable': '이미지를 미리 볼 수 없습니다.',
|
|
'workspace.previewLineLimit': '불러온 {total}줄 중 처음 {count}줄을 표시합니다.',
|
|
'workspace.previewAllLines': '불러온 {total}줄을 모두 표시합니다.',
|
|
'workspace.showAllLoadedLines': '불러온 줄 모두 표시',
|
|
'workspace.collapsePreview': '미리 보기 접기',
|
|
'workspace.addToChat': '채팅에 추가',
|
|
'workspace.addSelectionToChat': '채팅에 추가',
|
|
'workspace.copyPath': '경로 복사',
|
|
'workspace.copyAbsolutePath': '절대 경로 복사',
|
|
'workspace.pathCopied': '경로를 복사했습니다.',
|
|
'workspace.localComment': '로컬 댓글',
|
|
'workspace.commentLine': '{line}번째 줄에 댓글',
|
|
'workspace.commentLineTarget': '{line}번째 줄',
|
|
'workspace.commentPlaceholder': '여기서 무엇을 변경해야 하는지 설명하세요...',
|
|
'workspace.addCommentToChat': '댓글 추가',
|
|
|
|
// ─── Status Bar ──────────────────────────────────────
|
|
'status.connected': '연결됨',
|
|
'status.connecting': '연결 중...',
|
|
'status.reconnecting': '다시 연결 중...',
|
|
'status.disconnected': '연결 끊김',
|
|
|
|
// ─── Settings ──────────────────────────────────────
|
|
'settings.title': '설정',
|
|
'settings.tab.providers': '공급자',
|
|
'settings.tab.permissions': '권한',
|
|
'settings.tab.activity': '토큰 사용량',
|
|
'settings.tab.trace': 'Trace',
|
|
'settings.tab.general': '일반',
|
|
'settings.tab.h5Access': 'H5 액세스',
|
|
'settings.tab.terminal': '터미널',
|
|
'settings.tab.skills': '스킬',
|
|
'settings.tab.mcp': 'MCP',
|
|
'settings.tab.plugins': '플러그인',
|
|
'settings.tab.diagnostics': '진단',
|
|
|
|
// Settings > Usage
|
|
'settings.activity.title': '토큰 사용량',
|
|
'settings.activity.profileTitle': '프로필',
|
|
'settings.activity.profilePrivacy': '로컬 전용',
|
|
'settings.activity.defaultHandle': 'github.com/NanmiCoder/cc-haha',
|
|
'settings.activity.editProfile': '프로필 편집',
|
|
'settings.activity.displayName': '표시 이름',
|
|
'settings.activity.subtitle': '둘째 줄',
|
|
'settings.activity.displayNameHelper': '표시 이름과 둘째 줄을 편집합니다. 둘째 줄의 URL은 링크로 열립니다.',
|
|
'settings.activity.avatar': '아바타',
|
|
'settings.activity.avatarHelper': 'PNG, JPEG 또는 WebP, 최대 2MB.',
|
|
'settings.activity.changeAvatar': '아바타 변경',
|
|
'settings.activity.removeAvatar': '아바타 제거',
|
|
'settings.activity.saveProfile': '저장',
|
|
'settings.activity.cancelEdit': '취소',
|
|
'settings.activity.profileSaved': '로컬에 저장됨',
|
|
'settings.activity.profileSaveFailed': '프로필을 저장할 수 없습니다',
|
|
'settings.activity.subtitleLoading': '로컬 Claude Code CLI 세션 기록을 기반으로 합니다',
|
|
'settings.activity.totalTokens': '총 토큰 수',
|
|
'settings.activity.peakTokens': '최대 토큰 수',
|
|
'settings.activity.longestTask': '최장 작업',
|
|
'settings.activity.currentStreak': '현재 연속 기록',
|
|
'settings.activity.longestStreak': '최장 연속 기록',
|
|
'settings.activity.noDuration': '0분',
|
|
'settings.activity.tokenActivity': '토큰 활동',
|
|
'settings.activity.mode.daily': '일별',
|
|
'settings.activity.mode.weekly': '주별',
|
|
'settings.activity.mode.cumulative': '누적',
|
|
'settings.activity.modeHelp.daily': '일별: 각 칸은 그날의 토큰 사용량입니다.',
|
|
'settings.activity.modeHelp.weekly': '주별: 각 열은 한 주의 총 토큰 사용량입니다.',
|
|
'settings.activity.modeHelp.cumulative': '누적: 각 열은 해당 주까지의 총 토큰 수입니다.',
|
|
'settings.activity.emptyTitle': '아직 로컬 사용 기록이 없습니다',
|
|
'settings.activity.emptyBody': 'CLI 또는 데스크톱 세션을 시작하면 완료된 모델 응답이 여기에 표시됩니다.',
|
|
'settings.activity.metric.yesterday': '어제',
|
|
'settings.activity.metric.today': '오늘',
|
|
'settings.activity.metric.last4': '지난 4일',
|
|
'settings.activity.metric.last30': '30일',
|
|
'settings.activity.metric.streak': '연속 기록',
|
|
'settings.activity.metric.bestStreak': '최고 {days}일',
|
|
'settings.activity.heatmapLabel': '일별 토큰 사용량',
|
|
'settings.activity.weekRange': '{start} - {end}',
|
|
'settings.activity.cumulativeThrough': '{date}까지',
|
|
'settings.activity.tokenValue': '{tokens} 토큰',
|
|
'settings.activity.count.sessionOne': '{count} 세션',
|
|
'settings.activity.count.sessionOther': '{count} 세션',
|
|
'settings.activity.count.dayOne': '{count}일',
|
|
'settings.activity.count.dayOther': '{count}일',
|
|
'settings.activity.weekday.mon': '월',
|
|
'settings.activity.weekday.wed': '수',
|
|
'settings.activity.weekday.fri': '금',
|
|
'settings.activity.selectedDay': '선택한 날짜',
|
|
'settings.activity.sessions': '세션',
|
|
'settings.activity.tokens': '토큰',
|
|
'settings.activity.messages': '메시지',
|
|
'settings.activity.tools': '도구',
|
|
'settings.activity.less': '적음',
|
|
'settings.activity.more': '많음',
|
|
|
|
// Settings > Terminal
|
|
'settings.terminal.title': '터미널',
|
|
'settings.terminal.description': '플러그인, 스킬, MCP 설정을 위해 호스트 컴퓨터의 명령을 실행합니다. 데스크톱 앱에는 claude-haha가 포함되어 있습니다. 문서의 claude <args>를 claude-haha <args>로 바꾸세요. 예: claude-haha plugin install ... 또는 claude-haha mcp add ...',
|
|
'settings.terminal.infoLabel': '터미널 설정 도움말',
|
|
'settings.terminal.clear': '지우기',
|
|
'settings.terminal.restart': '다시 시작',
|
|
'settings.terminal.windowTitle': '호스트 셸',
|
|
'settings.terminal.unavailableTitle': '데스크톱 런타임이 필요합니다',
|
|
'settings.terminal.unavailableBody': '대화형 터미널을 시작하려면 이 페이지를 패키지된 데스크톱 앱에서 여세요.',
|
|
'settings.terminal.preferencesTitle': '시작 셸',
|
|
'settings.terminal.preferencesBody': '새 터미널 세션과 다시 시작 후에 사용됩니다.',
|
|
'settings.terminal.startupShell': '시작 셸',
|
|
'settings.terminal.customPath': '사용자 지정 셸 경로',
|
|
'settings.terminal.customPathPlaceholder': 'C:\\Program Files\\PowerShell\\7\\pwsh.exe',
|
|
'settings.terminal.customPathRequired': '저장하기 전에 셸 경로를 입력하세요.',
|
|
'settings.terminal.customPathAbsolute': '사용자 지정 셸 경로는 Windows 절대 경로여야 합니다.',
|
|
'settings.terminal.saveShell': '셸 저장',
|
|
'settings.terminal.saveShellSuccess': '저장했습니다. 적용하려면 다시 시작하거나 새 터미널을 여세요.',
|
|
'settings.terminal.shell.system': '시스템 기본값',
|
|
'settings.terminal.shell.systemDesc': '현재 COMSPEC 기반 동작을 유지합니다.',
|
|
'settings.terminal.shell.pwsh': 'PowerShell 7 (pwsh)',
|
|
'settings.terminal.shell.pwshDesc': '설치되어 있으면 pwsh.exe를 사용합니다.',
|
|
'settings.terminal.shell.powershell': 'Windows PowerShell',
|
|
'settings.terminal.shell.powershellDesc': '기본 제공 powershell.exe를 사용합니다.',
|
|
'settings.terminal.shell.cmd': '명령 프롬프트',
|
|
'settings.terminal.shell.cmdDesc': 'cmd.exe를 명시적으로 사용합니다.',
|
|
'settings.terminal.shell.custom': '사용자 지정 실행 파일',
|
|
'settings.terminal.shell.customDesc': '절대 경로의 셸 실행 파일을 실행합니다.',
|
|
'settings.terminal.status.idle': '유휴',
|
|
'settings.terminal.status.starting': '시작 중',
|
|
'settings.terminal.status.running': '실행 중',
|
|
'settings.terminal.status.exited': '종료됨',
|
|
'settings.terminal.status.error': '오류',
|
|
'settings.terminal.status.unavailable': '사용 불가',
|
|
'settings.terminal.bashPathLabel': 'Bash 경로',
|
|
'settings.terminal.bashPathDescription': 'Windows에서는 터미널 셸 기본값이 CMD입니다. 도구 호출이 Unix 명령(grep, sed 등)을 사용하는 경우 여기에 Bash 실행 파일(예: Git Bash) 경로를 설정하세요.',
|
|
'settings.terminal.bashPathSave': '저장',
|
|
'settings.terminal.bashPathReset': '기본값으로 재설정',
|
|
'settings.terminal.bashPathSaved': '저장됨',
|
|
'settings.terminal.bashPathInvalid': '경로가 존재하지 않습니다. 유효한 Bash 실행 파일을 선택하세요.',
|
|
'terminal.newTab': '새 터미널',
|
|
'terminal.openInTab': '탭에서 열기',
|
|
'terminal.closePanel': '터미널 패널 닫기',
|
|
'terminal.resizePanel': '터미널 패널 크기 조정',
|
|
|
|
// Settings > Diagnostics
|
|
'settings.diagnostics.title': '진단',
|
|
'settings.diagnostics.description': '시작, 공급자, 세션 실패를 디버깅하기 위한 서버 및 CLI 런타임 로그입니다.',
|
|
'settings.diagnostics.refresh': '새로 고침',
|
|
'settings.diagnostics.totalSize': '로그 크기',
|
|
'settings.diagnostics.events': '이벤트',
|
|
'settings.diagnostics.recentErrors': '24시간 경고',
|
|
'settings.diagnostics.retention': '보존 기간',
|
|
'settings.diagnostics.retentionValue': '{days}일 / {size}',
|
|
'settings.diagnostics.logDirectory': '로그 디렉터리',
|
|
'settings.diagnostics.openDirectory': '열기',
|
|
'settings.diagnostics.exportBundle': '번들 내보내기',
|
|
'settings.diagnostics.copySummary': '오류 요약 복사',
|
|
'settings.diagnostics.clearLogs': '로그 지우기',
|
|
'settings.diagnostics.recentEvents': '최근 이벤트',
|
|
'settings.diagnostics.privacyNote': '내보낸 진단 정보는 정제되며 채팅 내용, 파일 내용, 전체 환경 변수, API 키는 포함하지 않습니다.',
|
|
'settings.diagnostics.noEvents': '아직 진단 이벤트가 없습니다.',
|
|
'settings.diagnostics.noRecentErrors': '최근 경고나 오류가 없습니다.',
|
|
'settings.diagnostics.loadFailed': '진단 정보를 불러오지 못했습니다.',
|
|
'settings.diagnostics.openFailed': '진단 디렉터리를 열지 못했습니다.',
|
|
'settings.diagnostics.exportFailed': '진단 번들을 내보내지 못했습니다.',
|
|
'settings.diagnostics.exported': '{file}을(를) 내보냈습니다',
|
|
'settings.diagnostics.summaryCopied': '오류 요약을 복사했습니다.',
|
|
'settings.diagnostics.copyFailed': '오류 요약을 복사하지 못했습니다.',
|
|
'settings.diagnostics.confirmClear': '모든 로컬 진단 로그와 내보낸 번들을 지우시겠습니까?',
|
|
'settings.diagnostics.cleared': '진단 정보를 지웠습니다.',
|
|
'settings.diagnostics.clearFailed': '진단 정보를 지우지 못했습니다.',
|
|
'settings.diagnostics.eventDetails': '세부 정보',
|
|
'settings.diagnostics.doctorTitle': 'Doctor',
|
|
'settings.diagnostics.doctorDescription': '시작 및 UI 상태 문제를 위한 안전한 데스크톱 복구입니다.',
|
|
'settings.diagnostics.doctorProtectedData': '채팅 기록, 모델 구성, 스킬, MCP, IM, OAuth는 절대 건드리지 않습니다.',
|
|
'settings.diagnostics.doctorSafeKeys': '다음만 지웁니다: cc-haha-open-tabs, cc-haha-session-runtime, cc-haha-theme, cc-haha-locale, cc-haha.persistence.schemaVersion.',
|
|
'settings.diagnostics.runDoctor': 'Doctor 실행',
|
|
'settings.diagnostics.doctorCompleted': 'Doctor가 완료되었습니다.',
|
|
'settings.diagnostics.doctorPartial': 'Doctor가 완료되었지만 {count}건의 로컬 정리 문제가 있습니다.',
|
|
'settings.diagnostics.doctorFailed': 'Doctor가 실패했습니다.',
|
|
'settings.diagnostics.doctorResultLocal': '{count}개의 안전한 UI 키를 지웠습니다.',
|
|
'settings.diagnostics.doctorResultFailedKeys': '{count}개의 키를 제거하지 못했습니다.',
|
|
'settings.diagnostics.doctorServerRan': '서버 측 Doctor 복구도 실행되었습니다.',
|
|
'settings.diagnostics.doctorServerUnavailable': '서버 측 Doctor를 사용할 수 없어 로컬 복구만 실행되었습니다.',
|
|
'errorBoundary.title': '문제가 발생했습니다.',
|
|
'errorBoundary.description': '오류가 진단에 기록되었습니다.',
|
|
|
|
// Settings > Claude Official Login
|
|
'settings.claudeOfficialLogin.intro': '공식 Claude 모델을 사용하려면 Claude.ai 계정에 로그인해야 합니다. 아래 버튼을 클릭하면 브라우저에서 공식 Claude 로그인 페이지가 열립니다. 승인 후 이곳으로 돌아옵니다.',
|
|
'settings.claudeOfficialLogin.loginButton': 'Claude에 로그인',
|
|
'settings.claudeOfficialLogin.loginStarting': '여는 중…',
|
|
'settings.claudeOfficialLogin.logoutButton': '로그아웃',
|
|
'settings.claudeOfficialLogin.logoutProcessing': '처리 중…',
|
|
'settings.claudeOfficialLogin.loggedInPrefix': '로그인됨 (Claude',
|
|
'settings.claudeOfficialLogin.subTypeUnknown': '알 수 없음',
|
|
'settings.claudeOfficialLogin.errorPrefix': '오류: ',
|
|
'settings.claudeOfficialLogin.openBrowserFailed': '브라우저를 열지 못했습니다. 승인 URL에 수동으로 접속하세요.',
|
|
|
|
// Settings > ChatGPT Official Login
|
|
'settings.chatgptOfficialLogin.intro': '데스크톱 세션에서 GPT 모델을 사용하려면 ChatGPT로 로그인하세요.',
|
|
'settings.chatgptOfficialLogin.loginButton': 'ChatGPT로 로그인',
|
|
'settings.chatgptOfficialLogin.loginStarting': '로그인 시작 중...',
|
|
'settings.chatgptOfficialLogin.logoutButton': '로그아웃',
|
|
'settings.chatgptOfficialLogin.logoutProcessing': '로그아웃 중...',
|
|
'settings.chatgptOfficialLogin.loggedInPrefix': '로그인 계정:',
|
|
'settings.chatgptOfficialLogin.accountUnknown': 'ChatGPT 계정',
|
|
'settings.chatgptOfficialLogin.openBrowserFailed': '브라우저를 열 수 없습니다. 승인 링크를 복사하여 수동으로 여세요.',
|
|
'settings.chatgptOfficialLogin.copyAuthorizeUrl': '승인 링크 복사',
|
|
'settings.chatgptOfficialLogin.copyLinkFailed': '승인 링크를 복사할 수 없습니다.',
|
|
'settings.chatgptOfficialLogin.errorPrefix': 'ChatGPT OAuth 오류: ',
|
|
|
|
// Settings > Providers
|
|
'settings.providers.title': '공급자',
|
|
'settings.providers.description': '모델 액세스를 위한 API 공급자를 관리합니다.',
|
|
'settings.providers.addProvider': '공급자 추가',
|
|
'settings.providers.officialName': 'Claude 공식',
|
|
'settings.providers.officialDesc': 'Anthropic 네이티브 — API 키 불필요',
|
|
'settings.providers.openaiOfficialName': 'ChatGPT 공식',
|
|
'settings.providers.openaiOfficialDesc': 'ChatGPT 계정을 통한 OpenAI OAuth — API 키 불필요',
|
|
'settings.providers.connected': '연결됨 ({latency}ms)',
|
|
'settings.providers.failed': '실패: {error}',
|
|
'settings.providers.connectivityOk': '① 연결 ({latency}ms)',
|
|
'settings.providers.connectivityFailed': '① 연결 실패: {error}',
|
|
'settings.providers.proxyOk': '② 프록시 파이프라인 ({latency}ms)',
|
|
'settings.providers.proxyFailed': '② 프록시 실패: {error}',
|
|
'settings.providers.confirmDelete': '공급자 "{name}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',
|
|
'settings.providers.activate': '활성화',
|
|
'settings.providers.default': '기본값',
|
|
'settings.providers.setDefault': '기본값으로 설정',
|
|
'settings.providers.test': '테스트',
|
|
'settings.providers.edit': '편집',
|
|
'settings.providers.requestFailed': '요청에 실패했습니다',
|
|
'settings.providers.addTitle': '공급자 추가',
|
|
'settings.providers.editTitle': '공급자 편집',
|
|
'settings.providers.preset': '사전 설정',
|
|
'settings.providers.name': '이름',
|
|
'settings.providers.namePlaceholder': '공급자 이름',
|
|
'settings.providers.notes': '메모',
|
|
'settings.providers.notesPlaceholder': '선택 사항 메모...',
|
|
'settings.providers.baseUrl': '기본 URL',
|
|
'settings.providers.baseUrlPlaceholder': 'https://api.example.com/anthropic',
|
|
'settings.providers.apiKey': 'API 키',
|
|
'settings.providers.apiKeyKeep': 'API 키 (비워 두면 현재 값 유지)',
|
|
'settings.providers.getApiKey': 'API 키 가져오기',
|
|
'settings.providers.modelMapping': '모델 매핑',
|
|
'settings.providers.mainModel': '메인 모델',
|
|
'settings.providers.haikuModel': 'Haiku 모델',
|
|
'settings.providers.sonnetModel': 'Sonnet 모델',
|
|
'settings.providers.opusModel': 'Opus 모델',
|
|
'settings.providers.sameAsMain': '메인과 동일',
|
|
'settings.providers.contextSettingsTitle': '컨텍스트 및 자동 압축',
|
|
'settings.providers.contextSettingsDesc': '사전 설정 한도가 자동으로 적용됩니다. 공급자가 한도를 변경하거나 사용자 지정 모델 ID를 사용할 때만 편집하세요.',
|
|
'settings.providers.contextSettingsEdit': '고급',
|
|
'settings.providers.contextSettingsHide': '숨기기',
|
|
'settings.providers.contextSummaryAuto': '구성된 모델을 자동 감지합니다. 알 수 없는 모델은 기본 제공 폴백을 사용합니다',
|
|
'settings.providers.contextFallbackAuto': '알 수 없는 모델: 자동',
|
|
'settings.providers.contextFallbackSummary': '알 수 없는 모델: {tokens}',
|
|
'settings.providers.modelContextWindows': '모델 컨텍스트 창',
|
|
'settings.providers.mainContextWindow': '메인 모델 컨텍스트',
|
|
'settings.providers.haikuContextWindow': 'Haiku 모델 컨텍스트',
|
|
'settings.providers.sonnetContextWindow': 'Sonnet 모델 컨텍스트',
|
|
'settings.providers.opusContextWindow': 'Opus 모델 컨텍스트',
|
|
'settings.providers.contextWindowPlaceholder': '예: 200000',
|
|
'settings.providers.modelContextWindowsDesc': '각 모델의 실제 컨텍스트 창을 사용합니다. 사전 설정은 자동으로 입력됩니다. 비워 두면 기본 제공 감지 또는 200K로 폴백합니다.',
|
|
'settings.providers.modelContextWindowNumberError': '정수를 입력하세요.',
|
|
'settings.providers.modelContextWindowRangeError': '16000에서 10000000 사이여야 합니다.',
|
|
'settings.providers.autoCompactWindow': '알 수 없는 모델 폴백 창',
|
|
'settings.providers.autoCompactWindowPlaceholder': '선택 사항, 예: 200000',
|
|
'settings.providers.autoCompactWindowDesc': '식별할 수 없는 모델에만 사용됩니다. 구성된 모델 창이 우선합니다.',
|
|
'settings.providers.autoCompactWindowNumberError': '정수를 입력하세요.',
|
|
'settings.providers.autoCompactWindowRangeError': '16000에서 10000000 사이여야 합니다.',
|
|
'settings.providers.testConnection': '연결 테스트',
|
|
'settings.providers.settingsJson': '설정 JSON',
|
|
'settings.providers.settingsJsonDesc': '~/.claude/cc-haha/settings.json — 직접 편집할 수 있습니다. 저장 시 기록됩니다.',
|
|
'settings.providers.jsonError': 'JSON 구문 오류: {error}',
|
|
'settings.providers.apiFormat': 'API 형식',
|
|
'settings.providers.apiFormatAnthropic': 'Anthropic Messages (네이티브)',
|
|
'settings.providers.apiFormatOpenaiChat': 'OpenAI Chat Completions (프록시)',
|
|
'settings.providers.apiFormatOpenaiResponses': 'OpenAI Responses API (프록시)',
|
|
'settings.providers.proxyHint': '요청은 로컬 프록시를 통해 변환됩니다',
|
|
'settings.providers.authStrategy': '인증 변수',
|
|
'settings.providers.authStrategyApiKey': 'API 키 (ANTHROPIC_API_KEY)',
|
|
'settings.providers.authStrategyApiKeyDesc': 'x-api-key를 사용한 Anthropic API 직접 액세스.',
|
|
'settings.providers.authStrategyAuthToken': 'Bearer 토큰 (ANTHROPIC_AUTH_TOKEN)',
|
|
'settings.providers.authStrategyAuthTokenDesc': 'Authorization Bearer를 사용하는 대부분의 타사 Anthropic 호환 서비스용.',
|
|
'settings.providers.authStrategyAuthTokenEmptyApiKey': 'Bearer + 빈 API_KEY',
|
|
'settings.providers.authStrategyAuthTokenEmptyApiKeyDesc': 'Anthropic API 키로 폴백하지 않아야 하는 OpenRouter/Ollama 형식 구성용.',
|
|
'settings.providers.authStrategyDualSameToken': '두 변수 모두에 토큰 쓰기',
|
|
'settings.providers.authStrategyDualSameTokenDesc': '두 변수를 모두 확인하는 Hugging Face Router 같은 서비스용.',
|
|
'settings.providers.authStrategyDualDummy': '두 변수 모두에 더미 값 쓰기',
|
|
'settings.providers.authStrategyDualDummyDesc': '자리 표시자 인증 값만 필요한 로컬 vLLM 호환 서비스용.',
|
|
|
|
// Settings > Permissions
|
|
'settings.permissions.title': '권한 모드',
|
|
'settings.permissions.description': '도구 실행 권한을 처리하는 방식을 제어합니다.',
|
|
'settings.permissions.default': '권한 확인',
|
|
'settings.permissions.defaultDesc': '도구를 실행하기 전에 확인합니다',
|
|
'settings.permissions.acceptEdits': '편집 수락',
|
|
'settings.permissions.acceptEditsDesc': '파일 편집은 자동 승인하고 나머지는 확인합니다',
|
|
'settings.permissions.plan': '계획 모드',
|
|
'settings.permissions.planDesc': '실행하지 않고 사고와 계획만 합니다',
|
|
'settings.permissions.bypass': '모두 우회',
|
|
'settings.permissions.bypassDesc': '모든 권한 확인을 건너뜁니다 (위험)',
|
|
|
|
// Settings > Adapters
|
|
'settings.tab.adapters': 'IM 어댑터',
|
|
'settings.adapters.description': 'Telegram, WeChat, DingTalk, WhatsApp, Feishu를 통해 Claude Code와 채팅할 수 있도록 IM 어댑터를 구성합니다. 자세한 설정은',
|
|
'settings.adapters.configurationDocs': '문서 링크',
|
|
'settings.adapters.descriptionAfterDocs': '를 참고하세요.',
|
|
'settings.adapters.telegram': 'Telegram',
|
|
'settings.adapters.feishu': 'Feishu',
|
|
'settings.adapters.wechat': 'WeChat',
|
|
'settings.adapters.dingtalk': 'DingTalk',
|
|
'settings.adapters.whatsapp': 'WhatsApp',
|
|
'settings.adapters.botToken': '봇 토큰',
|
|
'settings.adapters.botTokenPlaceholder': '@BotFather에서 받은 토큰 붙여넣기',
|
|
'settings.adapters.appId': 'App ID',
|
|
'settings.adapters.appIdPlaceholder': '예: cli_xxx',
|
|
'settings.adapters.appSecret': 'App Secret',
|
|
'settings.adapters.appSecretPlaceholder': 'Feishu 개방 플랫폼에서 가져오기',
|
|
'settings.adapters.feishuCreateBotTitle': 'Feishu 봇이 필요하신가요?',
|
|
'settings.adapters.feishuCreateBotDesc': '필요한 권한이 이미 구성된 Feishu 봇을 문서에 안내된 OpenClaw 템플릿으로 만드세요. 그런 다음 아래에 App ID와 App Secret을 붙여넣으세요.',
|
|
'settings.adapters.feishuCreateBotAction': 'Feishu 봇 만들기',
|
|
'settings.adapters.feishuCreateBotStepCreate': '템플릿에서 봇을 만듭니다.',
|
|
'settings.adapters.feishuCreateBotStepFill': 'App ID와 App Secret을 복사하여 여기에 입력합니다.',
|
|
'settings.adapters.encryptKey': 'Encrypt Key',
|
|
'settings.adapters.encryptKeyPlaceholder': '선택 사항',
|
|
'settings.adapters.verificationToken': 'Verification Token',
|
|
'settings.adapters.verificationTokenPlaceholder': '선택 사항',
|
|
'settings.adapters.allowedUsers': '허용된 사용자',
|
|
'settings.adapters.allowedUsersHint': '쉼표로 구분합니다. 비워 두면 페어링된 사용자만 허용합니다.',
|
|
'settings.adapters.tgAllowedUsersPlaceholder': '예: 123456789, 987654321',
|
|
'settings.adapters.fsAllowedUsersPlaceholder': '예: ou_xxx, ou_yyy',
|
|
'settings.adapters.wcAllowedUsersPlaceholder': '예: wx_user_id_1, wx_user_id_2',
|
|
'settings.adapters.dtAllowedUsersPlaceholder': '예: manager001, staff_yyy',
|
|
'settings.adapters.waAllowedUsersPlaceholder': '예: 15551234567@s.whatsapp.net',
|
|
'settings.adapters.defaultProject': '기본 프로젝트',
|
|
'settings.adapters.defaultProjectHint': '새 IM 세션의 기본 작업 디렉터리입니다. 비어 있으면 봇은 현재 사용자 작업 디렉터리를 사용합니다.',
|
|
'settings.adapters.streamingCard': '스트리밍 카드 모드',
|
|
'settings.adapters.streamingCardDesc': '더 나은 환경을 위해 카드를 실시간으로 업데이트합니다',
|
|
'settings.adapters.serverUrl': '서버 URL',
|
|
'settings.adapters.serverUrlPlaceholder': 'ws://127.0.0.1:3456',
|
|
'settings.adapters.save': '저장',
|
|
'settings.adapters.saved': '저장됨',
|
|
'settings.adapters.saving': '저장 중...',
|
|
'settings.adapters.startHint': '저장 후 어댑터를 실행하세요: cd adapters && bun run {platform}',
|
|
'settings.adapters.pairing': '페어링',
|
|
'settings.adapters.pairingDesc': '페어링 코드를 생성하여 IM 개인 채팅으로 봇에 보내 본인 확인을 연결합니다.',
|
|
'settings.adapters.generateCode': '코드 생성',
|
|
'settings.adapters.regenerateCode': '다시 생성',
|
|
'settings.adapters.codeExpired': '만료됨',
|
|
'settings.adapters.codeExpiresIn': '만료까지',
|
|
'settings.adapters.minutes': '분',
|
|
'settings.adapters.pairingCodeHint': '이 코드를 DingTalk, Feishu, WeChat, WhatsApp 또는 Telegram 개인 채팅에서 봇에 보내세요. WeChat과 WhatsApp은 먼저 QR 연결이 필요합니다.',
|
|
'settings.adapters.pairedUsers': '페어링된 사용자',
|
|
'settings.adapters.noPairedUsers': '아직 페어링된 사용자가 없습니다',
|
|
'settings.adapters.unbind': '연결 해제',
|
|
'settings.adapters.unbindConfirm': '이 사용자의 연결을 해제하시겠습니까? 봇을 사용하려면 다시 페어링해야 합니다.',
|
|
'settings.adapters.platform.telegram': 'Telegram',
|
|
'settings.adapters.platform.feishu': 'Feishu',
|
|
'settings.adapters.platform.wechat': 'WeChat',
|
|
'settings.adapters.platform.dingtalk': 'DingTalk',
|
|
'settings.adapters.platform.whatsapp': 'WhatsApp',
|
|
'settings.adapters.dingtalkQrTitle': 'QR로 DingTalk 봇 연결',
|
|
'settings.adapters.dingtalkQrDesc': 'DingTalk 모바일 앱으로 스캔하여 봇을 만들고 승인합니다. 성공하면 Client ID / Secret이 자동으로 저장됩니다.',
|
|
'settings.adapters.dingtalkStartAuth': '스캔하여 연결',
|
|
'settings.adapters.dingtalkUnbindBot': '봇 계정 연결 해제',
|
|
'settings.adapters.dingtalkQrAlt': 'DingTalk 승인 QR 코드',
|
|
'settings.adapters.dingtalkWaiting': 'DingTalk 스캔 확인을 기다리는 중...',
|
|
'settings.adapters.dingtalkBound': 'DingTalk 봇이 연결되었습니다.',
|
|
'settings.adapters.dingtalkAuthFailed': 'DingTalk QR 코드 승인에 실패했습니다.',
|
|
'settings.adapters.dingtalkAuthExpired': 'DingTalk QR 코드 승인이 만료되었습니다. 새 QR 코드를 생성하세요.',
|
|
'settings.adapters.dingtalkUnbindFailed': 'DingTalk 연결 해제에 실패했습니다.',
|
|
'settings.adapters.dingtalkUnbindBotConfirm': '이 DingTalk 봇 계정의 연결을 해제하시겠습니까? DingTalk가 메시지를 주고받을 수 있으려면 다시 스캔해야 합니다.',
|
|
'settings.adapters.dingtalkClientId': 'Client ID',
|
|
'settings.adapters.dingtalkClientIdPlaceholder': 'QR 인증으로 자동 입력되거나 수동으로 입력',
|
|
'settings.adapters.dingtalkClientSecret': 'Client Secret',
|
|
'settings.adapters.dingtalkClientSecretPlaceholder': 'QR 인증으로 자동 입력되거나 수동으로 입력',
|
|
'settings.adapters.dingtalkEndpoint': 'Stream 엔드포인트',
|
|
'settings.adapters.dingtalkEndpointPlaceholder': '기본값 https://api.dingtalk.com',
|
|
'settings.adapters.dingtalkPermissionCardTemplateId': '권한 카드 템플릿 ID',
|
|
'settings.adapters.dingtalkPermissionCardTemplateIdPlaceholder': '선택 사항 대화형 카드 템플릿 ID',
|
|
'settings.adapters.dingtalkPermissionCardTemplateIdHint': '설정하면 권한 요청에 먼저 DingTalk 대화형 카드를 사용합니다. 비워 두면 /allow, /always, /deny 텍스트 승인을 사용합니다.',
|
|
'settings.adapters.wechatBind': '스캔하여 연결',
|
|
'settings.adapters.wechatRebind': '다시 스캔',
|
|
'settings.adapters.wechatConnected': 'WeChat이 연결되었습니다',
|
|
'settings.adapters.wechatNotConnected': 'WeChat이 연결되지 않았습니다',
|
|
'settings.adapters.wechatQrHint': 'QR 코드를 생성하고 WeChat에서 스캔한 다음 확인하세요. 연결 후 어댑터가 다시 시작됩니다.',
|
|
'settings.adapters.wechatQrAlt': 'WeChat 연결 QR 코드',
|
|
'settings.adapters.wechatWaiting': 'WeChat 확인을 기다리는 중...',
|
|
'settings.adapters.wechatBindSuccess': 'WeChat 연결에 성공했습니다.',
|
|
'settings.adapters.wechatUnbindAccount': 'WeChat 계정 연결 해제',
|
|
'settings.adapters.wechatUnbindAccountConfirm': '이 WeChat 계정의 연결을 해제하시겠습니까? WeChat이 메시지를 주고받을 수 있으려면 다시 스캔해야 합니다.',
|
|
'settings.adapters.wechatUnbound': 'WeChat 계정 연결을 해제했습니다.',
|
|
'settings.adapters.wechatUnbindFailed': 'WeChat 연결 해제에 실패했습니다.',
|
|
'settings.adapters.wechatAllowedUsersHint': 'QR 연결은 계정만 활성화합니다. 사용자는 여전히 페어링 코드를 보내야 하거나, 여기에 허용할 WeChat 사용자 ID를 추가할 수 있습니다.',
|
|
'settings.adapters.whatsappBind': '스캔하여 연결',
|
|
'settings.adapters.whatsappRebind': '다시 스캔',
|
|
'settings.adapters.whatsappConnected': 'WhatsApp이 연결되었습니다',
|
|
'settings.adapters.whatsappNotConnected': 'WhatsApp이 연결되지 않았습니다',
|
|
'settings.adapters.whatsappQrHint': 'QR 코드를 생성한 뒤 WhatsApp의 연결된 기기에서 스캔하세요. 연결 후 어댑터가 다시 시작됩니다.',
|
|
'settings.adapters.whatsappQrAlt': 'WhatsApp 연결 QR 코드',
|
|
'settings.adapters.whatsappWaiting': 'WhatsApp 스캔 확인을 기다리는 중...',
|
|
'settings.adapters.whatsappBindSuccess': 'WhatsApp 연결에 성공했습니다.',
|
|
'settings.adapters.whatsappBindFailed': 'WhatsApp 연결에 실패했습니다.',
|
|
'settings.adapters.whatsappUnbindAccount': 'WhatsApp 계정 연결 해제',
|
|
'settings.adapters.whatsappUnbindAccountConfirm': '이 WhatsApp 계정의 연결을 해제하시겠습니까? WhatsApp이 메시지를 주고받을 수 있으려면 다시 스캔해야 합니다.',
|
|
'settings.adapters.whatsappUnbound': 'WhatsApp 계정 연결을 해제했습니다.',
|
|
'settings.adapters.whatsappUnbindFailed': 'WhatsApp 연결 해제에 실패했습니다.',
|
|
'settings.adapters.whatsappAllowedUsersHint': 'QR 연결은 WhatsApp Web 계정만 활성화합니다. 사용자는 여전히 페어링 코드를 보내야 하거나, 여기에 허용할 WhatsApp JID를 추가할 수 있습니다.',
|
|
|
|
// Settings > MCP
|
|
'settings.mcp.title': 'MCP 서버',
|
|
'settings.mcp.description': 'Claude Code용 외부 도구와 데이터 소스를 연결합니다. Local, Project, User 범위는 CLI와 동일하게 동작합니다.',
|
|
'settings.mcp.addServer': '서버 추가',
|
|
'settings.mcp.empty': '아직 구성된 MCP 서버가 없습니다',
|
|
'settings.mcp.emptyHint': '사용자 지정 stdio, HTTP 또는 SSE MCP 서버를 추가하여 도구 액세스 확장을 시작하세요.',
|
|
'settings.mcp.stats.total': '총 서버',
|
|
'settings.mcp.stats.connected': '현재 연결됨',
|
|
'settings.mcp.stats.attention': '주의 필요',
|
|
'settings.mcp.scope.project': '프로젝트',
|
|
'settings.mcp.scope.local': '로컬',
|
|
'settings.mcp.scope.user': '사용자',
|
|
'settings.mcp.scope.plugin': '플러그인',
|
|
'settings.mcp.scopeDesc.local': '한 프로젝트 내에서 본인 전용입니다. 사용자 구성에 저장되며 선택한 프로젝트로 범위가 제한됩니다.',
|
|
'settings.mcp.scopeDesc.project': '선택한 프로젝트의 `.mcp.json`을 통해 팀과 공유됩니다.',
|
|
'settings.mcp.scopeDesc.user': '사용자 계정의 모든 프로젝트에서 사용할 수 있습니다.',
|
|
'settings.mcp.scope.dynamic': '기본 제공',
|
|
'settings.mcp.scope.enterprise': '엔터프라이즈',
|
|
'settings.mcp.scope.claudeai': 'Claude.ai',
|
|
'settings.mcp.scope.managed': '관리됨',
|
|
'settings.mcp.transport.http': 'Streamable HTTP',
|
|
'settings.mcp.globalOnlyHint': '한 프로젝트용은 Local, `.mcp.json`용은 Project, 모든 프로젝트용은 User를 선택하세요.',
|
|
'settings.mcp.currentProjectHint': '선택한 프로젝트: {path}',
|
|
'settings.mcp.form.back': '서버 목록으로 돌아가기',
|
|
'settings.mcp.form.createTitle': '사용자 지정 MCP에 연결',
|
|
'settings.mcp.form.createHint': '현재 Claude Code가 지원하는 필드로 사용자 지정 MCP 서버를 설정합니다.',
|
|
'settings.mcp.form.editTitle': '{name} MCP 업데이트',
|
|
'settings.mcp.form.editHint': '연결 세부 정보를 확인하고 변경 사항을 저장하거나 데스크톱 앱에서 이 서버를 다시 연결합니다.',
|
|
'settings.mcp.form.transportLocked': 'MCP 서버 유형을 전환하려면 먼저 제거하세요.',
|
|
'settings.mcp.form.uninstall': '제거',
|
|
'settings.mcp.form.reconnect': '다시 연결',
|
|
'settings.mcp.form.save': '저장',
|
|
'settings.mcp.form.name': '이름',
|
|
'settings.mcp.form.namePlaceholder': 'MCP 서버 이름',
|
|
'settings.mcp.form.scope': '구성 범위',
|
|
'settings.mcp.form.transport': '전송',
|
|
'settings.mcp.form.status': '상태',
|
|
'settings.mcp.form.location': '구성 위치',
|
|
'settings.mcp.form.rawConfig': '원시 구성',
|
|
'settings.mcp.form.command': '실행 명령',
|
|
'settings.mcp.form.commandPlaceholder': 'npx',
|
|
'settings.mcp.form.commandHostHint': 'STDIO MCP 명령은 호스트 컴퓨터에서 실행됩니다. Node.js, Python, Bun, uv 같은 런타임은 직접 설치하고 명령이 PATH에서 사용 가능한지 확인하세요.',
|
|
'settings.mcp.form.arguments': '인수',
|
|
'settings.mcp.form.argumentPlaceholder': 'chrome-devtools-mcp@latest',
|
|
'settings.mcp.form.addArgument': '인수 추가',
|
|
'settings.mcp.form.environmentVariables': '환경 변수',
|
|
'settings.mcp.form.addEnv': '환경 변수 추가',
|
|
'settings.mcp.form.keyPlaceholder': '키',
|
|
'settings.mcp.form.valuePlaceholder': '값',
|
|
'settings.mcp.form.url': 'URL',
|
|
'settings.mcp.form.sseUrl': 'SSE URL',
|
|
'settings.mcp.form.urlPlaceholder': 'https://mcp.example.com/mcp',
|
|
'settings.mcp.form.headers': '헤더',
|
|
'settings.mcp.form.addHeader': '헤더 추가',
|
|
'settings.mcp.form.oauthClientId': 'OAuth 클라이언트 ID',
|
|
'settings.mcp.form.oauthClientIdPlaceholder': '선택 사항 클라이언트 ID',
|
|
'settings.mcp.form.oauthCallbackPort': 'OAuth 콜백 포트',
|
|
'settings.mcp.form.oauthCallbackPortPlaceholder': '선택 사항 고정 콜백 포트',
|
|
'settings.mcp.form.headersHelper': '헤더 도우미 스크립트',
|
|
'settings.mcp.form.headersHelperPlaceholder': '선택 사항 도우미 명령 경로',
|
|
'settings.mcp.form.deleteTitle': 'MCP 서버 삭제',
|
|
'settings.mcp.form.cancel': '취소',
|
|
'settings.mcp.form.confirmDelete': '삭제',
|
|
'settings.mcp.form.deleteConfirm': 'MCP 서버 "{name}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',
|
|
'settings.mcp.form.deleteConfirmBody': 'MCP 서버 "{name}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',
|
|
'settings.mcp.targetProject.title': '대상 프로젝트',
|
|
'settings.mcp.targetProject.selected': '현재 다음 프로젝트의 로컬 및 공유 MCP 서버를 표시하고 있습니다: {path}',
|
|
'settings.mcp.targetProject.empty': '프로젝트 전용 또는 공유 MCP 서버를 확인할 프로젝트를 선택하세요.',
|
|
'settings.mcp.targetProject.emptyWithCurrent': '대상 프로젝트를 선택하세요. 현재 활성 세션: {path}',
|
|
'settings.mcp.targetProject.localSelected': '이 서버는 다음 안에서 본인 전용이 됩니다: {path}',
|
|
'settings.mcp.targetProject.localEmpty': '이 비공개 MCP 서버를 받을 프로젝트를 선택하세요.',
|
|
'settings.mcp.targetProject.projectSelected': '이 서버는 다음을 통해 공유됩니다: {path}/.mcp.json',
|
|
'settings.mcp.targetProject.projectEmpty': '이 공유 MCP 서버를 `.mcp.json`으로 받을 프로젝트를 선택하세요.',
|
|
'settings.mcp.targetProject.globalTitle': '전역 설치 대상',
|
|
'settings.mcp.targetProject.globalHint': 'User 범위는 대상 프로젝트가 필요 없습니다. 전역 Claude 구성에 저장되며 어디서나 사용할 수 있습니다.',
|
|
'settings.mcp.toast.created': 'MCP 서버 "{name}"을(를) 만들었습니다',
|
|
'settings.mcp.toast.saved': 'MCP 서버 "{name}"을(를) 저장했습니다',
|
|
'settings.mcp.toast.deleted': 'MCP 서버 "{name}"을(를) 삭제했습니다',
|
|
'settings.mcp.toast.enabled': 'MCP 서버 "{name}"을(를) 사용 설정했습니다',
|
|
'settings.mcp.toast.disabled': 'MCP 서버 "{name}"을(를) 사용 중지했습니다',
|
|
'settings.mcp.toast.reconnected': 'MCP 서버 "{name}"을(를) 다시 연결했습니다',
|
|
'settings.mcp.toast.saveFailed': 'MCP 서버를 저장하지 못했습니다',
|
|
'settings.mcp.toast.deleteFailed': 'MCP 서버를 삭제하지 못했습니다',
|
|
'settings.mcp.toast.toggleFailed': 'MCP 서버 상태를 업데이트하지 못했습니다',
|
|
'settings.mcp.toast.reconnectFailed': 'MCP 서버를 다시 연결하지 못했습니다',
|
|
|
|
// Settings > Agents
|
|
'settings.tab.agents': '에이전트',
|
|
'settings.agents.title': '설치된 에이전트',
|
|
'settings.agents.description': '기본 제공, 프로젝트, 사용자 소스 전반에서 Claude가 사용할 수 있는 에이전트를 살펴봅니다. TUI에서 /agents를 사용하면 활성 소스와 재정의를 확인할 수 있습니다.',
|
|
'settings.agents.browserTitle': '설치된 에이전트 살펴보기',
|
|
'settings.agents.browserEyebrow': '에이전트 브라우저',
|
|
'settings.agents.entryEyebrow': '에이전트 프로필',
|
|
'settings.agents.empty': '아직 사용할 수 있는 에이전트가 없습니다.',
|
|
'settings.agents.emptyHint': 'Claude 설정이나 프로젝트에 에이전트 정의를 추가하면 여기에 표시됩니다.',
|
|
'settings.agents.model': '모델',
|
|
'settings.agents.tools': '도구',
|
|
'settings.agents.systemPrompt': '시스템 프롬프트',
|
|
'settings.agents.noDescription': '설명 없음',
|
|
'settings.agents.noSystemPrompt': '정의된 시스템 프롬프트가 없습니다.',
|
|
'settings.agents.backToList': '목록으로 돌아가기',
|
|
'settings.agents.agentCount': '{count} 에이전트',
|
|
'settings.agents.summary.totalAgents': '총 에이전트',
|
|
'settings.agents.summary.activeAgents': '활성 에이전트',
|
|
'settings.agents.summary.sources': '소스',
|
|
'settings.agents.summary.source': '소스',
|
|
'settings.agents.summary.model': '모델',
|
|
'settings.agents.summary.tools': '도구',
|
|
'settings.agents.summary.status': '상태',
|
|
'settings.agents.groupHint': '{source}에서 사용 가능한 에이전트 {count}개',
|
|
'settings.agents.status.active': '활성',
|
|
'settings.agents.status.available': '사용 가능',
|
|
'settings.agents.overriddenBy': '{source}에 의해 재정의됨',
|
|
'settings.agents.overriddenByShort': '{source}에 의해 가려짐',
|
|
'settings.agents.toolCount': '{count} 도구',
|
|
'settings.agents.noTools': '도구 제한 없음',
|
|
'settings.agents.promptHint': '현재 시스템 프롬프트를 읽고 이 에이전트의 범위를 비교합니다.',
|
|
'settings.agents.source.userSettings': '사용자',
|
|
'settings.agents.source.projectSettings': '프로젝트',
|
|
'settings.agents.source.localSettings': '로컬',
|
|
'settings.agents.source.policySettings': '관리됨',
|
|
'settings.agents.source.plugin': '플러그인',
|
|
'settings.agents.source.flagSettings': 'CLI 인수',
|
|
'settings.agents.source.built-in': '기본 제공',
|
|
|
|
// Settings > Skills
|
|
'settings.skills.title': '설치된 스킬',
|
|
'settings.skills.description': '스킬은 Claude에 전문 기능을 추가합니다. 스킬은 ~/.claude/skills/에서 관리합니다',
|
|
'settings.skills.browserTitle': '설치된 스킬 살펴보기',
|
|
'settings.skills.browserEyebrow': '스킬 브라우저',
|
|
'settings.skills.browserDescription': '번들, 프로젝트, 사용자 스킬을 확인하고 범위를 비교하며, 각 스킬 폴더를 열어 문서와 소스 파일을 읽습니다.',
|
|
'settings.skills.searchLabel': '스킬 검색',
|
|
'settings.skills.searchPlaceholder': '이름, 설명 또는 소스로 스킬 검색...',
|
|
'settings.skills.searchResultCount': '{total}개 중 {count}개의 스킬이 일치',
|
|
'settings.skills.clearSearch': '스킬 검색 지우기',
|
|
'settings.skills.noSearchResults': '일치하는 스킬이 없습니다',
|
|
'settings.skills.noSearchResultsHint': '다른 키워드를 시도하거나 검색을 지워 모든 스킬을 표시하세요.',
|
|
'settings.skills.entryEyebrow': '스킬 항목',
|
|
'settings.skills.slashCommand': '/slash',
|
|
'settings.skills.tokenEstimate': '약 {count} 토큰',
|
|
'settings.skills.tokenEstimateShort': '약 {count}',
|
|
'settings.skills.summary.totalSkills': '총 스킬',
|
|
'settings.skills.summary.totalFiles': '파일',
|
|
'settings.skills.summary.sources': '소스',
|
|
'settings.skills.summary.tokens': '예상 토큰 수',
|
|
'settings.skills.summary.source': '소스',
|
|
'settings.skills.summary.entry': '항목',
|
|
'settings.skills.groupHint': '{source}에서 사용 가능한 스킬 {count}개',
|
|
'settings.skills.ready': '준비됨',
|
|
'settings.skills.unavailable': '사용 불가',
|
|
'settings.skills.empty': '설치된 스킬이 없습니다',
|
|
'settings.skills.emptyHint': '~/.claude/skills/에 스킬을 추가하여 시작하세요',
|
|
'settings.skills.back': '목록으로 돌아가기',
|
|
'settings.skills.files': '파일',
|
|
'settings.skills.entryFile': '항목 파일',
|
|
'settings.skills.metaTitle': '스킬 메타데이터',
|
|
'settings.skills.filesPanel': '파일',
|
|
'settings.skills.filesPanelHint': '항목 파일과 보조 구현 파일을 살펴봅니다.',
|
|
'settings.skills.readingMode': '{mode}(으)로 보는 중',
|
|
'settings.skills.docMode': '문서 모드',
|
|
'settings.skills.codeMode': '코드 모드',
|
|
'settings.skills.source.user': '사용자',
|
|
'settings.skills.source.project': '프로젝트',
|
|
'settings.skills.source.plugin': '플러그인',
|
|
'settings.skills.source.mcp': 'MCP',
|
|
'settings.skills.source.bundled': '기본 제공',
|
|
|
|
// Settings > Memory
|
|
'settings.tab.memory': '메모리',
|
|
'settings.memory.title': '프로젝트 메모리',
|
|
'settings.memory.description': 'Claude가 각 프로젝트용으로 작성하는 Markdown 메모리 파일을 확인하고 편집합니다. 이 파일들은 ~/.claude/projects/<project>/memory/ 아래에 저장되며 CLI 런타임에 의해 로드됩니다.',
|
|
'settings.memory.refresh': '새로 고침',
|
|
'settings.memory.projects': '프로젝트',
|
|
'settings.memory.files': '메모리 파일',
|
|
'settings.memory.resourceManager': '리소스 관리자',
|
|
'settings.memory.editor': '편집기',
|
|
'settings.memory.edit': '편집',
|
|
'settings.memory.preview': '미리 보기',
|
|
'settings.memory.rendered': '렌더링됨',
|
|
'settings.memory.emptyProjects': '메모리가 있는 프로젝트를 찾을 수 없습니다.',
|
|
'settings.memory.emptyFiles': '아직 메모리 파일을 찾을 수 없습니다.',
|
|
'settings.memory.selectFile': '메모리 파일을 선택하세요.',
|
|
'settings.memory.selectProject': '프로젝트를 선택하세요.',
|
|
'settings.memory.noFileSelected': '선택된 파일이 없습니다',
|
|
'settings.memory.current': '현재',
|
|
'settings.memory.indexFile': '인덱스',
|
|
'settings.memory.missing': '없음',
|
|
'settings.memory.fileCount': '{count} 파일',
|
|
'settings.memory.unsaved': '저장 안 됨',
|
|
'settings.memory.saved': '저장됨',
|
|
'settings.memory.revert': '되돌리기',
|
|
'settings.memory.discardUnsavedConfirm': '저장하지 않은 메모리 변경을 버릴까요?',
|
|
'settings.memory.projectSearchPlaceholder': '경로로 프로젝트 검색...',
|
|
'settings.memory.fileSearchPlaceholder': '메모리 파일 검색...',
|
|
'settings.memory.resourceSearchPlaceholder': '프로젝트 또는 메모리 파일 검색...',
|
|
'settings.memory.noProjectMatches': '이 검색과 일치하는 프로젝트가 없습니다.',
|
|
'settings.memory.noFileMatches': '이 검색과 일치하는 메모리 파일이 없습니다.',
|
|
'settings.memory.clearSearch': '검색 지우기',
|
|
'settings.memory.toggleFolder': '{name} 전환',
|
|
|
|
// Settings > Plugins
|
|
'settings.plugins.title': '설치된 플러그인',
|
|
'settings.plugins.description': '설치된 플러그인을 확인하고 상태를 파악하며 데스크톱 런타임에 변경 사항을 적용합니다.',
|
|
'settings.plugins.browserTitle': '설치된 플러그인 살펴보기',
|
|
'settings.plugins.browserEyebrow': '플러그인 관리자',
|
|
'settings.plugins.browserDescription': '플러그인은 스킬, 에이전트, 후크, MCP 서버, 언어 도구를 묶은 것입니다. 이 화면은 설치된 플러그인, 상태, 런타임 적용 피드백에 데스크톱 화면을 집중시킵니다.',
|
|
'settings.plugins.entryEyebrow': '플러그인 세부 정보',
|
|
'settings.plugins.summary.total': '총 플러그인',
|
|
'settings.plugins.summary.enabled': '사용',
|
|
'settings.plugins.summary.attention': '주의 필요',
|
|
'settings.plugins.summary.marketplaces': '마켓플레이스',
|
|
'settings.plugins.summary.skills': '스킬',
|
|
'settings.plugins.summary.agents': '에이전트',
|
|
'settings.plugins.summary.mcp': 'MCP',
|
|
'settings.plugins.summary.hooks': '후크',
|
|
'settings.plugins.group.attention': '주의 필요',
|
|
'settings.plugins.group.enabled': '사용',
|
|
'settings.plugins.group.disabled': '사용 안 함',
|
|
'settings.plugins.groupHint': '이 섹션에는 {count}개의 플러그인이 있습니다',
|
|
'settings.plugins.refresh': '새로 고침',
|
|
'settings.plugins.apply': '변경 사항 적용',
|
|
'settings.plugins.applyHint': '사용, 사용 안 함, 업데이트 변경 사항은 현재 데스크톱 런타임에 적용한 후 적용됩니다.',
|
|
'settings.plugins.lastReload': '마지막 적용: 활성 플러그인 {enabled}개, 플러그인 스킬 {skills}개, 오류 {errors}건.',
|
|
'settings.plugins.reloadToast': '플러그인 변경 사항을 적용했습니다: 활성 플러그인 {enabled}개, 스킬 {skills}개, 오류 {errors}건.',
|
|
'settings.plugins.marketplacesTitle': '알려진 마켓플레이스',
|
|
'settings.plugins.marketplacesHint': '이 컴퓨터에 이미 구성된 마켓플레이스 소스의 읽기 전용 요약입니다.',
|
|
'settings.plugins.marketplaceAutoUpdateOn': '자동 업데이트 켜짐',
|
|
'settings.plugins.marketplaceAutoUpdateOff': '자동 업데이트 꺼짐',
|
|
'settings.plugins.marketplaceInstalledCount': '{count}개 설치됨',
|
|
'settings.plugins.marketplaceUpdatedAt': '{value} 업데이트됨',
|
|
'settings.plugins.status.enabled': '사용',
|
|
'settings.plugins.status.disabled': '사용 안 함',
|
|
'settings.plugins.status.attention': '주의',
|
|
'settings.plugins.scope.user': '사용자',
|
|
'settings.plugins.scope.project': '프로젝트',
|
|
'settings.plugins.scope.local': '로컬',
|
|
'settings.plugins.scope.managed': '관리됨',
|
|
'settings.plugins.scope.builtin': '기본 제공',
|
|
'settings.plugins.empty': '설치된 플러그인이 없습니다',
|
|
'settings.plugins.emptyHint': 'Claude Code에서 플러그인을 설치하면 여기서 관리할 수 있습니다.',
|
|
'settings.plugins.back': '목록으로 돌아가기',
|
|
'settings.plugins.noDescription': '이 플러그인에 대한 설명이 없습니다.',
|
|
'settings.plugins.errorCount': '{count}건의 오류',
|
|
'settings.plugins.enable': '사용',
|
|
'settings.plugins.disable': '사용 안 함',
|
|
'settings.plugins.update': '업데이트',
|
|
'settings.plugins.uninstall': '제거',
|
|
'settings.plugins.confirmUninstall': '플러그인 "{name}"을(를) 제거하시겠습니까? 선택한 범위의 설치된 복사본이 삭제됩니다.',
|
|
'settings.plugins.selectionCount': '{count}개 선택됨',
|
|
'settings.plugins.clearSelection': '지우기',
|
|
'settings.plugins.enableSelected': '선택 항목 사용',
|
|
'settings.plugins.disableSelected': '선택 항목 사용 안 함',
|
|
'settings.plugins.selectPlugin': '{name} 선택',
|
|
'settings.plugins.bulkEnableTitle': '선택한 플러그인 {count}개를 사용하시겠습니까?',
|
|
'settings.plugins.bulkDisableTitle': '선택한 플러그인 {count}개를 사용 안 함으로 변경하시겠습니까?',
|
|
'settings.plugins.bulkEnableBody': '{names}을(를) 사용하고 플러그인 변경 사항을 현재 데스크톱 런타임에 적용합니다.',
|
|
'settings.plugins.bulkDisableBody': '{names}을(를) 사용 안 함으로 변경하고 플러그인 변경 사항을 현재 데스크톱 런타임에 적용합니다.',
|
|
'settings.plugins.bulkEnableToast': '플러그인 {count}개를 사용하고 변경 사항을 적용했습니다.',
|
|
'settings.plugins.bulkDisableToast': '플러그인 {count}개를 사용 안 함으로 변경하고 변경 사항을 적용했습니다.',
|
|
'settings.plugins.author': '작성자: {value}',
|
|
'settings.plugins.projectPath': '프로젝트: {value}',
|
|
'settings.plugins.installPath': '설치 위치: {value}',
|
|
'settings.plugins.managedHint': '이 플러그인은 정책에 의해 관리되며 데스크톱 앱에서 변경할 수 없습니다.',
|
|
'settings.plugins.builtinHint': '기본 제공 플러그인은 여기서 다시 로드할 수 있지만 설치 및 제거 작업은 표시되지 않습니다.',
|
|
'settings.plugins.errorsTitle': '플러그인 오류',
|
|
'settings.plugins.capabilitiesTitle': '번들된 기능',
|
|
'settings.plugins.capabilitiesHint': '이 플러그인이 매니페스트와 런타임 통합을 로드한 후 노출하는 기능입니다.',
|
|
'settings.plugins.sharedNavigationDisabled': '공유 관리 페이지에서 이 플러그인의 스킬, 에이전트, MCP 항목을 열기 전에 플러그인을 사용 설정하고 변경 사항을 적용하세요.',
|
|
'settings.plugins.capabilityEmpty': '노출 없음',
|
|
'settings.plugins.capability.skills': '{count} 스킬',
|
|
'settings.plugins.capability.agents': '{count} 에이전트',
|
|
'settings.plugins.capability.mcpServers': '{count} MCP 서버',
|
|
'settings.plugins.capabilityLabel.skills': '스킬',
|
|
'settings.plugins.capabilityLabel.commands': '명령',
|
|
'settings.plugins.capabilityLabel.agents': '에이전트',
|
|
'settings.plugins.capabilityLabel.hooks': '후크',
|
|
'settings.plugins.capabilityLabel.mcpServers': 'MCP 서버',
|
|
'settings.plugins.capabilityLabel.lspServers': 'LSP 서버',
|
|
|
|
// Settings > About
|
|
'settings.tab.about': '정보',
|
|
'settings.about.version': '버전',
|
|
'settings.about.changelog': '릴리스 노트',
|
|
'settings.about.repo': 'GitHub 저장소',
|
|
'settings.about.starHint': '이 프로젝트가 도움이 되었다면 Star를 눌러 주세요',
|
|
'settings.about.feedback': '문제 신고',
|
|
'settings.about.feedbackDesc': '버그나 사용 관련 질문은 GitHub Issue를 작성하세요',
|
|
'settings.about.author': '작성자',
|
|
'settings.about.socialMedia': '소셜 미디어',
|
|
'settings.about.updates': '앱 업데이트',
|
|
'settings.about.updatesDesc': 'GitHub Releases를 확인하고 설치 관리자를 다운로드한 후 설치 후 다시 시작합니다.',
|
|
|
|
// Settings > Computer Use
|
|
'settings.tab.computerUse': '컴퓨터 사용',
|
|
'settings.computerUse.title': '컴퓨터 사용',
|
|
'settings.computerUse.description': 'Claude가 스크린샷을 찍고 클릭, 입력하며 컴퓨터를 제어할 수 있도록 허용합니다. Python 3가 필요합니다. macOS에서는 접근성 권한도 필요합니다.',
|
|
'settings.computerUse.enabledToggle': '사용',
|
|
'settings.computerUse.disabledHint': '컴퓨터 사용이 꺼져 있습니다. 새 세션은 computer-use MCP 서버를 주입하거나 데스크톱 제어 도구를 코딩 에이전트에 노출하지 않습니다.',
|
|
'settings.computerUse.notSupported': '컴퓨터 사용은 macOS와 Windows에서만 지원됩니다.',
|
|
'settings.computerUse.python': 'Python 3',
|
|
'settings.computerUse.pythonNotFound': '설치되어 있지 않습니다. 먼저 Python 3를 설치하세요.',
|
|
'settings.computerUse.pythonFound': '설치됨',
|
|
'settings.computerUse.pythonCustomInvalid': '사용자 지정 인터프리터를 사용할 수 없습니다',
|
|
'settings.computerUse.pythonPathLabel': 'Python 인터프리터 경로',
|
|
'settings.computerUse.pythonPathPlaceholder': '자동 감지 또는 python.exe / python3 선택',
|
|
'settings.computerUse.pythonPathHint': '비워 두면 자동 감지합니다. 런타임 설정에서 우선하려면 conda, pyenv 또는 기타 사용자 지정 환경의 Python 실행 파일을 선택하세요.',
|
|
'settings.computerUse.pythonPathBrowse': '찾아보기',
|
|
'settings.computerUse.pythonPathSave': '적용',
|
|
'settings.computerUse.pythonPathAuto': '자동',
|
|
'settings.computerUse.pythonPathSaved': '저장했습니다. 다시 확인할 때 이 인터프리터를 우선합니다.',
|
|
'settings.computerUse.pythonPathSaveFailed': '저장에 실패했습니다. 다시 시도하세요.',
|
|
'settings.computerUse.pythonPathDialogTitle': 'Python 인터프리터 선택',
|
|
'settings.computerUse.pythonPathDialogFailed': '파일 선택기를 열 수 없습니다. 경로를 수동으로 붙여넣으세요.',
|
|
'settings.computerUse.venv': '가상 환경',
|
|
'settings.computerUse.venvReady': '준비됨',
|
|
'settings.computerUse.venvNotReady': '만들어지지 않음',
|
|
'settings.computerUse.deps': '종속성',
|
|
'settings.computerUse.depsReady': '설치됨',
|
|
'settings.computerUse.depsNotReady': '설치되지 않음',
|
|
'settings.computerUse.accessibility': '접근성 권한',
|
|
'settings.computerUse.screenRecording': '화면 기록 권한',
|
|
'settings.computerUse.permGranted': '허용됨',
|
|
'settings.computerUse.permDenied': '거부됨 — 시스템 설정 > 개인정보 보호 및 보안 을 열어 허용하세요',
|
|
'settings.computerUse.permUnknown': '확인하려면 먼저 환경을 설정하세요',
|
|
'settings.computerUse.permScreenRecordingUnknownSoft': '여기서는 자동 감지가 불안정할 수 있습니다. 시스템 설정에서 이미 사용으로 표시되어 있으면 일반적으로 컴퓨터 사용을 계속할 수 있습니다',
|
|
'settings.computerUse.permScreenRecordingManual': '자동 감지할 수 없습니다 — 시스템 설정에서 확인하세요',
|
|
'settings.computerUse.setupBtn': '환경 설치',
|
|
'settings.computerUse.setupRunning': '설치 중...',
|
|
'settings.computerUse.setupSuccess': '환경 설정이 완료되었습니다!',
|
|
'settings.computerUse.setupFail': '설정에 실패했습니다',
|
|
'settings.computerUse.allReady': '모든 검사를 통과했습니다. 컴퓨터 사용 준비가 완료되었습니다.',
|
|
'settings.computerUse.downloadPython': 'Python 3 다운로드',
|
|
'settings.computerUse.recheckBtn': '상태 다시 확인',
|
|
'settings.computerUse.requirementsLabel': '필요한 패키지',
|
|
'settings.computerUse.appsTitle': '승인된 앱',
|
|
'settings.computerUse.appsDescription': '컴퓨터 사용을 위해 앱을 사전 승인합니다. 승인된 앱은 실행 중 확인 없이 Claude가 제어할 수 있습니다.',
|
|
'settings.computerUse.appsLoading': '설치된 앱을 불러오는 중...',
|
|
'settings.computerUse.appsEmpty': '설치된 앱을 찾을 수 없습니다. 먼저 환경을 설정하세요.',
|
|
'settings.computerUse.appsSearch': '앱 검색...',
|
|
'settings.computerUse.appsSaved': '저장됨',
|
|
'settings.computerUse.openAccessibility': '접근성 설정 열기',
|
|
'settings.computerUse.openScreenRecording': '화면 기록 설정 열기',
|
|
'settings.computerUse.permRestartHint': '허용한 후 적용하려면 앱을 다시 시작하세요.',
|
|
'settings.computerUse.flagClipboard': '클립보드 액세스',
|
|
'settings.computerUse.flagSystemKeys': '시스템 키 조합',
|
|
|
|
// Settings > General - Storage
|
|
'settings.general.modeSwitchTitle': '데이터 저장 위치를 전환하시겠습니까?',
|
|
'settings.general.modeSwitchConfirm': '저장하고 다시 시작',
|
|
'settings.general.storageTitle': '데이터 저장 위치',
|
|
'settings.general.storageDescription': '고급, 사용 빈도가 낮은 설정입니다. 전환 후에는 세션, 스킬, MCP, 플러그인, 공급자 설정, 작업, 캐시를 새 디렉터리에서 읽습니다.',
|
|
'settings.general.storageSystemTitle': '시스템 디렉터리 사용',
|
|
'settings.general.storageSystemDescription': '기본 데이터 소스로 돌아갑니다. 시작 환경에 CLAUDE_CONFIG_DIR이 설정되어 있으면 해당 환경 변수가 여전히 우선합니다.',
|
|
'settings.general.storagePortableTitle': '포터블 디렉터리 사용',
|
|
'settings.general.storagePortableDescription': '선택한 폴더에 데스크톱 데이터를 저장합니다. 외장 드라이브나 함께 옮기려는 앱 번들에 사용하세요.',
|
|
'settings.general.storagePortableDirLabel': '포터블 데이터 디렉터리',
|
|
'settings.general.storagePortableDirPlaceholder': 'cc-haha 데이터용 폴더 선택',
|
|
'settings.general.storageChooseDir': '폴더 선택',
|
|
'settings.general.storageChooseDirTitle': '포터블 데이터 디렉터리 선택',
|
|
'settings.general.storageUseDefaultPortableDir': '앱 옆의 기본 포터블 폴더 사용',
|
|
'settings.general.storageApplyPortable': '이 폴더를 사용하고 다시 시작',
|
|
'settings.general.storageActiveDir': '현재 활성 데이터 디렉터리',
|
|
'settings.general.storageEnvironmentHint': '현재 디렉터리는 CLAUDE_CONFIG_DIR 환경 변수로 제어됩니다. 앱 내 전환으로는 이를 재정의할 수 없습니다. 시스템 디렉터리로 돌아가려면 시작 환경에서 CLAUDE_CONFIG_DIR을 제거하세요.',
|
|
'settings.general.storageEnvironmentSwitchBlocked': '현재 CLAUDE_CONFIG_DIR이 데이터 디렉터리를 제어합니다. 시스템 디렉터리로 돌아가기 전에 시작 환경에서 이를 제거하세요.',
|
|
'settings.general.storageRestartHint': '저장 위치 변경이 저장되었습니다. 새 데이터 디렉터리를 적용하려면 앱을 다시 시작하세요.',
|
|
'settings.general.storageMoveHint': '디렉터리를 전환해도 기존 데이터는 마이그레이션되지 않습니다. 이전 세션을 계속 표시하려면 이전 디렉터리에서 projects, skills, plugins, cc-haha 및 관련 폴더를 복사하세요. 포터블 번들의 경우 이 폴더를 앱 옆에 두고 함께 압축하세요.',
|
|
'settings.general.storageNoDirError': '먼저 포터블 데이터 디렉터리를 선택하거나 입력하세요.',
|
|
'settings.general.storagePickerError': '폴더 선택기를 열 수 없습니다. 폴더 경로를 수동으로 붙여넣으세요.',
|
|
'settings.general.storageRestartError': '변경 사항은 저장되었지만 자동 다시 시작에 실패했습니다. 앱을 수동으로 다시 시작하세요.',
|
|
'settings.general.storageSwitchPortableBody': '전환 후 데스크톱 앱은 이 디렉터리에서 세션, 설정, 스킬, MCP, 플러그인, 작업, 캐시를 읽고 씁니다.',
|
|
'settings.general.storageSwitchDefaultBody': '다시 전환하면 데스크톱 앱은 다시 시스템 데이터 소스를 사용합니다. 포터블 디렉터리의 데이터는 자동으로 삭제되거나 되돌려지지 않습니다.',
|
|
'settings.general.storageSwitchRestartBody': '앱이 로컬 서버와 어댑터 프로세스를 중지한 후 다시 시작합니다. 새 디렉터리는 다시 시작 후에 적용됩니다.',
|
|
|
|
// Settings > General
|
|
'settings.general.appearanceTitle': '모양',
|
|
'settings.general.appearanceDescription': '따뜻한 클래식 작업 공간, 어두운 작업 공간, 순백색 작업 공간 사이를 전환합니다.',
|
|
'settings.general.appearance.light': '따뜻한 클래식',
|
|
'settings.general.appearance.dark': '어둡게',
|
|
'settings.general.appearance.white': '순백색',
|
|
'settings.general.languageTitle': '언어',
|
|
'settings.general.languageDescription': '애플리케이션의 표시 언어를 선택합니다.',
|
|
'settings.general.responseLangTitle': '응답 언어',
|
|
'settings.general.responseLangDescription': 'Claude가 항상 특정 언어로 응답하도록 지시합니다.',
|
|
'settings.general.responseLangDefault': '기본값(영어)',
|
|
'settings.general.outputStyleTitle': '출력 스타일',
|
|
'settings.general.outputStyleDescription': '새 세션 또는 다시 시작한 세션에서 Claude가 응답하는 방식을 선택합니다.',
|
|
'settings.general.outputStyleSelectLabel': '출력 스타일 선택',
|
|
'settings.general.outputStyleLoading': '출력 스타일 불러오는 중...',
|
|
'settings.general.outputStyleSaved': '출력 스타일이 저장되었습니다.',
|
|
'settings.general.outputStyleRestartHint': '실행 중인 세션은 현재 프롬프트를 계속 사용합니다. 새 세션을 시작하거나 새 프로세스에서 계속하거나 세션을 다시 시작하면 적용됩니다.',
|
|
'settings.general.outputStyleScopeLocal': '현재 프로젝트',
|
|
'settings.general.outputStyleScopeUser': '사용자 설정',
|
|
'settings.general.outputStyleScopeLocalHint': '활성 프로젝트의 .claude/settings.local.json에 저장됩니다.',
|
|
'settings.general.outputStyleScopeUserHint': '활성 프로젝트가 선택되지 않아 사용자 설정에 저장됩니다.',
|
|
'settings.general.outputStyleSourceBuiltIn': '기본 제공',
|
|
'settings.general.outputStyleSourceUser': '사용자 스타일',
|
|
'settings.general.outputStyleSourceProject': '프로젝트 스타일',
|
|
'settings.general.outputStyleSourceLocal': '로컬 프로젝트 스타일',
|
|
'settings.general.outputStyleSourcePolicy': '관리형 스타일',
|
|
'settings.general.outputStyleSourcePlugin': '플러그인 스타일',
|
|
'settings.general.effortTitle': '노력 수준',
|
|
'settings.general.effortDescription': '모델이 사용하는 계산량을 제어합니다.',
|
|
'settings.general.effort.low': '낮음',
|
|
'settings.general.effort.medium': '보통',
|
|
'settings.general.effort.high': '높음',
|
|
'settings.general.effort.max': '최대',
|
|
'settings.general.thinkingTitle': '사고 모드',
|
|
'settings.general.thinkingDescription': '새 세션을 모델 사고를 사용으로 시작할지 제어합니다. 꺼져 있으면 DeepSeek 같은 호환 공급자에 명시적인 비사고 매개변수가 전달됩니다.',
|
|
'settings.general.thinkingEnabled': '사고 모드 사용',
|
|
'settings.general.thinkingHint': '새 세션을 --thinking 비활성화로 시작하려면 이를 끄세요. DeepSeek V4 Flash/Pro 및 기타 비사고 워크플로에 유용합니다.',
|
|
'settings.general.notificationsTitle': '시스템 알림',
|
|
'settings.general.notificationsDescription': '권한 확인, 에이전트 응답, 예약 작업 결과에 OS 기본 알림을 사용합니다.',
|
|
'settings.general.notificationsEnabled': '시스템 알림 사용',
|
|
'settings.general.notificationsHintOn': '사용하면 앱이 알림 권한을 요청하고 OS 알림 센터를 사용합니다.',
|
|
'settings.general.notificationsHintOff': '사용 안 하면 권한 확인, 에이전트 응답, 예약 작업이 데스크톱 알림을 보내지 않습니다.',
|
|
'settings.general.notificationsStatus': '권한',
|
|
'settings.general.notificationsStatusGranted': '허용됨',
|
|
'settings.general.notificationsStatusDenied': '시스템 설정에 의해 차단됨',
|
|
'settings.general.notificationsStatusDefault': '요청되지 않음',
|
|
'settings.general.notificationsStatusUnsupported': '이 환경에서는 사용할 수 없습니다',
|
|
'settings.general.notificationsAuthorize': '허용',
|
|
'settings.general.notificationsOpenSettings': '설정 열기',
|
|
'settings.general.notificationsTestTitle': 'Claude Code Haha 알림이 사용 설정되었습니다',
|
|
'settings.general.notificationsTestBody': '이제 권한 확인과 완료된 에이전트 응답에 시스템 알림이 사용됩니다.',
|
|
'settings.general.traceTitle': 'Agent Trace',
|
|
'settings.general.traceDescription': '멈춤, 실패, 예상치 못한 대기를 조사하기 위해 로컬 세션의 모델 요청 트레이스를 수집합니다.',
|
|
'settings.general.traceEnabled': 'Agent Trace 수집',
|
|
'settings.general.traceHintOn': '새 세션은 간결한 요청, 응답, 상태 이벤트를 로컬 cc-haha traces 디렉터리에 기록합니다.',
|
|
'settings.general.traceHintOff': '새 Trace는 기록되지 않습니다. 기존 기록은 Trace 목록에서 계속 볼 수 있습니다.',
|
|
'settings.general.chatSendBehaviorTitle': '메시지 전송',
|
|
'settings.general.chatSendBehaviorDescription': '데스크톱 채팅 입력창에서 메시지를 전송하는 방식을 선택합니다.',
|
|
'settings.general.chatSendBehaviorEnter': 'Enter로 전송',
|
|
'settings.general.chatSendBehaviorEnterDescription': 'Shift+Enter로 줄을 바꿉니다.',
|
|
'settings.general.chatSendBehaviorModifier': 'Ctrl/Cmd+Enter로 전송',
|
|
'settings.general.chatSendBehaviorModifierDescription': 'Enter와 Shift+Enter로 줄을 바꿉니다.',
|
|
'settings.general.h5AccessTitle': 'H5 액세스',
|
|
'settings.general.h5AccessDescription': '데스크톱 H5 앱을 로컬 네트워크에 공개합니다. 휴대폰은 수명이 짧은 H5 토큰이 포함된 QR 링크로 연결합니다.',
|
|
'settings.general.h5AccessEnabled': 'H5 액세스 사용',
|
|
'settings.general.h5AccessEnabledHint': '데스크톱 서버가 LAN 주소에서 수신 대기하고 데스크톱 세션에 대한 액세스를 허용합니다.',
|
|
'settings.general.h5AccessStatusEnabled': '사용',
|
|
'settings.general.h5AccessTokenPreview': '토큰 미리 보기',
|
|
'settings.general.h5AccessDisabledValue': '사용 안 함',
|
|
'settings.general.h5AccessDisable': '사용 안 함',
|
|
'settings.general.h5AccessGenerateToken': '토큰 생성',
|
|
'settings.general.h5AccessRegenerate': '토큰 다시 생성',
|
|
'settings.general.h5AccessGeneratedToken': '생성된 토큰',
|
|
'settings.general.h5AccessGeneratedTokenHint': '한 번만 표시됩니다. 지금 복사하여 비밀번호처럼 보관하세요.',
|
|
'settings.general.h5AccessShowToken': '토큰 표시',
|
|
'settings.general.h5AccessCopy': '복사',
|
|
'settings.general.h5AccessCopyUrl': 'H5 URL 복사',
|
|
'settings.general.h5AccessCopyLaunchUrl': 'QR 링크 복사',
|
|
'settings.general.h5AccessUrlCopied': 'H5 URL을 복사했습니다.',
|
|
'settings.general.h5AccessLaunchUrlCopied': 'QR 링크를 복사했습니다.',
|
|
'settings.general.h5AccessHideToken': '토큰 숨기기',
|
|
'settings.general.h5AccessTokenNotAvailable': '새 토큰을 표시하려면 다시 생성하세요.',
|
|
'settings.general.h5AccessPublicHost': '액세스 호스트 / IP',
|
|
'settings.general.h5AccessPublicHostPlaceholder': '192.168.1.100',
|
|
'settings.general.h5AccessCurrentPort': '현재 포트',
|
|
'settings.general.h5AccessCurrentPortUnknown': '자동',
|
|
'settings.general.h5AccessPublicUrl': '공개 URL',
|
|
'settings.general.h5AccessPublicUrlPlaceholder': 'https://chat.example.com',
|
|
'settings.general.h5AccessAllowedOrigins': '허용된 출처',
|
|
'settings.general.h5AccessAllowedOriginsPlaceholder': 'https://chat.example.com, https://phone.example',
|
|
'settings.general.h5AccessOriginsHint': '한 줄에 하나의 출처를 입력하거나 여러 출처를 쉼표로 구분하세요.',
|
|
'settings.general.h5AccessOpenHint': 'LAN 액세스의 경우 호스트 / IP만 변경하세요. 현재 서비스 포트가 재사용됩니다. 리버스 프록시의 경우 전체 URL을 입력하세요.',
|
|
'settings.general.h5AccessSave': 'H5 설정 저장',
|
|
'settings.general.h5AccessUrl': 'H5 URL',
|
|
'settings.general.h5AccessQrTitle': '휴대폰 연결',
|
|
'settings.general.h5AccessQrHint': '스캔하면 토큰이 입력된 상태로 H5가 열립니다.',
|
|
'settings.general.h5AccessQrRefreshHint': "'토큰 생성'을 클릭하면 스캔할 수 있는 QR 링크가 만들어집니다.",
|
|
'settings.general.h5AccessQrEmptyHint': 'QR 코드를 만들려면 토큰을 생성하세요.',
|
|
'settings.general.h5AccessQrAlt': 'H5 액세스 QR 코드',
|
|
'settings.general.h5AccessSafetyNote': '신뢰할 수 있는 네트워크에서만 사용하세요. QR 링크가 있는 누구나 H5가 노출하는 데스크톱 기능에 접근할 수 있습니다.',
|
|
'settings.general.h5AccessConfirmTitle': 'LAN H5 액세스를 사용하시겠습니까?',
|
|
'settings.general.h5AccessConfirmBody': '이렇게 하면 데스크톱 H5 앱이 LAN 주소와 포트에 공개됩니다. QR 토큰이 있는 기기는 데스크톱 세션과 관련 제어에 접근할 수 있습니다. 신뢰할 수 있는 네트워크에서만 계속하세요.',
|
|
'settings.general.h5AccessConfirmEnable': 'H5 액세스 사용',
|
|
'settings.general.h5AccessError': 'H5 액세스 설정을 업데이트하지 못했습니다.',
|
|
'settings.general.h5AccessStaleHostTitle': '저장된 H5 호스트에 더 이상 연결할 수 없습니다',
|
|
'settings.general.h5AccessStaleHostBody': '저장된 호스트 {storedHost}이(가) 이 컴퓨터의 활성 인터페이스에 바인딩되어 있지 않습니다. QR 코드를 스캔하는 휴대폰은 연결에 실패합니다. 현재 LAN IP로 전환하는 것을 권장합니다.',
|
|
'settings.general.h5AccessStaleHostNoSuggestion': '저장된 호스트 {storedHost}이(가) 이 컴퓨터의 활성 인터페이스에 바인딩되어 있지 않습니다. QR 코드를 스캔하는 휴대폰은 연결에 실패합니다. 이 컴퓨터의 네트워크 연결을 확인하거나 리버스 프록시 URL로 전환하세요.',
|
|
'settings.general.h5AccessStaleHostApply': '{suggestedHost}(으)로 전환',
|
|
'settings.general.h5AccessProxyNote': '현재 리버스 프록시 URL을 사용하고 있습니다. 휴대폰은 구성한 공개 도메인 / 터널을 통해 데스크톱에 연결됩니다. 프록시가 계속 작동 중인지 확인하세요.',
|
|
'settings.general.networkTitle': '네트워크',
|
|
'settings.general.networkDescription': '데스크톱 세션이 수행하는 공급자 API 요청을 제어합니다.',
|
|
'settings.general.networkProxyModeSystem': '시스템 프록시',
|
|
'settings.general.networkProxyModeSystemDescription': '앱 프로세스가 상속한 프록시 설정을 사용합니다.',
|
|
'settings.general.networkProxyModeManual': '수동 프록시',
|
|
'settings.general.networkProxyModeManualDescription': '아래에 입력한 HTTP 또는 HTTPS 프록시 URL을 사용합니다.',
|
|
'settings.general.networkProxyUrl': '프록시 URL',
|
|
'settings.general.networkProxyUrlHint': 'HTTP 및 HTTPS 프록시 URL을 지원합니다. 예: http://127.0.0.1:7890.',
|
|
'settings.general.networkProxyUrlInvalid': 'HTTP 또는 HTTPS 프록시 URL을 입력하세요.',
|
|
'settings.general.networkProxyUrlRequired': '프록시 URL을 입력하세요.',
|
|
'settings.general.networkTimeout': 'AI 요청 시간 초과',
|
|
'settings.general.networkTimeoutValue': '{seconds}초',
|
|
'settings.general.networkTimeoutHint': '공급자 요청, 스트리밍 첫 응답, 공급자 연결 테스트에 적용됩니다. 5~600초를 지원합니다.',
|
|
'settings.general.networkTimeoutUnit': '초',
|
|
'settings.general.networkTimeoutDecrease': '30초 줄이기',
|
|
'settings.general.networkTimeoutIncrease': '30초 늘리기',
|
|
'settings.general.networkTimeoutRequired': '시간 초과를 입력하세요.',
|
|
'settings.general.networkTimeoutRange': '{min}에서 {max}초까지의 정수를 입력하세요.',
|
|
'settings.general.networkSaved': '네트워크 설정을 저장했습니다.',
|
|
'settings.general.networkScopeHint': '별도의 앱 업데이트 프록시는 변경되지 않습니다.',
|
|
'settings.general.networkSave': '저장',
|
|
'settings.general.webFetchPreflightTitle': 'WebFetch 사전 확인',
|
|
'settings.general.webFetchPreflightDescription': '데스크톱 세션은 타사 공급자와 제한된 네트워크에서의 잘못된 실패를 피하기 위해 기본적으로 Claude의 도메인 사전 확인을 건너뜁니다.',
|
|
'settings.general.webFetchPreflightEnabled': 'WebFetch 도메인 사전 확인 건너뛰기',
|
|
'settings.general.webFetchPreflightHint': '각 WebFetch 요청 전에 업스트림 안전 사전 확인을 명시적으로 복원하려는 경우에만 이를 끄세요.',
|
|
'settings.general.webSearchTitle': 'WebSearch',
|
|
'settings.general.webSearchDescription': '에이전트 웹 검색을 공식 Claude, 타사 공급자, 로컬 폴백 키 중 어디에서 해결할지 선택합니다.',
|
|
'settings.general.webSearch.mode.auto': '자동',
|
|
'settings.general.webSearch.mode.tavily': 'Tavily',
|
|
'settings.general.webSearch.mode.brave': 'Brave',
|
|
'settings.general.webSearch.mode.anthropic': 'Claude',
|
|
'settings.general.webSearch.mode.disabled': '끄기',
|
|
'settings.general.webSearchTavilyKey': 'Tavily API 키',
|
|
'settings.general.webSearchBraveKey': 'Brave Search API 키',
|
|
'settings.general.webSearchBravePlaceholder': 'Brave Search 토큰',
|
|
'settings.general.webSearchGetApiKey': 'API 키 가져오기',
|
|
'settings.general.webSearchTavilyApiKeyLink': 'Tavily API 키 가져오기',
|
|
'settings.general.webSearchBraveApiKeyLink': 'Brave Search API 키 가져오기',
|
|
'settings.general.webSearchTavilyFreeHint': '계정을 만들고 키를 복사하세요. 무료 플랜에는 1000 크레딧이 포함됩니다.',
|
|
'settings.general.webSearchBraveFreeHint': '계정을 만들면 테스트용 무료 사용량으로 Search API 키를 생성할 수 있습니다.',
|
|
'settings.general.webSearchHint': '자동은 Claude 모델 이름에는 네이티브 Claude 웹 검색을 사용하고, 그다음 Tavily와 Brave 키로 폴백합니다.',
|
|
'settings.general.webSearchSave': '저장',
|
|
'settings.general.uiZoom': 'UI 확대/축소',
|
|
'settings.general.uiZoomDescription': '인터페이스 전체의 크기를 조정합니다.',
|
|
'settings.general.uiZoomShortcutHint': '단축키가 더 빠릅니다:',
|
|
'settings.general.uiZoomShortcutMac': 'macOS',
|
|
'settings.general.uiZoomShortcutWindows': 'Windows / Linux',
|
|
'settings.general.uiZoomShortcutResetHint': '0으로 확대/축소를 100%로 재설정합니다.',
|
|
'settings.general.uiZoomReset': 'UI 확대/축소를 100%로 재설정',
|
|
|
|
// ─── Empty Session ──────────────────────────────────────
|
|
'empty.title': '새 세션',
|
|
'empty.subtitle': '새 코딩 세션을 시작합니다. Claude가 프로젝트를 구축하고 디버깅하며 설계하도록 도울 준비가 되어 있습니다.',
|
|
'empty.placeholder': '무엇이든 물어보세요...',
|
|
'empty.addFiles': '파일 또는 사진 추가',
|
|
'empty.slashCommands': '슬래시 명령',
|
|
'empty.failedToCreate': '세션을 만들지 못했습니다',
|
|
'empty.createError.workdirMissing': '프로젝트 폴더가 없거나 디렉터리가 아닙니다. 기존 프로젝트를 선택하고 다시 시도하세요.',
|
|
'empty.createError.notGit': '이 프로젝트는 Git 저장소가 아니므로 브랜치 시작을 사용할 수 없습니다. 현재 폴더에서 시작하거나 Git 프로젝트를 선택하세요.',
|
|
'empty.createError.branchNotFound': '선택한 브랜치가 더 이상 존재하지 않습니다. 프로젝트 컨텍스트를 새로 고치고 다른 브랜치를 선택하세요.',
|
|
'empty.createError.dirtyWorktree': '현재 프로젝트에 커밋되지 않은 변경 사항이 있습니다. 브랜치 직접 전환이 차단되었습니다. "독립 worktree"를 사용하거나 먼저 변경 사항을 커밋/스태시하세요.',
|
|
'empty.createError.branchCheckedOut': '해당 브랜치는 다른 worktree에서 이미 체크아웃되어 있습니다. "독립 worktree"를 사용하거나 다른 브랜치를 선택하세요.',
|
|
'empty.createError.worktreeCreateFailed': '독립 worktree를 만들 수 없습니다. Git이 이 저장소에 쓸 수 있는지 확인한 후 다시 시도하세요. 세부 정보: {detail}',
|
|
'empty.createError.switchFailed': '현재 프로젝트 브랜치를 전환할 수 없습니다. Git 오류를 확인하고 변경 사항을 안전하게 보관한 후 다시 시도하세요. 세부 정보: {detail}',
|
|
'empty.createError.contextFailed': '이 Git 프로젝트를 검사할 수 없습니다. 저장소 상태를 확인하고 다시 시도하세요.',
|
|
|
|
// ─── Repository Launch Controls ──────────────────────────────────────
|
|
'repoLaunch.selectBranch': '브랜치 선택',
|
|
'repoLaunch.searchBranch': '브랜치 검색',
|
|
'repoLaunch.noBranch': '브랜치 없음',
|
|
'repoLaunch.noBranchMatch': '일치하는 브랜치 없음',
|
|
'repoLaunch.currentBranch': '현재 브랜치',
|
|
'repoLaunch.localBranch': '로컬 브랜치',
|
|
'repoLaunch.remoteBranch': '원격 브랜치',
|
|
'repoLaunch.checkedOut': '다른 worktree에서 체크아웃됨',
|
|
'repoLaunch.worktreeCurrent': '현재 worktree',
|
|
'repoLaunch.worktreeIsolated': '독립 worktree',
|
|
'repoLaunch.selectWorktree': 'worktree 모드 선택',
|
|
'repoLaunch.missingWorkdir': '작업 디렉터리가 없습니다.',
|
|
'repoLaunch.dirtyWarning': '커밋되지 않은 변경 사항이 감지되었습니다. 직접 전환이 차단될 수 있습니다. 이 폴더를 건드리지 않고 계속하려면 독립 worktree를 사용하세요.',
|
|
'repoLaunch.checkedOutWarning': '선택한 브랜치는 다른 worktree에서 이미 체크아웃되어 있습니다. Git에 의해 직접 시작이 차단될 수 있습니다. 디렉터리 변경을 피하려면 "독립 worktree"를 사용하세요.',
|
|
|
|
// ─── Chat Input ──────────────────────────────────────
|
|
'chat.placeholder': '편집, 디버그 또는 설명을 Claude에 요청...',
|
|
'chat.placeholderMissing': '이 세션은 없는 작업 공간을 가리킵니다. 새 세션을 만들거나 다른 프로젝트를 선택하세요.',
|
|
'chat.addFiles': '파일 또는 사진 추가',
|
|
'chat.dropFilesTitle': '여기에 파일을 드롭하세요',
|
|
'chat.dropFilesHint': '파일 경로로 첨부됩니다.',
|
|
'chat.workspaceReferencesOnly': '작업 공간 참조 {count}개를 추가했습니다',
|
|
'chat.contextReferencesOnly': '참조 {count}개를 추가했습니다',
|
|
'chat.addSelectionToChat': '채팅에 추가',
|
|
'chat.branchFromHere': '새 대화 분기',
|
|
'chat.branchSuccess': '분기된 대화 "{title}"을(를) 만들었습니다.',
|
|
'chat.branchError': '이 메시지에서 분기할 수 없습니다. 세부 정보: {detail}',
|
|
'chat.userMessageReference': '사용자 메시지',
|
|
'chat.assistantMessageReference': '어시스턴트 메시지',
|
|
'chat.slashCommands': '슬래시 명령',
|
|
'chat.goalEvent.created': '목표 설정됨',
|
|
'chat.goalEvent.replaced': '목표 설정됨',
|
|
'chat.goalEvent.statusTitle': '목표 상태',
|
|
'chat.goalEvent.paused': '목표 일시 중지됨',
|
|
'chat.goalEvent.resumed': '목표 재개됨',
|
|
'chat.goalEvent.completed': '목표 완료됨',
|
|
'chat.goalEvent.cleared': '목표 지워짐',
|
|
'chat.goalEvent.message': '목표 업데이트',
|
|
'chat.goalEvent.objective': '목표: {value}',
|
|
'chat.goalEvent.statusValue': '상태: {value}',
|
|
'chat.goalEvent.budget': '예산: {value}',
|
|
'chat.goalEvent.continuations': '연속 실행: {value}',
|
|
'chat.compactSummary.compacting': '컨텍스트 압축 중',
|
|
'chat.compactSummary.title': '컨텍스트가 압축됨',
|
|
'chat.compactSummary.autoTitle': '컨텍스트가 자동으로 압축됨',
|
|
'chat.compactSummary.manualTitle': '컨텍스트가 수동으로 압축됨',
|
|
'chat.compactSummary.trigger.manual': '수동',
|
|
'chat.compactSummary.trigger.auto': '자동',
|
|
'chat.compactSummary.tokens': '압축 전 {count} 토큰',
|
|
'chat.compactSummary.messages': '{count}개의 메시지를 요약했습니다',
|
|
'chat.activeGoal.title': '활성 목표',
|
|
'chat.activeGoal.running': '루프 실행 중',
|
|
'chat.activeGoal.active': '활성',
|
|
'chat.activeGoal.paused': '일시 중지됨',
|
|
'chat.activeGoal.completed': '완료됨',
|
|
'chat.activeGoal.budget': '예산 {value}',
|
|
'chat.activeGoal.continuations': '연속 실행 {value}',
|
|
'chat.activeGoal.elapsed': '경과 {value}',
|
|
'chat.backgroundAgents.title': '백그라운드 에이전트',
|
|
'chat.backgroundAgents.count': '{count}개 활성 또는 최근',
|
|
'chat.backgroundAgents.agent': '에이전트',
|
|
'chat.backgroundTasks.command': '백그라운드 명령',
|
|
'chat.backgroundTasks.workflow': '백그라운드 워크플로',
|
|
'chat.backgroundTasks.task': '백그라운드 작업',
|
|
'chat.backgroundAgents.tokens': '{count} 토큰',
|
|
'chat.backgroundAgents.status.running': '실행 중',
|
|
'chat.backgroundAgents.status.completed': '완료',
|
|
'chat.backgroundAgents.status.failed': '실패',
|
|
'chat.backgroundAgents.status.stopped': '중지됨',
|
|
'slash.mcp.title': '사용 가능한 MCP 도구',
|
|
'slash.mcp.subtitle': '이 채팅 컨텍스트에서 사용 가능한 전역 및 현재 프로젝트 MCP 서버입니다.',
|
|
'slash.mcp.subtitleWithProject': '다음의 전역 및 프로젝트 MCP를 표시 중: {path}',
|
|
'slash.mcp.emptyTitle': '사용 가능한 MCP 서버가 없습니다',
|
|
'slash.mcp.emptyBody': '이 채팅 컨텍스트에서 사용 가능한 전역 또는 프로젝트 MCP 서버가 없습니다.',
|
|
'slash.mcp.projectBadge': '프로젝트: {name}',
|
|
'slash.skills.title': '사용 가능한 스킬',
|
|
'slash.skills.subtitle': '현재 컨텍스트에서 사용 가능한, 사용자가 호출할 수 있는 스킬입니다.',
|
|
'slash.skills.subtitleWithProject': '다음의 스킬을 표시 중: {path}',
|
|
'slash.skills.emptyTitle': '사용 가능한 스킬이 없습니다',
|
|
'slash.skills.emptyBody': '이 컨텍스트에서 사용자가 호출할 수 있는 스킬을 찾을 수 없습니다.',
|
|
'slash.plugins.title': '플러그인',
|
|
'slash.plugins.subtitle': '플러그인 관리가 이 슬래시 명령 화면으로 이동합니다.',
|
|
'slash.plugins.emptyTitle': '플러그인 패널 곧 제공',
|
|
'slash.plugins.emptyBody': '이 공유 슬래시 명령 패널은 현재 연결되어 있습니다. 플러그인 데이터는 다음에 연결됩니다.',
|
|
'slash.help.title': '슬래시 명령',
|
|
'slash.help.subtitle': '에이전트 워크플로를 실행하거나, 세션 상태를 확인하거나, 데스크톱 패널을 엽니다.',
|
|
'slash.help.group.context': '컨텍스트',
|
|
'slash.help.group.project': '프로젝트',
|
|
'slash.help.group.desktop': '데스크톱',
|
|
'slash.help.group.more': '더 보기',
|
|
'slash.help.moreAvailable': '{count}개의 명령을 더 사용할 수 있습니다. /를 입력하여 전체 명령 목록을 검색하세요.',
|
|
'slash.inspector.title': '세션 검사기',
|
|
'slash.inspector.close': '세션 검사기 닫기',
|
|
'slash.inspector.loading': '세션 데이터 불러오는 중',
|
|
'slash.inspector.error.noActiveSession': '선택된 활성 세션이 없습니다.',
|
|
'slash.inspector.error.unavailable': '세션 검사기 데이터를 사용할 수 없습니다. /api/sessions/:id/inspection이 로드되도록 데스크톱 서버를 다시 시작하세요.',
|
|
'slash.inspector.tab.status': '상태',
|
|
'slash.inspector.tab.usage': '사용량',
|
|
'slash.inspector.tab.context': '컨텍스트',
|
|
'slash.inspector.status.cliStatus': 'CLI 상태',
|
|
'slash.inspector.status.running': '실행 중',
|
|
'slash.inspector.status.notRunning': '실행되지 않음',
|
|
'slash.inspector.status.activeModel': '활성 모델',
|
|
'slash.inspector.status.unknown': '알 수 없음',
|
|
'slash.inspector.status.mcpConnections': 'MCP 연결',
|
|
'slash.inspector.status.connected': '연결됨',
|
|
'slash.inspector.status.failed': '실패',
|
|
'slash.inspector.status.registeredTools': '등록된 도구',
|
|
'slash.inspector.status.commands': '명령',
|
|
'slash.inspector.status.sessionMetadata': '세션 메타데이터',
|
|
'slash.inspector.status.version': '버전',
|
|
'slash.inspector.status.sessionId': '세션 ID',
|
|
'slash.inspector.status.workingDirectory': '작업 디렉터리',
|
|
'slash.inspector.status.permissionMode': '권한 모드',
|
|
'slash.inspector.status.authToken': '인증 토큰',
|
|
'slash.inspector.status.outputStyle': '출력 스타일',
|
|
'slash.inspector.status.default': '기본값',
|
|
'slash.inspector.status.mcpServers': 'MCP 서버',
|
|
'slash.inspector.status.refresh': '새로 고침',
|
|
'slash.inspector.status.contextWindow': '컨텍스트 창',
|
|
'slash.inspector.usage.emptyTitle': '아직 사용량 데이터가 없습니다',
|
|
'slash.inspector.usage.emptyBody': 'CLI 세션이 시작되고 최소 한 턴이 완료되면 사용량이 표시됩니다.',
|
|
'slash.inspector.usage.contextSnapshotNotice': '현재 컨텍스트 스냅샷의 토큰 사용량을 표시합니다. 사용량은 컨텍스트를 가져오는 대로 동적으로 업데이트됩니다.',
|
|
'slash.inspector.usage.transcriptNotice': '세션 기록에서 재구성한 사용량을 표시합니다. API 소요 시간은 현재 실행 중인 CLI 프로세스에서만 사용할 수 있습니다.',
|
|
'slash.inspector.usage.unknownCost': '하나 이상의 모델 요금이 알려져 있지 않아 비용이 부정확할 수 있습니다.',
|
|
'slash.inspector.usage.totalCost': '총 비용',
|
|
'slash.inspector.usage.source': '소스',
|
|
'slash.inspector.usage.source.contextSnapshot': '컨텍스트 스냅샷',
|
|
'slash.inspector.usage.source.transcript': '기록',
|
|
'slash.inspector.usage.source.currentProcess': '현재 프로세스',
|
|
'slash.inspector.usage.apiDuration': 'API 소요 시간',
|
|
'slash.inspector.usage.wallDuration': '실제 시간',
|
|
'slash.inspector.usage.usageSpan': '사용 기간',
|
|
'slash.inspector.usage.codeChanges': '코드 변경',
|
|
'slash.inspector.usage.input': '입력',
|
|
'slash.inspector.usage.output': '출력',
|
|
'slash.inspector.usage.cacheReadWrite': '캐시 읽기 / 쓰기',
|
|
'slash.inspector.usage.webSearch': '웹 검색',
|
|
'slash.inspector.usage.byModel': '모델별 사용량',
|
|
'slash.inspector.usage.tokens': '토큰',
|
|
'slash.inspector.usage.noModelTitle': '모델 사용량 없음',
|
|
'slash.inspector.usage.noModelBody': '모델 응답이 기록되면 여기에 토큰 사용량이 표시됩니다.',
|
|
'slash.inspector.context.loading': '컨텍스트 데이터 불러오는 중',
|
|
'slash.inspector.context.emptyTitle': '아직 컨텍스트 데이터가 없습니다',
|
|
'slash.inspector.context.emptyBody': '컨텍스트 사용량에는 활성 CLI 세션이 필요합니다.',
|
|
'slash.inspector.context.windowUsage': '컨텍스트 창 사용량',
|
|
'slash.inspector.context.used': '사용됨',
|
|
'slash.inspector.context.free': '여유',
|
|
'slash.inspector.context.messages': '메시지',
|
|
'slash.inspector.context.assistant': '어시스턴트',
|
|
'slash.inspector.context.toolResults': '도구 결과',
|
|
'slash.inspector.context.context': '컨텍스트',
|
|
'slash.inspector.context.categoryTitle': '카테고리별 예상 사용량',
|
|
'slash.inspector.context.noCategoriesTitle': '컨텍스트 카테고리 없음',
|
|
'slash.inspector.context.noCategoriesBody': 'CLI가 컨텍스트 분석을 보고하면 컨텍스트 카테고리가 표시됩니다.',
|
|
'slash.inspector.context.memoryFiles': '메모리 파일',
|
|
'slash.inspector.context.noMemoryFiles': '이 세션에는 메모리 파일이 로드되어 있지 않습니다.',
|
|
'slash.inspector.context.openMemory': '메모리 열기',
|
|
'contextIndicator.ariaLabel': '컨텍스트 사용량 {percent}',
|
|
'contextIndicator.pendingAria': '컨텍스트 사용량이 계산되지 않음',
|
|
'contextIndicator.loadingAria': '컨텍스트 사용량 불러오는 중',
|
|
'contextIndicator.unavailableAria': '컨텍스트 사용량을 사용할 수 없음',
|
|
'contextIndicator.title': '컨텍스트',
|
|
'contextIndicator.modelUnknown': '알 수 없는 모델',
|
|
'contextIndicator.used': '사용됨',
|
|
'contextIndicator.free': '여유',
|
|
'contextIndicator.window': '창',
|
|
'contextIndicator.loading': '컨텍스트 사용량 불러오는 중...',
|
|
'contextIndicator.pendingDetail': '컨텍스트 사용량은 세션 시작 후에 계산됩니다.',
|
|
'contextIndicator.unavailable': '없음',
|
|
'contextIndicator.unavailableDetail': '이 세션에서는 컨텍스트 사용량을 사용할 수 없습니다.',
|
|
'contextIndicator.updatedUnknown': '아직 새로 고치지 않음',
|
|
'contextIndicator.updatedNow': '방금 업데이트됨',
|
|
'contextIndicator.updatedMinutes': '{count}분 전 업데이트됨',
|
|
'contextIndicator.estimate': '추정',
|
|
'chat.navigate': '이동',
|
|
'chat.select': '선택',
|
|
'chat.dismiss': '닫기',
|
|
'chat.stopTitle': '생성 중지 (Cmd+.)',
|
|
'chat.jumpToLatest': '최신',
|
|
'chat.memorySavedTitle': '{count}개의 메모리 파일을 저장했습니다',
|
|
'chat.memorySavedFromToolsTitle': '{count}개의 메모리 항목을 저장했습니다',
|
|
'chat.memoryReferencedTitle': '{count}개의 메모리 참조',
|
|
'chat.memoryOpenSettings': '메모리 열기',
|
|
'chat.memoryMoreFiles': '+{count}개',
|
|
'chat.memoryTechnicalDetails': '도구 세부 정보',
|
|
'chat.rewindSuccessWithCode': '{count}개의 메시지를 되감고 추적된 파일을 복원했습니다.',
|
|
'chat.rewindSuccessConversationOnly': '{count}개의 메시지를 되감았습니다. 이 턴에는 사용할 수 있는 파일 체크포인트가 없었습니다.',
|
|
'chat.turnChangesTitle': '{count}개의 파일이 변경됨',
|
|
'chat.turnChangesLatestCardLabel': '턴에서 변경된 파일',
|
|
'chat.turnChangesHistoricalCardLabel': '턴에서 변경된 파일',
|
|
'chat.turnChangesLatestSubtitle': '현재 턴 체크포인트',
|
|
'chat.turnChangesHistoricalSubtitle': '저장된 턴 체크포인트',
|
|
'chat.turnChangesLatestUndo': '현재 턴 실행 취소',
|
|
'chat.turnChangesHistoricalUndo': '이 턴 이전으로 되감기',
|
|
'chat.turnChangesUndoing': '실행 취소 중...',
|
|
'chat.turnChangesLatestUndoAria': '현재 턴 변경 사항 실행 취소',
|
|
'chat.turnChangesHistoricalUndoAria': '이 턴 이전으로 되감기',
|
|
'chat.turnChangesLatestConfirmTitle': '현재 턴을 실행 취소하시겠습니까?',
|
|
'chat.turnChangesHistoricalConfirmTitle': '이 턴 이전으로 되감으시겠습니까?',
|
|
'chat.turnChangesLatestConfirmBody': '최신 어시스턴트 응답을 되감고 이 턴의 추적된 파일을 복원합니다.',
|
|
'chat.turnChangesHistoricalConfirmBody': '대화를 이 턴 이전으로 되감고 해당 체크포인트의 추적된 파일을 복원합니다.',
|
|
'chat.turnChangesLatestConfirmUndo': '현재 턴 실행 취소',
|
|
'chat.turnChangesHistoricalConfirmUndo': '이 턴 이전으로 되감기',
|
|
'chat.turnChangesOpenInWorkspaceAria': '{path}을(를) 작업 공간에서 열기',
|
|
'chat.turnChangesShowMore': '{count}개의 파일 더 보기',
|
|
'chat.turnChangesShowLess': '적게 보기',
|
|
|
|
// ─── Streaming Indicator ──────────────────────────────────────
|
|
'streaming.thinking': '사고 중',
|
|
'streaming.running': '실행 중',
|
|
'streaming.working': '작업 중',
|
|
|
|
// ─── Permission Dialog ──────────────────────────────────────
|
|
'permission.allowEditFile': 'Claude가 {fileName}을(를) {toolName}하도록 허용하시겠습니까?',
|
|
'permission.allowEditFileGeneric': 'Claude가 이 파일을 {toolName}하도록 허용하시겠습니까?',
|
|
'permission.allowBash': 'Claude가 이 명령을 실행하도록 허용하시겠습니까?',
|
|
'permission.allowTool': 'Claude가 {toolName}을(를) 사용하도록 허용하시겠습니까?',
|
|
'permission.awaitingApproval': '승인 대기 중',
|
|
'permission.responded': '응답함',
|
|
'permission.allow': '허용',
|
|
'permission.allowForSession': '이 세션에서 허용',
|
|
'permission.deny': '거부',
|
|
'permission.hideDetails': '세부 정보 숨기기',
|
|
'permission.showFullInput': '전체 입력 표시',
|
|
'permission.replacingContent': '파일 내용 교체 중',
|
|
|
|
// ─── Computer Use Approval ──────────────────────────────────────
|
|
'computerUseApproval.titleApps': '컴퓨터 사용이 이 앱들을 제어하려고 합니다',
|
|
'computerUseApproval.titleTcc': '컴퓨터 사용에 macOS 권한이 필요합니다',
|
|
'computerUseApproval.reason': 'Claude가 요청하는 이유',
|
|
'computerUseApproval.allow': '이 세션에서 허용',
|
|
'computerUseApproval.deny': '거부',
|
|
'computerUseApproval.alreadyGranted': '이 세션에서는 이미 허용됨',
|
|
'computerUseApproval.notInstalled': '앱이 설치되지 않음',
|
|
'computerUseApproval.sensitiveApp': '이 앱은 민감한 것으로 처리되며 추가 검토가 필요합니다.',
|
|
'computerUseApproval.alsoRequested': '함께 요청됨',
|
|
'computerUseApproval.hideWhileWorking': 'Claude가 작업하는 동안 다른 {count}개의 앱이 숨겨집니다.',
|
|
'computerUseApproval.hideWhileWorkingRestore': 'Claude가 작업하는 동안 다른 {count}개의 앱이 숨겨졌다가 Claude가 완료되면 복원됩니다.',
|
|
'computerUseApproval.accessibility': '접근성',
|
|
'computerUseApproval.screenRecording': '화면 기록',
|
|
'computerUseApproval.granted': '허용됨',
|
|
'computerUseApproval.notGranted': '허용되지 않음',
|
|
'computerUseApproval.openAccessibility': '접근성 열기',
|
|
'computerUseApproval.openScreenRecording': '화면 기록 열기',
|
|
'computerUseApproval.tryAgain': '다시 시도',
|
|
'computerUseApproval.tccHint': '시스템 설정에서 부족한 권한을 허용한 후 돌아와 "다시 시도"를 선택하세요.',
|
|
'computerUseApproval.tryAgainHint': '다시 시도하면 Claude에 제어가 돌아가 macOS 권한 변경이 적용된 후 request_access를 한 번 더 호출할 수 있습니다.',
|
|
|
|
// ─── Ask User Question ──────────────────────────────────────
|
|
'question.needsInput': 'Claude가 입력을 필요로 합니다',
|
|
'question.answered': '응답함',
|
|
'question.completed': '완료',
|
|
'question.customResponse': '또는 직접 응답을 입력하세요:',
|
|
'question.typePlaceholder': '답변 입력...',
|
|
'question.submit': '제출',
|
|
'question.answeredPrefix': '응답: ',
|
|
'question.resultPrefix': '결과: ',
|
|
|
|
// ─── Thinking Block ──────────────────────────────────────
|
|
'thinking.label': '사고 중',
|
|
'thinking.labelDone': '사고 완료',
|
|
|
|
// ─── Tool Calls ──────────────────────────────────────
|
|
'tool.errorOutput': '오류 출력',
|
|
'tool.toolOutput': '도구 출력',
|
|
'tool.toolInput': '도구 입력',
|
|
'tool.partialInput': '부분 입력',
|
|
'tool.writerPreview': 'Writer',
|
|
'tool.writerPreviewLatest': '{total}줄 중 최신 {visible}줄 표시 중',
|
|
'tool.generatingContent': '콘텐츠 생성 중',
|
|
'tool.preparingEdit': '편집 준비 중',
|
|
'tool.preparingTool': '도구 준비 중',
|
|
'tool.readFileContents': '파일 내용 읽기',
|
|
'tool.createFile': '파일 만들기',
|
|
'tool.updateFileContents': '파일 내용 업데이트',
|
|
'tool.linesChanged': '{count}줄 변경됨',
|
|
'tool.linesCreated': '{count}줄 생성됨',
|
|
'tool.linesOutput': '{count}줄 출력됨',
|
|
'tool.result': '{toolName} 결과',
|
|
'tool.resultGeneric': '도구 결과',
|
|
'tool.error': '오류',
|
|
'tool.success': '성공',
|
|
'tool.showLess': '적게 보기',
|
|
'tool.showMore': '{count}자 더 보기',
|
|
|
|
// ─── Tool Group Verbs ──────────────────────────────────────
|
|
'toolGroup.readOne': '파일 1개 읽음',
|
|
'toolGroup.readMany': '파일 {count}개 읽음',
|
|
'toolGroup.createdOne': '파일을 만들었습니다',
|
|
'toolGroup.createdMany': '파일 {count}개를 만들었습니다',
|
|
'toolGroup.editedOne': '파일을 편집했습니다',
|
|
'toolGroup.editedMany': '파일 {count}개를 편집했습니다',
|
|
'toolGroup.ranOne': '명령을 실행했습니다',
|
|
'toolGroup.ranMany': '명령 {count}개를 실행했습니다',
|
|
'toolGroup.foundFiles': '파일을 찾았습니다',
|
|
'toolGroup.searchedOne': '코드를 검색했습니다',
|
|
'toolGroup.searchedMany': '패턴 {count}개를 검색했습니다',
|
|
'toolGroup.agentOne': '에이전트 1개를 디스패치했습니다',
|
|
'toolGroup.agentMany': '에이전트 {count}개를 디스패치했습니다',
|
|
'agentStatus.starting': '시작 중',
|
|
'agentStatus.running': '실행 중',
|
|
'agentStatus.done': '완료',
|
|
'agentStatus.failed': '실패',
|
|
'agentStatus.stopped': '중지됨',
|
|
'agentStatus.noActivity': '아직 도구 활동이 없습니다',
|
|
'agentStatus.viewResult': '결과 보기',
|
|
'agentStatus.resultTitle': '에이전트 결과',
|
|
'toolGroup.searchedWeb': '웹을 검색했습니다',
|
|
'toolGroup.fetchedOne': '페이지 1개를 가져왔습니다',
|
|
'toolGroup.fetchedMany': '페이지 {count}개를 가져왔습니다',
|
|
|
|
// ─── Tasks ──────────────────────────────────────
|
|
'tasks.title': '작업',
|
|
'tasks.completed': '완료된 작업',
|
|
'tasks.dismissCompleted': '완료된 작업 숨기기',
|
|
'tasks.newTask': '+ 새 작업',
|
|
'tasks.emptyTitle': '아직 예약된 작업이 없습니다.',
|
|
'tasks.emptyDesc': '반복 작업을 만들어 엔지니어링 워크플로를 자동화하세요.',
|
|
'tasks.createNew': '새 작업 만들기',
|
|
'tasks.totalTasks': '총 작업',
|
|
'tasks.active': '활성',
|
|
'tasks.disabled': '사용 안 함',
|
|
|
|
// ─── New Task Modal ──────────────────────────────────────
|
|
'newTask.title': '새 예약 작업',
|
|
'newTask.localWarning': '로컬 작업은 컴퓨터가 켜져 있는 동안에만 실행됩니다.',
|
|
'newTask.fullPermissions': '모든 권한',
|
|
'newTask.name': '이름',
|
|
'newTask.namePlaceholder': 'daily-code-review',
|
|
'newTask.description': '설명',
|
|
'newTask.descPlaceholder': '어제 커밋을 검토하고 우려되는 점을 표시',
|
|
'newTask.frequency': '빈도',
|
|
'newTask.everyNMinutes': 'N분마다',
|
|
'newTask.everyNHours': 'N시간마다',
|
|
'newTask.daily': '매일',
|
|
'newTask.weekdays': '평일(월~금)',
|
|
'newTask.specificDays': '특정 요일',
|
|
'newTask.monthly': '매월',
|
|
'newTask.customCron': '사용자 지정 cron 식',
|
|
'newTask.intervalMinutes': '{n}분마다',
|
|
'newTask.intervalHours': '{n}시간마다',
|
|
'newTask.atMinute': ':{m}분에',
|
|
'newTask.onMonthDay': '매월 {d}일에',
|
|
'newTask.cronFormatHint': '형식: 분 시 일 월 요일',
|
|
'newTask.invalidCron': '잘못된 cron 식',
|
|
'newTask.daySun': '일',
|
|
'newTask.dayMon': '월',
|
|
'newTask.dayTue': '화',
|
|
'newTask.dayWed': '수',
|
|
'newTask.dayThu': '목',
|
|
'newTask.dayFri': '금',
|
|
'newTask.daySat': '토',
|
|
'newTask.delayNote': '예약 작업은 서버 성능을 위해 몇 분의 무작위 지연을 사용합니다.',
|
|
'newTask.create': '작업 만들기',
|
|
'newTask.promptPlaceholder': '지난 24시간의 커밋을 확인하세요. 무엇이 바뀌었는지 요약하고, 위험한 패턴이나 누락된 테스트를 지적하며, 후속 조치가 필요한 점을 기록하세요.',
|
|
'newTask.notification': '알림',
|
|
'newTask.notifyOnComplete': '완료 시 푸시 알림',
|
|
'newTask.notifyChannels': '알림 채널',
|
|
'newTask.notifyHint': '작업이 완료되면 OS 기본 데스크톱 알림 또는 IM 메시지를 보냅니다.',
|
|
'newTask.notifyDesktop': '데스크톱',
|
|
'newTask.notConfigured': '구성되지 않음',
|
|
'newTask.noChannelConfigured': '아직 구성된 IM 채널이 없습니다. 설정 → IM 어댑터 에서 설정하세요.',
|
|
'newTask.noChannelSelected': '하나 이상의 알림 채널을 선택하세요.',
|
|
|
|
// ─── Cron Descriptions ──────────────────────────────────────
|
|
'cron.everyMinute': '매분 실행',
|
|
'cron.everyNMinutes': '{n}분마다 실행',
|
|
'cron.everyHour': '매시간 실행',
|
|
'cron.everyNHours': '{n}시간마다 실행',
|
|
'cron.everyNHoursAtMinute': '{n}시간마다 :{m}분에 실행',
|
|
'cron.dailyAt': '매일 {time}에 실행',
|
|
'cron.weekdaysAt': '평일 {time}에 실행',
|
|
'cron.specificDaysAt': '매주 {days} {time}에 실행',
|
|
'cron.monthlyAt': '매월 {day}일 {time}에 실행',
|
|
'cron.customSchedule': '사용자 지정: {cron}',
|
|
'cron.dow.0': '일',
|
|
'cron.dow.1': '월',
|
|
'cron.dow.2': '화',
|
|
'cron.dow.3': '수',
|
|
'cron.dow.4': '목',
|
|
'cron.dow.5': '금',
|
|
'cron.dow.6': '토',
|
|
|
|
// ─── Task Actions & Logs ──────────────────────────────────────
|
|
'tasks.runNow': '지금 실행',
|
|
'tasks.confirmRun': '이 작업을 즉시 실행하시겠습니까?',
|
|
'tasks.confirmDisable': '이 예약 작업을 사용 안 함으로 설정하시겠습니까?',
|
|
'tasks.confirmEnable': '이 예약 작업을 사용하시겠습니까?',
|
|
'tasks.confirmDelete': '이 작업과 모든 로그를 영구적으로 삭제하시겠습니까?',
|
|
'tasks.running': '실행 중...',
|
|
'tasks.viewLogs': '로그',
|
|
'tasks.logsTitle': '실행 로그',
|
|
'tasks.noLogs': '아직 실행 로그가 없습니다',
|
|
'tasks.runStatus.running': '실행 중',
|
|
'tasks.runStatus.completed': '완료',
|
|
'tasks.runStatus.failed': '실패',
|
|
'tasks.runStatus.timeout': '시간 초과',
|
|
'tasks.duration': '{s}초',
|
|
'tasks.viewOutput': '요약',
|
|
'tasks.hideOutput': '숨기기',
|
|
'tasks.close': '닫기',
|
|
'tasks.edit': '편집',
|
|
'tasks.editTitle': '예약 작업 편집',
|
|
'tasks.saveChanges': '변경 사항 저장',
|
|
'tasks.openSession': '대화 보기',
|
|
'tasks.createdAt': '생성: ',
|
|
'tasks.lastRunAt': '마지막 실행: ',
|
|
'tasks.outputHintSession': '"대화 보기"를 클릭하면 세션 보기에서 전체 출력을 볼 수 있습니다.',
|
|
'tasks.noOutputText': '사용할 수 있는 출력이 없습니다.',
|
|
|
|
// ─── Prompt Editor ──────────────────────────────────────
|
|
'promptEditor.worktree': 'worktree',
|
|
'promptEditor.bypassWarning': '우회 모드는 시스템에 대한 전체 액세스를 허용합니다',
|
|
'promptEditor.within': '범위:',
|
|
'promptEditor.selectFolder': '— 범위를 제한할 폴더 선택',
|
|
|
|
// ─── Permission Mode Selector ──────────────────────────────────────
|
|
'permMode.executionPermissions': '실행 권한',
|
|
'permMode.askPermissions': '권한 확인',
|
|
'permMode.askPermDesc': 'CLI가 요청할 때 파일 편집과 위험도가 높은 명령을 확인합니다',
|
|
'permMode.autoAccept': '편집 자동 수락',
|
|
'permMode.autoAcceptDesc': 'Claude가 확인 없이 디스크에 씁니다',
|
|
'permMode.planMode': '계획 모드',
|
|
'permMode.planModeDesc': '설계 및 추론만, 파일은 다루지 않음',
|
|
'permMode.bypass': '권한 우회',
|
|
'permMode.bypassDesc': '셸과 파일 시스템에 대한 전체 도구 액세스',
|
|
'permMode.dontAsk': '확인 안 함',
|
|
'permMode.enableBypassTitle': '권한 우회를 사용하시겠습니까?',
|
|
'permMode.enableBypassSubtitle': '이렇게 하면 시스템에 대한 전체 액세스가 허용됩니다',
|
|
'permMode.enableBypassBody': 'Claude는 다음 범위 내에서 셸 명령 실행과 파일 수정에 <strong>무제한</strong> 액세스를 갖게 됩니다:',
|
|
'permMode.permReadWrite': '모든 파일 읽기, 쓰기, 삭제',
|
|
'permMode.permShell': '임의의 셸 명령 실행',
|
|
'permMode.permPackages': '패키지 설치 또는 제거',
|
|
'permMode.enableBypassBtn': '우회 사용',
|
|
|
|
// Mode labels (compact, for chips)
|
|
'permMode.label.default': '권한 확인',
|
|
'permMode.label.acceptEdits': '자동 수락',
|
|
'permMode.label.plan': '계획 모드',
|
|
'permMode.label.bypassPermissions': '우회',
|
|
'permMode.label.dontAsk': '확인 안 함',
|
|
|
|
// ─── Model Selector ──────────────────────────────────────
|
|
'model.selectModel': '모델 선택',
|
|
'model.configuration': '모델 구성',
|
|
'model.effort': '노력',
|
|
|
|
// ─── Directory Picker ──────────────────────────────────────
|
|
'dirPicker.selectProject': '프로젝트 선택...',
|
|
'dirPicker.recent': '최근',
|
|
'dirPicker.noRecent': '최근 프로젝트가 없습니다',
|
|
'dirPicker.chooseFolder': '다른 폴더 선택',
|
|
'dirPicker.chooseProjectFolder': '프로젝트 폴더 선택',
|
|
'dirPicker.useThisFolder': '이 폴더 사용',
|
|
'dirPicker.noSubdirs': '하위 디렉터리가 없습니다',
|
|
|
|
// ─── File Search ──────────────────────────────────────
|
|
'fileSearch.searching': '검색 중...',
|
|
'fileSearch.noMatch': '일치하는 파일이 없습니다',
|
|
'fileSearch.noFiles': '이 디렉터리에 파일이 없습니다',
|
|
'fileSearch.accessDenied': '이 디렉터리에 접근할 수 없습니다',
|
|
'fileSearch.loadFailed': '디렉터리를 불러오지 못했습니다',
|
|
'fileSearch.navigate': '이동',
|
|
'fileSearch.attach': '첨부',
|
|
'fileSearch.select': '선택',
|
|
'fileSearch.open': '폴더 열기',
|
|
'fileSearch.close': '닫기',
|
|
'fileSearch.directory': '폴더',
|
|
'fileSearch.currentDirectory': '현재 폴더',
|
|
'fileSearch.folderTag': '폴더',
|
|
'fileSearch.fileTag': '파일',
|
|
'fileSearch.openFolder': '폴더 열기',
|
|
|
|
// ─── Teams ──────────────────────────────────────
|
|
'teams.backToLeader': '\u2190 \ub9ac\ub354\ub85c \ub3cc\uc544\uac00\uae30',
|
|
'teams.viewing': '\ubcf4\ub294 \uc911:',
|
|
'teams.transcript': '기록',
|
|
'teams.noMessages': '아직 메시지가 없습니다',
|
|
'teams.team': '팀:',
|
|
'teams.members': '멤버',
|
|
'teams.working': '작업 중...',
|
|
'teams.thinking': '사고 중...',
|
|
'teams.running': '실행 중',
|
|
'teams.leader': 'team-lead',
|
|
'teams.memberPlaceholder': '이 팀원에게 직접 메시지 보내기...',
|
|
'teams.memberSessionHint': '여기서 보내는 메시지는 이 팀원에게 바로 전달되며, 기록이 업데이트되는 것을 보면서 주고받을 수 있습니다.',
|
|
|
|
// ─── Scheduled Tasks Pages ──────────────────────────────────────
|
|
'scheduledPage.title': '예약 작업',
|
|
'scheduledPage.subtitle': '작업을 예약 실행하거나 필요할 때 실행하세요. 기존 세션에서 {code}을(를) 입력하면 만들 수 있습니다.',
|
|
'scheduledPage.desktopNotice': '예약 작업은 데스크톱 앱이 열려 있는 동안에만 실행됩니다. 작업이 제시간에 실행되도록 앱을 계속 실행해 두세요.',
|
|
'scheduledPage.oldSubtitle': '자동화된 운영 루틴과 백그라운드 유지 관리를 관리합니다.',
|
|
'scheduledPage.executionMode': '실행 모드',
|
|
'scheduledPage.localMode': '로컬 모드',
|
|
'scheduledPage.remoteMode': '원격 모드',
|
|
'scheduledPage.nextRun': '다음 실행',
|
|
'scheduledPage.systemHealth': '시스템 상태',
|
|
'scheduledPage.activeSession': '활성 세션',
|
|
'scheduledPage.colTaskName': '작업 이름',
|
|
'scheduledPage.colFrequency': '빈도',
|
|
'scheduledPage.colLastResult': '마지막 결과',
|
|
'scheduledPage.colNextExecution': '다음 실행',
|
|
'scheduledPage.colActions': '작업',
|
|
'scheduledPage.endOfList': '예약 목록의 끝',
|
|
'scheduledPage.pausedTasks': '다른 9개의 작업이 현재 유지 관리를 위해 일시 중지되었거나 사용 안 함으로 설정되어 있습니다.',
|
|
'scheduledPage.recentLogs': '최근 출력 로그',
|
|
'scheduledPage.viewArtifacts': '전체 결과물 보기',
|
|
'scheduledPage.resourceAllocation': '리소스 할당',
|
|
'scheduledPage.cpuCapacity': 'CPU 용량',
|
|
'scheduledPage.memoryLoad': '메모리 부하',
|
|
'scheduledPage.connectedLocal': '로컬 노드에 연결됨',
|
|
'scheduledPage.thisMonth': '이번 달 {count}개',
|
|
|
|
// ─── Update Checker ──────────────────────────────────────
|
|
'update.available': 'v{version} 사용 가능',
|
|
'update.availableLabel': '사용 가능',
|
|
'update.checking': '업데이트 확인 중...',
|
|
'update.checkNow': '지금 확인',
|
|
'update.checkedAt': '마지막 확인 {time}',
|
|
'update.currentVersionUnknown': '알 수 없음',
|
|
'update.newVersion': '새 버전 v{version} 사용 가능',
|
|
'update.downloading': '다운로드 중...',
|
|
'update.downloaded': '업데이트를 다운로드했습니다. 사용할 준비가 되면 다시 시작하세요.',
|
|
'update.idle': '업데이트를 확인하여 설치된 버전을 최신 GitHub Release와 비교합니다.',
|
|
'update.installAndRestart': '설치하고 다시 시작',
|
|
'update.installing': '업데이트 설치 중...',
|
|
'update.now': '지금 업데이트',
|
|
'update.later': '나중에',
|
|
'update.progress': '업데이트 다운로드 중... {progress}%',
|
|
'update.progressBytes': '업데이트 다운로드 중... {downloaded} 다운로드됨',
|
|
'update.proxyAdvanced': '고급 업데이트 프록시',
|
|
'update.proxyModeManual': '수동 프록시',
|
|
'update.proxyModeManualDescription': '제공한 로컬 HTTP 프록시 주소를 사용합니다.',
|
|
'update.proxyModeSystem': '시스템 프록시',
|
|
'update.proxyModeSystemDescription': 'OS의 HTTP/HTTPS 프록시를 자동으로 사용합니다.',
|
|
'update.proxySave': '저장',
|
|
'update.proxyScopeHint': '이것은 앱 업데이트 확인과 다운로드에만 영향을 줍니다.',
|
|
'update.proxyUrl': '프록시 URL',
|
|
'update.proxyUrlHint': 'HTTP 및 HTTPS 프록시 URL을 지원합니다. 예: http://127.0.0.1:7890.',
|
|
'update.proxyUrlInvalid': 'HTTP 또는 HTTPS 프록시 URL을 입력하세요.',
|
|
'update.proxyUrlRequired': '프록시 URL을 입력하세요.',
|
|
'update.releaseNotes': '릴리스 노트',
|
|
'update.readyBody': 'v{version}을(를) 다운로드했습니다. 사용할 준비가 되면 다시 시작하세요.',
|
|
'update.readyTitle': '업데이트 준비 완료',
|
|
'update.restarting': '업데이트를 완료하기 위해 다시 시작 중...',
|
|
'update.upToDate': 'v{version}은(는) 최신입니다.',
|
|
'update.failed': '업데이트에 실패했습니다: {error}',
|
|
|
|
// ─── Active Session ──────────────────────────────────────
|
|
'session.untitled': '제목 없는 세션',
|
|
'session.active': '세션 활성',
|
|
'session.lastUpdated': '마지막 업데이트 {time}',
|
|
'session.messages': '{count}개의 메시지',
|
|
'session.historyLoadFailed': '세션 기록을 불러오지 못했습니다.',
|
|
'session.workspaceUnavailable': '작업 공간을 사용할 수 없습니다: {dir}',
|
|
'session.timeJustNow': '방금',
|
|
'session.timeMinutes': '{n}분 전',
|
|
'session.timeHours': '{n}시간 전',
|
|
'session.timeDays': '{n}일 전',
|
|
'trace.open': 'Trace',
|
|
'trace.title': '모델 Trace',
|
|
'trace.loadFailed': 'Trace를 불러오지 못했습니다',
|
|
'trace.apiCalls': 'API 호출',
|
|
'trace.failedCalls': '실패',
|
|
'trace.duration': '소요 시간',
|
|
'trace.models': '모델',
|
|
'trace.request': '요청',
|
|
'trace.response': '응답',
|
|
'trace.status': '상태',
|
|
'trace.live': '실시간',
|
|
'trace.updatedAt': '업데이트',
|
|
'trace.copySessionId': 'Session ID 복사',
|
|
'trace.refresh': 'Trace 새로고침',
|
|
'trace.openWindow': '별도 창에서 열기',
|
|
'trace.noResponse': '응답 본문이 캡처되지 않았습니다',
|
|
'trace.emptyTitle': '아직 Trace 호출이 없습니다',
|
|
'trace.emptyBody': '이 세션에는 캡처된 모델 호출이 없습니다. 새 데스크톱 세션은 간단한 요청 및 응답 미리보기를 자동으로 기록합니다.',
|
|
'trace.tokens': 'Tokens',
|
|
'trace.snapshotEmpty': 'Trace 스냅샷이 비어 있습니다.',
|
|
'trace.errors': '오류',
|
|
'trace.focus': '집중 지점',
|
|
'trace.searchSpans': 'Span 검색',
|
|
'trace.noMatchingSpans': '일치하는 Span이 없습니다',
|
|
'trace.filter.all': '전체',
|
|
'trace.filter.llm': 'LLM',
|
|
'trace.filter.tools': '도구',
|
|
'trace.filter.errors': '오류',
|
|
'trace.sidechain': '하위',
|
|
'trace.turnLabel': '{index}번째 턴',
|
|
'trace.waitingForResult': '결과 대기 중',
|
|
'trace.started': '시작',
|
|
'trace.provider': 'Provider',
|
|
'trace.model': '모델',
|
|
'trace.childSpans': '하위 Span',
|
|
'trace.requestBody': '요청 본문',
|
|
'trace.requestHeaders': '요청 헤더',
|
|
'trace.responseBody': '응답 본문',
|
|
'trace.responseHeaders': '응답 헤더',
|
|
'trace.toolResult': '도구 결과',
|
|
'trace.truncatedShort': '잘림',
|
|
'trace.noData': '데이터 없음',
|
|
'trace.llmCalls': 'LLM 호출',
|
|
'trace.toolCalls': '도구 호출',
|
|
'trace.status.ok': '정상',
|
|
'trace.status.error': '오류',
|
|
'trace.status.pending': '대기 중',
|
|
'trace.message.user': '사용자 메시지',
|
|
'trace.message.assistant': '어시스턴트 메시지',
|
|
'trace.message.system': '시스템 메시지',
|
|
'trace.message.toolRequest': '어시스턴트 도구 요청',
|
|
'trace.message.toolResult': '도구 결과',
|
|
'trace.toolError': '도구 오류',
|
|
'trace.modelCall': '모델 호출',
|
|
'trace.sessionActivity': '세션 활동',
|
|
'trace.diagnosis.modelError': '모델 호출 실패',
|
|
'trace.diagnosis.toolError': '도구 실행 실패',
|
|
'trace.diagnosis.eventError': '트레이스 이벤트 실패',
|
|
'trace.diagnosis.pendingModel': '모델 응답 대기 중',
|
|
'trace.diagnosis.pendingTool': '도구 결과 대기 중',
|
|
'trace.diagnosis.waitingForAgent': '사용자 메시지가 아직 agent 단계에 들어가지 않았습니다',
|
|
'trace.diagnosis.empty': '진단 이벤트가 없습니다',
|
|
'trace.diagnosis.healthy': '차단 지점이 감지되지 않았습니다',
|
|
'trace.event.apiCallStarted': 'API 호출 시작',
|
|
'trace.event.apiCallCompleted': 'API 호출 완료',
|
|
'trace.event.apiCallFailed': 'API 호출 실패',
|
|
'trace.event.responseCaptureFailed': '응답 캡처 실패',
|
|
'trace.event.upstreamFetchStarted': '업스트림 요청 시작',
|
|
'trace.event.upstreamFetchCompleted': '업스트림 요청 완료',
|
|
'trace.event.upstreamFetchFailed': '업스트림 요청 실패',
|
|
'trace.section.response': '응답',
|
|
'trace.section.messages': '메시지',
|
|
'trace.section.systemPrompt': '시스템 프롬프트',
|
|
'trace.section.tools': '도구',
|
|
'trace.section.parameters': '파라미터',
|
|
'trace.section.raw': '원본 데이터',
|
|
'trace.section.input': '입력',
|
|
'trace.section.result': '결과',
|
|
'trace.section.meta': '메타 정보',
|
|
'trace.section.content': '내용',
|
|
'trace.section.event': '이벤트',
|
|
'trace.section.metadata': '메타데이터',
|
|
'trace.detail.stopReason': '중지 사유',
|
|
'trace.detail.streaming': '모델 응답을 기다리는 중...',
|
|
'trace.detail.legacyTruncated': '이 레코드는 구형식의 잘린 데이터여서 시맨틱 보기를 사용할 수 없습니다. 아래 원본 데이터를 확인하세요.',
|
|
'trace.detail.fetchFailed': '전체 레코드를 불러오지 못해 잘린 미리보기를 표시합니다.',
|
|
'trace.detail.earlierMessages': '이전 메시지 {count}개 보기',
|
|
'trace.detail.chars': '{count}자',
|
|
'trace.detail.thinking': '생각',
|
|
'trace.detail.toolUseId': 'Tool use ID',
|
|
'trace.detail.phase': '단계',
|
|
'trace.detail.severity': '심각도',
|
|
'trace.detail.message': '메시지',
|
|
'trace.tree.aria': '트레이스 타임라인',
|
|
'trace.tree.toggleTurn': '턴 접기/펼치기',
|
|
'trace.list.eyebrow': 'Agent Trace',
|
|
'trace.list.title': 'Trace 목록',
|
|
'trace.list.collecting': '수집 중',
|
|
'trace.list.paused': '일시 중지됨',
|
|
'trace.list.settings': 'Trace 설정',
|
|
'trace.list.sessions': '세션',
|
|
'trace.list.searchPlaceholder': '제목, Session ID 또는 프로젝트 경로 검색',
|
|
'trace.list.emptyTitle': '아직 Trace 기록이 없습니다',
|
|
'trace.list.emptyBody': '수집을 켜면 새 데스크톱 세션이 모델 호출 트레이스를 로컬 traces 디렉터리에 기록합니다.',
|
|
'trace.list.loadFailed': 'Trace 목록을 불러오지 못했습니다',
|
|
'trace.list.loadedCount': '{shown} / {total} 표시 중',
|
|
'trace.list.loadMore': '더 불러오기',
|
|
|
|
// ─── App Shell ──────────────────────────────────────
|
|
'app.serverFailed': '로컬 서버를 시작하지 못했습니다',
|
|
'app.serverFailedHint': '문제를 신고할 때 이 진단 패널의 스크린샷을 첨부해 주세요.',
|
|
'app.startupError': '시작 오류',
|
|
'app.serverLogs': '서버 로그',
|
|
'app.copyDiagnostics': '진단 정보 복사',
|
|
'app.copiedDiagnostics': '복사됨',
|
|
'app.launching': '로컬 작업 공간을 시작하는 중...',
|
|
|
|
// ─── Error Codes ──────────────────────────────────────
|
|
'error.CLI_NOT_RUNNING': 'CLI 프로세스가 실행되고 있지 않습니다. 세션이 종료되었거나 프로세스가 충돌했을 수 있습니다.',
|
|
'error.CLI_START_FAILED': 'CLI 프로세스를 시작하지 못했습니다.',
|
|
'error.CLI_AUTH_REQUIRED': '인증이 필요합니다. 로그인하세요.',
|
|
'error.CLI_SESSION_CONFLICT': '세션이 이미 다른 프로세스에서 사용 중입니다.',
|
|
'error.CLI_SPAWN_FAILED': 'CLI 하위 프로세스를 생성하지 못했습니다.',
|
|
'error.CLI_ERROR': '처리 중 오류가 발생했습니다.',
|
|
'error.WORKDIR_INVALID': '작업 디렉터리가 잘못되었거나 존재하지 않습니다.',
|
|
'error.PARSE_ERROR': '메시지 형식이 잘못되었습니다.',
|
|
'error.UNKNOWN_TYPE': '알 수 없는 메시지 유형입니다.',
|
|
'error.BAD_REQUEST': '잘못된 요청입니다.',
|
|
'error.NOT_FOUND': '리소스를 찾을 수 없습니다.',
|
|
'error.INTERNAL_ERROR': '서버 내부 오류입니다.',
|
|
|
|
// ─── Business Errors ──────────────────────────────────────
|
|
'businessError.pdf_too_large': 'PDF가 선택한 모델에 비해 너무 큽니다. 텍스트로 변환하거나 더 작은 PDF를 사용하세요.',
|
|
'businessError.pdf_password_protected': 'PDF가 비밀번호로 보호되어 있습니다. 다시 보내기 전에 잠금을 해제하거나 변환하세요.',
|
|
'businessError.pdf_invalid': 'PDF 파일이 유효하지 않습니다. 텍스트로 변환하거나 다른 파일을 보내세요.',
|
|
'businessError.image_too_large': '이미지가 선택한 모델에 비해 너무 큽니다. 크기를 조정하거나 더 작은 이미지를 보내세요.',
|
|
'businessError.image_unsupported': '이 모델은 이미지를 지원하지 않습니다. 텍스트로 계속하거나, 비전 지원 모델로 전환하여 이미지를 다시 보내세요.',
|
|
'businessError.request_too_large': '요청이 선택한 모델에 비해 너무 큽니다. 큰 파일을 제거하거나 더 짧은 메시지로 다시 시도하세요.',
|
|
'businessError.prompt_too_long': '프롬프트가 선택한 모델에 비해 너무 깁니다. 대화를 압축하거나 컨텍스트를 줄여 다시 시도하세요.',
|
|
'businessError.auto_mode_unavailable': '자동 모드는 현재 요금제에서 사용할 수 없습니다.',
|
|
|
|
// ─── Server Status Verbs ──────────────────────────────────────
|
|
'serverVerb.Thinking': '사고 중',
|
|
'serverVerb.Compacting conversation': '컨텍스트 압축 중',
|
|
'serverVerb.Running': '실행 중',
|
|
'serverVerb.Working': '작업 중',
|
|
'serverVerb.Creating worktree': 'worktree 만드는 중',
|
|
'serverVerb.Task started': '작업 시작됨',
|
|
'serverVerb.Task in progress': '작업 진행 중',
|
|
'chat.retry.title': '요청 실패, 다시 시도 중',
|
|
'chat.retry.attempt': '다시 시도 {attempt}/{max}',
|
|
'chat.retry.httpStatus': 'HTTP {status}',
|
|
'chat.retry.networkError': '네트워크 오류',
|
|
'chat.retry.waiting': '{seconds}초 대기 중',
|
|
|
|
// ─── Tabs ──────────────────────────────────────
|
|
'tabs.close': '닫기',
|
|
'tabs.closeOthers': '다른 탭 닫기',
|
|
'tabs.closeLeft': '왼쪽 탭 닫기',
|
|
'tabs.closeRight': '오른쪽 탭 닫기',
|
|
'tabs.closeAll': '모두 닫기',
|
|
'tabs.closeConfirmTitle': '세션 실행 중',
|
|
'tabs.closeConfirmMessage': '이 세션은 아직 실행 중입니다. 어떻게 하시겠습니까?',
|
|
'tabs.closeConfirmKeep': '계속 실행',
|
|
// ─── Slash Command Descriptions ──────────────────────────────────────
|
|
'slashCmd.agent.description': '선택한 Agent로 프롬프트 실행',
|
|
'slashCmd.mcp.description': '현재 채팅 컨텍스트에서 사용 가능한 MCP 도구 열기',
|
|
'slashCmd.skills.description': '현재 채팅 컨텍스트에서 사용자가 호출할 수 있는 스킬 살펴보기',
|
|
'slashCmd.help.description': '사용 가능한 데스크톱 및 에이전트 명령 표시',
|
|
'slashCmd.status.description': '세션 상태, 사용량, 컨텍스트 표시',
|
|
'slashCmd.cost.description': '세션 사용량과 비용 표시',
|
|
'slashCmd.context.description': '현재 컨텍스트 사용량 표시',
|
|
'slashCmd.plugin.description': '설정에서 데스크톱 플러그인 제어 열기',
|
|
'slashCmd.memory.description': '설정에서 프로젝트 메모리 파일 열기',
|
|
'slashCmd.doctor.description': '진단에서 Doctor 열기',
|
|
'slashCmd.compact.description': '대화 컨텍스트 압축',
|
|
'slashCmd.clear.description': '대화 기록 지우기',
|
|
'slashCmd.goal.description': '완료 목표 설정',
|
|
'slashCmd.review.description': '코드 변경 검토',
|
|
'slashCmd.commit.description': 'git 커밋 만들기',
|
|
'slashCmd.pr.description': '풀 리퀘스트 만들기',
|
|
'slashCmd.init.description': '프로젝트 CLAUDE.md 초기화',
|
|
'slashCmd.bug.description': '버그 신고',
|
|
'slashCmd.config.description': '구성 열기',
|
|
'slashCmd.login.description': 'Anthropic 계정 전환',
|
|
'slashCmd.logout.description': '현재 계정에서 로그아웃',
|
|
'slashCmd.model.description': 'AI 모델 전환',
|
|
'slashCmd.permissions.description': '도구 권한 보기 또는 관리',
|
|
'slashCmd.terminal-setup.description': '터미널 통합 설정',
|
|
'slashCmd.vim.description': 'Vim 편집 모드 전환',
|
|
|
|
'tabs.closeConfirmStop': '중지하고 닫기',
|
|
'tabs.closeAllConfirmTitle': '세션 실행 중',
|
|
'tabs.closeAllConfirmMessage': '{count}개의 세션이 아직 실행 중입니다. 이 탭들을 닫기 전에 중지하시겠습니까?',
|
|
'tabs.closeAllConfirmStop': '모두 중지하고 닫기',
|
|
'tabs.sessionRunning': '세션 실행 중',
|
|
'tabs.openTerminal': '터미널 열기',
|
|
'tabs.showWorkspace': '작업 공간 표시',
|
|
'tabs.hideWorkspace': '작업 공간 숨기기',
|
|
'tabs.showBrowser': '브라우저 표시',
|
|
'tabs.hideBrowser': '브라우저 숨기기',
|
|
}
|