Files
openchamber/packages/ui/src/lib/i18n/messages/ko.ts
T
2026-08-04 13:41:00 +03:00

2921 lines
207 KiB
TypeScript

import type { I18nKey } from './en';
import { settingsDict } from './ko.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': '선택한 출력 첨부',
'terminalView.actions.restart': '터미널 다시 시작',
'chat.message.terminalContext': '{terminal}, {start}-{end}행',
'chat.chatInput.terminalContext': '{terminal}, {start}-{end}행',
'chat.chatInput.terminalContextRemove': '터미널 컨텍스트 제거',
'chat.chatInput.prCommentContext': 'PR 댓글',
'chat.chatInput.prCommentContextRemove': 'PR 댓글 컨텍스트 제거',
'chat.chatInput.prCheckContext': '실패한 PR 체크',
'chat.chatInput.prCheckContextRemove': 'PR 체크 컨텍스트 제거',
'common.loading': '로딩 중...',
'common.unavailable': '사용할 수 없음',
'common.language.english': '영어',
'common.language.german': '독일어',
'common.language.french': '프랑스어',
'common.language.simplifiedChinese': '중국어(간체)',
'common.language.traditionalChinese': '중국어(번체)',
'common.language.ukrainian': '우크라이나어',
'common.language.spanish': '스페인어',
'common.language.brazilianPortuguese': '브라질 포르투갈어',
'common.language.korean': '한국어',
'common.language.polish': '폴란드어',
'common.language.japanese': '일본어',
'common.revealPath.finder': 'Finder에서 보기',
'common.revealPath.fileExplorer': 'File Explorer에서 열기',
'common.revealPath.fileManager': '파일 관리자에서 열기',
'pwa.installPrompt.description': '더 빠르게 접근하려면 OpenChamber를 설치하세요',
'pwa.installPrompt.action': '설치',
'pwa.installPrompt.dismiss': '닫기',
'pwa.installPrompt.started': '설치가 시작되었습니다',
'pwa.installPrompt.installed': 'OpenChamber가 설치되었습니다',
'layout.mainTab.chat': '채팅',
'layout.mainTab.plan': '계획',
'layout.mainTab.diff': '변경사항',
'layout.mainTab.diagram': '다이어그램',
'layout.mainTab.files': '파일',
'layout.mainTab.terminal': '터미널',
'layout.mainTab.context': '컨텍스트',
'mobile.nav.aria': '모바일 내비게이션',
'mobile.connect.welcome.title': 'OpenChamber에 연결',
'mobile.connect.welcome.description': '서버 URL을 추가하거나 페어링 QR 코드를 스캔하여 모바일 앱을 시작하세요.',
'mobile.connect.url.label': '서버 URL',
'mobile.connect.url.placeholder': 'http://192.168.1.74:2606',
'mobile.connect.token.label': '클라이언트 토큰',
'mobile.connect.token.placeholder': '액세스 토큰 붙여넣기',
'mobile.connect.token.hint': '서버가 비밀번호 대신 토큰을 요구하는 경우에만 필요합니다.',
'mobile.connect.password.label': '비밀번호',
'mobile.connect.password.placeholder': 'OpenChamber 비밀번호',
'mobile.connect.connectButton': '연결',
'mobile.connect.unlockButton': '잠금 해제 후 연결',
'mobile.connect.cancelPassword': '다른 서버 사용',
'mobile.connect.connecting': '연결 중...',
'mobile.connect.notice.unreachable': '{label}에 연결할 수 없습니다. 서버가 실행 중인지 확인하세요.',
'mobile.connect.notice.authExpired': '{label} 액세스가 만료되었거나 취소되었습니다. 다시 로그인하세요.',
'mobile.connect.recovery.description': '저장된 서버에 연결할 수 없습니다. 서버가 실행 중인지 확인하거나 다른 인스턴스를 선택하세요.',
'mobile.connect.scanQr': 'QR 코드 스캔',
'mobile.connect.welcome.scanHint': '컴퓨터에서 「기기 추가」를 열어 QR 코드를 표시한 뒤 여기에서 스캔하세요.',
'mobile.connect.advanced': '고급',
'mobile.connect.manual.toggle': '주소로 연결',
'mobile.connect.scan.permissionDenied': '카메라 접근이 꺼져 있습니다. QR 코드를 스캔하려면 설정에서 사용 설정하세요.',
'mobile.connect.scan.failed': 'QR 코드를 스캔하지 못했습니다. 다시 시도하거나 URL을 직접 입력하세요.',
'mobile.connect.scan.invalid': '이 QR 코드는 OpenChamber 연결 코드가 아닙니다.',
'mobile.connect.scan.unsupported': 'QR 스캔은 설치된 모바일 앱에서만 사용할 수 있습니다.',
'mobile.connect.saved.title': '저장된 연결',
'mobile.connect.saved.empty': '아직 저장된 연결이 없습니다.',
'mobile.connect.relay.badge': 'OpenChamber Relay 경유',
'mobile.connect.error.urlRequired': '서버 URL을 입력하세요.',
'mobile.connect.splash.connectingTo': '기기에 연결하는 중:',
'mobile.connect.error.invalidUrl': '유효하지 않은 서버 URL입니다.',
'mobile.connect.error.unreachable': '해당 OpenChamber 서버에 연결할 수 없습니다.',
'mobile.connect.error.authRequired': '이 서버에는 비밀번호 또는 클라이언트 토큰이 필요합니다.',
'mobile.connect.error.passwordFailed': '서버 잠금을 해제할 수 없습니다. 비밀번호를 확인하세요.',
'mobile.instances.addTitle': '인스턴스 추가',
'mobile.instances.addManual': '주소로 추가',
'mobile.instances.editTitle': '인스턴스 편집',
'mobile.instances.edit': '편집',
'mobile.instances.delete': '삭제',
'mobile.instances.deleteAria': '{label} 삭제',
'mobile.instances.confirmDeleteAria': '{label} 삭제 확인',
'mobile.instances.cancelDeleteAria': '{label} 유지',
'mobile.instances.cancelEdit': '취소',
'mobile.instances.label.label': '이름',
'mobile.instances.label.placeholder': '표시 이름 (선택 사항)',
'mobile.instances.saveNew': '인스턴스 저장',
'mobile.instances.status.connectedDirect': '연결됨 · 로컬 네트워크',
'mobile.instances.status.connectedRelay': '연결됨 · 비공개 릴레이',
'mobile.instances.saveEdit': '변경 사항 저장',
'mobile.nav.changes': '변경사항',
'mobile.nav.settings': '설정',
'mobile.surface.closeAria': '닫기',
'mobile.header.openWorkspaceAria': '작업 공간 패널 열기',
'mobile.header.openMetadataAria': '세션 메타데이터 열기',
'mobile.header.metadata.context': '컨텍스트',
'mobile.header.metadata.usage': '사용량',
'mobile.menu.titleAria': '작업 공간 도구',
'mobile.menu.files': '파일',
'mobile.menu.changes': '변경사항',
'mobile.menu.terminal': '터미널',
'mobile.menu.mcp': 'MCP',
'mobile.menu.instances': '인스턴스',
'mobile.menu.update': '업데이트',
'mobile.menu.settings': '설정',
'mobile.sessions.newChatCta': '{project}에서 새 채팅',
'mobile.sessions.dateGroup.today': '오늘',
'mobile.sessions.dateGroup.yesterday': '어제',
'mobile.sessions.dateGroup.thisWeek': '이번 주 초',
'mobile.sessions.dateGroup.older': '이전',
'mobile.sessions.section.worktrees': '워크트리',
'mobile.sessions.section.otherProjects': '프로젝트 전환',
'mobile.sessions.section.projects': '프로젝트',
'mobile.sessions.empty.noProjectsTitle': '프로젝트 없음',
'mobile.sessions.empty.noProjectsDescription': '코드와 채팅을 시작하려면 프로젝트를 추가하세요.',
'mobile.sessions.empty.noSessionsTitle': '세션 없음',
'mobile.sessions.empty.noSessionsDescription': '여기에 표시하려면 첫 번째 채팅을 시작하세요.',
'mobile.sessions.empty.searchTitle': '결과 없음',
'mobile.sessions.empty.searchDescription': '다른 검색어를 시도해 보세요.',
'mobile.sessions.showArchived': '보관된 항목 표시 ({count})',
'mobile.sessions.hideArchived': '보관된 항목 숨기기',
'mobile.sessions.activeWorktreeAria': '활성 워크트리',
'mobile.sessions.activeProjectAria': '활성 프로젝트',
'mobile.sessions.startNewChat': '새 채팅 시작',
'mobile.sessions.newChat': '새 채팅',
'mobile.sessions.editOrder': '프로젝트 순서 변경',
'mobile.sessions.doneEditing': '완료',
'mobile.sessions.editOrderHint': '핸들을 드래그하여 프로젝트 순서를 변경하세요. 프로젝트를 탭하면 워크트리가 표시되며 같은 방식으로 드래그할 수 있습니다. 체크를 탭하면 완료됩니다.',
'mobile.sessions.dragHandleAria': '{label} 드래그하여 순서 변경',
'mobile.sessions.moveUpAria': '{label} 위로 이동',
'mobile.sessions.moveDownAria': '{label} 아래로 이동',
'mobile.sessions.removeProjectAria': '{label} 제거',
'mobile.sessions.confirmRemoveProjectAria': '{label} 제거 확인',
'mobile.sessions.toast.projectRemoved': '{label} 제거됨',
'mobile.sessions.archiveSessionAria': '{title} 보관',
'mobile.sessions.cancelArchiveAria': '{title} 보관 취소',
'mobile.sessions.renameSessionAria': '{title} 이름 바꾸기',
'mobile.sessions.renameError': '세션 이름 변경에 실패했습니다',
'mobile.sessions.deleteSessionAria': '{title} 삭제',
'mobile.sessions.confirmDeleteSessionAria': '{title} 삭제 확인',
'mobile.sessions.editProjectAria': '{label} 편집',
'mobile.projectEdit.worktreesTitle': '워크트리',
'mobile.projectEdit.worktreesEmpty': '이 프로젝트에는 아직 워크트리가 없습니다.',
'mobile.projectEdit.reorderHint': '드래그하여 워크트리 순서를 변경합니다.',
'mobile.projectEdit.dragWorktreeAria': '{label} 드래그하여 순서 변경',
'mobile.projectEdit.deleteWorktreeAria': '워크트리 {label} 제거',
'mobile.projectEdit.deleteWorktreeTitle': '워크트리 제거',
'mobile.projectEdit.deleteWorktreeConfirmButton': '제거',
'mobile.projectEdit.deleteWorktreeConfirm': '워크트리 “{name}”을(를) 제거할까요? 되돌릴 수 없습니다.',
'mobile.projectEdit.deleteWorktreeDirty': '이 워크트리에는 커밋되지 않은 변경 사항이 있어 손실됩니다.',
'mobile.projectEdit.deleteWorktreeArchiveNote': '연결된 세션 {count}개가 보관됩니다.',
'mobile.projectEdit.deleteLocalBranch': '로컬 브랜치도 삭제',
'mobile.projectEdit.deleteRemoteBranch': '원격 브랜치도 삭제',
'mobile.sessions.showMore': '{count}개 더 보기',
'mobile.sessions.search.section.sessions': '세션',
'mobile.sessions.search.section.archived': '보관됨',
'mobile.sessions.search.section.projects': '프로젝트',
'mobile.sessions.clearSearchAria': '검색 지우기',
'mobile.header.noProject': '프로젝트 선택',
'mobile.header.activeSession': '활성 세션',
'mobile.header.noSession': '활성 세션 없음',
'mobile.sessions.openSheetAria': '세션 및 프로젝트 열기',
'mobile.sessions.closeSheetAria': '세션 및 프로젝트 닫기',
'mobile.sessions.sheet.title': '세션',
'mobile.sessions.sheet.description': '프로젝트를 전환하고 세션을 열거나 새 채팅을 시작하세요.',
'mobile.sessions.search.placeholder': '세션 검색',
'mobile.sessions.empty': '세션을 찾을 수 없습니다.',
'mobile.sessions.unassignedProject': '기타 세션',
'mobile.sessions.newSessionAria': '이 프로젝트에서 새 세션 시작',
'mobile.sessions.untitled': '제목 없는 세션',
'mobile.sessions.project.sessionsSingle': '세션 1개',
'mobile.sessions.project.sessionsPlural': '세션 {count}개',
'mobile.files.refreshAria': '파일 새로고침',
'mobile.files.backToParentAria': '{name}(으)로 돌아가기',
'mobile.files.rootDirectory': '프로젝트 파일',
'mobile.files.search.placeholder': '파일 검색',
'mobile.files.search.empty': '파일을 찾을 수 없습니다.',
'mobile.files.parentDirectory': '상위 디렉터리',
'mobile.files.empty.noDirectory': '파일을 탐색할 프로젝트를 선택하세요.',
'mobile.files.empty.directory': '이 디렉터리는 비어 있습니다.',
'mobile.files.error.listFailed': '파일을 불러오지 못했습니다',
'mobile.files.error.readUnavailable': '이 런타임에서는 파일 미리보기를 사용할 수 없습니다.',
'mobile.files.file.truncated': '모바일용 파일 미리보기가 잘렸습니다.',
'mobile.files.copyPathAria': '파일 경로 복사',
'mobile.files.copyContent': '내용 복사',
'mobile.files.copyContentAria': '파일 내용 복사',
'mobile.files.editAria': '파일 편집',
'mobile.files.doneEditingAria': '편집 완료',
'mobile.files.toast.pathCopied': '경로가 복사되었습니다',
'mobile.files.toast.contentCopied': '내용이 복사되었습니다',
'mobile.files.toast.copyFailed': '복사하지 못했습니다',
'mobile.changes.placeholder.title': '변경사항',
'mobile.changes.placeholder.description': '작업 트리 검토, sync, commit 작업이 여기에 표시됩니다.',
'mobile.changes.branchLabel': '브랜치: {branch}',
'mobile.changes.noRemote': '사용 가능한 remote가 없습니다',
'mobile.changes.cleanDescription': '이 workspace에는 변경된 파일이 없습니다.',
'mobile.changes.diffDetail.subtitle': '읽기 전용 diff',
'mobile.changes.diffDetail.loadFailed': 'diff를 불러오지 못했습니다',
'mobile.changes.diffDetail.missingTitle': '파일이 더 이상 변경되지 않았습니다',
'mobile.changes.diffDetail.missingDescription': '변경사항으로 돌아가 목록을 새로고침하세요.',
'mobile.changes.diffDetail.imageUnavailable': '이미지 diff는 아직 모바일 변경사항에서 사용할 수 없습니다.',
'mobile.settings.placeholder.title': '설정',
'mobile.settings.placeholder.description': '모바일 연결 및 앱 설정이 여기에 표시됩니다.',
'layout.rightSidebar.git': 'Git',
'layout.rightSidebar.files': '파일',
'layout.rightSidebar.context': '컨텍스트',
'layout.services.instance': '인스턴스',
'layout.services.usage': '사용량',
'sessions.sidebar.header.actions.closeSessions': '세션 닫기',
'sessions.sidebar.header.actions.addProject': '프로젝트 추가',
'sessions.sidebar.header.actions.newSession': '새 세션',
'sessions.sidebar.header.actions.newMultiRun': '새 다중 실행',
'sessions.sidebar.header.actions.scheduledTasks': '예약 작업',
'sessions.scheduledTasks.dialog.title': '예약 작업',
'sessions.scheduledTasks.dialog.description': '새 세션을 만들고 설정된 프롬프트를 보내는 서버 작업입니다.',
'sessions.scheduledTasks.dialog.project.label': '프로젝트',
'sessions.scheduledTasks.dialog.project.placeholder': '프로젝트 선택',
'sessions.scheduledTasks.dialog.project.empty': '프로젝트 없음',
'sessions.scheduledTasks.dialog.actions.newTask': '새 작업',
'sessions.scheduledTasks.dialog.actions.runNow': '지금 실행',
'sessions.scheduledTasks.dialog.actions.edit': '편집',
'sessions.scheduledTasks.dialog.actions.editAria': '편집 {taskName}',
'sessions.scheduledTasks.dialog.actions.deleteAria': '{taskName} 삭제',
'sessions.scheduledTasks.dialog.loading': '작업 로드 중…',
'sessions.scheduledTasks.dialog.empty.noTasks': '아직 예약 작업 없음',
'sessions.scheduledTasks.dialog.empty.selectProject': '예약 작업을 관리할 프로젝트를 선택하세요.',
'sessions.scheduledTasks.dialog.error.chooseProjectFirst': '먼저 프로젝트를 선택하세요',
'sessions.scheduledTasks.dialog.toast.loadFailed': '예약 작업 로드 실패',
'sessions.scheduledTasks.dialog.toast.saved': '예약 작업 저장됨',
'sessions.scheduledTasks.dialog.toast.updateFailed': '작업 업데이트 실패',
'sessions.scheduledTasks.dialog.toast.deleted': '예약 작업 삭제됨',
'sessions.scheduledTasks.dialog.toast.deleteFailed': '작업 삭제 실패',
'sessions.scheduledTasks.dialog.toast.started': '작업 시작됨',
'sessions.scheduledTasks.dialog.toast.runFailed': '작업 실행 실패',
'sessions.scheduledTasks.dialog.confirm.deleteTask': '예약 작업 "{taskName}" 삭제?',
'sessions.scheduledTasks.dialog.schedule.daily': '매일 {time}',
'sessions.scheduledTasks.dialog.schedule.dailyWithTimezone': '매일 {time} ({timezone})',
'sessions.scheduledTasks.dialog.schedule.weekly': '매주 {days} {time}',
'sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone': '매주 {days} {time} ({timezone})',
'sessions.scheduledTasks.dialog.schedule.once': '한 번 {date} {time}',
'sessions.scheduledTasks.dialog.schedule.onceWithTimezone': '한 번 {date} {time} ({timezone})',
'sessions.scheduledTasks.dialog.schedule.cron': 'Cron: {cron}',
'sessions.scheduledTasks.dialog.schedule.cronWithTimezone': 'Cron: {cron} ({timezone})',
'sessions.scheduledTasks.dialog.schedule.unknownDate': '알 수 없는 날짜',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.sun': '일',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.mon': '월',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.tue': '화',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.wed': '수',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.thu': '목',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.fri': '금',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.sat': '토',
'sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown': '?',
'sessions.scheduledTasks.dialog.relativeTime.inLessThanOneMinute': '1분 이내',
'sessions.scheduledTasks.dialog.relativeTime.justNow': '방금 전',
'sessions.scheduledTasks.dialog.relativeTime.inMinutes': '{count}분 후',
'sessions.scheduledTasks.dialog.relativeTime.minutesAgo': '{count}분 전',
'sessions.scheduledTasks.dialog.relativeTime.inDuration': '{duration} 후',
'sessions.scheduledTasks.dialog.relativeTime.durationAgo': '{duration} 전',
'sessions.scheduledTasks.dialog.status.success': '성공',
'sessions.scheduledTasks.dialog.status.error': '오류',
'sessions.scheduledTasks.dialog.status.running': '실행 중',
'sessions.scheduledTasks.dialog.status.idle': '대기 중',
'sessions.scheduledTasks.dialog.nextRun.label': '다음',
'sessions.scheduledTasks.dialog.lastRun.label': '마지막 실행',
'sessions.scheduledTasks.dialog.lastRun.runningNow': '지금 실행 중',
'sessions.scheduledTasks.dialog.lastRun.never': '없음',
'sessions.scheduledTasks.dialog.taskToggle.enableAria': '{taskName} 활성화',
'sessions.scheduledTasks.dialog.taskToggle.pauseAria': '{taskName} 일시 중지',
'sessions.scheduledTasks.dialog.taskToggle.enabled': '활성화됨',
'sessions.scheduledTasks.dialog.taskToggle.paused': '일시 중지됨',
'sessions.scheduledTasks.editor.title.edit': '예약 작업 편집',
'sessions.scheduledTasks.editor.title.new': '새 예약 작업',
'sessions.scheduledTasks.editor.description': '새 세션을 만들고 프롬프트를 보내는 서버 작업을 설정합니다.',
'sessions.scheduledTasks.editor.taskName.label': '작업 이름',
'sessions.scheduledTasks.editor.taskName.placeholder': '매일 동기화',
'sessions.scheduledTasks.editor.scheduleType.label': '예약 유형',
'sessions.scheduledTasks.editor.scheduleType.daily': '매일',
'sessions.scheduledTasks.editor.scheduleType.weekly': '매주',
'sessions.scheduledTasks.editor.scheduleType.once': '한 번',
'sessions.scheduledTasks.editor.scheduleType.cron': 'Cron',
'sessions.scheduledTasks.editor.date.label': '날짜',
'sessions.scheduledTasks.editor.date.placeholder': '날짜 선택',
'sessions.scheduledTasks.editor.date.previousMonth': '이전 달',
'sessions.scheduledTasks.editor.date.nextMonth': '다음 달',
'sessions.scheduledTasks.editor.date.jumpToToday': '오늘로 이동',
'sessions.scheduledTasks.editor.date.today': '오늘',
'sessions.scheduledTasks.editor.time.label': '시간',
'sessions.scheduledTasks.editor.time.hourAria': '시간',
'sessions.scheduledTasks.editor.time.minuteAria': '분',
'sessions.scheduledTasks.editor.time.periodAria': '기간',
'sessions.scheduledTasks.editor.time.period.am': 'AM',
'sessions.scheduledTasks.editor.time.period.pm': 'PM',
'sessions.scheduledTasks.editor.times.label': '시간',
'sessions.scheduledTasks.editor.times.add': '시간 추가',
'sessions.scheduledTasks.editor.times.removeAria': '시간 제거',
'sessions.scheduledTasks.editor.timezone.label': '시간대',
'sessions.scheduledTasks.editor.weekdays.label': '요일',
'sessions.scheduledTasks.editor.model.label': '모델',
'sessions.scheduledTasks.editor.thinkingLevel.label': '추론 수준',
'sessions.scheduledTasks.editor.thinkingLevel.default': '기본값',
'sessions.scheduledTasks.editor.agent.label': '에이전트',
'sessions.scheduledTasks.editor.prompt.label': '프롬프트',
'sessions.scheduledTasks.editor.prompt.placeholder': '열린 작업을 요약하고 다음 액션을 제안하세요',
'sessions.scheduledTasks.editor.enabled.aria': '작업 활성화',
'sessions.scheduledTasks.editor.enabled.label': '활성화됨',
'sessions.scheduledTasks.editor.goal.label': '목표로 실행',
'sessions.scheduledTasks.editor.goal.aria': '이 작업을 에이전트가 완료까지 추진하는 목표로 실행합니다',
'sessions.scheduledTasks.editor.goal.budgetLabel': '토큰 예산',
'sessions.scheduledTasks.editor.goal.budgetAria': '목표를 토큰 예산으로 제한합니다',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '권한 자동 승인',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '권한 자동 승인이 켜진 상태로 작업 세션을 시작합니다',
'sessions.scheduledTasks.editor.actions.closeAria': '닫기',
'sessions.scheduledTasks.editor.actions.cancel': '취소',
'sessions.scheduledTasks.editor.actions.save': '저장',
'sessions.scheduledTasks.editor.actions.saving': '저장 중…',
'sessions.scheduledTasks.editor.toast.saveFailed': '작업 저장 실패',
'sessions.scheduledTasks.editor.validation.taskNameRequired': '작업 이름 필수',
'sessions.scheduledTasks.editor.validation.promptRequired': '프롬프트 필수',
'sessions.scheduledTasks.editor.validation.modelRequired': '모델 필수',
'sessions.scheduledTasks.editor.validation.dateFormat': '날짜는 YYYY-MM-DD 형식이어야 합니다',
'sessions.scheduledTasks.editor.validation.timeFormat': '시간은 HH:mm 형식이어야 합니다',
'sessions.scheduledTasks.editor.validation.atLeastOneTime': '유효한 시간을 하나 이상 추가하세요',
'sessions.scheduledTasks.editor.validation.atLeastOneWeekday': '요일을 하나 이상 선택하세요',
'sessions.scheduledTasks.editor.validation.timezoneRequired': '시간대 필수',
'sessions.scheduledTasks.editor.validation.cronRequired': 'Cron 표현식이 필요합니다',
'sessions.scheduledTasks.editor.validation.cronInvalid': '유효하지 않은 cron 표현식',
'sessions.scheduledTasks.editor.cronExpression.label': 'Cron 표현식',
'sessions.scheduledTasks.editor.cronExpression.placeholder': '*/5 * * * *',
'sessions.scheduledTasks.editor.cronExpression.nextRuns': '다음 실행',
'sessions.scheduledTasks.editor.cronExpression.examples': '예시',
'sessions.scheduledTasks.editor.cronExpression.examples.every5min': '5분마다',
'sessions.scheduledTasks.editor.cronExpression.examples.everyHour': '매시간',
'sessions.scheduledTasks.editor.cronExpression.examples.monday9am': '매주 월요일 오전 9시',
'sessions.scheduledTasks.editor.cronExpression.examples.9am5pm': '매일 오전 9시와 오후 5시',
'sessions.scheduledTasks.editor.cronExpression.examples.firstOfMonth': '매월 1일',
'multirun.launcher.title': '새 다중 실행',
'multirun.launcher.actions.closeEsc': '닫기(Esc)',
'multirun.launcher.actions.cancel': '취소',
'multirun.launcher.actions.creating': '생성 중…',
'multirun.launcher.actions.startWithModelCount': '시작({count}개 모델)',
'multirun.launcher.project.label': '프로젝트',
'multirun.launcher.project.placeholder': '프로젝트 선택',
'multirun.launcher.project.empty': '먼저 프로젝트를 추가하세요.',
'multirun.launcher.project.gitRequired': 'worktree 격리 없음: 실행은 같은 디렉터리를 사용합니다.',
'multirun.launcher.groupName.label': '그룹 이름',
'multirun.launcher.groupName.info': '워크트리 디렉터리와 브랜치 이름에 사용됩니다',
'multirun.launcher.groupName.placeholder': 'feature-auth, bugfix-login',
'multirun.launcher.baseBranch.label': '기본 브랜치',
'multirun.launcher.baseBranch.info': '각 모델은 이 기본 브랜치에서 새 브랜치를 만듭니다',
'multirun.launcher.isolateRuns.label': '실행 격리',
'multirun.launcher.agent.label': '에이전트',
'multirun.launcher.agent.info': '모든 실행에 사용할 에이전트입니다. 설정된 기본 에이전트를 사용합니다.',
'multirun.launcher.setupCommands.label': '셋업 명령',
'multirun.launcher.setupCommands.loading': '로드 중…',
'multirun.launcher.setupCommands.commandPlaceholder': 'bun install',
'multirun.launcher.setupCommands.removeCommandAria': '명령 제거',
'multirun.launcher.setupCommands.addCommand': '명령 추가',
'multirun.launcher.prompt.label': '프롬프트',
'multirun.launcher.prompt.placeholder': '모든 모델에 보낼 프롬프트 입력…',
'multirun.launcher.attachments.attach': '첨부',
'multirun.launcher.attachments.tooltip': '같은 파일을 모든 실행에 보냅니다',
'multirun.launcher.models.label': '모델',
'multirun.launcher.models.info': '모델을 2~{max}개 선택하세요. 같은 모델을 여러 번 추가할 수 있습니다.',
'multirun.launcher.toast.fileTooLarge': '파일 "{fileName}"이 너무 큽니다(최대 10MB)',
'multirun.launcher.toast.attachFailed': '"{fileName}" 첨부 실패',
'multirun.launcher.toast.attachedSingle': '파일 {count}개 첨부됨',
'multirun.launcher.toast.attachedPlural': '파일 {count}개 첨부됨',
'multirun.modelMultiSelect.actions.addModel': '모델 추가',
'multirun.modelMultiSelect.search.placeholder': '모델 검색',
'multirun.modelMultiSelect.search.noResults': '모델 없음',
'multirun.modelMultiSelect.sections.favorites': '즐겨찾기',
'multirun.modelMultiSelect.sections.recent': '최근',
'multirun.modelMultiSelect.variant.placeholder': '추론',
'multirun.modelMultiSelect.variant.default': '기본값',
'multirun.modelMultiSelect.keyboard.hint': '↑↓ 이동 • Enter 선택 • Esc 닫기',
'multirun.modelMultiSelect.validation.minOnly': '모델을 최소 {min}개 선택하세요.',
'multirun.modelMultiSelect.validation.minToMax': '모델을 {min}~{max}개 선택하세요.',
'multirun.agentSelector.placeholder': '에이전트 선택',
'multirun.fusion.title': 'fusion 실행',
'multirun.fusion.description': '선택한 multi-run 출력을 하나의 더 강한 답변으로 결합합니다.',
'multirun.fusion.provider.placeholder': 'Provider',
'multirun.fusion.model.placeholder': 'Model',
'multirun.fusion.sources.label': '소스({count})',
'multirun.fusion.actions.cancel': '취소',
'multirun.fusion.actions.start': 'fusion 시작',
'multirun.fusion.actions.starting': '시작 중...',
'multirun.fusion.toast.noOutputs': 'fusion할 어시스턴트 응답을 찾지 못했습니다.',
'multirun.fusion.toast.failed': 'fusion을 시작하지 못했습니다.',
'multirun.launcher.attachments.label': '파일',
'multirun.launcher.actions.startWithRunCount': '시작 ({count}개 실행)',
'multirun.launcher.groups.addGroup': '실행 그룹 추가',
'multirun.launcher.groups.removeGroup': '그룹 제거',
'multirun.launcher.groups.groupLabel': '실행 그룹 {index}',
'multirun.launcher.groups.template.label': '템플릿',
'multirun.launcher.groups.template.placeholder': '템플릿 선택...',
'multirun.launcher.groups.template.custom': '사용자 지정 프롬프트',
'multirun.launcher.groups.prompt.label': '프롬프트',
'multirun.launcher.groups.prompt.placeholder': '이 그룹의 프롬프트를 입력하세요...',
'sessions.sidebar.header.actions.searchSessions': '세션 검색',
'sessions.sidebar.header.actions.exitSelection': '선택 종료',
'sessions.sidebar.header.actions.selectSessions': '세션 선택',
'sessions.sidebar.header.actions.sortProjects': '프로젝트 정렬',
'sessions.sidebar.header.actions.sessionDisplayMode': '세션 표시 모드',
'sessions.sidebar.header.displayMode.label': '표시 모드',
'sessions.sidebar.header.displayMode.default': '기본값',
'sessions.sidebar.header.displayMode.minimal': '최소',
'sessions.sidebar.header.displayMode.showRecent': '최근 섹션 표시',
'sessions.sidebar.header.displayMode.showArchived': '보관된 세션 표시',
'sessions.sidebar.header.displayMode.collapseAll': '모두 접기',
'sessions.sidebar.header.displayMode.expandAll': '모두 펼치기',
'sessions.sidebar.header.projectSort.manual': '수동',
'sessions.sidebar.header.projectSort.aToZ': 'A → Z',
'sessions.sidebar.header.projectSort.zToA': 'Z → A',
'sessions.sidebar.header.projectSort.dateAdded': '최신순',
'sessions.sidebar.header.projectSort.recent': '최근',
'sessions.sidebar.header.search.matchCountSingle': '{count}개 일치',
'sessions.sidebar.header.search.matchCountPlural': '{count}개 일치',
'sessions.sidebar.header.search.escapeHint': 'Esc로 지우기',
'sessions.sidebar.header.search.placeholder': '세션 검색…',
'sessions.sidebar.header.search.clear': '검색 지우기',
'sessions.sidebar.footer.actions.settings': '설정',
'sessions.sidebar.footer.actions.shortcuts': '단축키',
'sessions.sidebar.footer.actions.aboutOpenChamber': 'OpenChamber 정보',
'sessions.sidebar.footer.actions.update': '업데이트',
'sessions.sidebar.empty.noSessions.title': '아직 세션 없음',
'sessions.sidebar.empty.noSessions.description': '첫 세션을 만들고 코딩을 시작하세요.',
'sessions.sidebar.empty.noMatches.title': '일치하는 세션 없음',
'sessions.sidebar.empty.noMatches.description': '다른 제목, 브랜치, 폴더 또는 경로로 검색해 보세요.',
'sessions.sidebar.activity.recentTitle': '최근',
'sessions.archivePage.allDirectories': '모든 디렉터리',
'sessions.sidebar.header.displayMode.stickyHeaders': '프로젝트 헤더 고정',
'sessions.sidebar.header.grouping.label': '세션 그룹화',
'sessions.sidebar.header.grouping.byWorktree': '워크트리별',
'sessions.sidebar.header.grouping.flat': '평면 목록',
'sessions.sidebar.project.actions.manageWorktrees': '워크트리 관리',
'sessions.worktreesPage.title': '{project}의 워크트리',
'sessions.worktreesPage.description': '이 프로젝트의 git 워크트리를 생성, 확인, 삭제합니다.',
'sessions.worktreesPage.closeAria': '워크트리 닫기',
'sessions.scheduledTasks.page.closeAria': '예약 작업 닫기',
'sessions.sidebar.nav.archive': '보관함',
'sessions.archivePage.title': '보관함',
'sessions.archivePage.countSingle': '보관된 세션 {count}개',
'sessions.archivePage.countPlural': '보관된 세션 {count}개',
'sessions.archivePage.closeAria': '보관함 닫기',
'sessions.archivePage.searchPlaceholder': '보관된 세션 검색',
'sessions.archivePage.empty.noArchived': '보관된 세션이 없습니다',
'sessions.archivePage.empty.noMatches': '일치하는 보관된 세션이 없습니다',
'sessions.archivePage.otherProjects': '기타 프로젝트',
'sessions.archivePage.deleteProject': '이 프로젝트의 보관된 세션 모두 삭제',
'sessions.archivePage.deleteProjectAria': '{label}의 보관된 세션 모두 삭제',
'sessions.archivePage.deleteSessionAria': '{title} 삭제',
'sessions.archivePage.restoreSessionAria': '{title} 복원',
'sessions.switcher.openAria': '세션 전환기 열기',
'sessions.switcher.empty': '최근 세션 없음',
'sessions.switcher.draftTitle': '새 세션',
'sessions.sidebar.updateCheck.errorTitle': '업데이트 확인 실패',
'sessions.sidebar.updateCheck.latestVersion': '최신 버전을 사용 중입니다',
'sessions.sidebar.directory.errorAddProjectTitle': '프로젝트 추가 실패',
'sessions.sidebar.directory.errorAddProjectDescription': '유효한 디렉터리를 선택하세요.',
'sessions.sidebar.directory.errorSelectDirectoryTitle': '디렉터리 선택 실패',
'sessions.sidebar.folder.newFolderName': '새 폴더',
'sessions.sidebar.bulkActions.delete': '삭제',
'sessions.sidebar.bulkActions.archive': '보관',
'sessions.sidebar.bulkActions.selectedCount': '{count}개 선택됨',
'sessions.sidebar.bulkActions.moveToFolder': '폴더로 이동',
'sessions.sidebar.bulkActions.deletedSingle': '세션 {count}개 삭제됨',
'sessions.sidebar.bulkActions.deletedPlural': '세션 {count}개 삭제됨',
'sessions.sidebar.bulkActions.failedDeleteSingle': '세션 {count}개 삭제 실패',
'sessions.sidebar.bulkActions.failedDeletePlural': '세션 {count}개 삭제 실패',
'sessions.sidebar.bulkActions.archivedSingle': '세션 {count}개 보관됨',
'sessions.sidebar.bulkActions.archivedPlural': '세션 {count}개 보관됨',
'sessions.sidebar.bulkActions.failedArchiveSingle': '세션 {count}개 보관 실패',
'sessions.sidebar.bulkActions.failedArchivePlural': '세션 {count}개 보관 실패',
'sessions.sidebar.bulkActions.restore': '복원',
'sessions.sidebar.bulkActions.restoredSingle': '세션 {count}개 복원됨',
'sessions.sidebar.bulkActions.restoredPlural': '세션 {count}개 복원됨',
'sessions.sidebar.bulkActions.failedRestoreSingle': '세션 {count}개 복원 실패',
'sessions.sidebar.bulkActions.failedRestorePlural': '세션 {count}개 복원 실패',
'sessions.sidebar.folders.none': '아직 폴더 없음',
'sessions.sidebar.folders.newFolderEllipsis': '새 폴더…',
'sessions.sidebar.folders.removeFromFolder': '폴더에서 제거',
'sessions.sidebar.folders.moveToFolder': '폴더로 이동',
'sessions.sidebar.project.actions.newWorktree': '새 워크트리',
'sessions.sidebar.project.actions.newWorktreeEllipsis': '새 워크트리…',
'sessions.sidebar.project.actions.projectMenu': '프로젝트 메뉴',
'sessions.sidebar.project.actions.newSession': '새 세션',
'sessions.sidebar.project.actions.closeProject': '프로젝트 닫기',
'sessions.sidebar.project.actions.edit': '편집',
'sessions.sidebar.project.actions.newDraftSession': '새 드래프트 세션',
'sessions.sidebar.session.menu.rename': '이름 변경',
'sessions.sidebar.session.menu.copyId': '세션 ID 복사',
'sessions.sidebar.session.copyId.success': '세션 ID가 복사되었습니다',
'sessions.sidebar.session.copyId.error': '세션 ID를 복사하지 못했습니다',
'header.sessionActions.openAria': '세션 작업 열기',
'sessions.sidebar.session.rename.save': '세션 이름 저장',
'sessions.sidebar.session.rename.cancel': '세션 이름 변경 취소',
'sessions.sidebar.session.menu.unpin': '세션 고정 해제',
'sessions.sidebar.session.menu.pin': '세션 고정',
'sessions.sidebar.session.menu.share': '공유',
'sessions.sidebar.session.menu.copied': '복사됨',
'sessions.sidebar.session.menu.copyLink': '링크 복사',
'sessions.sidebar.session.menu.unshare': '공유 해제',
'sessions.sidebar.session.menu.exportMarkdown': 'Markdown 내보내기',
'sessions.sidebar.session.menu.moveToWorktree': '새 worktree로 이동',
'sessions.sidebar.session.moveToWorktree.success': '세션을 새 worktree로 이동했습니다',
'sessions.sidebar.session.moveToWorktree.failed': '세션을 새 worktree로 이동하지 못했습니다',
'sessions.sidebar.session.moveToWorktree.tooltip': '현재 브랜치에서 새 worktree를 만들고 커밋되지 않은 변경 사항과 이 세션 및 하위 세션을 이동합니다.',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': '세션이 유휴 상태일 때 사용할 수 있습니다. 현재 작업을 중지하거나 완료될 때까지 기다리세요.',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': '이 세션은 이미 새 worktree로 이동 중입니다.',
'sessions.sidebar.session.menu.runFusion': 'fusion 실행',
'sessions.sidebar.session.menu.openInSidePanel': '사이드 패널에서 열기',
'sessions.sidebar.session.actions.openInEditor': '편집기에서 열기',
'sessions.sidebar.session.menu.betaBadge': 'beta',
'sessions.sidebar.session.menu.label': '세션 메뉴',
'sessions.sidebar.session.untitled': '제목 없는 세션',
'sessions.sidebar.session.export.nothingToExport': '내보낼 내용 없음',
'sessions.sidebar.session.export.failedLoadHistory': '전체 세션 기록을 불러오지 못했습니다',
'sessions.sidebar.session.export.success': '세션 내보냄',
'sessions.sidebar.session.export.failedRevealPath': '경로 표시 실패',
'sessions.sidebar.session.export.untitledSubagent': '제목 없는 서브 에이전트',
'sessions.sidebar.session.export.skippedSubtaskSingle': '세션을 내보냈지만 로드할 수 없는 서브 에이전트 작업 {count}개는 건너뛰었습니다.',
'sessions.sidebar.session.export.skippedSubtaskMany': '세션을 내보냈지만 로드할 수 없는 서브 에이전트 작업 {count}개는 건너뛰었습니다.',
'sessions.sidebar.session.export.dialog.title': 'Markdown 내보내기',
'sessions.sidebar.session.export.dialog.descriptionSingle': '이 세션에는 서브 에이전트 작업 {count}개가 있습니다. 내보내기에 포함할까요?',
'sessions.sidebar.session.export.dialog.descriptionMany': '이 세션에는 서브 에이전트 작업 {count}개가 있습니다. 내보내기에 포함할까요?',
'sessions.sidebar.session.export.dialog.includeSubtasks': '서브 에이전트 작업 포함',
'sessions.sidebar.session.export.dialog.confirm': '내보내기',
'sessions.sidebar.session.status.active': '활성 세션',
'sessions.sidebar.session.status.unread': '읽지 않은 업데이트',
'sessions.sidebar.session.status.pinned': '고정된 세션',
'sessions.sidebar.session.status.movingToWorktree': '세션을 새 worktree로 이동하는 중',
'sessions.sidebar.session.status.permissionRequired': '권한 필요',
'sessions.sidebar.session.subsessions.collapse': '하위 세션 접기',
'sessions.sidebar.session.subsessions.expand': '하위 세션 펼치기',
'sessions.sidebar.dialogs.deleteSession.title': '세션 삭제?',
'sessions.sidebar.dialogs.archiveSession.title': '세션 보관?',
'sessions.sidebar.dialogs.deleteSession.withOneSubtask': '"{sessionTitle}" 및 하위 작업 {count}개가 영구 삭제됩니다.',
'sessions.sidebar.dialogs.deleteSession.withManySubtasks': '"{sessionTitle}" 및 하위 작업 {count}개가 영구 삭제됩니다.',
'sessions.sidebar.dialogs.archiveSession.withOneSubtask': '"{sessionTitle}" 및 하위 작업 {count}개가 보관됩니다.',
'sessions.sidebar.dialogs.archiveSession.withManySubtasks': '"{sessionTitle}" 및 하위 작업 {count}개가 보관됩니다.',
'sessions.sidebar.dialogs.deleteSession.single': '"{sessionTitle}"이(가) 영구 삭제됩니다.',
'sessions.sidebar.dialogs.archiveSession.single': '"{sessionTitle}"이(가) 보관됩니다.',
'sessions.sidebar.dialogs.neverAsk': '다시 묻지 않기',
'sessions.sidebar.dialogs.cancel': '취소',
'sessions.sidebar.dialogs.deleteSession.titleAction': '세션 삭제',
'sessions.sidebar.dialogs.deleteSessions.titleAction': '세션 삭제',
'sessions.sidebar.dialogs.deleteSessions.title': '세션 삭제?',
'sessions.sidebar.dialogs.archiveSessions.title': '세션 보관?',
'sessions.sidebar.dialogs.deleteSessions.singleDescription': '세션 {count}개가 영구 삭제됩니다.',
'sessions.sidebar.dialogs.deleteSessions.pluralDescription': '세션 {count}개가 영구 삭제됩니다.',
'sessions.sidebar.dialogs.archiveSessions.singleDescription': '세션 {count}개가 보관됩니다.',
'sessions.sidebar.dialogs.archiveSessions.pluralDescription': '세션 {count}개가 보관됩니다.',
'sessions.sidebar.dialogs.deleteFolder.title': '폴더 삭제?',
'sessions.sidebar.dialogs.deleteFolder.withOneSubfolder': '"{folderName}" 및 하위 폴더 {count}개가 삭제됩니다. 안의 세션은 삭제되지 않습니다.',
'sessions.sidebar.dialogs.deleteFolder.withManySubfolders': '"{folderName}" 및 하위 폴더 {count}개가 삭제됩니다. 안의 세션은 삭제되지 않습니다.',
'sessions.sidebar.dialogs.deleteFolder.withContentsNoSubfolders': '"{folderName}" 폴더가 삭제됩니다. 안의 세션은 삭제되지 않습니다.',
'sessions.sidebar.dialogs.deleteFolder.single': '"{folderName}" 폴더가 영구 삭제됩니다.',
'sessions.sidebar.dialogs.deleteResult.singleFailedToDelete': '세션 {count}개를 삭제할 수 없습니다.',
'sessions.sidebar.dialogs.deleteResult.manyFailedToDelete': '세션 {count}개를 삭제할 수 없습니다.',
'sessions.sidebar.dialogs.deleteResult.singleFailedToArchive': '세션 {count}개를 보관할 수 없습니다.',
'sessions.sidebar.dialogs.deleteResult.manyFailedToArchive': '세션 {count}개를 보관할 수 없습니다.',
'sessions.sidebar.dialogs.deleteResult.removedFromDate': '모든 세션에서 제거됨 ({dateLabel}).',
'sessions.sidebar.dialogs.deleteResult.tryAgain': '잠시 후 다시 시도하세요.',
'sessions.sidebar.dialogs.worktreeDelete.descriptionNoLinked': '선택한 워크트리를 제거합니다.',
'sessions.sidebar.dialogs.worktreeDelete.descriptionOneLinked': '선택한 워크트리를 제거하고 연결된 세션 {count}개를 보관합니다.',
'sessions.sidebar.dialogs.worktreeDelete.descriptionManyLinked': '선택한 워크트리를 제거하고 연결된 세션 {count}개를 보관합니다.',
'sessions.sidebar.dialogs.sessionDelete.descriptionOne': '이 작업은 세션 1개를 영구 삭제합니다.',
'sessions.sidebar.dialogs.sessionDelete.descriptionOneWithDate': '이 작업은 {dateLabel}의 세션 1개를 영구 삭제합니다.',
'sessions.sidebar.dialogs.sessionDelete.descriptionMany': '이 작업은 세션 {count}개를 영구 삭제합니다.',
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '이 작업은 {dateLabel}의 세션 {count}개를 영구 삭제합니다.',
'sessions.sidebar.dialogs.sessionList.more': '+{count}개 더 보기',
'sessions.sidebar.session.share.successTitle': '세션 공유됨',
'sessions.sidebar.session.share.successDescription': '공유 링크가 클립보드에 복사되었습니다.',
'sessions.sidebar.session.share.error': '세션을 공유할 수 없음',
'sessions.sidebar.session.share.copyUrlError': 'URL 복사 실패',
'sessions.sidebar.session.unshare.success': '세션 공유 해제됨',
'sessions.sidebar.session.unshare.error': '세션 공유 해제 실패',
'sessions.sidebar.session.delete.success': '세션 삭제됨',
'sessions.sidebar.session.delete.error': '세션 삭제 실패',
'sessions.sidebar.session.archive.success': '세션 보관됨',
'sessions.sidebar.session.archive.error': '세션 보관 실패',
'sessions.sidebar.session.restore.success': '세션 복원됨',
'sessions.sidebar.session.restore.error': '세션 복원 실패',
'sessions.sidebar.group.pr.checksPassed': '검사 통과: {success}/{total}',
'sessions.sidebar.group.pr.failingCount': '실패 {count}개',
'sessions.sidebar.group.pr.pendingCount': '{count} 대기 중',
'sessions.sidebar.group.pr.conflictsOrBlocked': '충돌 또는 차단됨',
'sessions.sidebar.group.pr.mergeable': '병합 가능',
'sessions.sidebar.group.pr.mergeState': '병합 상태: {state}',
'sessions.sidebar.group.pr.status.merged': '병합됨',
'sessions.sidebar.group.pr.status.readyToMerge': '병합 준비됨',
'sessions.sidebar.group.pr.status.open': 'PR 열기',
'sessions.sidebar.group.pr.status.mergeConflicts': '병합 충돌',
'sessions.sidebar.group.pr.status.mergeBlocked': '병합 차단됨',
'sessions.sidebar.group.pr.status.draft': '드래프트 PR',
'sessions.sidebar.group.pr.status.closed': '닫힘',
'sessions.sidebar.group.empty.noArchivedSessions': '보관된 세션이 없습니다',
'sessions.sidebar.group.empty.noSessionsInWorkspace': '아직 이 워크스페이스에 세션 없음',
'sessions.sidebar.group.showMore': '세션 더 보기',
'sessions.sidebar.group.showMoreSingle': '세션 {count}개 더 보기',
'sessions.sidebar.group.showMorePlural': '세션 {count}개 더 보기',
'sessions.sidebar.group.showFewer': '세션 접기',
'sessions.sidebar.group.expandAria': '펼치기 {label}',
'sessions.sidebar.group.collapseAria': '접기 {label}',
'sessions.sidebar.group.actions.deleteArchivedInGroupAria': '{label}의 보관된 세션 삭제',
'sessions.sidebar.group.actions.deleteArchivedSessions': '보관된 세션 삭제',
'sessions.sidebar.group.actions.deleteGroupAria': '{label} 삭제',
'sessions.sidebar.group.actions.deleteWorktree': '워크트리 삭제',
'sessions.sidebar.group.actions.newDraftInGroupAria': '{label}에 새 드래프트 세션 만들기',
'sessions.sidebar.grouping.projectRoot': '프로젝트 루트',
'sessions.sidebar.grouping.projectRootWithBranch': '프로젝트 루트: {branch}',
'sessions.sidebar.grouping.archived': '보관됨',
'sessions.sidebar.grouping.archivedDescription': '보관됨 및 미분류 세션',
'sessions.sidebar.folderItem.expandAria': '펼치기 폴더 {folderName}',
'sessions.sidebar.folderItem.collapseAria': '접기 폴더 {folderName}',
'sessions.sidebar.folderItem.namePlaceholder': '폴더 이름',
'sessions.sidebar.folderItem.newSessionAria': '{folderName}에 새 세션 만들기',
'sessions.sidebar.folderItem.newSubfolderAria': '{folderName}에 새 하위 폴더 만들기',
'sessions.sidebar.folderItem.newSubfolder': '새 하위 폴더',
'sessions.sidebar.folderItem.renameAria': '폴더 이름 변경: {folderName}',
'sessions.sidebar.folderItem.deleteArchivedInFolderAria': '폴더 {folderName}의 보관된 세션 삭제',
'sessions.sidebar.folderItem.deleteFolderAria': '폴더 {folderName} 삭제',
'sessions.sidebar.folderItem.emptyFolder': '비어 있음 폴더',
'sessions.sidebar.sessionDialogs.ok': '확인',
'sessions.sidebar.sessionDialogs.linkedSessionSingle': '연결된 세션',
'sessions.sidebar.sessionDialogs.linkedSessionPlural': '연결된 세션',
'sessions.sidebar.sessionDialogs.delete.note': '워크트리 디렉터리는 그대로 둡니다. 선택한 세션에 연결된 하위 세션도 제거됩니다.',
'sessions.sidebar.sessionDialogs.directory.errorSelectTitle': '디렉터리 선택 실패',
'sessions.sidebar.sessionDialogs.directory.errorOpenTitle': '디렉터리를 열지 못했습니다',
'sessions.sidebar.sessionDialogs.directory.errorOpenDescription': '데스크톱에서 파일 접근 권한을 부여하지 못했습니다.',
'sessions.sidebar.sessionDialogs.directory.errorAddProjectTitle': '프로젝트 추가 실패',
'sessions.sidebar.sessionDialogs.directory.errorAddProjectDescription': '유효한 디렉터리 경로를 선택하세요.',
'sessions.sidebar.sessionDialogs.worktree.errorRemoveTitle': '워크트리 제거 실패',
'sessions.sidebar.sessionDialogs.worktree.removedTitle': '워크트리 제거됨',
'sessions.sidebar.sessionDialogs.worktree.removed': '워크트리가 제거되었습니다.',
'sessions.sidebar.sessionDialogs.worktree.removedWithRemote': '워크트리와 리모트 브랜치가 제거되었습니다.',
'sessions.sidebar.sessionDialogs.worktree.attachedArchived': '첨부됨 워크트리 보관됨.',
'sessions.sidebar.sessionDialogs.worktree.attachedArchivedPlural': '첨부됨 워크트리 보관됨.',
'sessions.sidebar.sessionDialogs.worktree.archivedAndRemoteRemoved': '워크트리가 보관되고 리모트 브랜치가 제거되었습니다.',
'sessions.sidebar.sessionDialogs.worktree.label': '워크트리',
'sessions.sidebar.sessionDialogs.worktree.pathUnavailable': '워크트리 경로를 사용할 수 없습니다.',
'sessions.sidebar.sessionDialogs.worktree.uncommittedWarning': '커밋하지 않은 변경 사항은 버려집니다.',
'sessions.sidebar.sessionDialogs.actions.deleteRemoteBranch': '리모트 브랜치 삭제',
'sessions.sidebar.sessionDialogs.actions.remoteBranchInfoUnavailable': '리모트 브랜치 정보를 사용할 수 없음',
'sessions.sidebar.sessionDialogs.actions.deleteLocalBranch': '로컬 브랜치 삭제',
'sessions.sidebar.sessionDialogs.actions.deleting': '삭제 중…',
'sessions.sidebar.sessionDialogs.actions.deleteWorktree': '워크트리 삭제',
'gitView.branch.branchToMergeInto': '병합 대상 브랜치',
'gitView.branch.branchToRebaseOnto': '리베이스 대상 브랜치',
'gitView.branch.create': '새 브랜치 생성...',
'gitView.branch.currentBadge': '현재',
'gitView.branch.currentBranchFallback': '현재 브랜치',
'gitView.branch.currentBranchTooltip': '현재 브랜치',
'gitView.branch.detachedHead': 'Detached HEAD',
'gitView.branch.dialogDescriptionPrefix': '선택한 브랜치:',
'gitView.branch.empty': '브랜치를 찾을 수 없습니다',
'gitView.branch.localBranches': '로컬 브랜치',
'gitView.branch.mergeDescription': '선택한 브랜치를 현재 브랜치로 병합합니다.',
'gitView.branch.mergeRebase': '병합/리베이스',
'gitView.branch.mergeRebaseTooltip': '브랜치를 병합하거나 리베이스합니다',
'gitView.branch.mergingInProgress': '병합 진행 중',
'gitView.branch.namePlaceholder': '브랜치 이름',
'gitView.branch.newBranchPlaceholder': '새 브랜치 이름',
'gitView.branch.noLocalBranches': '로컬 브랜치가 없습니다',
'gitView.branch.noRemoteBranches': '원격 브랜치가 없습니다',
'gitView.branch.operation': '작업',
'gitView.branch.operationCompleted': '작업 완료됨',
'gitView.branch.operationFailed': '작업 실패',
'gitView.branch.pushToPrefix': '푸시 대상:',
'gitView.branch.pushToSuffix': '으로 푸시',
'gitView.branch.rebaseDescription': '현재 브랜치를 선택한 브랜치 위로 리베이스합니다.',
'gitView.branch.rebasingInProgress': '리베이스 진행 중',
'gitView.branch.remoteBranches': '리모트 브랜치',
'gitView.branch.renameTitle': '브랜치 이름 변경',
'gitView.branch.renameSave': '브랜치 이름 저장',
'gitView.branch.renameSaving': '브랜치 이름 저장 중',
'gitView.branch.renameCancel': '브랜치 이름 변경 취소',
'gitView.branch.searchPlaceholder': '브랜치 검색…',
'gitView.branch.selectBranch': '브랜치 선택',
'gitView.branch.summaryMergeInfix': '을(를) 병합',
'gitView.branch.summaryMergePrefix': '현재 브랜치에',
'gitView.branch.summaryRebaseInfix': '위로 리베이스',
'gitView.branch.summaryRebasePrefix': '현재 브랜치를',
'gitView.branch.updateDescriptionPrefix': '최신 변경 사항을 가져올 대상:',
'gitView.branch.updateTitle': '브랜치 업데이트',
'gitView.changes.changedFilesAria': '변경된 파일',
'gitView.changes.clearSelectionAria': '파일 선택 해제',
'gitView.changes.collapseDirectoryAria': '디렉터리 접기',
'gitView.changes.expandDirectoryAria': '디렉터리 펼치기',
'gitView.changes.revertAll': '모두 되돌리기',
'gitView.changes.revertAllDescriptionPlural': '선택한 파일 {count}개의 변경 사항을 되돌립니다.',
'gitView.changes.revertAllDescriptionSingle': '선택한 파일 {count}개의 변경 사항을 되돌립니다.',
'gitView.changes.revertAllDialogTitle': '모든 변경 사항을 되돌릴까요?',
'gitView.changes.revertDirectoryAria': '{path} 디렉터리의 변경 사항 되돌리기',
'gitView.changes.revertDirectory': '폴더 되돌리기',
'gitView.changes.revertDirectoryDescriptionPlural': '{path} 아래 파일 {count}개의 로컬 변경 사항을 버립니다.',
'gitView.changes.revertDirectoryDescriptionSingle': '{path} 아래 파일 {count}개의 로컬 변경 사항을 버립니다.',
'gitView.changes.revertDirectoryDialogTitle': '폴더 변경 사항을 되돌릴까요?',
'gitView.changes.revertDirectoryTooltip': '폴더 변경 사항 되돌리기',
'gitView.changes.revertFileAria': '파일 변경 사항 되돌리기',
'gitView.changes.revertFileTooltip': '변경 사항 되돌리기',
'gitView.changes.reverting': '되돌리는 중…',
'gitView.changes.selectAllAria': '모든 파일 선택',
'gitView.changes.selectFileAria': '파일 선택',
'gitView.changes.stagedTitle': '스테이징됨',
'gitView.changes.resizeSplitAria': '스테이징 및 미스테이징 변경사항 크기 조정',
'gitView.changes.stageAllAria': '모든 변경사항 스테이징',
'gitView.changes.stageDirectoryAria': '{path}의 모든 변경사항 스테이징',
'gitView.changes.stageFileAria': '{path} 스테이징',
'gitView.changes.title': '변경사항',
'gitView.changes.toggleDirectorySelectionAria': '디렉터리 선택 전환',
'gitView.changes.unstageAllAria': '모든 변경사항 스테이징 해제',
'gitView.changes.unstageDirectoryAria': '{path}의 모든 변경사항 스테이징 해제',
'gitView.changes.unstageFileAria': '{path} 스테이징 해제',
'gitView.commit.addGitmoji': 'gitmoji 추가',
'gitView.commit.aiHighlights.insertAria': '커밋 메시지에 삽입',
'gitView.commit.aiHighlights.insertTooltip': '커밋 메시지에 삽입',
'gitView.commit.aiHighlights.title': '주요 내용',
'gitView.commit.commit': '커밋',
'gitView.commit.commitAria': '커밋 생성',
'gitView.commit.committing': '커밋 중…',
'gitView.commit.generate': '생성',
'gitView.commit.generateAria': '커밋 메시지 생성',
'gitView.commit.messagePlaceholder': '커밋 메시지',
'gitView.commit.push': 'Commit & sync',
'gitView.commit.pushAria': 'Commit and sync',
'gitView.commit.pushing': 'sync 중…',
'gitView.commit.selectFilesHint': '커밋하려면 변경 사항에서 파일을 선택하세요.',
'gitView.commit.stageFilesHint': '커밋하려면 파일을 스테이징하세요.',
'gitView.commit.title': '커밋',
'gitView.common.cancel': '취소',
'gitView.common.close': '닫기',
'gitView.common.done': '완료',
'gitView.common.processing': '처리 중…',
'gitView.common.reset': '초기화',
'gitView.conflict.abortOperation': '작업 중단',
'gitView.conflict.conflictedFiles': '충돌한 파일:',
'gitView.conflict.continueLater': '나중에 계속',
'gitView.conflict.detectedDescription': '병합 또는 리베이스 중 해결이 필요한 충돌이 발견되었습니다.',
'gitView.conflict.detectedTitle': '충돌 발견됨',
'gitView.conflict.errorLoadingDetails': '상세 정보 로드 오류',
'gitView.conflict.headInfo': 'HEAD 정보:',
'gitView.conflict.loadFailed': '로드 실패',
'gitView.conflict.loading': '충돌 상세 정보를 로드하는 중…',
'gitView.conflict.noActiveSession': '활성 세션 없음',
'gitView.conflict.noActiveSessionDescription': '충돌 해결을 시작하려면 먼저 활성 세션을 선택하세요.',
'gitView.conflict.resolveCurrentSession': '현재 세션에서 해결',
'gitView.conflict.resolveNewSession': '새 세션에서 해결',
'gitView.empty.cleanDescription': '모든 변경 사항이 커밋됨',
'gitView.empty.cleanTitle': '워킹 트리 깨끗함',
'gitView.empty.pullBehindPlural': '커밋 {count}개 가져오기',
'gitView.empty.pullBehindSingle': '커밋 {count}개 가져오기',
'gitView.header.identityTooltip': 'Git 인증 정보',
'gitView.header.noIdentity': '인증 정보 없음',
'gitView.header.noProfiles': '적용할 프로필 없음',
'gitView.header.repositoryViews': '저장소 보기',
'gitView.header.updateBranch': '브랜치 업데이트',
'gitView.header.openPullRequest': '풀 리퀘스트 열기',
'gitView.header.removeRemoteAria': '리모트 제거',
'gitView.header.removeRemoteTitle': '리모트 제거',
'gitView.header.upstreamSynced': '동기화됨',
'gitView.header.upstreamTooltip': '{target}와 비교됨.',
'gitView.header.upstreamTooltipTracking': '{target}와 비교됨. 기본 동기화 배지는 계속 {tracking}을 반영합니다.',
'gitView.history.actions.cancelButton': '취소',
'gitView.history.actions.checkoutConfirm': '이 커밋을 detached HEAD로 체크아웃할까요?',
'gitView.history.actions.cherryPickConfirm': '이 커밋을 현재 브랜치에 cherry-pick할까요?',
'gitView.history.actions.conflictToastDescription': '충돌 파일: {files}. 수동으로 해결한 뒤 커밋하거나 git cherry-pick/revert --abort로 중단하세요.',
'gitView.history.actions.conflictToastTitle': '충돌',
'gitView.history.actions.confirmButton': '확인',
'gitView.history.actions.mergeConfirm': '이 커밋을 현재 브랜치에 병합할까요?',
'gitView.history.actions.rebaseConfirm': '현재 브랜치를 이 커밋 위로 rebase할까요?',
'gitView.history.actions.resetHardConfirm': 'Hard reset — HEAD가 이동하고 커밋하지 않은 모든 변경 사항이 영구적으로 삭제됩니다.',
'gitView.history.actions.resetMixedConfirm': 'Mixed reset — HEAD가 이동하고 변경 사항은 stage에서 내려갑니다.',
'gitView.history.actions.resetSoftConfirm': 'Soft reset — HEAD가 이동하고 staged 변경 사항은 유지됩니다.',
'gitView.history.actions.revertConfirm': '이 커밋의 revert 변경 사항을 stage할까요?',
'gitView.history.actions.checkout': '체크아웃',
'gitView.history.actions.cherryPick': 'Cherry-pick',
'gitView.history.actions.createBranch': '여기에 브랜치 만들기',
'gitView.history.actions.createBranchConfirm': '만들기',
'gitView.history.actions.createBranchPlaceholder': '브랜치 이름',
'gitView.history.actions.detachedHead': '체크아웃됨(detached HEAD)',
'gitView.history.actions.merge': '현재 브랜치에 병합',
'gitView.history.actions.rebase': '여기로 rebase',
'gitView.history.actions.reset': 'Reset...',
'gitView.history.actions.resetHard': 'Hard — 모든 변경 사항 삭제',
'gitView.history.actions.resetHardConfirmButton': '변경 사항 삭제',
'gitView.history.actions.resetMixed': 'Mixed — stage에서 내리기',
'gitView.history.actions.resetSoft': 'Soft — staged 유지',
'gitView.history.actions.revert': 'Revert',
'gitView.history.binary': '바이너리',
'gitView.history.binaryNoDiff': '바이너리 파일 — diff 없음',
'gitView.history.commitsPlaceholder': '커밋 검색',
'gitView.history.copySha': 'SHA 복사',
'gitView.history.diffError': 'diff 로드 실패. 클릭하여 재시도.',
'gitView.history.largeDiffDescription': '렌더링이 느릴 수 있습니다. 아래를 클릭해 diff를 계속 볼 수 있습니다.',
'gitView.history.largeDiffTitle': '큰 diff({count}개 변경된 줄)',
'gitView.history.loadingDiff': 'diff 로드 중…',
'gitView.history.loadingFiles': '파일 로드 중…',
'gitView.history.loadMore': '더 불러오기',
'gitView.history.loadingMore': '로드 중...',
'gitView.history.logSize100': '최근 100개',
'gitView.history.logSize25': '최근 25개',
'gitView.history.logSize50': '최근 50개',
'gitView.history.noCommits': '커밋 없음',
'gitView.history.noFiles': '파일 없음',
'gitView.history.renamedNoDiff': '이름 변경된 파일 — diff 미지원',
'gitView.history.renderDiffAnyway': '그래도 렌더링',
'gitView.history.title': '히스토리',
'gitView.history.refresh': '새로고침',
'gitView.graph.title': '그래프',
'gitView.integrate.checking': '확인 중…',
'gitView.integrate.cherryPickAbortedToast': 'Cherry-pick이 중단되었습니다',
'gitView.integrate.cherryPickConflictDescription': '충돌을 해결한 뒤 계속 진행하세요.',
'gitView.integrate.cherryPickConflictToast': 'Cherry-pick 충돌이 발생했습니다',
'gitView.integrate.cherryPickContinueFailedToast': 'Cherry-pick을 계속하지 못했습니다',
'gitView.integrate.cherryPickFinishedToast': 'Cherry-pick이 완료되었습니다',
'gitView.integrate.commitsMovedDescriptionPlural': '커밋 {count}개를 새 세션으로 이동했습니다.',
'gitView.integrate.commitsMovedDescriptionSingle': '커밋 {count}개를 새 세션으로 이동했습니다.',
'gitView.integrate.commitsMovedToast': '커밋을 이동했습니다',
'gitView.integrate.commitsToMove': '이동할 커밋',
'gitView.integrate.conflictsInFiles': '파일 충돌',
'gitView.integrate.currentCommit': '현재 커밋',
'gitView.integrate.currentSession': '현재 세션',
'gitView.integrate.failedToMoveToast': '커밋을 이동하지 못했습니다',
'gitView.integrate.moreFiles': '파일 더 보기',
'gitView.integrate.move': '이동',
'gitView.integrate.moveCommits': '커밋 이동',
'gitView.integrate.moving': '이동 중…',
'gitView.integrate.newSession': '새 세션',
'gitView.integrate.noActiveSession': '활성 세션 없음',
'gitView.integrate.noActiveSessionDescription': '커밋을 이동하려면 먼저 활성 세션을 선택하세요.',
'gitView.integrate.noCommitsToMove': '이동할 커밋 없음',
'gitView.integrate.noCommitsToMoveToast': '이동할 커밋이 없습니다',
'gitView.integrate.previewUnavailable': '미리보기를 사용할 수 없음',
'gitView.integrate.showAll': '모두 보기',
'gitView.integrate.showLess': '간단히 보기',
'gitView.integrate.showingFirstCommits': '처음 커밋부터 표시',
'gitView.integrate.target': '대상',
'gitView.integrate.title': '커밋 다시 통합',
'gitView.integrate.toMoveCount': '이동할 커밋 수',
'gitView.operation.abort': '중단',
'gitView.operation.continue': '계속',
'gitView.operation.inProgressTitle': '{operation} 진행 중',
'gitView.operation.inProgressTitleManyConflicts': '{operation} 진행 중: 충돌 {count}개',
'gitView.operation.inProgressTitleOneConflict': '{operation} 진행 중: 충돌 {count}개',
'gitView.operation.merge': '병합',
'gitView.operation.mergeInProgressWithHead': '{head} 병합 진행 중',
'gitView.operation.mergingMessage': '병합 중: {message}',
'gitView.operation.rebase': '리베이스',
'gitView.operation.rebaseInProgress': '리베이스 진행 중',
'gitView.operation.rebasingOnto': '{headName}을(를) {onto} 위로 리베이스 중',
'gitView.operation.readyToContinueHint': '모든 충돌이 해결되었습니다. 계속하여 작업을 완료하세요.',
'gitView.operation.resolveConflictsHint': '충돌을 해결한 뒤 작업을 계속하세요.',
'gitView.operation.resolveWithAi': 'AI로 해결',
'gitView.stash.confirmButton': '확인',
'gitView.stash.description': '설명',
'gitView.stash.mergeWith': '다음과 병합',
'gitView.stash.rebaseOnto': '다음 위로 리베이스',
'gitView.stash.restoreAfterOperation': '작업 후 복원',
'gitView.stash.restoreAria': 'stash 복원',
'gitView.stash.stepRestore': 'stash한 변경 사항 복원',
'gitView.stash.stepStash': '커밋하지 않은 변경 사항 stash',
'gitView.stash.thisWill': '다음 작업을 수행합니다:',
'gitView.stash.title': '커밋하지 않은 변경 사항',
'gitView.stashes.actions.apply': 'Apply',
'gitView.stashes.actions.drop': 'Drop',
'gitView.stashes.actions.pop': 'Pop',
'gitView.stashes.actions.stashCurrent': 'Stash current changes',
'gitView.stashes.actions.stashCurrentWithCount': 'Stash {count} files',
'gitView.stashes.confirm.drop': 'Drop {ref}?',
'gitView.stashes.description': 'Save, restore, and clean up Git stashes for this repository.',
'gitView.stashes.empty.list': 'No stashes yet.',
'gitView.stashes.empty.search': 'No matching stashes.',
'gitView.stashes.includeUntrackedHint': 'Untracked files are included automatically.',
'gitView.stashes.fileCount': '{count} files',
'gitView.stashes.fileCountLoading': 'counting files...',
'gitView.stashes.itemNumber': '#{number}',
'gitView.stashes.latestLabel': 'Latest',
'gitView.stashes.messagePlaceholder': 'Stash name',
'gitView.stashes.searchPlaceholder': 'Search stashes',
'gitView.stashes.title': 'Stashes',
'gitView.stashes.toast.applyFailed': 'Failed to apply stash',
'gitView.stashes.toast.applySuccess': 'Stash applied',
'gitView.stashes.toast.createFailed': 'Failed to stash changes',
'gitView.stashes.toast.created': 'Changes stashed',
'gitView.stashes.toast.dropFailed': 'Failed to drop stash',
'gitView.stashes.toast.dropSuccess': 'Stash dropped',
'gitView.stashes.toast.loadFailed': 'Failed to load stashes',
'gitView.stashes.toast.noChanges': 'No local changes to stash',
'gitView.stashes.toast.popFailed': 'Failed to pop stash',
'gitView.stashes.toast.popSuccess': 'Stash popped',
'gitView.stashes.untitled': 'Untitled stash',
'gitView.sync.fetch': '가져오기',
'gitView.sync.fetchFromRemote': '{name}에서 가져오기',
'gitView.sync.fetchTooltip': '리모트에서 가져오기',
'gitView.sync.commitOrStashTooltip': '동기화하기 전에 변경 사항을 커밋하거나 stash하세요',
'gitView.sync.moreActionsAria': '더 많은 동기화 작업',
'gitView.sync.noRemoteTooltip': '설정된 리모트가 없습니다',
'gitView.sync.pull': '풀',
'gitView.sync.pullTooltip': '변경 사항 풀',
'gitView.sync.pullTooltipBehind': '변경 사항 풀({count}개 뒤처짐)',
'gitView.sync.push': '푸시',
'gitView.sync.pushTooltip': '변경 사항 푸시',
'gitView.sync.pushTooltipAhead': '변경 사항 푸시({count}개 앞섬)',
'gitView.sync.sync': 'sync',
'gitView.sync.syncChanges': 'Sync Changes',
'gitView.sync.syncChangesTooltip': 'Sync Changes({behind}개 내려받기, {ahead}개 올리기)',
'gitView.sync.syncChangesWithCounts': 'Sync Changes {behind}↓ {ahead}↑',
'gitView.sync.syncCounts': '{behind}↓ {ahead}↑',
'gitView.branch.actionsUnavailable': '현재 레포지토리 상태에서는 브랜치 작업을 사용할 수 없음',
'gitView.conflict.noDetailsAvailable': '충돌 상세 정보 없음',
'gitView.empty.notGitRepository': '이 디렉터리는 Git 레포지토리가 아닙니다',
'gitView.empty.notGitRepositoryDescription': '이 디렉터리에서 Git을 초기화하거나 레포지토리를 여세요.',
'gitView.empty.selectSessionOrDirectory': 'Git 상태를 볼 세션 또는 디렉터리를 선택하세요',
'gitView.empty.worktreeFeaturesUnavailable': '이 워크스페이스 모드에서는 워크트리 기능을 사용할 수 없습니다.',
'gitView.empty.worktreeSetupDescription': '워크트리 설정을 마치고 레포지토리 상태를 준비하고 있습니다.',
'gitView.empty.worktreeSetupInProgress': '워크트리 설정 중',
'worktree.bootstrap.toast.failed': '워크트리 설정 실패',
'worktree.bootstrap.toast.failedDescription': '워크트리는 생성되었지만 백그라운드 설정이 완료되지 않았습니다.',
'worktree.bootstrap.toast.timeoutDescription': '워크트리는 생성되었지만 백그라운드 설정 시간이 초과되었습니다.',
'gitView.gitmoji.empty': 'gitmoji 없음',
'gitView.gitmoji.searchPlaceholder': 'gitmoji 검색…',
'gitView.gitmoji.title': 'gitmoji 삽입',
'gitView.history.dialogDescription': '최근 커밋을 둘러보고 변경된 파일을 확인하세요.',
'gitView.loading.checkingRepository': '레포지토리 확인 중…',
'gitView.loading.loading': '로드 중…',
'gitView.pr.actions.add': '추가',
'gitView.pr.actions.cancelEditing': '편집 취소',
'gitView.pr.actions.cancelEditingAria': 'PR 편집 취소',
'gitView.pr.actions.createPr': 'PR 생성',
'gitView.pr.actions.edit': '편집',
'gitView.pr.actions.editPr': 'PR 편집',
'gitView.pr.actions.editPrAria': '편집 PR',
'gitView.pr.actions.hide': '숨기기',
'gitView.pr.actions.markReady': '리뷰 준비로 표시',
'gitView.pr.actions.markReadyAria': 'PR을 리뷰 준비 상태로 표시',
'gitView.pr.actions.mergePr': 'PR 병합',
'gitView.pr.actions.mergePrAria': 'PR 병합',
'gitView.pr.actions.openChecks': '체크 열기',
'gitView.pr.actions.openChecksAria': '실패한 검사 열기',
'gitView.pr.actions.openComments': '댓글 열기',
'gitView.pr.actions.openCommentsAria': 'PR 댓글 열기',
'gitView.pr.actions.openOnGitHub': 'GitHub에서 열기',
'gitView.pr.actions.openOnGitHubAria': 'GitHub에서 PR 열기',
'gitView.pr.actions.openSettings': '설정 열기',
'gitView.pr.actions.repo': '레포지토리',
'gitView.pr.actions.resolveFailedChecks': '실패한 체크 첨부',
'gitView.pr.actions.resolveFailedChecksAria': '실패한 체크를 채팅 컨텍스트에 첨부',
'gitView.pr.actions.savePr': '저장 PR',
'gitView.pr.actions.savePrAria': 'PR 변경 사항 저장',
'gitView.pr.actions.sendCommentToAgent': '댓글을 채팅 컨텍스트에 첨부',
'gitView.pr.actions.sendCommentToAgentAria': '이 댓글을 채팅 컨텍스트에 첨부',
'gitView.pr.actions.sendToAgent': '채팅에 첨부',
'gitView.pr.actions.shareComments': '댓글 첨부',
'gitView.pr.actions.shareCommentsAria': '풀 리퀘스트 댓글을 채팅 컨텍스트에 첨부',
'gitView.pr.actions.toggleDraftAria': '드래프트 상태 전환',
'gitView.pr.actions.refresh': 'PR 상태 새로고침',
'gitView.pr.actions.refreshAria': '풀 리퀘스트 상태 새로고침',
'gitView.pr.additionalContext.added': '추가됨',
'gitView.pr.additionalContext.hint': '더 나은 리뷰를 위해 추가 컨텍스트를 넣으세요.',
'gitView.pr.additionalContext.optional': '선택 사항',
'gitView.pr.additionalContext.title': '추가 컨텍스트',
'gitView.pr.checkDetails.empty': '체크 상세 정보 없음',
'gitView.pr.checkDetails.title': '실패한 체크 상세',
'gitView.pr.checkingStatus': 'PR 상태 확인 중…',
'gitView.pr.checks.label': 'checks',
'gitView.pr.checks.completedLabel': '완료됨',
'gitView.pr.checks.conclusionLabel': '결론',
'gitView.pr.checks.startedLabel': '시작됨',
'gitView.pr.checks.statusLabel': '상태',
'gitView.pr.checks.stepLabel': '단계',
'gitView.pr.checks.steps': '단계',
'gitView.pr.comments.empty': '댓글 없음',
'gitView.pr.comments.generalContext': '일반 댓글',
'gitView.pr.comments.reviewContext': '리뷰 댓글',
'gitView.pr.comments.title': '댓글',
'gitView.pr.comments.unknownAuthor': '알 수 없는 작성자',
'gitView.pr.createTitle': 'PR 생성',
'gitView.pr.draftMustBeReady': '드래프트 PR은 병합 전에 리뷰 준비 상태로 바꿔야 합니다.',
'gitView.pr.field.baseBranch': '기본 브랜치',
'gitView.pr.field.description': '설명',
'gitView.pr.field.draft': '드래프트',
'gitView.pr.field.title': '제목',
'gitView.pr.githubNotConnected': 'GitHub에 연결되지 않음',
'gitView.pr.loadingDescription': '설명 로드 중…',
'gitView.pr.mergeMethod.merge': '병합 커밋 생성',
'gitView.pr.mergeMethod.rebase': '리베이스 후 병합',
'gitView.pr.mergeMethod.squash': '스쿼시 후 병합',
'gitView.pr.noDescription': '설명 없음',
'gitView.pr.noMergePermission': '이 PR을 병합할 권한이 없습니다.',
'gitView.pr.notMergeable': '병합 불가',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': '개요',
'gitView.pr.segment.checks': '체크',
'gitView.pr.segment.comments': '댓글',
'gitView.pr.comments.addAll': '모두 채팅에 첨부',
'gitView.pr.placeholder.additionalContext': '제약 사항, 배포 메모 또는 리뷰어 참고사항을 입력하세요…',
'gitView.pr.placeholder.description': '변경 사항 설명…',
'gitView.pr.placeholder.main': 'PR 요약',
'gitView.pr.placeholder.selectBaseBranch': '기본 브랜치 선택',
'gitView.pr.placeholder.title': 'PR 제목',
'gitView.pr.placeholder.whatChanged': '무엇이 왜 바뀌었나요?',
'gitView.pr.statusUnavailable': 'PR 상태를 사용할 수 없음',
'gitView.pr.toast.baseBranchRequired': '기본 브랜치를 선택하세요',
'gitView.pr.toast.baseMustDifferFromHead': '기본 브랜치는 현재 브랜치와 달라야 합니다',
'gitView.pr.toast.createPrFailed': 'PR 생성 실패',
'gitView.pr.toast.generateDescriptionFailed': 'PR 설명 생성 실패',
'gitView.pr.toast.githubApiUnavailable': 'GitHub API를 사용할 수 없음',
'gitView.pr.toast.loadCheckDetailsFailed': '체크 상세 로드 실패',
'gitView.pr.toast.loadChecksFailed': 'PR 체크 로드 실패',
'gitView.pr.toast.loadCommentsFailed': '댓글 로드 실패',
'gitView.pr.toast.loadPrCommentsFailed': 'PR 댓글 로드 실패',
'gitView.pr.toast.markReadyFailed': 'PR 준비 상태 변경 실패',
'gitView.pr.toast.markedReady': 'PR을 리뷰 준비 상태로 표시함',
'gitView.pr.toast.mergeFailed': 'PR 병합 실패',
'gitView.pr.toast.noActiveSession': '활성 채팅 세션 없음',
'gitView.pr.toast.noActiveSessionDescription': '에이전트에 컨텍스트를 보내려면 채팅 세션을 열거나 만드세요.',
'gitView.pr.toast.noFailedChecks': '실패한 체크 없음',
'gitView.pr.toast.noModelSelected': '먼저 모델을 선택하세요',
'gitView.pr.toast.noPrComments': 'PR 댓글 없음',
'gitView.pr.toast.prCreated': 'PR 생성됨',
'gitView.pr.toast.prMerged': 'PR이 병합되었습니다',
'gitView.pr.toast.prNotMerged': 'PR이 병합되지 않았습니다',
'gitView.pr.toast.prUpdated': 'PR 업데이트됨',
'gitView.pr.toast.sendMessageFailed': '에이전트에 메시지 전송 실패',
'gitView.pr.toast.titleRequired': '제목 필수',
'gitView.pr.toast.updatePrFailed': 'PR 업데이트 실패',
'gitView.pullRequest.createHint': '이 브랜치에서 PR을 만들고 관리하세요.',
'gitView.pullRequest.availableOnFeatureBranches': '현재 브랜치에서 PR을 열 수 있을 때 사용할 수 있습니다.',
'gitView.pullRequest.title': 'PR',
'gitView.tabs.worktree': '워크트리',
'gitView.toast.abortOperationFailed': '작업 중단 실패',
'gitView.toast.appliedIdentity': '인증 정보를 적용했습니다: {name}',
'gitView.toast.applyIdentityFailed': '작성자 정보 적용 실패',
'gitView.toast.branchCreatedLocally': '브랜치를 로컬에 생성했지만 업스트림 설정에 실패했습니다.',
'gitView.toast.cannotCheckout': '브랜치를 체크아웃할 수 없음: {reason}',
'gitView.toast.cannotCreateBranch': '브랜치를 생성할 수 없음: {reason}',
'gitView.toast.cannotRemoveOriginRemote': 'origin 리모트를 제거할 수 없음',
'gitView.toast.cannotRenameBranch': '브랜치 이름을 변경할 수 없음: {reason}',
'gitView.toast.checkedOut': '{name} 브랜치를 체크아웃했습니다',
'gitView.toast.checkoutFailed': '{name} 체크아웃 실패',
'gitView.toast.commitCreated': '커밋 생성됨',
'gitView.toast.commitHashCopied': '커밋 해시 복사됨',
'gitView.toast.continueOperationFailed': '작업 계속 진행 실패',
'gitView.toast.copyFailed': '복사에 실패했습니다',
'gitView.toast.createBranchFailed': '브랜치 생성에 실패했습니다',
'gitView.toast.createCommitFailed': '커밋 생성에 실패했습니다',
'gitView.toast.createdBranch': '{name} 브랜치를 생성했습니다',
'gitView.toast.enterCommitMessage': '커밋 메시지를 입력하세요',
'gitView.toast.fetchedFromRemote': '{name}에서 가져왔습니다',
'gitView.toast.generateCommitMessageFailed': '커밋 메시지 생성 실패',
'gitView.toast.mergeAborted': 'merge 중단됨',
'gitView.toast.mergeCompleted': 'merge 완료됨',
'gitView.toast.mergeConflictsDetected': '병합 충돌이 감지되었습니다',
'gitView.toast.mergedIntoBranch': '{branch}을(를) {currentBranch}에 병합했습니다',
'gitView.toast.pulledFilesPlural': '{name}에서 파일 {count}개를 풀했습니다',
'gitView.toast.pulledFilesSingle': '{name}에서 파일 {count}개를 풀했습니다',
'gitView.toast.pushedToUpstream': '{name}에 푸시했습니다',
'gitView.toast.commitOrStashBeforeSync': '동기화하기 전에 변경 사항을 커밋하거나 stash하세요',
'gitView.toast.alreadyUpToDate': '이미 최신 상태입니다',
'gitView.toast.syncedPulledPluralAndPushed': '{name}에서 파일 {count}개를 풀하고 업스트림에 푸시했습니다',
'gitView.toast.syncedPulledSingleAndPushed': '{name}에서 파일 {count}개를 풀하고 업스트림에 푸시했습니다',
'gitView.toast.syncedChanges': '변경 사항을 동기화했습니다',
'gitView.toast.rebaseAborted': 'rebase 중단됨',
'gitView.toast.rebaseConflictsDetected': '리베이스 충돌이 감지되었습니다',
'gitView.toast.rebaseStepCompleted': '리베이스 단계 완료됨',
'gitView.toast.rebasedOntoBranch': '{currentBranch}을(를) {branch} 위로 리베이스했습니다',
'gitView.toast.refreshRepositoryFailed': '레포지토리 새로고침 실패',
'gitView.toast.remoteNameRequired': '리모트 이름은 필수입니다',
'gitView.toast.removedRemote': '리모트 {name} 제거됨',
'gitView.toast.renameBranchFailed': '{oldName}에서 {newName}(으)로 이름 변경 실패',
'gitView.toast.renamedBranch': '{oldName} 브랜치 이름을 {newName}(으)로 변경했습니다',
'gitView.toast.restoreStashFailed': 'stash 복원 실패',
'gitView.toast.restoreStashManually': 'stash를 수동으로 복원해야 합니다',
'gitView.toast.revertFailed': '변경 사항 되돌리기 실패',
'gitView.toast.revertedFile': '{path} 되돌림',
'gitView.toast.revertedFilesPlural': '파일 {count}개 되돌림',
'gitView.toast.revertedFilesSingle': '파일 {count}개 되돌림',
'gitView.toast.revertedSomePlural': '파일 {success}개 되돌림, {failed}개 실패',
'gitView.toast.revertedSomeSingle': '파일 {success}개 되돌림, {failed}개 실패',
'gitView.toast.stageFileFailed': '변경사항 스테이징 실패',
'gitView.toast.stageFileToCommit': '커밋하려면 파일을 하나 이상 스테이징하세요',
'gitView.toast.stageFileToDescribe': '설명하려면 파일을 하나 이상 스테이징하세요',
'gitView.toast.selectFileToCommit': '커밋할 파일을 하나 이상 선택하세요',
'gitView.toast.selectFileToDescribe': '설명할 파일을 하나 이상 선택하세요',
'gitView.toast.stashedRestored': 'stash한 변경 사항이 복원되었습니다',
'gitView.toast.syncActionFailed': '{action} 실패',
'gitView.toast.unstageFileFailed': '변경사항 스테이징 해제 실패',
'gitView.toast.upstreamSet': '{branch}의 업스트림을 {remote}(으)로 설정했습니다',
'gitView.worktree.availableInWorktreeMode': '워크트리 모드에서만 사용할 수 있습니다',
'contextPanel.mode.chat': '채팅',
'contextPanel.mode.files': '파일',
"contextPanel.mode.diff": "Changes",
'contextPanel.mode.stagedDiff': 'Staged Diff',
'contextPanel.mode.workingDiff': 'Working Diff',
'contextPanel.mode.plan': '계획',
'contextPanel.mode.pr': '풀 리퀘스트',
'contextPanel.mode.context': '컨텍스트',
'contextPanel.mode.preview': '미리보기',
'contextPanel.mode.browser': '브라우저',
'contextRail.aria.rail': '패널 서피스',
'contextPanel.editorEmpty.title': '열린 파일 없음',
'contextPanel.editorEmpty.description': '트리에서 파일을 선택해 편집을 시작하세요.',
'contextRail.surface.editor.description': '프로젝트 파일 편집',
'contextRail.surface.git.description': '커밋, 브랜치, 풀 리퀘스트',
'contextRail.surface.terminal.description': '내장 터미널',
'contextRail.surface.diff.description': '작업 중인 변경 사항 검토',
'contextPanel.mode.walkthrough': '워크스루',
'contextRail.surface.walkthrough.description': 'AI가 안내하는 변경 사항 워크스루',
'walkthrough.scope.all': '커밋되지 않은 전체',
'walkthrough.scope.group.workingTree': '작업 트리',
'walkthrough.scope.group.committed': '커밋됨',
'walkthrough.scope.staged': '스테이지됨',
'walkthrough.scope.working': '스테이지 안 됨',
'walkthrough.scope.branch': '이 브랜치',
'walkthrough.scope.selectorAria': '리뷰 대상 선택',
'walkthrough.language.menuLabel': '워크스루 언어',
'walkthrough.missing.language': '{requested} 워크스루가 아직 없어 {shown} 워크스루를 표시합니다.',
'walkthrough.missing.model': '{model}(으)로 생성한 워크스루가 아직 없어 마지막으로 생성된 것을 표시합니다.',
'walkthrough.missing.languageAndModel': '이 언어와 이 모델로 생성한 워크스루가 아직 없어 마지막으로 생성된 것을 표시합니다.',
'walkthrough.language.selectorAria': '워크스루 언어 선택',
'walkthrough.scope.pullRequest': 'PR #{number}',
'walkthrough.action.generate': '워크스루 생성',
'walkthrough.action.regenerate': '다시 생성',
'walkthrough.action.cancel': '취소',
'walkthrough.action.next': '다음 단계',
'walkthrough.action.previous': '이전 단계',
'walkthrough.action.refresh': '새로 고침',
'walkthrough.action.open': '워크스루',
'walkthrough.stage.collecting': '변경 사항을 모으는 중',
'walkthrough.stage.asking': '모델을 기다리는 중',
'walkthrough.stage.assembling': '워크스루를 조립하는 중',
'walkthrough.empty.title': '아직 워크스루가 없습니다',
'walkthrough.empty.description': '이 변경 사항을 따라 읽을 수 있는 경로를 만듭니다. 스몰 모델을 호출해 토큰을 사용하므로 요청할 때만 실행됩니다.',
'walkthrough.stale.banner': '이 리뷰 이후에 코드가 바뀌었습니다. 오래된 단계: {count}',
'walkthrough.stop.staleAll': '이 단계가 설명하던 코드가 모두 바뀌었습니다.',
'walkthrough.stop.stalePartial': '이 단계가 설명하던 코드 일부가 바뀌었습니다. 사라진 부분: {count}',
'walkthrough.stop.staleShort': '오래됨',
'walkthrough.stop.noCode': '이 단계의 코드는 현재 diff에 없습니다.',
'walkthrough.uncovered.title': '리뷰가 다루지 않은 변경: {count}',
'walkthrough.uncovered.description': '리뷰가 일상적인 변경으로 판단했습니다. 펼쳐서 직접 확인하세요.',
'walkthrough.toc.moreFiles': '다른 파일: {count}',
'walkthrough.toc.uncovered': '미포함: {count}',
'walkthrough.toc.resize': '목차 열 너비 조절',
'walkthrough.importance.critical': '중요',
'walkthrough.importance.context': '참고',
'walkthrough.blocked.noModel.title': '사용할 수 있는 스몰 모델이 없습니다',
'walkthrough.blocked.noModel.description': '리뷰를 생성하려면 모델 제공자에 로그인하세요.',
'walkthrough.blocked.emptyDiff.title': '리뷰할 내용이 없습니다',
'walkthrough.blocked.emptyDiff.description': '이 범위에는 아직 변경 사항이 없습니다.',
'walkthrough.blocked.contextTooSmall.title': '이 diff는 현재 모델에 너무 큽니다',
'walkthrough.blocked.contextTooSmall.description': '{model}은 약 {available}천 자를 담을 수 있는데 이 diff에는 약 {required}천 자가 필요합니다. 잘라내지 않으니 컨텍스트가 더 큰 모델을 선택하세요.',
'walkthrough.blocked.structuredOutput.title': '이 모델은 구조화된 출력을 지원하지 않습니다',
'walkthrough.blocked.structuredOutput.description': '{model}은 워크스루에 필요한 구조화된 응답을 지원하지 않습니다.',
'walkthrough.blocked.chooseModel': '스몰 모델 선택',
'walkthrough.blocked.outputExhausted.title': '모델의 응답 예산이 바닥났습니다',
'walkthrough.blocked.outputExhausted.description': '{model}이(가) 출력 예산을 모두 추론에 쓰고 아무것도 반환하지 않았습니다. 추론 모델은 큰 diff에서 흔히 이렇게 됩니다. 덜 추론하는 모델을 고르거나 범위를 좁혀 보세요.',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': '스몰 모델이 출력 예산을 모두 추론에 쓰고 아무것도 반환하지 않았습니다. 추론 모델은 큰 diff에서 흔히 이렇게 됩니다. 덜 추론하는 모델을 고르거나 범위를 좁혀 보세요.',
'walkthrough.blocked.onlyGenerated.title': '생성된 파일만 변경되었습니다',
'walkthrough.blocked.onlyGenerated.description': '여기의 변경은 모두 잠금 파일이거나 도구가 만든 산출물이며, 리뷰는 이런 파일을 의도적으로 건너뜁니다.',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': '스몰 모델은 약 {available}천 자를 담을 수 있는데 이 diff에는 약 {required}천 자가 필요합니다. 잘라내지 않으니 컨텍스트가 더 큰 모델을 선택하세요.',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': '스몰 모델은 워크스루에 필요한 구조화된 응답을 지원하지 않습니다.',
'contextRail.surface.plan.description': '현재 계획 보기',
'contextRail.surface.pr.description': '현재 브랜치의 풀 리퀘스트를 생성, 검토, 병합',
'contextRail.surface.notes.description': '프로젝트의 노트, 할 일, 계획',
'contextRail.surface.context.description': '세션 컨텍스트 및 토큰 사용량',
'contextRail.surface.browser.description': '내장 웹 브라우저',
'contextRail.surface.preview.description': '개발 서버 미리보기',
'contextRail.surface.chat.description': '나란히 연 세션',
'contextRail.surface.notes': '프로젝트 노트',
'contextRail.editorTree.toggle': '파일 트리 표시 전환',
'contextPanel.browser.open': '브라우저 패널 열기',
'contextPanel.browser.addressAria': '브라우저 주소',
'contextPanel.browser.empty': '웹 브라우저',
'contextPanel.browser.emptyHint': '위에 주소를 입력하여 탐색을 시작하세요',
'contextPanel.browser.inspectUnavailable': '브라우저 패널에서 이 페이지를 검사할 수 없습니다.',
'contextPanel.browser.trustNotice': '여기서 여는 페이지는 OpenChamber에 대한 전체 액세스 권한으로 실행됩니다 — 검사와 스크린샷에 필요합니다. 신뢰하는 사이트만 여세요: 악성 페이지가 데이터를 읽거나 사용자를 대신해 동작할 수 있습니다.',
'contextPanel.preview.actions.reload': '미리보기 새로고침',
'contextPanel.preview.actions.openExternal': '브라우저에서 열기',
'contextPanel.preview.actions.retry': '다시 시도',
'contextPanel.preview.iframeTitle': '미리보기',
'contextPanel.preview.invalidUrl': '미리보기에는 유효한 http(s) URL이 필요합니다.',
'contextPanel.preview.empty': '미리보기 URL이 없습니다',
'contextPanel.preview.loading': '미리보기 프록시에 연결 중...',
'contextPanel.preview.proxyError': '미리보기 프록시를 시작할 수 없습니다.',
'contextPanel.preview.upstreamUnreachable': '개발 서버가 응답하지 않습니다.',
'contextPanel.preview.upstreamUnreachableHint': '개발 서버가 여전히 실행 중인지 확인한 후 다시 시도하세요.',
'contextPanel.preview.startingServer': '개발 서버를 시작하는 중...',
'contextPanel.preview.startingServerHint': '서버가 연결을 수락할 때까지 기다리는 중입니다.',
'contextPanel.preview.title': '미리보기',
'contextPanel.preview.description': '프로젝트 작업 또는 터미널 Preview 버튼으로 미리보기를 여세요.',
'contextPanel.preview.startPreview': '미리보기 시작',
'contextPanel.preview.starting': '시작 중...',
'contextPanel.preview.noDevServer': '개발 서버 명령을 찾을 수 없습니다. 프로젝트 동작을 구성하거나 package.json에 "dev" 스크립트를 추가하세요.',
'contextPanel.preview.startFailed': '미리보기 서버를 시작하지 못했습니다.',
'contextPanel.preview.serverExited': '개발 서버가 예기치 않게 종료되었습니다.',
'contextPanel.preview.noUrlDetected': '개발 서버가 시작되었지만 출력에서 URL이 감지되지 않았습니다. 미리보기 터미널 탭에서 로그를 확인하세요.',
'contextPanel.preview.serverExitedWithLog': '개발 서버가 예기치 않게 종료되었습니다. 마지막 출력:\n\n{log}',
'contextPanel.preview.noUrlDetectedWithLog': '개발 서버가 응답할 수 있는 상태가 되지 못했습니다. 마지막 출력:\n\n{log}',
'contextPanel.preview.console.open': '미리보기 콘솔 열기',
'contextPanel.preview.console.waiting': '미리보기 콘솔 대기 중',
'contextPanel.preview.console.title': '미리보기 콘솔',
'contextPanel.preview.console.attach': '첨부',
'contextPanel.preview.console.copy': '복사',
'contextPanel.preview.console.clear': '지우기',
'contextPanel.preview.console.empty': '아직 미리보기 콘솔 이벤트가 없습니다.',
'contextPanel.preview.console.noFilteredEvents': '이 필터와 일치하는 이벤트가 없습니다.',
'contextPanel.preview.console.runtimeError': '런타임 오류',
'contextPanel.preview.console.copied': '미리보기 콘솔 복사됨',
'contextPanel.preview.console.copyFailed': '미리보기 콘솔 복사 실패',
'contextPanel.preview.console.attached': '미리보기 콘솔이 채팅에 첨부되었습니다',
'contextPanel.preview.console.attachNoSession': '미리보기 로그를 첨부하기 전에 채팅 세션을 여세요',
'contextPanel.preview.console.attachAnnotation': '이것은 이 프로젝트에서 실행 중인 개발 서버의 브라우저 콘솔 로그입니다.',
'contextPanel.preview.inspect.toggle': '미리보기 요소 검사',
'contextPanel.preview.inspect.attached': '미리보기 주석이 채팅에 첨부되었습니다',
'contextPanel.preview.inspect.attachNoSession': '미리보기 주석을 첨부하기 전에 채팅 세션을 여세요',
'contextPanel.preview.inspect.attachAnnotation': '인앱 미리보기에서 선택한 DOM 요소입니다.',
'contextPanel.preview.inspect.attachAnnotationWithScreenshot': '인앱 미리보기에서 선택한 DOM 요소입니다. 선택한 요소가 강조된 보이는 미리보기 영역 스크린샷이 첨부되었습니다.',
'contextPanel.preview.console.filter.all': '전체',
'contextPanel.preview.console.filter.errors': '오류',
'contextPanel.preview.console.filter.warnings': '경고',
'contextPanel.preview.console.filter.logs': '로그',
'terminalView.preview.open': '미리보기',
'terminalView.preview.openTitle': '미리보기 패널 열기',
'header.services.shutdownDev': 'OpenChamber 종료',
'chat.messageBody.actions.openPreviewAria': '미리보기 열기',
'chat.messageBody.actions.openPreview': '미리보기 열기',
'contextPanel.tab.closeTabAria': '{label} 탭 닫기',
'contextPanel.actions.collapsePanel': '접기 패널',
'contextPanel.actions.expandPanel': '펼치기 패널',
'contextPanel.actions.closePanel': '패널 닫기',
'contextPanel.actions.resizePanelAria': '컨텍스트 패널 크기 조정',
'contextPanel.iframe.sessionChatTitle': '세션 채팅 {sessionID}',
'sidebarFilesTree.menu.rename': '이름 변경',
'sidebarFilesTree.menu.copyPath': '경로 복사',
'sidebarFilesTree.menu.save': '저장',
'sidebarFilesTree.menu.download': '다운로드',
'sidebarFilesTree.menu.newFile': '새 파일',
'sidebarFilesTree.menu.newFolder': '새 폴더',
'sidebarFilesTree.menu.delete': '삭제',
'sidebarFilesTree.toast.pathCopied': '경로 복사됨',
'sidebarFilesTree.toast.copyFailed': '복사 실패',
'sidebarFilesTree.toast.revealFailed': '경로 표시 실패',
'sidebarFilesTree.toast.filenameRequired': '파일 이름 필수',
'sidebarFilesTree.toast.writeNotSupported': '쓰기를 지원하지 않음',
'sidebarFilesTree.toast.fileCreated': '파일 생성됨',
'sidebarFilesTree.toast.operationFailed': '작업 실패',
'sidebarFilesTree.toast.folderNameRequired': '폴더 이름 필수',
'sidebarFilesTree.toast.folderCreated': '폴더 생성됨',
'sidebarFilesTree.toast.nameRequired': '이름 필수',
'sidebarFilesTree.toast.renameNotSupported': '이름 변경을 지원하지 않음',
'sidebarFilesTree.toast.renamedSuccessfully': '이름 변경됨',
'sidebarFilesTree.toast.deleteNotSupported': '삭제를 지원하지 않음',
'sidebarFilesTree.toast.deletedSuccessfully': '삭제됨',
'sidebarFilesTree.search.placeholder': '파일 검색…',
'sidebarFilesTree.search.clearAria': '검색 지우기',
'sidebarFilesTree.actions.newFileTitle': '새 파일',
'sidebarFilesTree.actions.newFolderTitle': '새 폴더',
'sidebarFilesTree.actions.refreshTitle': '새로고침',
'sidebarFilesTree.actions.collapseAllTitle': '모든 폴더 접기',
'sidebarFilesTree.actions.fileMenuTitle': '파일 메뉴',
'sidebarFilesTree.state.searching': '검색 중…',
'sidebarFilesTree.state.loading': '로드 중…',
'sidebarFilesTree.dialog.createFile.title': '파일 생성',
'sidebarFilesTree.dialog.createFolder.title': '폴더 생성',
'sidebarFilesTree.dialog.rename.title': '이름 변경',
'sidebarFilesTree.dialog.delete.title': '삭제',
'sidebarFilesTree.dialog.createFile.description': '{path}에 새 파일 생성',
'sidebarFilesTree.dialog.createFolder.description': '{path}에 새 폴더 생성',
'sidebarFilesTree.dialog.rename.description': '{name} 이름 변경',
'sidebarFilesTree.dialog.delete.description': '{name}을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.',
'sidebarFilesTree.dialog.rootFallback': '루트',
'sidebarFilesTree.dialog.rename.placeholder': '새 이름',
'sidebarFilesTree.dialog.namePlaceholder': '이름',
'sidebarFilesTree.dialog.cancel': '취소',
'sidebarFilesTree.dialog.confirm': '확인',
'sidebarFilesTree.dialog.delete.confirm': '삭제',
'filesView.dialog.createFile.title': '파일 생성',
'filesView.dialog.createFolder.title': '폴더 생성',
'filesView.dialog.rename.title': '이름 변경',
'filesView.dialog.delete.title': '삭제',
'filesView.dialog.createFile.description': '{path}에 새 파일 생성',
'filesView.dialog.createFolder.description': '{path}에 새 폴더 생성',
'filesView.dialog.rename.description': '{name} 이름 변경',
'filesView.dialog.delete.description': '{name}을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.',
'filesView.dialog.rootFallback': '루트',
'filesView.dialog.rename.placeholder': '새 이름',
'filesView.dialog.namePlaceholder': '이름',
'filesView.dialog.cancel': '취소',
'filesView.dialog.confirm': '확인',
'filesView.dialog.delete.confirm': '삭제',
'filesView.editor.saving': '저장 중…',
'filesView.editor.saved': '저장됨',
'filesView.editor.autoSaveOn': '자동 저장 켜짐',
'filesView.editor.manualSave': '수동 저장',
'filesView.editor.saveNowTitle': '지금 저장({shortcut}) · 1.5초 후 자동 저장',
'filesView.editor.saveNowManualTitle': '지금 저장({shortcut})',
'filesView.editor.saveAria': '저장 ({shortcut})',
'filesView.editor.openInDesktopApp': '데스크톱 앱에서 열기',
'filesView.editor.refreshApps': '앱 새로고침',
'filesView.editor.disableLineWrap': '줄 바꿈 끄기',
'filesView.editor.enableLineWrap': '줄 바꿈 켜기',
'filesView.editor.findInFile': '파일에서 찾기',
'filesView.editor.goToLine': '줄로 이동',
'filesView.editor.switchToEditMode': '편집 모드로 전환',
'filesView.editor.switchToPreviewMode': '미리보기 모드로 전환',
'filesView.editor.switchToTextView': '텍스트 보기로 전환',
'filesView.editor.switchToTreeView': '트리 보기로 전환',
'filesView.toast.copyFailed': '복사 실패',
'filesView.toast.openInAppFailed': '{app}에서 열기 실패',
'filesView.toast.savingNotSupported': '저장을 지원하지 않음',
'filesView.toast.writeFileFailed': '파일 쓰기 실패',
'filesView.toast.saveFailed': '저장 실패',
'filesView.editor.copyFileContents': '파일 내용 복사',
'filesView.editor.copyFilePathTitle': '파일 경로 복사({path})',
'filesView.editor.saveFile': '파일 저장',
'filesView.editor.exitFullscreen': '전체 화면 종료',
'filesView.editor.fullscreen': '전체 화면',
'filesView.unsaved.title': '저장하지 않은 변경 사항',
'filesView.unsaved.description': '계속하기 전에 편집 내용을 저장할까요?',
'filesView.unsaved.saveChanges': '변경 사항 저장',
'filesView.unsaved.discard': '버리기',
'filesView.editor.back': '뒤로',
'filesView.editor.openFilesAria': '파일 열기',
'filesView.editor.closeFileAria': '{name} 닫기',
'filesView.editor.selectFile': '파일 선택',
'filesView.editor.showControlsAria': '편집기 컨트롤 표시',
'filesView.editor.controlsTitle': '편집기 컨트롤',
'filesView.editor.pickFileFromTree': '트리에서 파일을 선택하세요.',
'filesView.editor.cannotPreviewBinary': '바이너리 파일을 미리볼 수 없음',
'filesView.editor.binaryFileDescription': '이 파일은 바이너리이므로 OpenChamber에서 편집할 수 없습니다. 다른 앱으로 열려면 다운로드하세요.',
'filesView.state.loading': '로드 중…',
'filesView.state.openingFileAtChange': '변경 위치에서 파일 여는 중…',
'filesView.tree.search.placeholder': '파일 검색…',
'filesView.tree.search.clearAria': '검색 지우기',
'filesView.tree.search.searching': '검색 중…',
'filesView.tree.actions.newFileTitle': '새 파일',
'filesView.tree.actions.newFolderTitle': '새 폴더',
'filesView.tree.actions.refreshTitle': '새로고침',
'filesView.editor.imageAltFallback': '이미지',
'filesView.error.jsonViewerUnavailable': 'JSON 뷰어를 사용할 수 없음',
'filesView.error.switchToTextMode': '원본 내용을 보려면 텍스트 모드로 전환하세요.',
'filesView.warning.largeFilePreviewLimited': '이 파일은 큽니다({sizeKb}KB). 미리보기가 제한될 수 있습니다.',
'filesView.error.previewUnavailable': '미리보기를 사용할 수 없음',
'filesView.error.switchToEditMode': '문제를 수정하려면 편집 모드로 전환하세요.',
'filesView.error.readFileFailed': '파일 읽기 실패',
'filesView.editor.htmlPreviewTitle': 'HTML 미리보기',
'filesView.diagram.closeDiagramView': '다이어그램 보기 닫기',
'filesView.diagram.saveDiagram': '다이어그램 저장',
'contextUsage.aria.label': '컨텍스트 사용량',
'contextUsage.mobile.title': '컨텍스트 사용량',
'contextUsage.mobile.usedTokens': '사용한 토큰',
'contextUsage.mobile.contextLimit': '컨텍스트 한도',
'contextUsage.mobile.outputLimit': '출력 한도',
'contextUsage.mobile.usage': '사용량',
'contextUsage.tooltip.usedTokens': '사용됨 토큰: {tokens}',
'contextUsage.tooltip.contextLimit': '컨텍스트 한도: {tokens}',
'contextUsage.tooltip.outputLimit': '출력 한도: {tokens}',
'contextSidebar.session.untitled': '제목 없는 세션',
'contextSidebar.empty.openSession': '컨텍스트를 볼 세션을 여세요.',
'contextSidebar.section.context': '컨텍스트',
'contextSidebar.section.lastAssistantMessage': '마지막 어시스턴트 메시지',
'contextSidebar.section.rawMessages': '원본 메시지',
'contextSidebar.context.percentUsed': '{percent}% 사용됨',
'contextSidebar.breakdown.user': '사용자',
'contextSidebar.breakdown.assistant': '어시스턴트',
'contextSidebar.breakdown.toolCalls': '도구 호출',
'contextSidebar.breakdown.other': '기타',
'contextSidebar.stats.messages': '메시지',
'contextSidebar.stats.user': '사용자',
'contextSidebar.stats.assistant': '어시스턴트',
'contextSidebar.stats.cost': '비용',
'contextSidebar.tokens.input': '입력',
'contextSidebar.tokens.output': '출력',
'contextSidebar.tokens.reasoning': '추론',
'contextSidebar.tokens.cacheRead': '캐시 읽기',
'contextSidebar.tokens.cacheWrite': '캐시 쓰기',
'contextSidebar.tokens.cacheHit': '캐시 적중',
'contextSidebar.actions.copyJson': 'JSON 복사',
'contextSidebar.actions.copy': '복사',
'contextSidebar.actions.copied': '복사됨',
'planView.file.defaultName': 'plan',
'planView.title.default': '플랜',
'planView.error.saveFailed': '저장 실패',
'planView.error.previewUnavailable': '미리보기를 사용할 수 없음',
'planView.error.switchToEditMode': '문제를 수정하려면 편집 모드로 전환하세요.',
'planView.error.writeFailed': '쓰기 실패',
'planView.error.writePlanFileFailed': '플랜 파일 쓰기 실패({status})',
'planView.actions.improvePlanAria': '플랜 개선',
'planView.actions.improve': '개선',
'planView.actions.implementPlanAria': '플랜 구현',
'planView.actions.implement': '구현',
'planView.actions.sendToNewSession': '새 세션으로 보내기',
'planView.actions.sendToNewWorktreeSession': '새 워크트리 세션으로 보내기',
'planView.actions.copyPlanContents': '플랜 내용 복사',
'planView.state.loading': '로드 중…',
'diffView.binary.unavailable': '이 파일의 콘텐츠는 볼 수 없습니다.',
'diffView.change.untracked': '추적되지 않은 파일',
'diffView.change.new': '새 파일',
'diffView.change.deleted': '삭제된 파일',
'diffView.change.renamed': '이름 변경된 파일',
'diffView.change.copied': '복사된 파일',
'diffView.change.modified': '수정된 파일',
'diffView.selector.selectFile': '파일 선택',
'diffView.image.original': '원본',
'diffView.image.modified': '수정됨',
'diffView.image.new': '새 파일',
'diffView.image.originalAlt': '원본: {path}',
'diffView.image.modifiedAlt': '수정본: {path}',
'diffView.section.files': '파일',
'diffView.state.selectSessionDirectory': '변경사항을 볼 세션 디렉터리를 선택하세요',
'diffView.state.loadingRepositoryStatus': '레포지토리 상태 로드 중…',
'diffView.state.notGitRepository': 'Git 레포지토리가 아닙니다. Git 탭에서 초기화하거나 디렉터리를 변경하세요.',
'diffView.state.cleanWorkingTree': '워킹 트리가 깨끗합니다. 표시할 변경 사항이 없습니다.',
'diffView.state.noLastTurnChanges': '표시할 마지막 턴 변경 사항이 없습니다.',
'diffView.state.failedToLoadDiff': '변경사항을 불러오지 못했습니다',
'diffView.state.loadingDiff': '변경사항 불러오는 중…',
'diffView.state.loadingChanges': '변경 사항 로드 중…',
'diffView.state.largeDiff': '큰 diff({count}개 변경 줄)',
'diffView.state.largeDiffDescription': '렌더링이 느릴 수 있습니다. 아래 버튼으로 diff를 계속 볼 수 있습니다.',
'diffView.summary.changedFilesSingle': '파일 {count}개 변경됨',
'diffView.summary.changedFilesPlural': '파일 {count}개 변경됨',
"diffView.scope.changed": "Changed",
"diffView.scope.staged": "Staged",
"diffView.scope.lastTurn": "마지막 턴",
"diffView.scope.selectorAria": "변경 모드 선택",
'diffView.actions.retry': '다시 시도',
'diffView.actions.renderAnyway': '그래도 렌더링',
'diffView.actions.expandAll': '모두 펼치기',
'diffView.actions.collapseAll': '모두 접기',
'diffView.actions.loadFullFiles': '전체 파일 불러오기',
'diffView.actions.disableFullFiles': '전체 파일 불러오기 끄기',
'diffView.actions.disableLineWrap': '줄 바꿈 끄기',
'diffView.actions.enableLineWrap': '줄 바꿈 켜기',
'diffView.actions.openFileInEditorAtChange': '변경 위치에서 이 파일을 에디터로 열기',
'diffView.actions.openFileAtFirstChangedLine': '첫 변경 줄에서 이 파일 열기',
'diffView.actions.review': '리뷰',
'diffView.actions.reviewAria': '변경 사항 리뷰',
'diffView.reviewDialog.title': '변경 사항 리뷰',
'diffView.reviewDialog.description': '현재 변경 사항을 위한 별도 리뷰 세션을 시작합니다.',
'diffView.reviewDialog.generateHandoff': '핸드오프 생성',
'diffView.reviewDialog.autoReview': '자동 리뷰 루프 실행',
'diffView.reviewDialog.info': '이 흐름은 변경 사항을 구현한 세션에서 시작할 때 가장 잘 작동합니다.',
'diffView.reviewDialog.actions.cancel': '취소',
'diffView.reviewDialog.actions.start': '리뷰',
'diffView.reviewDialog.actions.starting': '시작 중...',
'diffView.reviewDialog.toast.noSessionDirectory': '세션 디렉터리를 사용할 수 없습니다',
'diffView.reviewDialog.toast.startFailed': '리뷰 흐름을 시작하지 못했습니다',
'chat.history.loadOlder': '이전 메시지 불러오기',
'chat.autoReview.title': '코드 리뷰 루프 실행 중',
'chat.autoReview.status.waitingForReviewer': '리뷰어를 기다리는 중',
'chat.autoReview.status.waitingForImplementer': '구현 에이전트를 기다리는 중',
'chat.autoReview.reviewSessionLabel': '리뷰 세션',
'chat.autoReview.actions.open': '열기',
'chat.autoReview.actions.stop': '중지',
'diffView.hunk.label': '허크',
'diffView.hunk.stage': '스테이지',
'diffView.hunk.unstage': '스테이지 해제',
'diffView.hunk.discard': '취소',
'diffView.hunk.stageTitle': '허크 {index} 스테이지',
'diffView.hunk.unstageTitle': '허크 {index} 스테이지 해제',
'diffView.hunk.discardTitle': '허크 {index} 취소',
'diffView.hunk.unavailable': '이 허크는 더 이상 사용할 수 없습니다. diff를 새로고침 후 다시 시도하세요.',
'diffView.hunk.unsupported': '개별 허크 스테이징은 이 환경에서 지원되지 않습니다.',
'rightSidebar.contextNotesTodo.plan.defaultTitle': '플랜',
'rightSidebar.contextNotesTodo.empty.selectProject': '메모와 Todo를 추가할 프로젝트를 선택하세요.',
'rightSidebar.contextNotesTodo.notes.title': '빠른 메모 - {project}',
'rightSidebar.contextNotesTodo.notes.placeholder': '컨텍스트, 리마인더, 링크를 기록하세요',
'rightSidebar.contextNotesTodo.todo.title': 'Todo',
'rightSidebar.contextNotesTodo.todo.itemsSingle': '{count}개 항목',
'rightSidebar.contextNotesTodo.todo.itemsPlural': '{count}개 항목',
'rightSidebar.contextNotesTodo.todo.clearCompleted': '완료 항목 지우기',
'rightSidebar.contextNotesTodo.todo.inputPlaceholder': 'Todo 추가',
'rightSidebar.contextNotesTodo.todo.addAria': 'Todo 추가',
'rightSidebar.contextNotesTodo.todo.empty': '아직 Todo가 없습니다. 이 프로젝트용 체크리스트를 추가해 보세요.',
'rightSidebar.contextNotesTodo.todo.actions.markComplete': '"{text}" 완료로 표시',
'rightSidebar.contextNotesTodo.todo.actions.collapse': '접기 todo "{text}"',
'rightSidebar.contextNotesTodo.todo.actions.expand': '펼치기 todo "{text}"',
'rightSidebar.contextNotesTodo.todo.actions.delete': '"{text}" 삭제',
'rightSidebar.contextNotesTodo.todo.actions.send': '보내기 "{text}"',
'rightSidebar.contextNotesTodo.todo.actions.reorder': '재정렬 "{text}"',
'rightSidebar.contextNotesTodo.todo.resizeAria': '할 일 목록 크기 조정',
'rightSidebar.contextNotesTodo.todo.sendMenu.currentSession': '현재 세션으로 보내기',
'rightSidebar.contextNotesTodo.todo.sendMenu.newSession': '새 세션으로 보내기',
'rightSidebar.contextNotesTodo.todo.sendMenu.newWorktreeSession': '새 워크트리 세션으로 보내기',
'rightSidebar.contextNotesTodo.plans.title': '플랜',
'rightSidebar.contextNotesTodo.plans.filesSingle': '{count} 파일',
'rightSidebar.contextNotesTodo.plans.filesPlural': '{count} 파일',
'rightSidebar.contextNotesTodo.plans.importFromFile': '파일에서 플랜 가져오기',
'rightSidebar.contextNotesTodo.plans.empty': '아직 저장된 플랜 없음',
'rightSidebar.contextNotesTodo.plans.deletePlan': '플랜 삭제',
'rightSidebar.contextNotesTodo.plans.deletePlanWithTitle': '플랜 "{title}" 삭제',
'rightSidebar.contextNotesTodo.sendDialog.title.newSession': '새 세션으로 보내기',
'rightSidebar.contextNotesTodo.sendDialog.title.newWorktree': '새 워크트리로 보내기',
'rightSidebar.contextNotesTodo.sendDialog.variant.default': '기본값',
'rightSidebar.contextNotesTodo.sendDialog.actions.cancel': '취소',
'rightSidebar.contextNotesTodo.sendDialog.actions.send': '보내기',
'rightSidebar.contextNotesTodo.sendDialog.actions.sending': '보내는 중…',
'rightSidebar.contextNotesTodo.toast.saveNotesFailed': '프로젝트 메모 저장 실패',
'rightSidebar.contextNotesTodo.toast.loadNotesFailed': '프로젝트 메모 로드 실패',
'rightSidebar.contextNotesTodo.toast.noActiveSession': '활성 세션이 선택되지 않음',
'rightSidebar.contextNotesTodo.toast.sentToCurrentSession': 'Todo를 현재 세션으로 보냄',
'rightSidebar.contextNotesTodo.toast.worktreeRequiresGitRepo': '워크트리 작업은 Git 레포지토리에서만 사용할 수 있습니다',
'rightSidebar.contextNotesTodo.toast.createSessionFailed': '세션 생성 실패',
'rightSidebar.contextNotesTodo.toast.sentToNewSession': '할 일을 새 세션으로 보냈습니다',
'rightSidebar.contextNotesTodo.toast.sentToNewWorktreeSession': '할 일을 새 워크트리 세션으로 보냈습니다',
'rightSidebar.contextNotesTodo.toast.sendTodoFailed': 'Todo 전송 실패',
'rightSidebar.contextNotesTodo.toast.deletePlanFailed': '플랜 삭제 실패',
'rightSidebar.contextNotesTodo.toast.planFileEmpty': '플랜 파일이 비어 있음',
'rightSidebar.contextNotesTodo.toast.importPlanFailed': '플랜 가져오기 실패',
'rightSidebar.contextNotesTodo.toast.planImported': '플랜 가져옴',
'rightSidebar.contextNotesTodo.toast.readPlanFileFailed': '플랜 파일 읽기 실패',
'inlineComment.range.lines': '줄 {start}-{end}',
'inlineComment.input.placeholder': '댓글 추가… (Cmd+Enter로 저장)',
'inlineComment.input.placeholderShort': '댓글 추가…',
'inlineComment.actions.cancel': '취소',
'inlineComment.actions.save': '저장',
'inlineComment.actions.comment': '댓글',
'inlineComment.actions.showLess': '간단히 보기',
'inlineComment.actions.showMore': '더 보기',
'inlineComment.actions.editComment': '편집 댓글',
'inlineComment.actions.deleteComment': '댓글 삭제',
'inlineComment.toast.selectSessionToSave': '댓글을 저장할 세션을 선택하세요',
'header.github.connectedWithLogin': 'GitHub: {login}',
'header.github.connected': 'GitHub 연결됨',
'header.github.avatarWithLogin': '{login} 아바타',
'header.github.avatar': 'GitHub 아바타',
'header.github.accountsTitle': 'GitHub 계정',
'header.github.accountSource.oauth': 'OAuth',
'header.github.accountSource.cli': 'CLI',
'header.services.openWithCurrent': '인스턴스, 사용량, MCP 열기(현재: {current})',
'header.services.open': '서비스, 사용량, MCP 열기',
'header.services.tooltip.currentInstanceWithShortcuts': '현재 인스턴스: {current} ({toggle}; 다음 탭 {nextTab})',
'header.services.tooltip.servicesWithShortcuts': '서비스 ({toggle}; 다음 탭 {nextTab})',
'header.services.title': '서비스',
'header.services.viewAria': '서비스 보기',
'header.services.closeAria': '서비스 닫기',
'header.services.rateLimits': '레이트 리밋',
'header.services.refreshRateLimitsAria': '레이트 리밋 새로고침',
'header.services.noRateLimits': '사용 가능한 레이트 리밋이 없습니다.',
'header.services.noRateLimitsReported': '보고된 레이트 리밋이 없습니다.',
'header.services.remoteUpdate.title': '원격 인스턴스 업데이트',
'header.services.remoteUpdate.checking': '업데이트를 확인하는 중...',
'header.services.remoteUpdate.upToDate': '이 인스턴스는 최신 상태입니다.',
'header.services.remoteUpdate.available': '이 인스턴스에 버전 {version} 업데이트가 있습니다.',
'header.services.remoteUpdate.error': '원격 인스턴스 업데이트를 확인하지 못했습니다',
'header.services.remoteUpdate.actions.open': '업데이트',
'header.services.used': '사용됨',
'header.services.remaining': '남은 양',
'header.services.modelFamily.other': '기타',
'header.actions.openPlanAria': '플랜 열기',
"header.actions.toggleChangesPanel": "변경 패널",
"header.actions.toggleChangesPanelAria": "변경 패널 전환",
'header.actions.planWithShortcut': '플랜 ({shortcut})',
'header.actions.terminalPanelWithShortcut': '터미널 패널 ({shortcut})',
'chat.recap.aria': '세션 요약',
'chat.recap.label': '요약:',
'chat.goal.dialog.titleCreate': '세션 목표 설정',
'chat.goal.dialog.titleManage': '세션 목표',
'chat.goal.dialog.objectiveLabel': '목표',
'chat.goal.dialog.objectivePlaceholder': '에이전트가 도달하고 검증해야 할 최종 상태를 설명하세요…',
'chat.goal.dialog.budgetLabel': '토큰 예산',
'chat.goal.dialog.evaluationModelLabel': '평가 모델',
'chat.goal.status.active': '진행 중',
'chat.goal.status.evaluating': '평가 중…',
'chat.goal.status.paused': '일시 중지됨',
'chat.goal.status.blocked': '차단됨',
'chat.goal.status.budgetLimited': '예산 도달',
'chat.goal.status.complete': '완료됨',
'chat.goal.usage.tokens': '{used} 토큰',
'chat.goal.usage.tokensWithBudget': '{used}/{budget} 토큰',
'chat.goal.usage.turns': '{turns}회 계속',
'chat.goal.action.pause': '일시 중지',
'chat.goal.action.resume': '재개',
'chat.goal.action.markComplete': '완료로 표시',
'chat.goal.action.clear': '목표 제거',
'chat.goal.action.cancel': '취소',
'chat.goal.action.save': '목표 저장',
'chat.goal.action.start': '목표 시작',
'chat.goal.toast.actionFailed': '목표 업데이트에 실패했습니다',
'chat.goal.toast.distillFallback': '목표가 제한을 초과했고 요약도 실패했습니다 — 감사에는 발췌본을 사용합니다',
'chat.goal.row.aria': '세션 목표 — 세부 정보 열기',
'chat.goal.button.createAria': '세션 목표 설정',
'chat.goal.button.manageAria': '세션 목표 관리',
'chat.goal.button.armAria': '다음 메시지로 목표 시작',
'chat.goal.counter.aria': '목표 길이 제한',
'chat.goal.button.disarmAria': '목표 대기 중 — 탭하여 해제',
'chat.goal.button.cancelAria': '목표 진행 중 — 탭하여 취소',
'chat.goal.cancelDialog.title': '이 목표를 취소할까요?',
'chat.goal.cancelDialog.description': '에이전트가 이 목표를 향한 자동 작업을 중단합니다.',
'chat.goal.cancelDialog.keep': '목표 유지',
'chat.goal.cancelDialog.confirm': '목표 취소',
'chat.suggestion.applyAria': '제안된 메시지 사용',
'chat.suggestion.dismissAria': '제안 닫기',
'header.actions.toggleTerminalPanelAria': '토글 터미널 패널',
'terminalView.stream.processExitedMessage': '\r\n[Process exited{exitCodeSegment}{signalSegment}]\r\n',
'terminalView.stream.processExitedWithCode': ', 종료 코드 {exitCode}',
'terminalView.stream.processExitedWithSignal': ' (시그널 {signal})',
'terminalView.error.sessionEnded': '터미널 세션이 종료되었습니다',
'terminalView.error.connectionFailed': '연결 실패: {message}',
'terminalView.error.startSessionFailed': '터미널 세션 시작에 실패했습니다',
'terminalView.error.restartFailed': '터미널 재시작에 실패했습니다',
'terminalView.error.sendInputFailed': '입력 전송에 실패했습니다',
'terminalView.empty.noWorkingDirectory': '터미널에서 사용할 작업 디렉터리가 없습니다.',
'terminalView.empty.selectSession': '터미널을 열 세션을 선택하세요.',
'terminalView.empty.noWorkingDirectoryForSession': '이 세션에서 사용할 작업 디렉터리가 없습니다.',
'terminalView.actions.retry': '다시 시도',
'terminalView.actions.hardRestart': '강제 재시작',
'terminalView.actions.hardRestartTitle': '강제 종료 후 새 세션을 생성합니다',
'terminalView.quickKeys.escape': 'Esc',
'terminalView.quickKeys.tabAria': 'Tab',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Control 수정키',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Alt 수정키',
'terminalView.quickKeys.commandModifierAria': 'Command 수정키',
'terminalView.quickKeys.arrowUpAria': '위쪽 화살표',
'terminalView.quickKeys.arrowLeftAria': '왼쪽 화살표',
'terminalView.quickKeys.arrowDownAria': '아래쪽 화살표',
'terminalView.quickKeys.arrowRightAria': '오른쪽 화살표',
'terminalView.quickKeys.enterAria': 'Enter',
'terminalView.tabs.closeTabTitle': '탭 닫기',
'terminalView.tabs.newTabTitle': '새 탭',
'terminalView.viewport.inputAria': '터미널 입력',
'directoryExplorerDialog.title': '프로젝트 디렉터리 추가',
'directoryExplorerDialog.description': '프로젝트로 추가할 폴더를 선택하세요.',
'directoryExplorerDialog.toggle.showHidden': '숨김 항목 표시',
'directoryExplorerDialog.pathInput.placeholder': '경로를 입력하거나 트리에서 선택…',
'directoryExplorerDialog.actions.openingFinder': '여는 중...',
'directoryExplorerDialog.actions.openInFinder': 'Finder에서 열기',
'directoryExplorerDialog.actions.adding': '추가 중…',
'directoryExplorerDialog.actions.addProject': '프로젝트 추가',
'directoryExplorerDialog.actions.addLocalProject': '로컬 프로젝트 추가',
'directoryExplorerDialog.actions.cloneRepository': '저장소 복제',
'directoryExplorerDialog.actions.cloneAndAdd': '복제하고 추가',
'directoryExplorerDialog.actions.cloning': '복제 중...',
'directoryExplorerDialog.actions.createAndAdd': '생성하고 추가',
'directoryExplorerDialog.actions.alreadyAdded': '이미 추가됨',
'directoryExplorerDialog.clone.remoteUrlPlaceholder': '저장소 URL (HTTPS 또는 SSH)',
'directoryExplorerDialog.browse.directories': '디렉터리',
'directoryExplorerDialog.browse.loading': '디렉터리 로드 중...',
'directoryExplorerDialog.browse.empty': '일치하는 디렉터리가 없습니다.',
'directoryExplorerDialog.browse.parentDirectory': '상위 디렉터리',
'directoryExplorerDialog.browse.addedBadge': '추가됨',
'directoryExplorerDialog.browse.quickAdd': '추가',
'directoryExplorerDialog.footer.navigate': '탐색',
'directoryExplorerDialog.footer.select': '선택',
'directoryExplorerDialog.footer.add': '추가',
'directoryExplorerDialog.shortcut.enter': 'Enter',
'directoryExplorerDialog.toast.unableToAccessDirectory': '디렉터리에 접근할 수 없음',
'directoryExplorerDialog.toast.desktopDeniedAccess': '데스크톱에서 디렉터리 접근이 거부되었습니다.',
'directoryExplorerDialog.toast.failedToOpenDirectory': '디렉터리를 열지 못했습니다',
'directoryExplorerDialog.toast.desktopCouldNotGrantAccess': '데스크톱에서 파일 접근 권한을 부여하지 못했습니다.',
'directoryExplorerDialog.toast.failedToAddProject': '프로젝트 추가 실패',
'directoryExplorerDialog.toast.cloneUrlRequired': '복제하기 전에 저장소 URL을 입력하세요.',
'directoryExplorerDialog.toast.selectValidDirectoryPath': '유효한 디렉터리 경로를 선택하세요.',
'directoryExplorerDialog.toast.failedToSelectDirectory': '디렉터리 선택 실패',
'directoryExplorerDialog.toast.unknownError': '알 수 없는 오류가 발생했습니다.',
'directoryTree.actions.createNewDirectory': '새 디렉터리 만들기',
'directoryTree.actions.pinDirectory': '디렉터리 고정',
'directoryTree.actions.unpinDirectory': '디렉터리 고정 해제',
'directoryTree.actions.createDirectory': '디렉터리 생성',
'directoryTree.actions.cancel': '취소',
'directoryTree.actions.selectWorkingDirectoryAria': '작업 디렉터리 선택',
'directoryTree.state.locatingHomeDirectory': '홈 디렉터리 찾는 중…',
'directoryTree.state.loading': '로드 중…',
'directoryTree.state.noDirectoriesFound': '디렉터리 없음',
'directoryTree.section.pinned': '고정됨',
'directoryTree.section.browse': '찾아보기',
'aboutDialog.versionLabel': '버전 {version}',
'aboutDialog.openChamberVersionLabel': 'OpenChamber 버전 {version}',
'aboutDialog.openCodeVersionLabel': 'OpenCode 버전 {version}',
'aboutDialog.actions.copyDiagnostics': '진단 정보 복사',
'aboutDialog.actions.preparingDiagnostics': '진단 정보 준비 중…',
'aboutDialog.actions.diagnosticsCopied': '진단 정보 복사됨',
'aboutDialog.diagnosticsDescription': 'OpenChamber 상태, OpenCode 상태, 디렉터리 및 프로젝트를 포함합니다.',
'aboutDialog.footerNote': '커뮤니티를 위해 정성껏 만들었습니다',
'aboutDialog.toast.copyFailed': '복사 실패',
'aboutDialog.toast.diagnosticsNotReady': '진단 정보가 아직 준비되지 않았습니다. 잠시 후 다시 시도하세요.',
'aboutDialog.toast.diagnosticsCopied': '진단 정보 복사됨',
'helpDialog.title': '키보드 단축키',
'helpDialog.description': '이 단축키로 OpenChamber를 빠르게 탐색하세요',
'helpDialog.section.navigationCommands': '내비게이션 및 명령',
'helpDialog.section.sessionManagement': '세션 관리',
'helpDialog.section.panels': '패널',
'helpDialog.section.interface': '인터페이스',
'helpDialog.item.openCommandPalette': '명령 팔레트 열기',
'helpDialog.item.showKeyboardShortcuts': '키보드 단축키 보기(이 대화상자)',
'helpDialog.item.toggleSessionSidebar': '토글 세션 사이드바',
'helpDialog.item.addSelectionToChat': '선택 내용을 채팅에 추가',
'helpDialog.item.cycleAgent': '에이전트 순환(채팅 입력)',
'helpDialog.item.openModelSelector': '모델 선택기 열기',
'helpDialog.item.navigateModels': '모델 이동(선택기)',
'helpDialog.item.adjustThinkingMode': '추론 모드 조정(지원되는 선택기)',
'helpDialog.item.cycleThinkingVariant': '추론 변형 순환(전역 단축키)',
'helpDialog.item.newWindow': '새 창(데스크톱 전용)',
'helpDialog.item.createNewSession': '새 세션 만들기',
'helpDialog.item.createNewWorktreeDraft': '새 워크트리 드래프트 만들기',
'helpDialog.item.focusChatInput': '채팅 입력창으로 포커스 이동',
'helpDialog.item.togglePromptNavigator': '프롬프트 탐색기 표시/숨기기',
'helpDialog.item.abortActiveRun': '활성 실행 중단(두 번 누르기)',
'helpDialog.item.toggleRightSidebar': '컨텍스트 패널 표시 전환',
'helpDialog.item.openRightSidebarGitTab': 'Git 서피스 열기',
'helpDialog.item.openRightSidebarFilesTab': '파일 서피스 열기',
'helpDialog.item.toggleTerminalDock': '터미널 독 전환',
'helpDialog.item.toggleTerminalExpanded': '터미널 펼치기/접기',
'helpDialog.item.togglePlanContextPanel': '플랜 컨텍스트 패널 전환',
'helpDialog.item.cycleTheme': '테마 순환(라이트 → 다크 → 시스템)',
'helpDialog.item.switchProject': '프로젝트 전환',
'helpDialog.item.toggleServicesMenu': '서비스 메뉴 전환',
'helpDialog.item.cycleServicesTab': '서비스 탭 순환',
'helpDialog.item.openSettings': '설정 열기',
'helpDialog.keyCombiner.or': '또는',
'helpDialog.proTips.title': '팁:',
'helpDialog.proTips.commandPalette': '명령 팔레트({shortcut})로 모든 작업에 빠르게 접근하세요',
'helpDialog.proTips.recentSessions': '최근 세션 5개가 명령 팔레트에 표시됩니다',
'helpDialog.proTips.themeCycling': '테마 순환은 세션 간에도 선호 설정을 기억합니다',
'header.actions.rightSidebarWithShortcut': '오른쪽 사이드바 ({shortcut})',
'header.actions.toggleRightSidebarAria': '오른쪽 사이드바 토글',
'header.actions.openAppMenu': 'OpenChamber 메뉴',
'header.actions.openAppMenuAria': 'OpenChamber 메뉴 열기',
'header.actions.openSessionsWithShortcut': '세션 ({shortcut}) 열기',
'header.actions.openSessionsAria': '세션 열기',
'header.actions.closeSessionsAria': '세션 닫기',
'header.actions.newSessionAria': '새 세션',
'header.actions.newSessionWithShortcut': '새 세션 ({shortcut})',
'header.actions.backAria': '뒤로',
'header.navigation.mainAria': '메인 내비게이션',
'header.sessions.title': '세션',
'header.changes.availableAria': '변경사항 있음',
'session.githubIssuePicker.error.noActiveProject': '활성 프로젝트가 없습니다',
'session.githubIssuePicker.error.runtimeUnavailable': 'GitHub 런타임 API를 사용할 수 없습니다',
'session.githubIssuePicker.error.notConnected': 'GitHub에 연결되어 있지 않습니다',
'session.githubIssuePicker.error.repoNotResolvable': '저장소를 확인할 수 없습니다',
'session.githubIssuePicker.error.repoMustBeGithub': 'origin 리모트는 GitHub URL이어야 합니다',
'session.githubIssuePicker.error.issueNotFound': '이슈를 찾을 수 없습니다',
'session.githubIssuePicker.error.noModelSelected': '선택된 모델이 없습니다',
'session.githubIssuePicker.toast.loadMoreFailed': '이슈를 더 불러오지 못했습니다',
'session.githubIssuePicker.toast.loadIssueDetailsFailed': '이슈 상세 정보를 불러오지 못했습니다',
'session.githubIssuePicker.toast.sendContextFailed': '이슈 컨텍스트 전송에 실패했습니다',
'session.githubIssuePicker.toast.sessionCreated': '이슈에서 세션을 생성했습니다',
'session.githubIssuePicker.toast.startSessionFailed': '세션 시작에 실패했습니다',
'session.githubIssuePicker.title.select': 'GitHub 이슈 연결',
'session.githubIssuePicker.title.createSession': 'GitHub 이슈로 새 세션 만들기',
'session.githubIssuePicker.description.select': '이 세션에 연결할 이슈를 선택하세요.',
'session.githubIssuePicker.description.createSession': '제목, 본문, 라벨, 댓글을 숨겨진 이슈 컨텍스트로 새 세션에 추가합니다.',
'session.githubIssuePicker.searchPlaceholder': 'GitHub 코드 검색 구문을 사용하여 검색',
'session.githubIssuePicker.empty.noActiveProject': '선택된 활성 프로젝트가 없습니다',
'session.githubIssuePicker.empty.runtimeUnavailable': 'GitHub 런타임 API를 사용할 수 없습니다.',
'session.githubIssuePicker.empty.notConnected': 'GitHub에 연결되지 않았습니다. 설정에서 GitHub 계정을 연결하세요.',
'session.githubIssuePicker.empty.noIssuesFound': '이슈 없음',
'session.githubIssuePicker.empty.noOpenIssuesFound': '열린 이슈가 없습니다',
'session.githubIssuePicker.loading.issues': '이슈 로드 중…',
'session.githubIssuePicker.loading.more': '로드 중…',
'session.githubIssuePicker.actions.openSettings': '설정 열기',
'session.githubIssuePicker.actions.useIssue': '이슈 #{number} 사용',
'session.githubIssuePicker.actions.openInGitHubAria': 'GitHub에서 열기',
'session.githubIssuePicker.actions.loadMore': '더 불러오기',
'session.githubIssuePicker.actions.sectionTitle': '작업',
'session.githubIssuePicker.actions.toggleWorktreeAria': '토글 워크트리',
'session.githubIssuePicker.actions.createInWorktree': '워크트리에서 생성',
'session.githubIssuePicker.actions.openRepo': '레포지토리 열기',
'session.githubIssuePicker.actions.refresh': '새로고침',
'session.githubPrPicker.error.noActiveProject': '활성 프로젝트가 없습니다',
'session.githubPrPicker.error.runtimeUnavailable': 'GitHub 런타임 API를 사용할 수 없습니다',
'session.githubPrPicker.error.notConnected': 'GitHub에 연결되어 있지 않습니다',
'session.githubPrPicker.error.prNotFound': 'PR을 찾을 수 없습니다',
'session.githubPrPicker.error.repoNotResolvable': '저장소를 확인할 수 없습니다',
'session.githubPrPicker.error.repoMustBeGithub': 'origin 리모트는 GitHub URL이어야 합니다',
'session.githubPrPicker.toast.loadMoreFailed': 'PR을 더 불러오지 못했습니다',
'session.githubPrPicker.toast.loadDetailsFailed': 'PR 상세 정보를 불러오지 못했습니다',
'session.githubPrPicker.title': 'GitHub PR 연결',
'session.githubPrPicker.description': '이 메시지에 리뷰 컨텍스트로 첨부할 PR을 선택하세요.',
'session.githubPrPicker.searchPlaceholder': 'GitHub 코드 검색 구문을 사용하여 검색',
'session.githubPrPicker.includeDiffAria': 'PR 변경사항을 첨부 컨텍스트에 포함',
'session.githubPrPicker.includeDiff': 'PR 변경사항 포함',
'session.githubPrPicker.empty.noActiveProject': '선택된 활성 프로젝트가 없습니다',
'session.githubPrPicker.empty.runtimeUnavailable': 'GitHub 런타임 API를 사용할 수 없습니다.',
'session.githubPrPicker.empty.notConnected': 'GitHub에 연결되지 않았습니다. 설정에서 GitHub 계정을 연결하세요.',
'session.githubPrPicker.empty.noPullRequestsFound': 'PR이 없습니다',
'session.githubPrPicker.empty.noOpenPullRequestsFound': '열린 PR이 없습니다',
'session.githubPrPicker.loading.pullRequests': 'PR 불러오는 중…',
'session.githubPrPicker.loading.more': '로드 중…',
'session.githubPrPicker.actions.openSettings': '설정 열기',
'session.githubPrPicker.actions.usePullRequest': 'PR #{number} 사용',
'session.githubPrPicker.actions.openInGitHubAria': 'GitHub에서 열기',
'session.githubPrPicker.actions.loadMore': '더 불러오기',
'session.newWorktree.title': '새 워크트리',
'session.newWorktree.mode.newBranch': '새 브랜치',
'session.newWorktree.mode.existingBranch': '기존 브랜치',
'session.newWorktree.selectBranch': '브랜치 선택',
'session.newWorktree.chooseBranch': '브랜치 선택…',
'session.newWorktree.fetchBranches': '브랜치 가져오기',
'session.newWorktree.searchBranches': '브랜치 검색…',
'session.newWorktree.loadingBranches': '브랜치 불러오는 중…',
'session.newWorktree.noBranchesFound': '브랜치가 없습니다',
'session.newWorktree.matchingBranches': '일치하는 브랜치',
'session.newWorktree.noMatchingBranches': '일치하는 브랜치가 없습니다',
'session.newWorktree.localBranches': '로컬 브랜치',
'session.newWorktree.remoteBranches': '리모트 브랜치',
'session.newWorktree.otherLocalBranches': '기타 로컬 브랜치',
'session.newWorktree.otherRemoteBranches': '기타 리모트 브랜치',
'session.newWorktree.branchName': '브랜치 이름',
'session.newWorktree.branchNamePlaceholder': 'feature/my-awesome-feature',
'session.newWorktree.actions.change': '변경',
'session.newWorktree.actions.startFromGitHubIssuePr': 'GitHub 이슈/PR에서 시작',
'session.newWorktree.usingPrBranch': 'PR 브랜치 사용 중: {branch}',
'session.newWorktree.fromIssue': '이슈 #{number}에서: {title}',
'session.newWorktree.worktreeDirectory': '워크트리 디렉터리',
'session.newWorktree.worktreeDirectoryPlaceholder': 'my-워크트리-디렉터리',
'session.newWorktree.resetToMatchBranchName': '브랜치 이름에 맞게 초기화',
'session.newWorktree.sourceBranch': '원본 브랜치',
'session.newWorktree.selectSourceBranch': '원본 브랜치 선택',
'session.newWorktree.selectSourceBranchPlaceholder': '원본 브랜치 선택...',
'session.newWorktree.newBranchFromSource': '{source}에서 새 브랜치가 생성됩니다',
'session.newWorktree.issueNumber': '이슈 #{number}',
'session.newWorktree.prNumber': 'PR #{number}',
'session.newWorktree.includeDiffBadge': '+diff',
'session.newWorktree.newSessionTitle': '새 세션',
'session.newWorktree.fromSource': '{source}에서',
'session.newWorktree.actions.cancel': '취소',
'session.newWorktree.actions.creating': '생성 중…',
'session.newWorktree.actions.createWorktree': '워크트리 생성',
'session.newWorktree.actions.reset': '초기화',
'session.newWorktree.error.noModelSelected': '선택된 모델이 없습니다',
'session.newWorktree.error.noActiveProject': '활성 프로젝트가 없습니다',
'session.newWorktree.error.branchNameRequired': '브랜치 이름은 필수입니다',
'session.newWorktree.error.worktreeDirectoryRequired': '워크트리 디렉터리 필수',
'session.newWorktree.error.sendGitHubContextFailed': 'GitHub 컨텍스트 전송에 실패했습니다',
'session.newWorktree.error.createWorktreeFailed': '워크트리 생성에 실패했습니다',
'session.newWorktree.toast.sessionFromIssue': '이슈에서 세션을 생성했습니다',
'session.newWorktree.toast.sessionFromPr': 'PR에서 세션을 생성했습니다',
'session.newWorktree.toast.worktreeCreated': '워크트리를 생성했습니다',
'session.newWorktree.toast.worktreeCreatedDescription': '{target} - 백그라운드에서 초기 설정 중',
'session.githubIntegration.title': 'GitHub에서 선택',
'session.githubIntegration.tabs.issues': '이슈',
'session.githubIntegration.tabs.pullRequests': 'PR',
'session.githubIntegration.connect.title': 'GitHub에 연결',
'session.githubIntegration.connect.description': '이슈 또는 PR을 연결해 워크트리 정보를 자동으로 채웁니다',
'session.githubIntegration.connect.action': 'GitHub 연결',
'session.githubIntegration.search.issuesPlaceholder': 'GitHub 코드 검색 구문을 사용하여 검색',
'session.githubIntegration.search.prsPlaceholder': 'GitHub 코드 검색 구문을 사용하여 검색',
'session.githubIntegration.empty.noIssuesFound': '이슈 없음',
'session.githubIntegration.empty.noPullRequestsFound': 'PR이 없습니다',
'session.githubIntegration.actions.loadMore': '더 불러오기',
'session.githubIntegration.actions.cancel': '취소',
'session.githubIntegration.actions.select': '선택',
'session.githubIntegration.selected.issueNumber': '이슈 #{number}',
'session.githubIntegration.selected.prNumber': 'PR #{number}',
'session.githubIntegration.includeDiffAria': 'PR 변경사항을 세션 컨텍스트에 포함',
'session.githubIntegration.includeDiff': 'PR 변경사항 포함',
'session.githubIntegration.error.notConnected': 'GitHub에 연결되어 있지 않습니다',
'session.githubIntegration.error.loadDataFailed': '데이터를 불러오지 못했습니다',
'session.githubIntegration.validation.branchAlreadyCheckedOut': '브랜치가 이미 워크트리에 체크아웃되어 있습니다',
'session.githubIntegration.validation.branchAlreadyExists': '브랜치가 이미 로컬에 있습니다',
'session.githubIntegration.validation.failed': '유효성 검사에 실패했습니다',
'chat.fileAttachment.toast.attachFailed': '첨부 파일 실패',
'chat.fileAttachment.toast.someFilesSkipped': '일부 파일을 건너뛰었습니다:\n{summary}',
'chat.fileAttachment.toast.vscodePickFailed': 'VS Code에서 파일 선택에 실패했습니다',
'chat.fileAttachment.fileFallback': '파일',
'chat.fileAttachment.skippedFallback': '건너뜀',
'chat.fileAttachment.actions.attachAria': '파일 첨부',
'chat.fileAttachment.actions.attach': '파일 첨부',
'chat.fileAttachment.actions.removeNamed': '{name} 제거',
'chat.fileAttachment.actions.removeImage': '이미지 제거',
'chat.fileAttachment.activeEditor.addFile': '컨텍스트에 파일 추가:{name}',
'chat.fileAttachment.activeEditor.pinSelection': '컨텍스트에 선택 고정',
'chat.fileAttachment.activeEditor.remove': '컨텍스트에서 제거',
'chat.fileAttachment.openInDiagram': '다이어그램 보기에서 열기',
'chat.pendingChanges.fileCountSingle': '{count} 파일',
'chat.pendingChanges.fileCountPlural': '{count} 파일',
'chat.pendingChanges.changedInWorkspace': '워크스페이스에서 변경됨',
'chat.changedFiles.title': '변경된 파일',
'chat.changedFiles.actions.openFileTitle': '{path} 열기',
'chat.emptyState.opencodeUnreachable': 'OpenCode에 연결할 수 없음',
'chat.emptyState.startNewChat': '새 채팅 시작',
'chat.emptyState.draftTitle': 'What are we working on?',
'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?',
'chat.draftPresets.explore.label': 'Explore the codebase',
'chat.draftPresets.catchup.label': 'Catch me up',
'chat.draftPresets.weigh.label': 'Weigh my options',
'chat.draftPresets.plan.label': 'Start feature planning',
'chat.draftPresets.craftGoal.label': 'Goal 만들기',
'chat.draftPresets.scheduleTask.label': '작업 예약하기',
'chat.draftPresets.debug.label': 'Debug an issue',
'chat.draftPresets.review.label': 'Review my changes',
'chat.draftStarters.add': 'Add a starter',
'chat.draftStarters.searchPlaceholder': 'Search commands and skills…',
'chat.draftStarters.empty': 'Nothing to add',
'chat.draftStarters.sectionBuiltIn': 'Built-in',
'chat.draftStarters.sectionCommands': 'Commands',
'chat.draftStarters.sectionSkills': 'Skills',
'chat.draftStarters.remove': 'Remove',
'chat.scrollToBottom.aria': '맨 아래로 스크롤',
'chat.promptNavigator.aria': '프롬프트 탐색',
'chat.promptNavigator.currentPrompt': '현재 프롬프트',
'chat.promptNavigator.loadMore': '더 많은 프롬프트 불러오기',
'chat.timeline.relative.justNow': '방금 전',
'chat.timeline.relative.minutesAgo': '{count}분 전',
'chat.timeline.relative.hoursAgo': '{count}시간 전',
'chat.timeline.relative.daysAgo': '{count}일 전',
'chat.timeline.title': '대화 타임라인',
'chat.timeline.description': '대화의 원하는 지점으로 이동하거나 새 세션으로 분기하세요',
'chat.timeline.searchPlaceholder': '메시지 검색…',
'chat.timeline.empty.search': '메시지 없음',
'chat.timeline.empty.session': '아직 이 세션에 메시지 없음',
'chat.timeline.noTextContent': '[텍스트 내용 없음]',
'chat.timeline.actions.title': '작업',
'chat.timeline.actions.revertFromHere': '여기부터 되돌리기',
'chat.timeline.actions.forkFromHere': '여기서 분기 시작',
'chat.timeline.actions.previousTurn': '이전 턴',
'chat.timeline.actions.latest': '최신',
'chat.timeline.help.clickMessage': '메시지를 클릭하면 대화의 해당 위치로 이동합니다',
'chat.timeline.help.undoToPoint': '이 지점으로 되돌립니다(메시지 텍스트가 입력창에 채워집니다)',
'chat.timeline.help.createSessionFromHere': '여기서 새 세션 생성',
'chat.statusRow.todo.status.inProgress': '진행 중',
'chat.statusRow.todo.status.pending': '대기 중',
'chat.statusRow.todo.status.completed': '완료됨',
'chat.statusRow.todo.status.cancelled': '취소됨',
'chat.statusRow.todo.priority.high': '높은 우선순위',
'chat.statusRow.todo.priority.medium': '중간 우선순위',
'chat.statusRow.todo.priority.low': '낮은 우선순위',
'chat.statusRow.actions.stopGeneratingAria': '생성 중지',
'chat.statusRow.tasksTitle': '작업',
'chat.statusRow.modelStatus': '{model} · {status}',
'chat.statusRow.summary.activeLeft': '{active}개 활성 · {left}개 남음',
'chat.statusRow.aborted': '중단됨',
'chat.revertIndicator.redo': '다시 실행',
'chat.revertIndicator.redoAria': '다시 실행 — 되돌린 메시지 복원',
'chat.revertPopover.title': '되돌림',
'chat.revertPopover.noTextContent': '텍스트 없음',
'chat.revertPopover.forkFromHere': '여기서 분기',
'chat.revertPopover.forkFromMessage': '이 메시지에서 분기',
'chat.revertPopover.restoreAll': '모두 복원',
'chat.revertPopover.restore': '복원',
'chat.revertPopover.revert': '되돌리기',
'chat.revertPopover.fork': '분기',
'chat.revert.toast.undo': '{preview}(으)로 되돌림',
'chat.revert.toast.redo': '다시 실행',
'chat.revert.toast.restored': '모든 메시지 복원됨',
'chat.errorBoundary.title': '채팅 오류',
'chat.errorBoundary.description': '채팅 인터페이스에서 오류가 발생했습니다. 일시적인 네트워크 이슈 또는 손상된 메시지 데이터 때문일 수 있습니다.',
'chat.errorBoundary.sessionLabel': '세션',
'chat.errorBoundary.detailsSummary': '오류 상세',
'chat.errorBoundary.resetAction': '채팅 초기화',
'chat.errorBoundary.persistentHint': '문제가 계속되면 페이지를 새로고침해 보세요.',
'chat.autocomplete.tabs.commands': '명령',
'chat.autocomplete.tabs.agents': '에이전트',
'chat.autocomplete.tabs.files': '파일',
'chat.autocomplete.keyboardHint': '↑↓ 이동 • Enter 선택 • Esc 닫기',
'chat.commandAutocomplete.command.initDescription': 'AGENTS.md 파일 생성/업데이트',
'chat.commandAutocomplete.command.undoDescription': '마지막 메시지 실행 취소',
'chat.commandAutocomplete.command.redoDescription': '이전에 실행 취소한 메시지 다시 실행',
'chat.commandAutocomplete.command.timelineDescription': '대화 타임라인 열기',
'chat.commandAutocomplete.command.compactDescription': 'AI로 세션 기록을 압축해 컨텍스트 크기를 줄입니다',
'chat.commandAutocomplete.command.summaryDescription': '세션 기록을 안전하게 요약합니다. 명령 뒤에 선택적으로 주제 힌트를 넣을 수 있습니다.',
'chat.commandAutocomplete.command.workspaceReviewDescription': '워크스페이스 diff의 의도, 정확성, 적절성을 검토하고 심각도별로 분류합니다.',
'chat.commandAutocomplete.command.handoffReviewDescription': '생성된 인수인계로 별도의 리뷰 세션을 만들거나 재사용합니다.',
'chat.commandAutocomplete.command.featurePlanDescription': '새 기능을 위한 대화형 가이드 계획 세션을 시작합니다.',
'chat.commandAutocomplete.command.craftGoalDescription': '아이디어나 작업을 명확하고 검증 가능한 Goal로 만듭니다.',
'chat.commandAutocomplete.command.scheduleTaskDescription': '안내형 대화를 통해 예약 작업을 정의합니다.',
'chat.chatInput.toast.craftGoalFailed': 'Goal 만들기를 시작하지 못했습니다',
'chat.chatInput.toast.scheduleTaskFailed': '예약 작업 설정을 시작하지 못했습니다',
'chat.commandAutocomplete.command.catchUpDescription': '맥락을 다시 파악합니다: 무엇을 하고 있었고 어디서 이어서 할지.',
'chat.commandAutocomplete.command.debugDescription': '수정안을 제시하기 전에 버그의 근본 원인을 단계적으로 조사합니다.',
'chat.commandAutocomplete.command.weighDescription': '결정하기 전에 2~3가지 접근 방식을 장단점과 함께 비교하고 추천을 제시합니다.',
'chat.commandAutocomplete.command.exploreDescription': '코드베이스에 대한 방향을 잡습니다: 아키텍처와 주요 부분을 한눈에 살펴봅니다.',
'chat.commandAutocomplete.badge.skill': '스킬',
'chat.commandAutocomplete.badge.command': '명령',
'chat.commandAutocomplete.badge.system': 'system',
'chat.commandAutocomplete.empty': '명령 없음',
'chat.agentMentionAutocomplete.badge.system': 'system',
'chat.agentMentionAutocomplete.empty': '에이전트 없음',
'chat.fileMentionAutocomplete.searchMoreAgents': '입력해 에이전트를 더 검색하세요',
'chat.fileMentionAutocomplete.empty': '일치하는 항목 없음',
'chat.queuedMessage.attachments': '+{count} 파일(s)',
'chat.queuedMessage.empty': '(비어 있음)',
'chat.queuedMessage.title': 'Queued messages',
'chat.queuedMessage.edit': 'edit',
'chat.queuedMessage.send': 'send',
'chat.queuedMessage.removeAria': '큐에서 제거',
'chat.queuedMessage.reorderAria': '드래그하여 순서 변경',
'chat.container.returnToParent.aria': '상위 세션으로 돌아가기',
'chat.container.returnToParent.titleNamed': '돌아가기: {title}',
'chat.container.returnToParent.title': '상위 세션으로 돌아가기',
'chat.container.returnToParent.label': '상위',
'chat.container.readOnlySubagentPromptBanner': '하위 에이전트 세션에는 프롬프트를 보낼 수 없습니다.',
'chat.container.sessionLoadError.title': '세션을 불러올 수 없습니다',
'chat.container.sessionLoadError.description': '연결을 확인한 후 이 세션을 다시 불러오세요.',
'chat.container.sessionLoadError.retry': '다시 시도',
'sessions.sidebar.group.empty.loadingSessions': '세션을 불러오는 중…',
'sessions.sidebar.group.empty.loadFailed': '세션을 새로 고칠 수 없습니다.',
'sessions.sidebar.group.empty.retry': '다시 시도',
'chat.unifiedControls.title': '컨트롤',
'chat.unifiedControls.model.title': '모델',
'chat.unifiedControls.model.noRecent': '최근 모델 없음',
'chat.unifiedControls.model.moreAria': '모델 더 보기',
'chat.unifiedControls.effort.title': '추론 강도',
'chat.unifiedControls.effort.moreAria': '추론 강도 옵션 더 보기',
'chat.questionCard.summaryTab': '요약',
'chat.questionCard.noAnswer': '(답변 없음)',
'chat.questionCard.inputNeeded': '입력 필요',
'chat.questionCard.fromSubagent': '서브 에이전트에서',
'chat.questionCard.questionFallback': '질문 {index}',
'chat.questionCard.selectMultiple': '여러 개 선택',
'chat.questionCard.recommended': '추천',
'chat.questionCard.other': '기타…',
'chat.questionCard.yourAnswer': '내 답변',
'chat.questionCard.submit': '제출',
'chat.questionCard.next': '다음',
'chat.questionCard.dismiss': '닫기',
'chat.questionCard.copyMarkdown': 'Markdown으로 복사',
'chat.questionCard.copyJson': 'JSON으로 복사',
'chat.questionCard.copiedMarkdown': '질문을 Markdown으로 복사했습니다',
'chat.questionCard.copiedJson': '질문을 JSON으로 복사했습니다',
'chat.questionCard.copyFailed': '질문 복사에 실패했습니다',
'chat.questionCard.submitFailed': '응답 전송에 실패했습니다',
'chat.questionCard.dismissFailed': '질문 닫기에 실패했습니다',
'chat.questionCard.noLongerPending': '이 질문은 더 이상 응답을 기다리지 않습니다.',
'chat.questionCard.tryAgain': '잠시 후 다시 시도하세요.',
'chat.textSelection.toast.noProject': '이 세션의 프로젝트를 찾을 수 없음',
'chat.textSelection.toast.addToNotesFailed': '메모 추가 실패',
'chat.textSelection.toast.addToNotesSuccess': '선택한 텍스트를 메모에 추가함',
'chat.textSelection.toast.addToNotesSummaryFailed': '선택 영역을 요약할 수 없어 선택한 텍스트를 메모에 추가함',
'chat.textSelection.actions.addToChat': '채팅에 추가',
'chat.textSelection.actions.newSession': '새 세션',
'chat.textSelection.actions.copy': '복사',
'chat.textSelection.actions.addToNotes': '메모에 추가',
'chat.textSelection.title.addToCurrentChat': '현재 채팅에 추가',
'chat.textSelection.title.newSessionWithSelection': '선택한 내용으로 새 세션 생성',
'chat.textSelection.title.saveInsightToNotes': '선택한 텍스트를 메모에 저장',
'chat.messageBody.actions.revertAria': '이 메시지로 되돌리기',
'chat.messageBody.actions.revert': '여기부터 되돌리기',
'chat.messageBody.actions.forkAria': '이 메시지에서 분기',
'chat.messageBody.actions.fork': '여기서 분기 시작',
'chat.messageBody.actions.copyMessageAria': '메시지 텍스트 복사',
'chat.messageBody.actions.copyMessage': '메시지 복사',
'chat.messageBody.actions.pinContext': '컨텍스트에 고정(압축 후에도 유지)',
'chat.messageBody.actions.unpinContext': '컨텍스트에서 고정 해제(압축 후 유지되지 않음)',
'chat.messageBody.actions.contextPinFailed': '컨텍스트 고정을 업데이트하지 못했습니다',
'chat.messageBody.actions.copyAnswer': '답변 복사',
'chat.messageBody.actions.savingImage': '이미지 저장 중…',
'chat.messageBody.actions.saveAsImage': '이미지로 저장',
'chat.messageBody.actions.saveAsPlan': '플랜으로 저장',
'chat.messageBody.actions.startNewSession': '이 응답에서 새 세션 시작',
'chat.messageBody.actions.startNewMultiRun': '이 응답에서 새 멀티런 시작',
'chat.messageBody.forkDialog.instructions.label': '지침',
'chat.messageBody.forkDialog.instructions.placeholder': '새 세션에 대한 지침을 입력하세요…',
'chat.messageBody.forkDialog.createWorktree': '워크트리 만들기',
'chat.generatedResult.actions.copy': '복사',
'chat.generatedResult.actions.copied': '복사됨',
'chat.generatedResult.commit.title': '생성된 커밋 메시지',
'chat.generatedResult.commit.highlights': '하이라이트',
'chat.generatedResult.pullRequest.title': '생성된 Pull Request',
'chat.generatedResult.pullRequest.titleLabel': '제목',
'chat.generatedResult.pullRequest.bodyLabel': '본문',
'chat.messageBody.tts.stopSpeaking': '읽기 중지',
'chat.messageBody.tts.readAloud': '소리 내어 읽기',
'chat.messageBody.tts.readAloudWithProvider': '소리 내어 읽기({provider} 음성)',
'planView.tts.readAloud': '계획 소리 내어 읽기',
'planView.tts.stopSpeaking': '읽기 중지',
'filesView.tts.readAloud': '파일 소리 내어 읽기',
'filesView.tts.stopSpeaking': '읽기 중지',
'chat.messageBody.toast.noProject': '이 세션의 프로젝트를 찾을 수 없음',
'chat.messageBody.toast.savePlanFailed': '플랜 저장 실패',
'chat.messageBody.toast.planSaved': '플랜이 저장되었습니다',
'chat.messageBody.toast.imageSaved': '이미지 저장된',
'chat.messageBody.toast.generateImageFailed': '이미지 생성 실패',
'chat.chatInput.actions.commands': '명령',
'chat.chatInput.actions.attachFiles': '파일 첨부',
'chat.chatInput.actions.addAttachment': '첨부 파일 추가',
'chat.chatInput.actions.linkGithubIssue': 'GitHub 이슈 연결',
'chat.chatInput.actions.linkGithubPr': 'GitHub PR 연결',
'chat.chatInput.actions.modelAgentSettings': '모델 및 에이전트 설정',
'chat.chatInput.actions.sendMessageAria': '보내기 메시지',
'chat.chatInput.actions.queueMessageAria': '메시지 대기열에 추가',
'chat.chatInput.actions.stopGeneratingAria': '생성 중지',
'chat.chatInput.focusMode.toggleAria': '집중 모드 전환',
'chat.chatInput.focusMode.label': '집중 모드',
'chat.chatInput.permissionAutoAccept.disable': '권한 자동 승인 끄기',
'chat.chatInput.permissionAutoAccept.enable': '권한 자동 승인 켜기',
'chat.chatInput.permissionAutoAccept.on': '권한 자동 승인: 켜짐',
'chat.chatInput.permissionAutoAccept.off': '권한 자동 승인: 꺼짐',
'chat.chatInput.linked.byAuthor': '작성자: {author}',
'chat.chatInput.linked.issue.openInBrowserAria': '브라우저에서 이슈 열기',
'chat.chatInput.linked.issue.removeAria': '연결된 이슈 제거',
'chat.chatInput.linked.pr.number': 'PR #{number}',
'chat.chatInput.linked.pr.openInBrowserAria': '브라우저에서 PR 열기',
'chat.chatInput.linked.pr.removeAria': '연결된 PR 제거',
'chat.chatInput.placeholder.shell': '셸 명령 입력…',
'chat.chatInput.placeholder.chat': '@ 파일/에이전트; / 명령 및 스킬; ! shell; # 스니펫',
'chat.chatInput.placeholder.chatCompact': '@ / ! # 도우미 사용',
'chat.chatInput.placeholder.selectSession': '채팅을 시작할 세션을 선택하거나 새로 만드세요',
'chat.dictation.start': '받아쓰기 시작',
'chat.dictation.overlayAria': '받아쓰기',
'chat.dictation.downloadingModel': '음성 모델 다운로드 중...',
'chat.dictation.downloadingModelProgress': '음성 모델 다운로드 중... {percent}%',
'chat.dictation.listening': '듣는 중...',
'chat.dictation.processing': '변환 중...',
'chat.dictation.failed': '변환에 실패했습니다',
'chat.dictation.cancel': '받아쓰기 취소',
'chat.dictation.insert': '텍스트 삽입',
'chat.dictation.insertAndSend': '삽입 후 전송',
'chat.dictation.retry': '변환 다시 시도',
'chat.dictation.discard': '녹음 삭제',
'chat.snippetAutocomplete.action.addNew': '+ 새 스니펫 추가',
'chat.snippetAutocomplete.empty': '스니펫을 찾을 수 없음',
'chat.snippetAutocomplete.footer': '↑↓ 이동 • Enter 선택 • Esc 닫기',
'snippets.source.global': '전역',
'snippets.source.project': '프로젝트',
'chat.chatInput.toast.compactFailed': '세션 압축 실패',
'chat.chatInput.toast.summaryFailed': '요약 생성 실패',
'chat.messageBody.actions.sendReviewFeedback': '리뷰 피드백을 변경 구현 에이전트에게 보내기',
'chat.messageBody.actions.sendImplementationResponse': '구현 응답을 리뷰 에이전트에게 보내기',
'chat.chatInput.toast.reviewFailed': '변경사항 검토 실패',
'chat.chatInput.toast.planFeatureFailed': '기능 계획을 시작하지 못했습니다',
'chat.chatInput.toast.catchUpFailed': '컨텍스트를 불러오지 못했습니다',
'chat.chatInput.toast.debugFailed': '디버깅을 시작하지 못했습니다',
'chat.chatInput.toast.weighFailed': '옵션을 비교하지 못했습니다',
'chat.chatInput.toast.exploreFailed': '둘러보기를 시작하지 못했습니다',
'chat.chatInput.toast.attachmentsTooLarge': '첨부 파일이 너무 커서 보낼 수 없습니다. 이미지 수나 크기를 줄여 보세요.',
'chat.chatInput.toast.sendAttachmentsFailed': '첨부 파일 전송 실패. 파일 수나 이미지 크기를 줄여 보세요.',
'chat.chatInput.toast.messageSendFailed': '메시지 전송에 실패했습니다. 첨부 파일을 복원했습니다.',
'chat.chatInput.toast.clipboardAttachFailed': '클립보드 이미지 첨부 실패',
'chat.chatInput.toast.addedFileMentions': '파일 멘션 {count}개 추가됨',
'chat.chatInput.toast.attachFileFailed': '첨부 파일 실패',
'chat.chatInput.toast.attachNamedFailed': '첨부 {name} 실패',
'chat.chatInput.toast.unsupportedAttachmentModalities': '{model}은(는) {files}에 필요한 {modalities} 입력을 지원하지 않습니다. 메시지를 보낼 수는 있지만 해당 첨부 파일이 무시될 수 있습니다.',
'chat.chatInput.toast.someFilesSkipped': '일부 파일을 건너뛰었습니다:\n{summary}',
'chat.chatInput.toast.vscodePickFailed': 'VS Code에서 파일 선택에 실패했습니다',
'chat.chatInput.toast.openSessionFirst': '먼저 세션을 여세요',
'chat.chatInput.toast.togglePermissionAutoAcceptFailed': '권한 자동 승인 전환에 실패했습니다',
'chat.chatInput.reviewComments': '검토 댓글:',
'chat.chatInput.reviewCommentsRemove': '검토 댓글 제거',
'chat.chatInput.devServerLogs': 'Dev Server 로그:',
'chat.chatInput.devServerLogsRemove': 'Dev Server 로그 제거',
'chat.chatInput.previewAnnotations': '미리보기 주석:',
'chat.chatInput.previewContext': '미리보기 컨텍스트:',
'chat.chatInput.previewContextRemove': '미리보기 컨텍스트 제거',
'chat.chatInput.projectRoot': '프로젝트 루트',
'chat.chatInput.branch': '브랜치',
'chat.chatInput.draftPicker.projectTitle': '프로젝트',
'chat.chatInput.draftPicker.searchProjects': '프로젝트 검색...',
'chat.chatInput.draftPicker.searchBranches': '브랜치 검색...',
'chat.chatInput.worktrees': '워크트리',
'chat.chatInput.worktreeNew': '+ 새로 만들기',
'chat.chatInput.drop.insertMention': '여기에 놓아 멘션으로 추가',
'chat.chatInput.drop.attachFiles': '여기에 놓아 파일 첨부',
'chat.chatInput.fileFallback': '파일',
'chat.toolOutputDialog.image.previousAria': '이전 이미지',
'chat.toolOutputDialog.image.nextAria': '다음 이미지',
'chat.toolOutputDialog.image.closeAria': '이미지 미리보기 닫기',
'chat.toolOutputDialog.mermaid.missingSource': 'Mermaid 소스 URL이 없습니다.',
'chat.toolOutputDialog.mermaid.loadFailed': 'Mermaid 다이어그램을 불러올 수 없습니다',
'chat.toolOutputDialog.mermaid.dataUrlMalformed': 'Mermaid 데이터 URL 형식이 올바르지 않습니다.',
'chat.toolOutputDialog.mermaid.invalidLocalPath': 'Mermaid 로컬 파일 경로가 올바르지 않습니다.',
'chat.toolOutputDialog.mermaid.readFileFailedWithStatus': 'Mermaid 파일을 읽을 수 없습니다. 상태: {status}.',
'chat.toolOutputDialog.mermaid.unsupportedUrlProtocol': 'Mermaid URL 프로토콜은 지원되지 않습니다.',
'chat.toolOutputDialog.mermaid.loadFailedWithStatus': 'Mermaid 다이어그램을 불러올 수 없습니다. 상태: {status}.',
'chat.toolOutputDialog.mermaid.closeAria': '다이어그램 미리보기 닫기',
'chat.toolOutputDialog.mermaid.loading': '다이어그램 로드 중…',
'chat.toolOutputDialog.mermaid.renderFailed': 'Mermaid 다이어그램을 렌더링할 수 없습니다.',
'chat.toolOutputDialog.mermaid.retry': '다시 시도',
'chat.toolOutputDialog.commandCompleted': '명령이 성공적으로 완료되었습니다',
'chat.toolOutputDialog.noOutputProduced': '출력 없음',
'chat.toolPart.lspErrors': 'LSP 오류',
'chat.toolPart.moreErrors': '+오류 {count}개 더 보기',
'chat.toolPart.error': '오류:',
'chat.toolPart.awaitingResponse': '응답 대기 중…',
'chat.toolPart.noOutputProduced': '출력 없음',
'chat.toolPart.output': '출력',
'chat.toolPart.showRawJson': '원시 JSON 표시',
'chat.toolPart.showFormattedJson': '형식화된 JSON 표시',
'chat.toolPart.showNavigableJson': '탐색 가능한 JSON 표시',
'chat.toolPart.openFileAtFirstChange': '첫 번째 변경 위치에서 파일 열기',
'chat.toolPart.openFileDiff': '파일 diff 열기',
'chat.toolPart.copyOutput': '출력 복사',
'chat.toolPart.copiedOutput': '출력 복사됨',
'chat.toolPart.copyOutputFailed': '출력을 복사하지 못했습니다',
'chat.toolPart.openSubtask': '{type} 하위 작업 열기',
'chat.todo.total': '전체',
'chat.todo.inProgress': '진행 중',
'chat.todo.pending': '대기 중',
'chat.todo.completed': '완료됨',
'chat.todo.cancelled': '취소됨',
'chat.permissionCard.workingDirectory': '작업 디렉터리:',
'chat.permissionCard.timeout': '시간 제한:',
'chat.permissionCard.request': '요청:',
'chat.permissionCard.headers': '헤더:',
'chat.permissionCard.body': '본문:',
'chat.permissionCard.action': '작업:',
'chat.permissionCard.details': '상세:',
'chat.permissionCard.patterns': '패턴:',
'chat.permissionToast.sessionFallback': '세션',
'chat.permissionToast.permissionFallback': '권한 상세 정보를 사용할 수 없음',
'chat.permissionToast.labels.session': '세션:',
'chat.permissionToast.labels.permission': '권한:',
'chat.permissionToast.actions.once': '한 번',
'chat.permissionToast.actions.always': '항상',
'chat.permissionToast.actions.deny': '거부',
'chat.permissionToast.actions.approveOnceAria': '한 번 승인',
'chat.permissionToast.actions.approveOnceAriaWithSession': '{session}에 한 번 승인',
'chat.permissionToast.actions.approveAlwaysAria': '항상 승인',
'chat.permissionToast.actions.approveAlwaysAriaWithSession': '{session}에 항상 승인',
'chat.permissionToast.actions.denyAria': '거부 권한',
'chat.permissionToast.actions.denyAriaWithSession': '거부 권한용 {session}',
'chat.permissionRequest.required': '필요한 권한:',
'chat.permissionRequest.actions.once': '한 번',
'chat.permissionRequest.actions.always': '항상',
'chat.permissionRequest.actions.reject': '거부',
'chat.modelControls.provider': '프로바이더',
'chat.modelControls.capability.toolCalling': '도구 호출',
'chat.modelControls.capability.reasoning': '추론',
'chat.modelControls.modality.text': '텍스트',
'chat.modelControls.modality.image': '이미지',
'chat.modelControls.modality.video': '비디오',
'chat.modelControls.modality.audio': '오디오',
'chat.modelControls.modality.pdf': 'PDF',
'chat.modelControls.capabilities': '기능',
'chat.modelControls.modalities': '모달리티',
'chat.modelControls.input': '입력',
'chat.modelControls.output': '출력',
'chat.modelControls.limits': '한도',
'chat.modelControls.context': '컨텍스트',
'chat.modelControls.metadata': '메타데이터',
'chat.modelControls.knowledge': '지식',
'chat.modelControls.release': '릴리스',
'chat.modelControls.mode': '모드',
'chat.modelControls.model': '모델',
'chat.modelControls.temperature': 'Temperature',
'chat.modelControls.topP': 'Top P',
'chat.modelControls.permissions': '권한',
'chat.modelControls.edit': '편집',
'chat.modelControls.bash': 'Bash',
'chat.modelControls.webFetch': 'WebFetch',
'chat.modelControls.customPrompt': '사용자 지정 프롬프트',
'chat.modelControls.selectModel': '모델 선택',
'chat.modelControls.searchProvidersOrModels': '검색 프로바이더 또는 모델',
'chat.modelControls.clearSearch': '검색 지우기',
'chat.modelControls.current': '현재',
'chat.modelControls.thinking': '추론',
'chat.modelControls.default': '기본값',
'chat.modelControls.selectAgent': '에이전트 선택',
'chat.modelControls.costPerMillion': '비용 ($/1M 토큰)',
'chat.modelControls.metadataUnavailable': '모델 메타데이터를 사용할 수 없습니다.',
'chat.modelControls.addNewProvider': '새 프로바이더 추가',
'chat.modelControls.noAgentSelected': '선택된 에이전트가 없습니다',
'chat.modelControls.resetToDefault': '기본값으로 초기화',
'chat.modelControls.searchModels': '모델 검색',
'chat.modelControls.searchAgents': '검색 에이전트',
'chat.modelControls.noModelsFound': '모델 없음',
'chat.modelControls.favorites': '즐겨찾기',
'chat.modelControls.recent': '최근',
'chat.modelControls.addToFavorites': '즐겨찾기에 추가',
'chat.modelControls.removeFromFavorites': '즐겨찾기에서 제거',
'chat.modelControls.favoriteAria': '즐겨찾기 추가',
'chat.modelControls.unfavoriteAria': '즐겨찾기 제거',
'chat.modelControls.collapseProvider': '접기 프로바이더',
'chat.modelControls.expandProvider': '펼치기 프로바이더',
'chat.modelControls.keyboardHint': '↑↓ 이동 {thinking} • Enter 선택 • Esc 닫기',
'chat.modelControls.keyboardHintNavigate': '↑↓ 이동',
'chat.modelControls.keyboardHintSwitchAgent': '{shortcut} 에이전트 전환',
'chat.modelControls.keyboardHintThinking': '←→ 추론',
'chat.modelControls.showThinkingModes': '추론 모드 표시',
'chat.modelControls.hideThinkingModes': '추론 모드 숨기기',
'chat.modelControls.moreThinkingModes': '추론 모드 더 보기',
'chat.modelControls.noProvidersOrModelsFound': '검색과 일치하는 프로바이더 또는 모델이 없습니다.',
'chat.modelControls.reorderFavoriteAria': '즐겨찾기 순서 변경',
'chat.modelControls.reorderFavoriteTitle': '드래그하여 즐겨찾기 순서 변경',
'chat.modelControls.reorderProviderTitle': '드래그하여 공급자 순서 변경',
'chat.modelControls.permissionLabel.custom': '사용자 지정',
'chat.modelControls.permissionLabel.allow': '허용',
'chat.modelControls.permissionLabel.deny': '거부',
'chat.modelControls.permissionLabel.ask': '묻기',
'chat.modelControls.modeValue.primary': 'Primary',
'chat.modelControls.modeValue.subagent': '서브 에이전트',
'chat.modelControls.modeValue.all': '전체',
'chat.modelControls.modeValue.none': '—',
'chat.reasoningTrace.thinking': '추론',
'chat.reasoningTrace.justification': '근거',
'chat.reasoningTrace.expandAria': '추론 트레이스 펼치기',
'chat.reasoningTrace.collapseAria': '추론 트레이스 접기',
'chat.reasoningTrace.thought': '추론 완료',
'chat.messageBody.subtask.title': '위임된 작업',
'chat.messageBody.subtask.hidePrompt': '숨기기 프롬프트',
'chat.messageBody.subtask.showPrompt': '표시 프롬프트',
'chat.messageBody.subtask.openSession': '하위 작업 세션 열기',
'chat.messageBody.shellCommand.title': 'Shell 명령',
'chat.messageBody.shellCommand.hideOutput': '숨기기 출력',
'chat.messageBody.shellCommand.showOutput': '표시 출력',
'chat.messageBody.shellCommand.copied': '복사됨',
'chat.messageBody.shellCommand.copyOutput': '출력 복사',
'commandPalette.title': '명령 팔레트',
'commandPalette.description': '파일, 세션, 명령을 검색합니다.',
'commandPalette.input.placeholder': '파일, 세션, 명령 검색…',
'commandPalette.empty.noResults': '결과 없음',
'commandPalette.empty.searchingFiles': '파일 검색 중…',
'commandPalette.item.newSession': '새 세션',
'commandPalette.item.newMiniChat': '새 Mini Chat 창',
'commandPalette.item.newWorktreeDraft': '새 워크트리 드래프트',
'commandPalette.item.addProject': '프로젝트 추가',
'commandPalette.item.showSessionSwitcher': '세션 전환기 표시',
'commandPalette.item.toggleSidebar': '토글 사이드바',
'commandPalette.item.showContextUsage': '컨텍스트 사용량 표시',
'commandPalette.item.toggleTerminal': '토글 터미널',
'commandPalette.item.openSettings': '설정... 열기',
'commandPalette.session.untitled': '제목 없는 세션',
'openCodeStatusDialog.title': 'OpenCode 상태',
'openCodeStatusDialog.description': '현재 OpenCode 상태와 진단 정보를 확인합니다.',
'openCodeStatusDialog.actions.copy': '복사',
'openCodeStatusDialog.empty.noData': '데이터가 없습니다',
'openCodeStatusDialog.toast.copiedTitle': '복사됨',
'openCodeStatusDialog.toast.copiedDescription': '상태를 클립보드에 복사했습니다',
'openCodeStatusDialog.toast.copyFailed': '상태 복사에 실패했습니다',
'saveProjectPlanDialog.title': '프로젝트 계획 저장',
'saveProjectPlanDialog.description': '이 플랜을 프로젝트에 Markdown 파일로 저장합니다.',
'saveProjectPlanDialog.field.title': '제목',
'saveProjectPlanDialog.field.titlePlaceholder': '계획 제목',
'saveProjectPlanDialog.field.contentPreview': '내용 미리보기',
'saveProjectPlanDialog.actions.cancel': '취소',
'saveProjectPlanDialog.actions.save': '저장',
'saveProjectPlanDialog.actions.saving': '저장 중…',
'branchPickerDialog.title': '브랜치 선택기',
'branchPickerDialog.description.localBranchesForProject': '{project}의 로컬 브랜치',
'branchPickerDialog.description.selectProject': '브랜치를 볼 프로젝트를 선택하세요',
'branchPickerDialog.search.placeholder': '브랜치 검색…',
'branchPickerDialog.search.renameBranchPlaceholder': '브랜치 이름 변경',
'branchPickerDialog.state.noProjectSelected': '선택된 프로젝트가 없습니다',
'branchPickerDialog.state.loadingBranches': '브랜치 불러오는 중…',
'branchPickerDialog.state.noMatchingBranches': '일치하는 브랜치가 없습니다',
'branchPickerDialog.state.noBranchesFound': '브랜치가 없습니다',
'branchPickerDialog.badge.head': 'HEAD',
'branchPickerDialog.badge.worktree': '워크트리',
'branchPickerDialog.actions.createWorktreeAria': '브랜치에서 워크트리 생성',
'branchPickerDialog.actions.renameAria': '브랜치 이름 변경',
'branchPickerDialog.actions.deleteAria': '브랜치 삭제',
'branchPickerDialog.actions.deleteWorktreeAria': '워크트리 제거',
'branchPickerDialog.actions.confirmRenameAria': '이름 변경 확인',
'branchPickerDialog.actions.cancelRenameAria': '이름 변경 취소',
'branchPickerDialog.actions.confirmDeleteAria': '확인 삭제 브랜치',
'branchPickerDialog.actions.cancelDeleteAria': '취소 삭제 브랜치',
'branchPickerDialog.actions.deletePrompt': '삭제',
'branchPickerDialog.actions.forceDeletePrompt': '강제 삭제',
'branchPickerDialog.tooltip.createWorktree': '워크트리 생성',
'branchPickerDialog.tooltip.worktreeAlreadyExists': '워크트리가 이미 존재합니다',
'branchPickerDialog.tooltip.rename': '브랜치 이름 변경',
'branchPickerDialog.tooltip.renameDisabledForRoot': '루트 브랜치는 이름을 바꿀 수 없음',
'branchPickerDialog.tooltip.delete': '브랜치 삭제',
'branchPickerDialog.tooltip.deleteCurrentBranch': '현재 브랜치는 삭제할 수 없음',
'branchPickerDialog.tooltip.deleteDisabledForRoot': '루트 브랜치는 삭제할 수 없음',
'branchPickerDialog.tooltip.deleteWorktree': '워크트리 제거',
'branchPickerDialog.tooltip.deleteWorktreeRootProtected': '루트 워크트리는 제거할 수 없음',
'branchPickerDialog.toast.branchRenamed': '브랜치 이름이 변경되었습니다',
'branchPickerDialog.toast.failedToRenameBranch': '브랜치 이름 변경에 실패했습니다',
'branchPickerDialog.toast.branchDeleted': '브랜치 삭제됨',
'branchPickerDialog.toast.branchNotMerged': '브랜치가 아직 완전히 병합되지 않았습니다',
'branchPickerDialog.toast.confirmAgainToForceDelete': '강제 삭제하려면 다시 확인하세요',
'branchPickerDialog.toast.failedToDeleteBranch': '삭제 브랜치 실패',
'branchPickerDialog.toast.worktreeCreated': '워크트리 생성됨',
'branchPickerDialog.toast.failedToCreateWorktree': '워크트리 생성에 실패했습니다',
'branchPickerDialog.error.failedToLoad': '브랜치를 불러오지 못했습니다',
'branchPickerDialog.error.renameRejected': '이름 변경이 거부되었습니다',
'branchPickerDialog.error.renameFailed': '브랜치 이름 변경에 실패했습니다',
'branchPickerDialog.error.deleteRejected': '삭제가 거부되었습니다',
'branchPickerDialog.error.deleteFailed': '삭제 브랜치 실패',
'branchPickerDialog.error.createWorktreeFailed': '워크트리 생성에 실패했습니다',
'projectEditDialog.title': '편집 프로젝트',
'projectEditDialog.field.name': '이름',
'projectEditDialog.field.namePlaceholder': '프로젝트 이름',
'projectEditDialog.field.color': '색상',
'projectEditDialog.field.icon': '아이콘',
'projectEditDialog.field.preview': '미리보기',
'projectEditDialog.field.iconBackground': '아이콘 배경',
'projectEditDialog.field.iconBackgroundAria': '프로젝트 아이콘 배경색',
'projectEditDialog.option.none': '없음',
'projectEditDialog.actions.uploadIcon': '아이콘 업로드',
'projectEditDialog.actions.uploading': '업로드 중…',
'projectEditDialog.actions.discoverFavicon': '파비콘 찾기',
'projectEditDialog.actions.discovering': '찾는 중…',
'projectEditDialog.actions.removeProjectIcon': '프로젝트 아이콘 제거',
'projectEditDialog.actions.removing': '제거 중…',
'projectEditDialog.actions.undoRemove': '제거 취소',
'projectEditDialog.actions.clear': '지우기',
'projectEditDialog.actions.cancel': '취소',
'projectEditDialog.actions.save': '저장',
'projectEditDialog.toast.failedToUploadIcon': '프로젝트 아이콘 업로드 실패',
'projectEditDialog.toast.iconUpdated': '프로젝트 아이콘이 업데이트되었습니다',
'projectEditDialog.toast.failedToRemoveIcon': '프로젝트 아이콘 제거 실패',
'projectEditDialog.toast.iconRemoved': '프로젝트 아이콘 제거됨',
'projectEditDialog.toast.failedToDiscoverIcon': '프로젝트 아이콘 찾기 실패',
'projectEditDialog.toast.customIconAlreadySet': '이 프로젝트에는 이미 사용자 지정 아이콘이 설정되어 있습니다',
'projectEditDialog.toast.iconDiscovered': '프로젝트 아이콘을 찾았습니다',
'agentManager.sidebar.search.placeholder': '에이전트 그룹 검색…',
'agentManager.sidebar.actions.newAgentGroup': '새 에이전트 그룹',
'agentManager.sidebar.actions.more': '… 더 보기({count})',
'agentManager.sidebar.actions.showLess': '간단히 보기',
'agentManager.sidebar.section.agentGroups': '에이전트 그룹',
'agentManager.sidebar.state.loading': '로드 중…',
'agentManager.sidebar.state.noGroupsFound': '에이전트 그룹 없음',
'agentManager.sidebar.state.noGroupsYet': '아직 에이전트 그룹 없음',
'agentManager.sidebar.state.createToGetStarted': '시작하려면 새 에이전트 그룹을 만드세요',
'agentManager.sidebar.item.modelCountSingle': '{count} 모델',
'agentManager.sidebar.item.modelCountPlural': '{count} 모델',
'agentManager.sidebar.item.groupMenuAria': '그룹 메뉴',
'agentManager.sidebar.item.delete': '삭제',
'agentManager.sidebar.relativeTime.now': '지금',
'agentManager.sidebar.relativeTime.minutes': '{count}m',
'agentManager.sidebar.relativeTime.hours': '{count}h',
'agentManager.sidebar.relativeTime.days': '{count}d',
'agentManager.sidebar.dialog.deleteGroupTitle': '에이전트 그룹 삭제',
'agentManager.sidebar.dialog.deleteGroupDescription': '"{group}"을(를) 삭제할까요? 이 그룹의 모든 워크트리와 세션이 제거됩니다.',
'agentManager.sidebar.dialog.cancel': '취소',
'agentManager.sidebar.dialog.delete': '삭제',
'agentManager.sidebar.dialog.deleting': '삭제 중…',
'agentManager.sidebar.toast.deletingGroup': '"{group}" 삭제 중…',
'agentManager.sidebar.toast.deletedGroup': '삭제됨 "{group}"',
'agentManager.sidebar.toast.failedToDeleteGroup': '"{group}" 삭제 실패',
'agentManager.detail.header.modelCountSingle': '{count} 모델',
'agentManager.detail.header.modelCountPlural': '{count} 모델',
'agentManager.detail.header.noBranch': '브랜치 없음',
'agentManager.detail.actions.worktreeActionsAria': '워크트리 작업',
'agentManager.detail.actions.removeThisWorktree': '이 워크트리 제거',
'agentManager.detail.actions.keepThisRemoveOthers': '이 워크트리만 남기고 나머지 제거',
'agentManager.detail.actions.copyWorktreePath': '워크트리 경로 복사',
'agentManager.detail.dialog.removeWorktreeTitle': '워크트리 제거',
'agentManager.detail.dialog.removeOtherWorktreesTitle': '다른 워크트리 제거',
'agentManager.detail.dialog.removeWorktreeDescription': '"{label}"을(를) 제거할까요? 이 워크트리의 모든 세션과 워크트리 자체가 삭제됩니다.',
'agentManager.detail.dialog.removeOtherWorktreesDescription': '"{label}"은 유지하고 "{group}"의 다른 워크트리를 제거합니다.',
'agentManager.detail.dialog.cancel': '취소',
'agentManager.detail.dialog.remove': '제거',
'agentManager.detail.dialog.removeOthers': '나머지 제거',
'agentManager.detail.dialog.working': '처리 중…',
'agentManager.detail.state.loadingSessionFor': '{label} 세션 로드 중',
'agentManager.detail.state.sessionId': '세션 ID: {id}',
'agentManager.detail.state.noSessionsInGroup': '이 그룹에 세션 없음',
'agentManager.detail.toast.noWorktreePath': '워크트리 경로 없음',
'agentManager.detail.toast.worktreePathCopied': '워크트리 경로 복사됨',
'agentManager.detail.toast.failedToCopyPath': '경로 복사 실패',
'agentManager.detail.toast.removingWorktree': '워크트리 제거 중…',
'agentManager.detail.toast.removingOtherWorktrees': '다른 워크트리 제거 중…',
'agentManager.detail.toast.failedToFullyRemoveWorktree': '워크트리 완전 제거 실패',
'agentManager.detail.toast.worktreeRemoved': '워크트리 제거됨',
'agentManager.detail.toast.otherWorktreesRemoved': '다른 워크트리 제거됨',
'agentManager.empty.groupName.label': '그룹 이름',
'agentManager.empty.groupName.placeholder': '예: feature-auth, bugfix-login',
'agentManager.empty.groupName.description': '워크트리 디렉터리와 브랜치 이름에 사용됩니다',
'agentManager.empty.baseBranch.label': '베이스 브랜치',
'agentManager.empty.baseBranch.description': '{branch}에서 새 브랜치를 생성',
'agentManager.empty.setupCommands.label': '셋업 명령',
'agentManager.empty.setupCommands.configured': '{count}개 설정됨',
'agentManager.empty.setupCommands.description': '각 새 워크트리에서 실행할 명령입니다. 프로젝트 루트에는 $ROOT_PROJECT_PATH를 사용하세요.',
'agentManager.empty.setupCommands.loading': '로드 중…',
'agentManager.empty.setupCommands.commandPlaceholder': '예: bun install',
'agentManager.empty.setupCommands.removeCommandAria': '명령 제거',
'agentManager.empty.setupCommands.addCommand': '명령 추가',
'agentManager.empty.agent.label': '에이전트',
'agentManager.empty.agent.description': '설정된 기본 에이전트를 사용합니다',
'agentManager.empty.models.label': '모델',
'agentManager.empty.models.addModel': '모델 추가',
'agentManager.empty.models.selectedSingle': '모델 {count}개 선택됨',
'agentManager.empty.models.selectedPlural': '모델 {count}개 선택됨',
'agentManager.empty.prompt.label': '프롬프트',
'agentManager.empty.prompt.placeholder': '무엇이든 물어보세요…',
'agentManager.empty.prompt.addAttachmentAria': '첨부 파일 추가',
'agentManager.empty.actions.startAgentGroupAria': '에이전트 그룹 시작',
'agentManager.empty.toast.fileTooLarge': '파일 "{fileName}"이 너무 큽니다(최대 10MB)',
'agentManager.empty.toast.failedToAttach': '첨부 "{fileName}" 실패',
'agentManager.empty.toast.attachedSingle': '첨부됨 {count} 파일',
'agentManager.empty.toast.attachedPlural': '첨부됨 {count} 파일',
'agentManager.empty.toast.failedToCreateGroup': '에이전트 그룹 생성에 실패했습니다',
'openInApp.actions.open': '열기',
'openInApp.actions.openInAria': '{app}에서 열기',
'openInApp.actions.chooseAppAria': '열 앱 선택',
'openInApp.actions.copyPath': '경로 복사',
'openInApp.actions.refreshApps': '앱 새로고침',
'openInApp.toast.pathCopied': '경로를 클립보드에 복사했습니다',
'projectActions.actions.addActionAria': '작업 추가',
'projectActions.actions.addAction': '작업 추가',
'projectActions.actions.addNewAction': '새 작업 추가',
'projectActions.actions.autoDiscover': '자동 검색',
'projectActions.actions.autoDiscoverTooltip': '개발 서버를 자동으로 검색하고 실행합니다',
'projectActions.actions.chooseActionAria': '프로젝트 작업 선택',
'projectActions.actions.openPreview': '미리보기 열기',
'projectActions.actions.runNamedAria': '실행 {name}',
'projectActions.actions.stopNamedAria': '중지 {name}',
'projectActions.label.fallbackAction': '작업',
'projectActions.toast.openedUrlFromOutput': '작업 출력에서 URL을 열었습니다',
'projectActions.toast.openedForwardedUrl': '포워딩된 URL을 열었습니다',
'projectActions.toast.openedActionUrl': '작업 URL을 열었습니다',
'projectActions.error.noActiveDirectory': '활성 디렉터리가 없습니다',
'projectActions.error.noActiveDirectoryForAction': '작업을 실행할 활성 디렉터리가 없습니다',
'projectActions.error.failedToCreateTerminalSession': '터미널 세션 생성에 실패했습니다',
'projectActions.error.invalidCustomUrlFormat': '사용자 지정 URL 형식이 올바르지 않습니다',
'projectActions.error.selectedDesktopSshForwardUnavailable': '선택한 데스크톱 SSH 포워딩을 사용할 수 없음',
'projectActions.error.failedToRunAction': '작업 실행에 실패했습니다',
'mcpDropdown.title': 'MCP 서버',
'mcpDropdown.actions.refreshAria': '새로고침',
'mcpDropdown.actions.openAria': 'MCP 서버',
'mcpDropdown.statusAria': 'MCP 상태',
'mcpDropdown.status.unknown': '알 수 없음',
'mcpDropdown.status.connected': '연결됨',
'mcpDropdown.status.failed': '실패: {error}',
'mcpDropdown.status.unknownError': '알 수 없음 오류',
'mcpDropdown.status.needsAuth': '인증 필요',
'mcpDropdown.status.needsRegistration': '등록 필요: {error}',
'mcpDropdown.empty.configureInConfig': '설정에서 MCP 서버를 구성하세요.',
'sessionAuth.error.rateLimitTitle': '시도가 너무 많습니다',
'sessionAuth.error.networkTitle': '서버에 연결할 수 없습니다',
'sessionAuth.error.rateLimitDescriptionSingle': '{minutes}분 후 다시 시도하세요.',
'sessionAuth.error.rateLimitDescriptionPlural': '{minutes}분 후 다시 시도하세요.',
'sessionAuth.error.networkDescription': 'UI 세션을 확인할 수 없습니다. 로컬 네트워크의 다른 기기에서 OpenChamber를 열고 있다면 데스크톱 앱에서 Desktop Network Access를 활성화하고 설정에 표시되는 LAN 주소를 사용하세요.',
'sessionAuth.error.retry': '다시 시도',
'sessionAuth.error.passkeySetupFailed': '패스키 설정에 실패했습니다.',
'sessionAuth.error.incorrectPassword': '비밀번호가 올바르지 않습니다. 다시 시도하세요.',
'sessionAuth.error.unexpectedResponse': '서버에서 예상치 못한 응답을 받았습니다.',
'sessionAuth.error.networkRetry': '네트워크 오류입니다. 연결 상태를 확인하고 다시 시도하세요.',
'sessionAuth.error.passkeySignInCanceled': '패스키 로그인이 취소되었습니다.',
'sessionAuth.error.enterPasswordForPasskey': '패스키를 추가하려면 비밀번호를 입력하세요.',
'sessionAuth.locked.tunnelTitle': '터널 접근 필요',
'sessionAuth.locked.unlockTitle': 'OpenChamber 잠금 해제',
'sessionAuth.locked.tunnelDescription': '데스크톱 앱의 일회용 연결 링크로 이 터널을 여세요.',
'sessionAuth.locked.passwordDescription': '이 세션은 비밀번호로 보호됩니다.',
'sessionAuth.locked.hostSwitcherHint': '원격에 연결할 수 없으면 로컬을 사용하세요.',
'sessionAuth.actions.cancelPasskey': '패스키 취소',
'sessionAuth.actions.usePasskey': '패스키 사용',
'sessionAuth.actions.unlockingAria': '잠금 해제 중',
'sessionAuth.actions.unlockAria': '잠금 해제',
'sessionAuth.actions.trustDevice': '이 디바이스 신뢰',
'sessionAuth.actions.trustDeviceAria': '이 디바이스 신뢰',
'sessionAuth.actions.cancelPasskeySetup': '패스키 설정 취소',
'sessionAuth.actions.addPasskey': '패스키 추가',
'sessionAuth.password.placeholder': '비밀번호 입력',
'sessionAuth.toast.passkeyAdded': '패스키를 추가했습니다',
'sessionAuth.toast.passkeySetupCanceled': '패스키 설정을 취소했습니다',
'desktopHostSwitcher.title': '인스턴스',
'desktopHostSwitcher.description': '로컬과 원격 OpenChamber 서버 간에 전환합니다',
'desktopHostSwitcher.header.current': '현재',
'desktopHostSwitcher.header.default': '기본값',
'desktopHostSwitcher.header.currentColon': '현재:',
'desktopHostSwitcher.header.currentDefaultColon': '현재 기본값:',
'desktopHostSwitcher.status.connected': '연결됨',
'desktopHostSwitcher.status.authRequired': '인증 필요',
'desktopHostSwitcher.status.checking': '확인 중',
'desktopHostSwitcher.status.updateRecommended': '업데이트 권장',
'desktopHostSwitcher.status.incompatible': '호환되지 않음',
'desktopHostSwitcher.status.wrongService': '잘못된 서비스',
'desktopHostSwitcher.status.unreachable': '연결할 수 없음',
'desktopHostSwitcher.status.unknown': '알 수 없음',
'desktopHostSwitcher.status.ping': ' · {ms}ms 핑',
'desktopHostSwitcher.statusAria': '인스턴스 상태',
'desktopHostSwitcher.sshPhase.ready': '준비됨',
'desktopHostSwitcher.sshPhase.error': '오류',
'desktopHostSwitcher.sshPhase.reconnecting': '다시 연결 중',
'desktopHostSwitcher.sshPhase.resolvingConfig': '구성 확인 중',
'desktopHostSwitcher.sshPhase.checkingAuth': '인증 확인 중',
'desktopHostSwitcher.sshPhase.connectingSsh': 'SSH 연결 중',
'desktopHostSwitcher.sshPhase.probingRemote': '원격 확인 중',
'desktopHostSwitcher.sshPhase.installing': '설치 중',
'desktopHostSwitcher.sshPhase.updating': '업데이트 중',
'desktopHostSwitcher.sshPhase.detectingServer': '서버 감지 중',
'desktopHostSwitcher.sshPhase.startingServer': '서버 시작 중',
'desktopHostSwitcher.sshPhase.forwardingPorts': '포트 포워딩 중',
'desktopHostSwitcher.sshPhase.idle': '대기 중',
'desktopHostSwitcher.ssh.needInstancesHint': 'SSH 인스턴스가 필요하신가요? 설정에서 관리하세요.',
'desktopHostSwitcher.ssh.instanceFallback': 'SSH 인스턴스',
'desktopHostSwitcher.ssh.connectingTo': '{host}에 연결 중',
'desktopHostSwitcher.actions.refresh': '새로고침',
'desktopHostSwitcher.actions.refreshInstancesAria': '인스턴스 새로고침',
'desktopHostSwitcher.actions.remoteSsh': '리모트 SSH',
'desktopHostSwitcher.actions.instanceActionsAria': '인스턴스 작업',
'desktopHostSwitcher.actions.edit': '편집',
'desktopHostSwitcher.actions.delete': '삭제',
'desktopHostSwitcher.actions.connect': '연결',
'desktopHostSwitcher.actions.defaultInstanceAria': '기본 인스턴스',
'desktopHostSwitcher.actions.setAsDefaultAria': '기본값으로 설정',
'desktopHostSwitcher.actions.setAsDefault': '기본값으로 설정',
'desktopHostSwitcher.actions.openInNewWindowAria': '새 창에서 열기',
'desktopHostSwitcher.actions.openInNewWindow': '새 창에서 열기',
'desktopHostSwitcher.actions.addInstance': '인스턴스 추가',
'desktopHostSwitcher.actions.cancel': '취소',
'desktopHostSwitcher.actions.save': '저장',
'desktopHostSwitcher.actions.add': '추가',
'desktopHostSwitcher.actions.switchToLocal': '로컬로 전환',
'desktopHostSwitcher.actions.retry': '다시 시도',
'desktopHostSwitcher.actions.switchInstanceAria': '인스턴스 전환',
'desktopHostSwitcher.actions.switchInstance': '인스턴스 전환',
'desktopHostSwitcher.actions.switchToAria': '{instance}(으)로 전환',
'desktopHostSwitcher.field.labelPlaceholder': '레이블',
'desktopHostSwitcher.field.labelOptionalPlaceholder': '레이블(선택)',
'desktopHostSwitcher.field.urlPlaceholder': 'https://host:port',
'desktopHostSwitcher.state.limitedOnPage': '이 페이지에서는 인스턴스 전환 기능이 제한됩니다. 복구하려면 로컬을 사용하세요.',
'desktopHostSwitcher.state.loading': '로드 중…',
'desktopHostSwitcher.state.instanceUnreachable': '인스턴스에 연결할 수 없습니다',
'desktopHostSwitcher.edit.title': '인스턴스 편집',
'desktopHostSwitcher.add.title': '인스턴스 추가',
'desktopHostSwitcher.error.failedToSave': '저장에 실패했습니다',
'desktopHostSwitcher.error.failedToLoad': '불러오기에 실패했습니다',
'desktopHostSwitcher.error.invalidUrl': '유효하지 않은 URL(http/https 필요)',
'desktopHostSwitcher.error.failedToOpenNewWindow': '새 창 열기에 실패했습니다',
'desktopHostSwitcher.instance.local': '로컬',
'desktopHostSwitcher.instance.fallback': '인스턴스',
'desktopHostSwitcher.startup.title': '기본 SSH 인스턴스를 사용할 수 없습니다',
'desktopHostSwitcher.startup.connectingTo': '{host}에 연결 중…',
'desktopHostSwitcher.startup.failed': '기본 SSH 인스턴스에 연결하지 못했습니다.',
'desktopHostSwitcher.toast.sshConnected': 'SSH 인스턴스 "{host}"에 연결했습니다',
'desktopHostSwitcher.toast.sshFailedToConnect': 'SSH 인스턴스 "{host}" 연결에 실패했습니다',
'desktopHostSwitcher.toast.instanceUnreachable': '인스턴스 "{host}"에 연결할 수 없음',
'miniChat.header.newSession': '새 세션',
'miniChat.header.session': '세션',
'miniChat.header.defaultAgent': '기본 에이전트',
'miniChat.header.noModel': '모델 없음',
'miniChat.status.busy': '실행 중',
'miniChat.status.retry': '재시도 중',
'miniChat.status.idle': '유휴',
'miniChat.actions.pin': '다른 창 위에 고정',
'miniChat.actions.unpin': '창 고정 해제',
'miniChat.actions.pinAria': 'Mini Chat 창 고정',
'miniChat.actions.unpinAria': 'Mini Chat 창 고정 해제',
'miniChat.actions.openMain': '메인 창에서 열기',
'miniChat.actions.openMainAria': '메인 창에서 세션 열기',
'miniChat.unavailable.title': '세션을 사용할 수 없음',
'miniChat.unavailable.description': '이 세션을 불러올 수 없습니다. 삭제, 보관되었거나 다른 프로젝트 컨텍스트에서 열렸을 수 있습니다.',
'sessions.sidebar.session.menu.openMiniChatWindow': 'Mini Chat 창에서 열기',
'header.actions.newMiniChat': '새 Mini Chat 창',
'header.actions.newMiniChatAria': '새 Mini Chat 창 열기',
'header.actions.openSessionMiniChat': 'Mini Chat에서 세션 열기',
'header.actions.openSessionMiniChatAria': '현재 세션을 Mini Chat에서 열기',
'header.windowControls.groupAria': '창 컨트롤',
'header.windowControls.minimize': '창 최소화',
'header.windowControls.maximize': '창 최대화',
'header.windowControls.restore': '창 복원',
'header.windowControls.close': '창 닫기',
'errorBoundary.title': '문제가 발생했습니다',
'errorBoundary.description': '애플리케이션에서 예상치 못한 오류가 발생했습니다. 디버깅을 위해 기록되었습니다.',
'errorBoundary.state.unknownError': '알 수 없음 오류',
'errorBoundary.state.componentStackLabel': '컴포넌트 스택:',
'errorBoundary.actions.errorDetails': '오류 상세',
'errorBoundary.actions.tryAgain': '다시 시도',
'errorBoundary.actions.copy': '복사',
'errorBoundary.actions.copied': '복사됨',
'jsonTreeView.error.emptyJson': '빈 JSON 내용',
'jsonTreeView.error.invalidJson': '유효하지 않은 JSON',
'jsonTreeView.error.invalidJsonTitle': '유효하지 않은 JSON',
'jsonTreeView.actions.expandAll': '모두 펼치기',
'jsonTreeView.actions.collapseAll': '모두 접기',
'numberInput.actions.decreaseAria': '값 감소',
'numberInput.actions.increaseAria': '값 증가',
'goToLineDialog.field.linePlaceholderShort': '줄',
'goToLineDialog.field.linePlaceholder': '줄 번호',
'goToLineDialog.actions.go': '이동',
'goToLineDialog.helper.editorUnavailable': '편집기를 사용할 수 없습니다.',
'goToLineDialog.helper.currentLineRange': '현재 줄: {current}. 1~{max} 사이의 줄 번호를 입력하세요.',
'goToLineDialog.helper.goToLine': '{line}번 줄로 이동',
'dialog.common.actions.close': '닫기',
'filesView.toast.relativePathCopied': '상대 경로 복사됨',
'filesView.tree.menu.copyRelativePath': '상대 경로 복사',
'multiRun.branchSelector.placeholder.selectSourceBranch': '소스 브랜치 선택...',
'multiRun.branchSelector.status.loadingBranches': '브랜치 불러오는 중…',
'multiRun.branchSelector.status.noBranchesFound': '브랜치가 없습니다',
'multiRun.branchSelector.status.notInGitRepository': 'Git 레포지토리가 아닙니다.',
'multiRun.branchSelector.groups.localBranches': '로컬 브랜치',
'multiRun.branchSelector.groups.remoteBranches': '리모트 브랜치',
'multiRun.window.actions.closeAria': '멀티런 닫기',
'multiRun.window.description': 'OpenChamber 멀티런 창.',
'voice.status.idle': '음성 준비됨',
'voice.status.listening': '듣는 중…',
'voice.status.processing': '처리 중…',
'voice.status.speaking': '말하는 중…',
'voice.status.error': '음성 오류',
'voice.status.conversationModeActiveAria': '대화 모드 활성 상태',
'voice.action.finishAndTranscribe': '음성 입력을 완료하고 받아쓰기',
'onboarding.common.actions.back': '뒤로',
'onboarding.common.copyToClipboard': '클립보드에 복사',
'onboarding.common.status.copiedToClipboard': '클립보드에 복사했습니다',
'onboarding.chooser.title': 'OpenChamber에 오신 것을 환영합니다',
'onboarding.chooser.description': '시작 방법을 선택하세요.',
'onboarding.chooser.tabs.localInstall': '로컬 설치',
'onboarding.chooser.tabs.connectRemote': '원격 연결',
'onboarding.localSetup.title': 'OpenCode 설정',
'onboarding.localSetup.description': '계속하려면 OpenCode CLI를 설치하세요.',
'onboarding.localSetup.dialog.selectOpencodeBinary': 'opencode 바이너리 선택',
'onboarding.localSetup.errors.cliNotReady': 'OpenCode CLI가 아직 준비되지 않았습니다. 설치가 완료되었는지 확인하고 다시 시도하세요.',
'onboarding.localSetup.errors.detectionFailed': '감지에 실패했습니다',
'onboarding.localSetup.windows.title': 'Windows 설정',
'onboarding.localSetup.windows.stepInstallWsl': '아래 명령으로 OpenCode를 설치하세요.',
'onboarding.localSetup.windows.stepInstallWslSuffix': '',
'onboarding.localSetup.windows.stepRunInstallInWsl': '아래 설치 명령을 Windows 터미널에서 실행하세요.',
'onboarding.localSetup.windows.stepSetBinaryPath': 'OpenChamber가 OpenCode를 자동으로 찾지 못하면 아래에 바이너리 경로를 설정하세요.',
'onboarding.localSetup.intro': 'OpenCode는 OpenChamber의 심장입니다. 먼저 설치하고 시작하세요.',
'onboarding.localSetup.docs.windows': 'OpenCode 문서',
'onboarding.localSetup.docs.default': 'OpenCode 문서',
'onboarding.localSetup.actions.checking': '확인 중…',
'onboarding.localSetup.actions.checkAndContinue': '설치를 마쳤습니다. 확인 후 계속',
'onboarding.localSetup.actions.checkNow': '지금 확인',
'onboarding.localSetup.helper.checkAndContinue': 'OpenCode CLI를 사용할 수 있으면 확인을 누르세요. 성공하면 자동으로 메인 화면으로 이동합니다.',
'onboarding.localSetup.status.watching': 'OpenCode 대기 중',
'onboarding.localSetup.status.autoContinue': '감지되면 자동으로 계속됩니다.',
'onboarding.localSetup.field.alreadyInstalled': '이미 설치되어 있나요? OpenCode CLI 경로 설정:',
'onboarding.localSetup.advanced.title': '사용자 지정 바이너리 경로 설정',
'onboarding.localSetup.troubleshoot.title': '문제가 있나요?',
'onboarding.localSetup.actions.browse': '찾아보기',
'onboarding.localSetup.actions.apply': '적용',
'onboarding.localSetup.helper.saveAndReload': 'OpenChamber 설정에 저장하고 OpenCode 구성을 다시 로드합니다.',
'onboarding.localSetup.remotePreference': '원격 서버를 사용하시겠어요?',
'onboarding.localSetup.actions.connectRemoteServer': '리모트 서버 연결 →',
'onboarding.localSetup.windows.hintInstallInWsl': 'Windows에서는 OpenCode를 네이티브로 설치하고 실행하세요.',
'onboarding.localSetup.windows.hintDetectionFailed': '감지에 실패하면 opencode.cmd 또는 opencode.exe 같은 네이티브 경로를 설정하세요.',
'onboarding.localSetup.hint.ensurePath': '이미 설치되어 있나요? opencode가 PATH에 있는지 확인하세요.',
'onboarding.localSetup.hint.setEnv': '또는 `OPENCODE_BINARY` 환경 변수를 설정하세요.',
'onboarding.localSetup.hint.missingRuntime': '"env: node: No such file or directory" 또는 "env: bun: No such file or directory"가 보이면 해당 런타임을 설치하거나 PATH에 있는지 확인하세요.',
'onboarding.remoteConnection.title': '리모트 서버 연결',
'onboarding.remoteConnection.titleRecovery': '다른 서버에 연결',
'onboarding.remoteConnection.description': '연결할 OpenChamber 서버 주소를 입력하세요.',
'onboarding.remoteConnection.field.serverAddress': '서버 주소',
'onboarding.remoteConnection.field.serverAddressPlaceholder': 'https://your-server.example.com:4096',
'onboarding.remoteConnection.field.nameOptional': '이름 (선택)',
'onboarding.remoteConnection.field.namePlaceholder': '내 원격 서버',
'onboarding.remoteConnection.errors.connectionTestFailed': '연결 테스트에 실패했습니다',
'onboarding.remoteConnection.errors.failedToSaveConnection': '연결 저장에 실패했습니다',
'onboarding.remoteConnection.status.connectedSuccessfully': '성공적으로 연결되었습니다 ({latencyMs}ms)',
'onboarding.remoteConnection.status.authWarning': '서버에 인증이 필요합니다. 그래도 연결할 수 있습니다.',
'onboarding.remoteConnection.status.connectionFailed': '연결에 실패했습니다',
'onboarding.remoteConnection.status.suggestionsUnreachable': '서버 주소를 확인하고, 서버가 실행 중인지와 네트워크 연결을 점검하세요.',
'onboarding.remoteConnection.status.suggestionsWrongService': 'URL이 OpenChamber 서버를 가리키는지 확인하거나 서버 관리자에게 문의하세요.',
'onboarding.remoteConnection.actions.testing': '테스트 중…',
'onboarding.remoteConnection.actions.testConnection': '연결 테스트',
'onboarding.remoteConnection.actions.connectAndRestart': '연결 후 재시작',
'onboarding.remoteConnection.actions.whatToDo': '어떻게 하시겠습니까?',
'onboarding.remoteConnection.actions.chooseDifferentServer': '다른 서버 선택',
'onboarding.remoteConnection.actions.useLocalInstead': '대신 로컬 사용',
'onboarding.remoteConnection.probe.authMessage': '서버에 인증이 필요합니다. 연결은 가능하지만 자격 증명을 입력해야 할 수 있습니다.',
'onboarding.remoteConnection.probe.updateRecommendedMessage': '이 인스턴스는 다른 OpenChamber 버전을 실행 중입니다. 연결할 수 있지만 문제가 있으면 양쪽 앱을 업데이트하세요.',
'onboarding.remoteConnection.probe.incompatibleMessage': '서버에서 OpenChamber가 실행 중이지만 이 앱 버전과 호환되지 않습니다. 서버의 OpenChamber를 업데이트한 후 다시 시도하세요.',
'onboarding.remoteConnection.probe.wrongServiceMessage': '서버가 응답했지만 OpenChamber가 실행 중이 아닙니다. 주소가 OpenChamber 서버를 가리키는지 확인하세요.',
'onboarding.remoteConnection.probe.unreachableMessage': '서버에 연결할 수 없습니다. 네트워크 연결과 서버 주소를 확인하세요.',
'onboarding.desktopRecovery.localUnavailable.title': '로컬 OpenCode를 사용할 수 없음',
'onboarding.desktopRecovery.localUnavailable.description': 'OpenCode CLI를 시작할 수 없거나 설치되어 있지 않습니다. OpenCode를 설치하거나 원격 서버에 연결하세요.',
'onboarding.desktopRecovery.localUnavailable.retry': '로컬 다시 시도',
'onboarding.desktopRecovery.localUnavailable.useLocal': '로컬 설정',
'onboarding.desktopRecovery.noDefaultConnection.title': '기본 연결이 없습니다',
'onboarding.desktopRecovery.noDefaultConnection.description': '저장된 기본 연결을 찾을 수 없습니다. 연결 방식을 선택하세요.',
'onboarding.desktopRecovery.remoteUnreachable.title': '원격 서버에 연결할 수 없습니다',
'onboarding.desktopRecovery.remoteUnreachable.description': '"{host}"에 연결할 수 없습니다. 네트워크 연결과 서버 주소를 확인하세요.',
'onboarding.desktopRecovery.remoteUnreachable.retry': '연결 다시 시도',
'onboarding.desktopRecovery.incompatibleServer.title': '호환되지 않는 서버',
'onboarding.desktopRecovery.incompatibleServer.description': '"{host}"의 서버에서 OpenChamber가 실행 중이 아닙니다. 주소가 OpenChamber 서버를 가리키는지 확인하세요.',
'onboarding.desktopRecovery.remoteIncompatible.title': '서버 업데이트 필요',
'onboarding.desktopRecovery.remoteIncompatible.description': '"{host}"의 OpenChamber 서버가 이 앱 버전과 호환되지 않습니다. 서버의 OpenChamber를 업데이트한 후 다시 시도하세요.',
'onboarding.desktopRecovery.common.useLocal': '로컬 사용',
'onboarding.desktopRecovery.common.useRemote': '원격 사용',
'onboarding.desktopRecovery.actions.retrying': '다시 시도 중…',
'onboarding.desktopRecovery.actions.retryConnection': '연결 다시 시도',
'startup.initRecovery.title': '시작 실패',
'startup.initRecovery.description': 'OpenChamber 초기화를 완료할 수 없습니다. 서버가 실행 중인지 확인한 뒤 다시 시도하세요.',
'startup.initRecovery.retry': '다시 시도',
'startup.initRecovery.retrying': '다시 시도 중…',
'onboarding.desktopRecovery.placeholders.remoteServer': '원격 서버',
'onboarding.desktopRecovery.placeholders.unknownServer': '알 수 없음',
'vscodeLayout.title.chat': '채팅',
'vscodeLayout.title.newSession': '새 세션',
'vscodeLayout.title.sessions': '세션',
'vscodeLayout.title.sessionFallback': '세션',
'vscodeLayout.actions.backToSessionsAria': '세션으로 돌아가기',
'vscodeLayout.actions.archiveAllAria': '모든 세션 보관',
'vscodeLayout.actions.archiveAllConfirm': '모두 보관',
'vscodeLayout.actions.archiveAllSuccess': '{count}개 세션 보관됨',
'vscodeLayout.actions.archiveAllError': '{count}개 세션 보관 실패',
'vscodeLayout.actions.cancel': '취소',
'vscodeLayout.actions.newSessionAria': '새 세션',
'vscodeLayout.actions.openAgentManagerAria': '에이전트 관리자 열기',
'vscodeLayout.actions.resizeSessionsSidebarAria': '세션 사이드바 크기 조정',
'vscodeLayout.actions.settingsAria': '설정',
'vscodeLayout.quota.title': '레이트 리밋',
'vscodeLayout.quota.mode.used': '사용됨',
'vscodeLayout.quota.mode.remaining': '남은 양',
'vscodeLayout.quota.lastUpdated': '마지막 업데이트: {time}',
'vscodeLayout.quota.noRateLimitsAvailable': '사용 가능한 레이트 리밋이 없습니다.',
'vscodeLayout.quota.noRateLimitsReported': '보고된 레이트 리밋이 없습니다.',
'vscodeLayout.quota.actions.rateLimitsAria': '레이트 리밋',
'vscodeLayout.quota.actions.showUsedAria': '사용량 표시',
'vscodeLayout.quota.actions.showRemainingAria': '잔여량 표시',
'vscodeLayout.quota.actions.refreshAria': '레이트 리밋 새로고침',
'updateDialog.header.updateAvailable': '업데이트 가능',
'updateDialog.header.updating': 'OpenChamber 업데이트 중…',
'updateDialog.changelog.title': '새로운 기능',
'updateDialog.status.installingUpdate': '업데이트 설치 중…',
'updateDialog.status.serverRestarting': '서버 재시작 중…',
'updateDialog.status.waitingForServer': '서버 대기 중…',
'updateDialog.status.autoReloadHint': '업데이트가 완료되면 페이지가 자동으로 새로고침됩니다.',
'updateDialog.fallback.updateViaTerminal': '또는 터미널에서 업데이트:',
'updateDialog.actions.copyCommand': '명령어 복사',
'updateDialog.actions.copied': '복사 완료!',
'updateDialog.status.downloadingPayload': '업데이트 패키지 다운로드 중…',
'updateDialog.actions.downloadUpdate': '업데이트 다운로드',
'updateDialog.status.downloading': '다운로드 중…',
'updateDialog.actions.restartToUpdate': '업데이트를 위해 재시작',
'updateDialog.actions.updateNow': '지금 업데이트',
'updateDialog.actions.openMobileUpdate': '업데이트 열기',
'updateDialog.status.updating': '업데이트 중…',
'updateDialog.error.updateFailed': '업데이트 실패',
'updateDialog.error.takingLonger': '업데이트가 예상보다 오래 걸립니다. 잠시 기다린 뒤 새로고침하거나 `openchamber update`를 실행하세요.',
'mobileUpdate.toast.available.title': 'OpenChamber 업데이트 사용 가능',
'mobileUpdate.toast.available.description': 'Android용 버전 {version}이 준비되었습니다.',
'mobileUpdate.toast.actions.download': '다운로드',
'mobileUpdate.toast.actions.dismiss': '닫기',
'opencodeUpdate.toast.available.title': 'OpenCode 업데이트',
'opencodeUpdate.toast.available.description': '버전 {version} 사용 가능.',
'opencodeUpdate.toast.actions.update': '업데이트',
'opencodeUpdate.toast.actions.dismiss': '닫기',
'opencodeUpdate.toast.actions.reload': 'OpenCode 다시 로드',
'opencodeUpdate.toast.upgrading.title': 'OpenCode 업데이트 중...',
'opencodeUpdate.toast.upgrading.description': 'OpenChamber를 열어 두세요.',
'opencodeUpdate.toast.updated.title': 'OpenCode 업데이트 완료',
'opencodeUpdate.toast.updated.description': '업데이트가 설치되었습니다.',
'opencodeUpdate.toast.updated.descriptionWithVersion': '버전 {version}이 설치되었습니다.',
'opencodeUpdate.toast.failed.title': 'OpenCode를 업데이트할 수 없음',
'opencodeUpdate.toast.failed.description': 'OpenCode 업그레이드에 실패했습니다.',
'opencodeUpdate.toast.reload.message': 'OpenCode 다시 시작 중...',
'memoryDebugPanel.title': '디버그 패널',
'memoryDebugPanel.tabs.memory': '메모리',
'memoryDebugPanel.tabs.streaming': '스트리밍',
'memoryDebugPanel.section.sessionsInMemory': '메모리 내 세션',
'memoryDebugPanel.section.uiStreamingMetrics': 'UI 스트리밍 지표',
'memoryDebugPanel.section.vscodeBridgeMetrics': 'VS Code 브리지 지표',
'memoryDebugPanel.section.noUiSamples': '아직 UI 스트리밍 샘플 없음. 스트림을 시작하고 이 패널을 열어 두세요.',
'memoryDebugPanel.section.noVscodeSamples': 'VS Code 브리지 샘플 없음',
'memoryDebugPanel.metric.totalMessages': '전체 메시지',
'memoryDebugPanel.metric.cachedSessions': '캐시된 세션',
'memoryDebugPanel.metric.userMessages': '사용자 메시지',
'memoryDebugPanel.metric.assistantMessages': '어시스턴트 메시지',
'memoryDebugPanel.metric.viewportWindow': '뷰포트',
'memoryDebugPanel.metric.zombieTimeout': '좀비 타임아웃',
'memoryDebugPanel.metric.githubTotalRequests': 'GitHub 전체 요청',
'memoryDebugPanel.metric.metrics': '지표',
'memoryDebugPanel.metric.samples': '샘플',
'memoryDebugPanel.metric.lastUpdate': '마지막 업데이트',
'memoryDebugPanel.metric.uiMetrics': 'UI 지표',
'memoryDebugPanel.metric.vscodeMetrics': 'VS Code 지표',
'memoryDebugPanel.metric.messageListRenders': '메시지 목록 렌더',
'memoryDebugPanel.metric.messageListStreamRenders': '메시지 목록 스트림 렌더',
'memoryDebugPanel.metric.chatMessageRenders': '채팅 메시지 렌더',
'memoryDebugPanel.metric.chatMessageStreamRenders': '채팅 메시지 스트림 렌더',
'memoryDebugPanel.metric.chatMessageStaticDuringStream': '스트림 중 정적 채팅 메시지',
'memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn': '활성 턴 외부 정적 채팅 메시지',
'memoryDebugPanel.metric.messagesValue': '{count}개 메시지',
'memoryDebugPanel.metric.minutesValue': '{count}분',
'memoryDebugPanel.metric.msgsValue': '{count}개 메시지',
'memoryDebugPanel.metric.roleMsgsValue': 'U {user} / A {assistant}',
'memoryDebugPanel.metric.countValue': '개수 {value}',
'memoryDebugPanel.metric.avgValue': '평균 {value}',
'memoryDebugPanel.metric.maxValue': '최대 {value}',
'memoryDebugPanel.metric.totalValue': '합계 {value}',
'memoryDebugPanel.actions.logState': '상태 기록',
'memoryDebugPanel.actions.copyJson': 'JSON 복사',
'memoryDebugPanel.tooltip.logCurrentState': '현재 메모리 상태를 브라우저 콘솔에 기록',
'memoryDebugPanel.streaming.copy.copied': '스트리밍 디버그 JSON 복사 완료',
'memoryDebugPanel.streaming.copy.failed': 'JSON 복사 실패',
'memoryDebugPanel.streaming.copy.hint': 'UI와 VS Code 스트리밍 메트릭을 JSON으로 복사합니다',
'memoryDebugPanel.common.idle': '유휴',
'memoryDebugPanel.common.live': '실시간',
'memoryDebugPanel.common.notAvailable': 'n/a',
'memoryDebugPanel.common.untitled': '제목 없음',
'directoryTree.field.newDirectoryPlaceholder': '새 디렉터리',
'textarea.resizeHandleAria': '텍스트 영역 크기 조정',
'sidebar.resize.leftPanelAria': '왼쪽 패널 크기 조정',
'sidebar.resize.rightPanelAria': '오른쪽 패널 크기 조정',
'mainLayout.mobile.closeDrawerAria': '드로어 닫기',
'sortableTabsStrip.aria.tabs': '탭',
'openChamberLogo.aria.logo': 'OpenChamber 로고',
'markdownRenderer.code.actions.copyTitle': '코드 복사',
'markdownRenderer.code.actions.copiedTitle': '복사됨',
'markdownRenderer.table.actions.copyTitle': '표 복사',
'markdownRenderer.code.actions.enableWrapTitle': '줄 바꿈 켜기',
'markdownRenderer.code.actions.disableWrapTitle': '줄 바꿈 끄기',
'markdownRenderer.table.actions.downloadTitle': '표 다운로드',
'markdownRenderer.table.toast.downloadedAsFormat': '{format} 형식으로 다운로드됨',
'markdownRenderer.mermaid.actions.copyTitle': '복사',
'markdownRenderer.mermaid.actions.copySourceTitle': '소스 복사',
'markdownRenderer.mermaid.actions.downloadSvgTitle': 'SVG 다운로드',
'markdownRenderer.mermaid.actions.zoomInTitle': '확대',
'markdownRenderer.mermaid.actions.zoomOutTitle': '축소',
'markdownRenderer.mermaid.actions.resetViewTitle': '보기 초기화',
'markdownRenderer.mermaid.toast.downloadFailed': '다이어그램 다운로드 실패',
'common.date.today': 'Today',
'common.date.yesterday': 'Yesterday',
'common.date.yesterdayWithTime': 'Yesterday {time}',
'common.relative.justNow': 'Just now',
'common.relative.minutesAgoShort': '{count}min ago',
'common.relative.hoursAgoShort': '{count}h ago',
'common.relative.daysAgoShort': '{count}d ago',
'common.relative.weeksAgoShort': '{count}w ago',
'common.relative.yearsAgoShort': '{count}y ago',
'common.relative.daysAgoCompact': '{count}d ago',
'common.relative.weeksAgoCompact': '{count}w ago',
'common.relative.yearsAgoCompact': '{count}y ago',
'contextFileOpen.failure.tooLarge': 'File is too large to open (>{count} lines)',
'contextFileOpen.failure.missing': 'File not found',
'contextFileOpen.failure.unreadable': 'Failed to open file',
'quota.window.5h': '5-Hour',
'quota.window.7d': '7-Day Limit',
'quota.window.7dSonnet': '7-Day Sonnet Limit',
'quota.window.7dOpus': '7-Day Opus Limit',
'quota.window.weekly': 'Weekly Limit',
'quota.window.daily': 'Daily',
'quota.window.monthly': 'Monthly Limit',
'quota.window.credits': 'Credits',
'quota.window.creditsBalance': 'Credits Balance',
'quota.window.billingCycle': 'Billing Cycle',
'quota.window.auto': 'Auto',
'quota.window.api': 'API',
'quota.window.planLimit': 'Plan Limit',
'quota.window.onDemand': 'On-demand',
'quota.window.session': 'Session',
'quota.window.premium': 'Premium Interactions',
'quota.window.chat': 'Chat Requests',
'quota.window.completions': 'Completions',
'quota.window.premiumInteractions': 'Premium interactions',
};