Files
openchamber/packages/ui/src/lib/i18n/messages/ko.ts
T
Bohdan Triapitsyn a85a9ae451 feat: strengthen /workspace-review beyond high-signal-only
The old workspace-review prompt only hunted for catastrophic bugs and
omitted everything it wasn't highly certain about, so it usually returned
'No high-signal issues found' and felt useless.

Rework it to first understand the diff's intent and judge whether the
implementation actually achieves it and is adequate (smallest correct
solution, completeness), then review correctness across concrete failure
modes (concurrency, lifecycle, state fanout, comparators, a11y,
regressions, targeted-test gaps) plus a security/supply-chain lens, and
classify findings by severity (blocker / non-blocker / nit). Keeps the
existing false-positive discipline (diff is source of truth, validation
pass, no nitpicks, cite rules) and stays review-only by default.

Adapted from a battle-tested PR-review prompt, minus the GitHub-specific
parts that don't apply to a local workspace diff. Updates command and
settings descriptions across locales.
2026-05-30 02:04:32 +03:00

2380 lines
168 KiB
TypeScript

import type { I18nKey } from './en';
import { settingsDict } from './ko.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'common.loading': '로딩 중...',
'common.unavailable': '사용할 수 없음',
'common.language.english': '영어',
'common.language.simplifiedChinese': '중국어(간체)',
'common.language.traditionalChinese': '중국어(번체)',
'common.language.ukrainian': '우크라이나어',
'common.language.spanish': '스페인어',
'common.language.brazilianPortuguese': '브라질 포르투갈어',
'common.language.korean': '한국어',
'common.language.polish': '폴란드어',
'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.files': '파일',
'layout.mainTab.terminal': '터미널',
'layout.mainTab.context': '컨텍스트',
'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.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.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': '시간대 필수',
'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.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.collapseAll': '모두 접기',
'sessions.sidebar.header.displayMode.expandAll': '모두 펼치기',
'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.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.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.newDraftSession': '새 드래프트 세션',
'sessions.sidebar.session.menu.rename': '이름 변경',
'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.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.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.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.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.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.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.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.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.merge': '병합',
'gitView.operation.mergeInProgressWithHead': '{head} 병합 진행 중',
'gitView.operation.mergingMessage': '병합 중: {message}',
'gitView.operation.rebase': '리베이스',
'gitView.operation.rebaseInProgress': '리베이스 진행 중',
'gitView.operation.rebasingOnto': '{headName}을(를) {onto} 위로 리베이스 중',
'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': '워크트리 설정 중',
'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': '보내기 PR 댓글로 에이전트',
'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.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.commit': '커밋',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': '업데이트',
'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': '변경사항',
'contextPanel.mode.stagedDiff': 'Staged Diff',
'contextPanel.mode.workingDiff': 'Working Diff',
'contextPanel.mode.plan': '계획',
'contextPanel.mode.context': '컨텍스트',
'contextPanel.mode.preview': '미리보기',
'contextPanel.mode.browser': '브라우저',
'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.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.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.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.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 미리보기',
'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.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.mode.single.label': '단일 파일',
'diffView.mode.single.description': '파일을 하나씩 표시',
'diffView.mode.stacked.label': '모든 파일',
'diffView.mode.stacked.description': '수정된 파일을 모두 쌓아서 표시',
'diffView.selector.selectFile': '파일 선택',
'diffView.selector.viewMode': '보기 모드',
'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.failedToLoadDiff': '변경사항을 불러오지 못했습니다',
'diffView.state.loadingDiff': '변경사항 불러오는 중…',
'diffView.state.loadingChanges': '변경 사항 로드 중…',
'diffView.summary.changedFilesSingle': '파일 {count}개 변경됨',
'diffView.summary.changedFilesPlural': '파일 {count}개 변경됨',
'diffView.actions.retry': '다시 시도',
'diffView.actions.disableLineWrap': '줄 바꿈 끄기',
'diffView.actions.enableLineWrap': '줄 바꿈 켜기',
'diffView.actions.openFileInEditorAtChange': '변경 위치에서 이 파일을 에디터로 열기',
'diffView.actions.openFileAtFirstChangedLine': '첫 변경 줄에서 이 파일 열기',
'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.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.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.used': '사용됨',
'header.services.remaining': '남은 양',
'header.services.modelFamily.other': '기타',
'header.actions.openPlanAria': '플랜 열기',
'header.actions.planWithShortcut': '플랜 ({shortcut})',
'header.actions.terminalPanelWithShortcut': '터미널 패널 ({shortcut})',
'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.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.bottomDock.resizeAria': '터미널 패널 크기 조정',
'terminalView.bottomDock.restoreTitle': '터미널 패널 높이 복원',
'terminalView.bottomDock.restoreAria': '터미널 패널 높이 복원',
'terminalView.bottomDock.expandTitle': '펼치기 터미널 패널',
'terminalView.bottomDock.expandAria': '펼치기 터미널 패널',
'terminalView.bottomDock.closeTitle': '터미널 패널 닫기',
'terminalView.bottomDock.closeAria': '터미널 패널 닫기',
'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.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.abortActiveRun': '활성 실행 중단(두 번 누르기)',
'helpDialog.item.toggleRightSidebar': '오른쪽 사이드바 전환',
'helpDialog.item.openRightSidebarGitTab': '오른쪽 사이드바 Git 탭 열기',
'helpDialog.item.openRightSidebarFilesTab': '오른쪽 사이드바 파일 탭 열기',
'helpDialog.item.cycleRightSidebarTab': '오른쪽 사이드바 탭 순환',
'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': '제목 또는 #123으로 검색하거나 이슈 URL을 붙여넣으세요',
'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': '제목 또는 #123으로 검색하거나 PR URL을 붙여넣으세요',
'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': '이슈 검색 또는 #123 입력…',
'session.githubIntegration.search.prsPlaceholder': 'PR 검색 또는 #456 입력…',
'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.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.debug.label': 'Debug an issue',
'chat.draftPresets.review.label': 'Review my changes',
'chat.scrollToBottom.aria': '맨 아래로 스크롤',
'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.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.featurePlanDescription': '새 기능을 위한 대화형 가이드 계획 세션을 시작합니다.',
'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.container.returnToParent.aria': '상위 세션으로 돌아가기',
'chat.container.returnToParent.titleNamed': '돌아가기: {title}',
'chat.container.returnToParent.title': '상위 세션으로 돌아가기',
'chat.container.returnToParent.label': '상위',
'chat.container.readOnlySubagentPromptBanner': '하위 에이전트 세션에는 프롬프트를 보낼 수 없습니다.',
'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.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.copyAnswer': '답변 복사',
'chat.messageBody.actions.savingImage': '이미지 저장 중…',
'chat.messageBody.actions.saveAsImage': '이미지로 저장',
'chat.messageBody.actions.saveAsPlan': '플랜으로 저장',
'chat.messageBody.actions.startNewSession': '이 응답에서 새 세션 시작',
'chat.messageBody.actions.startNewMultiRun': '이 응답에서 새 멀티런 시작',
'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} 음성)',
'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.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.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.someFilesSkipped': '일부 파일을 건너뛰었습니다:\n{summary}',
'chat.chatInput.toast.vscodePickFailed': 'VS Code에서 파일 선택에 실패했습니다',
'chat.chatInput.toast.openSessionFirst': '먼저 세션을 여세요',
'chat.chatInput.toast.togglePermissionAutoAcceptFailed': '권한 자동 승인 전환에 실패했습니다',
'chat.chatInput.reviewComments': '검토 댓글:',
'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.worktrees': '워크트리',
'chat.chatInput.worktreeNew': '+ 새로 만들기',
'chat.chatInput.drop.insertMention': '여기에 놓아 멘션으로 추가',
'chat.chatInput.drop.attachFiles': '여기에 놓아 파일 첨부',
'chat.chatInput.fileFallback': '파일',
'chat.mobileStatus.editProjects.title': '편집 프로젝트',
'chat.mobileStatus.editProjects.footer': '항목을 드래그하여 순서를 바꾸거나 화살표로 이동하세요. 세부 정보는 편집을 탭해 변경하세요.',
'chat.mobileStatus.editProjects.empty': '편집할 프로젝트 없음',
'chat.mobileStatus.projects.empty': '프로젝트 없음',
'chat.mobileStatus.projects.addAria': '프로젝트 추가',
'chat.mobileStatus.projects.removeTitle': '프로젝트 제거',
'chat.mobileStatus.projects.removeDescriptionPrefix': '다음을 제거하시겠습니까:',
'chat.mobileStatus.projects.cancel': '취소',
'chat.mobileStatus.projects.remove': '제거',
'chat.mobileStatus.new': '새로 만들기',
'chat.mobileStatus.noSessionsInProject': '이 프로젝트에 세션 없음',
'chat.mobileStatus.swipeHint': '← 여기서 스와이프해 사이드바 열기 →',
'chat.mobileStatus.toast.addProjectFailed': '프로젝트 추가 실패',
'chat.mobileStatus.toast.selectValidDirectory': '유효한 디렉터리를 선택하세요.',
'chat.mobileStatus.toast.selectDirectoryFailed': '디렉터리 선택 실패',
'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.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.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.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.toggleRightSidebar': '오른쪽 사이드바 전환',
'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.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': 'OpenCode 설정에서 MCP 서버를 구성하세요.',
'sessionAuth.error.rateLimitTitle': '시도가 너무 많습니다',
'sessionAuth.error.networkTitle': '서버에 연결할 수 없습니다',
'sessionAuth.error.rateLimitDescriptionSingle': '{minutes}분 후 다시 시도하세요.',
'sessionAuth.error.rateLimitDescriptionPlural': '{minutes}분 후 다시 시도하세요.',
'sessionAuth.error.networkDescription': 'UI 세션을 확인할 수 없습니다. 서비스가 실행 중인지 확인하고 다시 시도하세요.',
'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.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 설정 (WSL 권장)',
'onboarding.localSetup.windows.stepInstallWsl': '필요하면 WSL 설치:',
'onboarding.localSetup.windows.stepInstallWslSuffix': 'PowerShell에서 실행하세요.',
'onboarding.localSetup.windows.stepRunInstallInWsl': '아래 설치 명령을 WSL 터미널에서 실행하세요.',
'onboarding.localSetup.windows.stepSetBinaryPath': 'OpenChamber가 OpenCode를 자동으로 찾지 못하면 아래에 바이너리 경로를 설정하세요.',
'onboarding.localSetup.intro': 'OpenCode는 OpenChamber의 심장입니다. 먼저 설치하고 시작하세요.',
'onboarding.localSetup.docs.windows': 'OpenCode Windows + WSL 문서',
'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에서는 최상의 호환성을 위해 WSL에서 OpenCode를 설치하고 실행하세요.',
'onboarding.localSetup.windows.hintDetectionFailed': '감지에 실패하면 native 경로(opencode.cmd/opencode.exe), wsl.exe 또는 wsl:/usr/local/bin/opencode를 설정하세요.',
'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.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.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.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.status.updating': '업데이트 중…',
'updateDialog.error.updateFailed': '업데이트 실패',
'updateDialog.error.takingLonger': '업데이트가 예상보다 오래 걸립니다. 잠시 기다린 뒤 새로고침하거나 `openchamber update`를 실행하세요.',
'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.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.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.table.actions.copyTitle': '표 복사',
'markdownRenderer.table.actions.downloadTitle': '표 다운로드',
'markdownRenderer.table.toast.downloadedAsFormat': '{format} 형식으로 다운로드됨',
'markdownRenderer.mermaid.actions.copyTitle': '복사',
'markdownRenderer.mermaid.actions.copySourceTitle': '소스 복사',
'markdownRenderer.mermaid.actions.downloadSvgTitle': 'SVG 다운로드',
'markdownRenderer.mermaid.toast.downloadFailed': '다이어그램 다운로드 실패',
};