import { en, type TranslationResources } from "./en"; import { pluginSettings } from "./plugin-settings"; export const ko: TranslationResources = { common: { back: "뒤로", loading: "불러오는 중...", actions: { back: "뒤로", cancel: "취소", close: "닫기", copy: "복사", dismiss: "닫기", retry: "다시 시도", search: "검색", select: "선택", }, placeholders: { search: "검색...", }, empty: { noResults: "결과가 없습니다", noOptionsMatchSearch: "검색과 일치하는 옵션이 없습니다.", }, states: { loading: "불러오는 중...", starting: "시작 중...", copied: "복사됨", copiedLabel: "{{label}} 복사됨", downloadComplete: "다운로드 완료", downloadFailed: "다운로드 실패", }, errors: { error: "오류", unableToSave: "저장할 수 없습니다", nameRequired: "이름을 입력하세요", daemonUnavailable: "데몬을 사용할 수 없습니다", daemonClientUnavailable: "데몬 클라이언트를 사용할 수 없습니다", daemonClientDisconnected: "데몬 클라이언트 연결이 끊어졌습니다", noFileFound: "{{token}}에 해당하는 파일을 찾을 수 없습니다", unexpectedDictationError: "받아쓰기를 처리하는 중 예기치 않은 오류가 발생했습니다.", }, connectionStatus: { online: "온라인", connecting: "연결 중", offline: "오프라인", error: "오류", idle: "대기 중", }, }, shell: { menu: { toggleSidebar: "사이드바 토글", open: "메뉴 열기", close: "메뉴 닫기", }, commandCenter: { placeholder: "명령, 파일, 워크스페이스 및 에이전트 검색...", filePlaceholder: "파일 검색...", searchingFiles: "파일 검색 중...", noMatches: "일치 항목 없음", actions: "작업", files: "파일", workspaces: "워크스페이스", agents: "에이전트", newAgent: "새 에이전트", addProject: "프로젝트 추가", home: "홈", groupByProject: "프로젝트별 그룹화", groupByStatus: "상태별 그룹화", modelGroupLabel: "모델", modelSearchKeywords: "모델 전환 모델 변경 모델 설정 모델 선택", thinkingGroupLabel: "추론", thinkingSearchKeywords: "추론 수준 사고 생각", modeGroupLabel: "모드", modeSearchKeywords: "접근 권한 승인 모드", planModeGroupLabel: "계획 모드", planModeSearchKeywords: "계획 플랜 계획 모드", fastModeGroupLabel: "빠르게", fastModeSearchKeywords: "빠르게 속도 낮은 지연 시간", settingOn: "켜짐", settingOff: "꺼짐", }, }, composer: { placeholders: { desktop: "에이전트에게 메시지를 보내거나 @files 태그, /commands, /skills를 사용하세요", mobile: "메시지, @files, /commands", fallback: "메시지...", terminal: "Prompt", }, input: { accessibilityLabel: "에이전트에게 메시지...", terminalAccessibilityLabel: "Terminal prompt", focusHint: "{{shortcut}}로 포커스", addAttachment: "첨부 추가", interruptAgent: "에이전트 중단", queueMessage: "메시지 대기열에 추가", sendAndInterrupt: "보내고 중단", sendAndSteer: "보내고 지시 추가", sendMessage: "메시지 보내기", queue: "대기열", send: "보내기", }, cancel: { cancelingAgent: "에이전트 취소 중", stopAgent: "에이전트 중지", interrupt: "중단", }, voice: { enableVoiceMode: "음성 모드 켜기", voiceMode: "음성 모드", unmuteVoiceMode: "음성 모드 음소거 해제", muteVoiceMode: "음성 모드 음소거", stopDictation: "받아쓰기 중지", startDictation: "받아쓰기 시작", unmuteVoice: "음성 음소거 해제", muteVoice: "음성 음소거", dictation: "받아쓰기", interruptBeforeVoice: "음성 모드를 시작하기 전에 에이전트를 중단하세요", }, attachments: { addImage: "이미지 추가", pasteImage: "이미지 붙여넣기", addFile: "파일 업로드", addIssueOrPr: "이슈 또는 PR 추가", addIssueOrPr_mr: "이슈 또는 MR 추가", dropImagesHere: "여기에 이미지를 끌어다 놓으세요", dropFilesHere: "여기에 파일을 끌어다 놓으세요", editQueuedMessage: "대기 중인 메시지 편집", sendQueuedMessageNow: "대기 중인 메시지 지금 보내기", openImage: "이미지 첨부 열기", removeImage: "이미지 첨부 제거", removeFile: "파일 첨부 제거", openGithub: "{{kind}} {{number}} 열기", removeGithub: "{{kind}} {{number}} 제거", element: "요소", openBrowserElement: "브라우저 요소 첨부 열기", removeBrowserElement: "브라우저 요소 첨부 제거", openReview: "리뷰 첨부 열기", removeReview: "리뷰 첨부 제거", }, errors: { failedToSend: "메시지를 보내지 못했습니다", failedToCreateAgent: "에이전트를 생성하지 못했습니다", noHostSelected: "선택된 호스트가 없습니다", initialPromptRequired: "초기 프롬프트가 필요합니다", alreadyLoading: "이미 불러오는 중입니다", uploadFailed: "파일을 업로드하지 못했습니다", noClipboardImage: "클립보드에 이미지가 없습니다.", pasteImageFailed: "이미지를 붙여넣지 못했습니다.", fileTooLarge: "{{fileName}}이(가) 너무 큽니다 (최대 {{size}})", }, clientCommands: { archiveAgent: "현재 에이전트 보관", freshDraft: "이 에이전트를 보관하고 새 초안을 시작합니다", }, github: { searching: "검색 중...", noResults: "결과가 없습니다.", searchPlaceholder: "이슈와 PR 검색...", searchPlaceholder_mr: "이슈 및 MR 검색...", title: "이슈 또는 PR 첨부", title_mr: "이슈 또는 MR 첨부", }, }, agentControls: { provider: { fallback: "프로바이더", select: "에이전트 프로바이더 선택", }, thinking: { title: "사고", unknown: "알 수 없음", extraHigh: "매우 높음", select: "사고 옵션 선택", selectWithValue: "사고 옵션 선택 ({{value}})", }, model: { unknown: "알 수 없는 모델", }, features: { title: "기능", open: "에이전트 기능 열기", on: "켜짐", off: "꺼짐", }, mode: { title: "모드", searchPlaceholder: "모드 검색...", selectWithValue: "에이전트 모드 선택 ({{value}})", }, hints: { thinking: "사고 모드", model: "모델 변경", mode: "모드 변경", }, }, agentStream: { empty: "이 에이전트와 대화를 시작하세요...", scrollToBottom: "맨 아래로 스크롤", historyLoadFailed: "에이전트 기록을 로드할 수 없습니다.", permission: { plan: "계획", required: "권한 필요", deny: "거부", accept: "수락", implement: "구현", question: "어떻게 진행할까요?", proposedPlan: "제안된 계획", }, }, agentPanel: { states: { notFound: "에이전트를 찾을 수 없습니다", failedToLoad: "에이전트를 불러오지 못했습니다", reconnecting: "다시 연결하는 중", timelineSyncFailed: "에이전트 기록을 새로고침할 수 없습니다.", timelineSyncRetrying: "재시도 중…", archivingTitle: "에이전트 보관 중...", archivingSubtitle: "이 에이전트를 보관하는 동안 잠시 기다려 주세요.", }, unavailable: { selectedHost: "선택된 호스트", unknownHost: "{{serverLabel}}이(가) 이 기기에 구성되어 있지 않아 이 에이전트를 열 수 없습니다.", addHost: "계속하려면 설정에서 호스트를 추가하거나 구성된 서버에서 에이전트를 여세요.", preparingSession: "{{serverLabel}} 세션 준비 중...", connecting: "{{serverLabel}}에 연결하는 중...", showSoon: "잠시 후 이 에이전트를 표시합니다.", showWhenOnline: "호스트가 온라인 상태가 되면 이 에이전트를 표시합니다.", reconnectingTo: "{{serverLabel}}에 다시 연결하는 중...", showAgainWhenReachable: "호스트에 연결되는 즉시 이 에이전트를 다시 표시합니다.", }, archived: { callout: "이 에이전트는 보관되었습니다", unarchive: "보관 해제", }, }, sessions: { title: "기록", empty: "아직 세션이 없습니다", noMatches: "일치하는 세션이 없습니다", tooManyMatches: "일치 항목이 너무 많습니다 — 검색 범위를 좁히세요", hostLoadFailed: "{{host}}: 기록을 불러오지 못했습니다", searchPlaceholder: "기록 검색", actions: { loadMore: "더 불러오기", clearSearch: "검색 지우기", }, }, agentList: { fallbackTitle: "새 세션", dateSections: { recent: "최근", today: "오늘", yesterday: "어제", thisWeek: "이번 주", thisMonth: "이번 달", older: "이전", }, status: { initializing: "시작 중", idle: "대기 중", running: "실행 중", error: "오류", closed: "종료됨", }, badges: { archived: "보관됨", pending: "대기 {{count}}개", attention: "주의", }, archiveSheet: { hostOffline: "호스트 오프라인", runningAgent: "이 에이전트는 아직 실행 중입니다. 보관하면 에이전트가 중지됩니다.", archive: "보관", }, }, message: { diagram: { diagram: "다이어그램", zoomIn: "확대", zoomOut: "축소", resetZoom: "보기 초기화", viewSource: "소스 보기", viewDiagram: "다이어그램 보기", }, actions: { copyCode: "코드 복사", copyTurn: "턴 복사", copyMessage: "메시지 복사", forkMenu: "여기에서 채팅 분기", forkInNewTab: "새 탭으로 분기", forkInNewWorkspace: "새 워크스페이스로 분기", forkUnavailable: "이를 사용하려면 호스트를 업데이트하세요.", forkMissingWorkspace: "이 에이전트는 워크스페이스에 속해 있지 않습니다.", forkFailed: "채팅을 분기하지 못했습니다.", openFile: "파일 열기", copied: "복사됨", }, attachments: { dismissImage: "이미지 닫기", closeImage: "이미지 닫기", imageLoadFailed: "이미지를 불러올 수 없습니다", imageUnavailable: "이미지를 사용할 수 없습니다", imagePreviewUnavailable: "이미지 미리보기를 사용할 수 없습니다.", imagePreviewLoadFailed: "이미지 미리보기를 불러올 수 없습니다.", review: "리뷰", commentsOne: "댓글 1개", commentsMany: "댓글 {{count}}개", textAttachment: "텍스트 첨부", text: "텍스트", file: "파일", }, speak: { header: "말함", }, activity: { details: "세부 정보", }, dictation: { start: "음성 받아쓰기 시작", cancel: "받아쓰기 취소", retry: "받아쓰기 다시 시도", insert: "전사 삽입", insertAndSend: "전사 삽입 후 보내기", failed: "받아쓰기 실패: {{error}}", failedRetry: "받아쓰기에 실패했습니다. 다시 시도하려면 누르세요.", }, question: { submit: "제출", next: "다음", answerPlaceholder: "답변을 입력하세요...", otherPlaceholder: "기타...", }, todo: { title: "작업", empty: "아직 작업이 없습니다.", tasksProgress: "작업 {{completed}}/{{total}}개", activity: { created: "작업 {{count}}개 생성", added: "추가됨", started: "시작됨", completed: "완료됨", reopened: "다시 열림", }, }, compaction: { loading: "압축하는 중...", auto: "컨텍스트가 자동으로 압축되었습니다", manual: "컨텍스트가 수동으로 압축되었습니다", withTokens: "컨텍스트가 압축되었습니다 ({{tokens}}K 토큰)", completed: "컨텍스트가 압축되었습니다", }, }, importSession: { title: "세션 가져오기", filters: { all: "전체", }, status: { connectHost: "세션을 가져오려면 호스트에 연결하세요", updateHost: "세션을 가져오려면 호스트를 업데이트하세요.", noProviders: "가져올 수 있는 프로바이더가 활성화되어 있지 않습니다.", loading: "최근 세션을 불러오는 중...", failedAll: "최근 세션을 불러올 수 없습니다.", failedProviders: "{{providers}}의 세션을 불러올 수 없습니다.", failedImport: "선택한 세션을 가져올 수 없습니다.", }, actions: { refresh: "세션 새로고침", }, preview: { untitledSession: "제목 없는 세션", noPrompt: "프롬프트 미리보기 없음", }, empty: { noRecent: "가져올 최근 세션이 없습니다.", alreadyImported: "최근 세션이 모두 이미 가져와졌습니다.", noProviderSessions: "{{provider}} 세션을 찾을 수 없습니다.", }, row: { importing: "가져오는 중...", }, }, workspace: { route: { loading: "워크스페이스 불러오는 중", connecting: "연결 중", hostOffline: "{{hostName}}이(가) 오프라인입니다", cannotReachHost: "{{hostName}}에 연결할 수 없습니다", hostStatus: "호스트 상태: {{status}}", needsHostUpgrade: "이 워크스페이스를 복원하려면 호스트를 업데이트하세요.", manageHost: "호스트 관리", recovery: { archivedTitle: "워크스페이스가 보관되었습니다", restoreDescription: "{{workspaceName}}가 보관되고 워크트리가 제거되었습니다. 다시 열려면 {{branch}} 브랜치를 복원하세요.", unarchiveDescription: "{{workspaceName}}가 보관되었습니다. 다시 열려면 보관을 취소하세요.", restoreAction: "복원", unarchiveAction: "보관 취소", restoringTitle: "워크스페이스 복원 중", restoringAction: "복원 중...", unavailableTitle: "워크스페이스를 사용할 수 없습니다", checkFailedTitle: "워크스페이스를 확인하지 못했습니다", }, }, hoverCard: { scriptsAccessibility: "워크스페이스 스크립트", copyPath: "경로 복사", copyBranchName: "브랜치 이름 복사", copied: "복사됨", }, fileActions: { openFile: "파일 열기", copyPath: "경로 복사", copyRelativePath: "상대 경로 복사", revealIn: "{{target}}에서 보기", download: "다운로드", addToChat: "채팅에 추가", moreActions: "추가 작업", newFile: "새 파일", newFolder: "새 폴더", collapseFolder: "폴더 접기", rename: "이름 바꾸기", duplicate: "복제", revert: "변경 사항 버리기", delete: "삭제", confirmDelete: { fileTitle: "파일을 삭제할까요?", folderTitle: "폴더를 삭제할까요?", message: '"{{name}}"이(가) 영구적으로 삭제됩니다.', confirm: "삭제", cancel: "취소", }, confirmRevert: { title: "변경 사항을 버릴까요?", message: '"{{name}}"의 변경 사항이 영구적으로 삭제됩니다.', confirm: "버리기", cancel: "취소", failed: "변경 사항을 버리지 못했습니다", }, }, fileExplorer: { sort: { name: "이름", modified: "수정일", size: "크기", }, context: { size: "크기", modified: "수정일", }, actions: { back: "뒤로", retry: "다시 시도", refresh: "파일 새로고침", refreshing: "파일 새로고침 중", hideHiddenFiles: "숨겨진 파일 숨기기", showHiddenFiles: "숨겨진 파일 표시", }, empty: { noFiles: "파일 없음", noVisibleFiles: "표시되는 파일이 없습니다.", }, states: { unavailable: "워크스페이스를 사용할 수 없습니다", loading: "파일 불러오는 중...", }, errors: { failedToListDirectory: "디렉터리 목록을 불러오지 못했습니다", createFailed: "항목을 만들지 못했습니다", renameFailed: "항목 이름을 바꾸지 못했습니다", duplicateFailed: "항목을 복제하지 못했습니다", revealFailed: "항목을 표시하지 못했습니다", deleteFailed: "항목을 삭제하지 못했습니다", }, draft: { filePlaceholder: "파일 이름", folderPlaceholder: "폴더 이름", }, }, setup: { descriptor: { label: "설정", completed: "설정 완료", failed: "설정 실패", workspace: "워크스페이스 설정", }, status: { running: "실행 중", completed: "완료됨", failed: "실패함", waiting: "설정 출력을 기다리는 중", }, waiting: "워크스페이스 설정 중...", empty: { noCommands: "이 워크스페이스에서 실행된 설정 명령이 없습니다.", }, accessibility: { noCommands: "이 워크스페이스에서 실행된 설정 명령이 없습니다", log: "워크스페이스 설정 로그", }, log: { noOutput: "출력 없음", }, }, browser: { unavailable: { title: "브라우저는 데스크톱 전용입니다", subtitle: "내장 브라우저를 사용하려면 이 워크스페이스를 Electron에서 여세요.", }, session: "브라우저 세션 {{browserId}}", controls: { back: "뒤로", forward: "앞으로", stopLoading: "로딩 중지", refresh: "새로고침", browserUrl: "브라우저 URL", enterUrl: "URL 입력", openDevTools: "브라우저 개발자 도구 열기", cancelSelector: "요소 선택기 취소", annotateElement: "요소에 주석 달기", screenshotElement: "요소 스크린샷", screenshotCopied: "스크린샷을 클립보드에 복사했습니다.", elementCopied: "요소를 클립보드에 복사했습니다.", screenshotFailed: "스크린샷을 복사할 수 없습니다.", selectorLoading: "페이지 로딩이 끝날 때까지 기다려 주세요.", selectorFailed: "요소 선택기를 시작할 수 없습니다.", }, annotate: { title: "요소에 주석 달기", placeholder: "이 요소에 관해 에이전트에게 보낼 메시지…", submit: "첨부", cancel: "취소", }, devices: { label: "장치 크기", responsive: "반응형", }, errors: { failedToLoad: "페이지를 불러오지 못했습니다", invalidUrl: "잘못된 브라우저 URL", unsupportedProtocol: "지원되지 않는 브라우저 URL을 차단했습니다: {{protocol}}", }, }, terminal: { hostDisconnected: "호스트가 연결되어 있지 않습니다", updateHost: "기본 터미널 렌더러를 사용하도록 호스트를 업데이트합니다.", unableToSubscribe: "터미널을 구독할 수 없습니다", }, tabs: { loading: "불러오는 중...", modified: "저장되지 않은 변경사항", loadingAgentTitle: "에이전트 제목 불러오는 중", emptyPane: "이 창에 탭이 없습니다.", fallback: { newAgent: "새 에이전트", setup: "설정", workspaceSetup: "워크스페이스 설정", terminal: "터미널", browser: "브라우저", agent: "에이전트", workspace: "워크스페이스", }, switcher: { trigger: "탭 전환 ({{count}}개 열림)", title: "탭 전환", searchPlaceholder: "탭 검색", }, menu: { openFor: "{{label}}의 메뉴 열기", copyResumeCommand: "재개 명령 복사", copyAgentId: "에이전트 ID 복사", copyTerminalId: "터미널 ID 복사", copyFilePath: "파일 경로 복사", rename: "이름 변경", closeAbove: "위쪽 탭 닫기", closeBelow: "아래쪽 탭 닫기", closeLeft: "왼쪽 탭 닫기", closeRight: "오른쪽 탭 닫기", closeOthers: "다른 탭 닫기", reloadAgent: "에이전트 다시 로드", reloadAgentTooltip: "스킬, MCP 또는 로그인 상태를 업데이트하려면 에이전트를 다시 로드하세요.", close: "닫기", renameTerminal: "터미널 이름 변경", renameAgent: "에이전트 이름 변경", }, actions: { newTab: "새 탭", newAgent: "새 에이전트", newTerminal: "새 터미널", preparingTerminal: "터미널 탭 준비 중", preparingTerminalTooltip: "터미널 준비 중...", newBrowser: "새 브라우저", maximizePane: "창 최대화", restorePane: "창 복원", exitFocusMode: "집중 모드 종료", splitRight: "창을 오른쪽으로 분할", splitDown: "창을 아래로 분할", changes: "변경 사항", files: "파일", pullRequest: "풀 리퀘스트", terminalProfilesMenu: "터미널 프로필", editTerminalProfiles: "프로필 편집…", }, explorer: { open: "탐색기 열기", close: "탐색기 닫기", toggle: "탐색기 토글", changes: "변경 사항", files: "파일", }, toasts: { copyFailed: "복사 실패", agentIdCopiedLabel: "에이전트 ID", terminalIdCopiedLabel: "터미널 ID", resumeCommandCopiedLabel: "재개 명령", filePathCopiedLabel: "파일 경로", resumeIdUnavailable: "재개 ID를 사용할 수 없습니다", resumeCommandUnavailable: "재개 명령을 사용할 수 없습니다", reloadingAgent: "에이전트 다시 로드 중...", reloadedAgent: "에이전트를 다시 로드했습니다", failedToReloadAgent: "에이전트를 다시 로드하지 못했습니다", failedToCloseAgent: "에이전트를 닫지 못했습니다", }, confirmations: { close: "닫기", cancel: "취소", archive: "보관", unsavedTitle: "저장되지 않은 변경사항", unsavedMessage: "이 탭에는 저장되지 않은 변경사항이 있습니다. 닫으면 초안이 삭제됩니다.", closeWithoutSaving: "저장하지 않고 닫기", closePaneTitle: "창을 닫으시겠어요?", bulkUnsaved: "{{count}} 탭에 저장되지 않은 변경 사항이 있습니다. 종료하면 해당 초안이 삭제됩니다.", closeTerminalTitle: "터미널을 닫을까요?", closeTerminalMessage: "이 터미널에서 실행 중인 프로세스가 즉시 중지됩니다.", archiveRunningAgentTitle: "실행 중인 에이전트를 보관할까요?", archiveRunningAgentMessage: "이 에이전트는 아직 실행 중입니다. 보관하면 에이전트가 중지되고 탭이 닫힙니다.", closeTabsLeftTitle: "왼쪽 탭을 닫을까요?", closeTabsRightTitle: "오른쪽 탭을 닫을까요?", closeOtherTabsTitle: "다른 탭을 닫을까요?", bulk: { all: "에이전트 {{agents}}개를 보관하고, 터미널 {{terminals}}개를 닫고, 탭 {{tabs}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.", agentsAndTerminals: "에이전트 {{agents}}개를 보관하고 터미널 {{terminals}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.", terminalsAndTabs: "터미널 {{terminals}}개를 닫고 탭 {{tabs}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.", agentsAndTabs: "에이전트 {{agents}}개를 보관하고 탭 {{tabs}}개를 닫습니다.", terminals: "터미널 {{terminals}}개를 닫습니다. 닫히는 터미널에서 실행 중인 프로세스는 즉시 중지됩니다.", tabs: "탭 {{tabs}}개를 닫습니다.", agents: "에이전트 {{agents}}개를 보관합니다.", }, }, }, header: { actions: { workspaceActions: "워크스페이스 작업", newAgent: "새 에이전트", newTerminal: "새 터미널", newBrowser: "새 브라우저 탭", importSession: "세션 가져오기", copyPath: "워크스페이스 경로 복사", copyBranchName: "브랜치 이름 복사", showSetup: "설정 표시", }, toasts: { workspacePathUnavailable: "워크스페이스 경로를 아직 사용할 수 없습니다", branchNameUnavailable: "브랜치 이름을 사용할 수 없습니다", terminalQueued: "워크스페이스 준비 중, 준비되면 터미널을 엽니다...", workspacePathCopiedLabel: "워크스페이스 경로", branchNameCopiedLabel: "브랜치 이름", }, }, scripts: { title: "스크립트", actions: { chooseUrl: "URL를 선택하세요", copyUrl: "URL 복사", openService: "서비스 보기", restart: "다시 시작", run: "실행", stop: "중지", view: "터미널 보기", }, accessibility: { trigger: "워크스페이스 스크립트", openService: "{{scriptName}} 서비스 보기", viewTerminal: "{{scriptName}} 터미널 보기", runScript: "{{scriptName}} 스크립트 실행", stopScript: "{{scriptName}} 중지", restartScript: "{{scriptName}} 다시 시작", copyUrl: "{{scriptName}} URL 복사", chooseUrl: "{{scriptName}}의 URL 선택", script: "{{scriptName}} 스크립트", }, routes: { public: "역방향 프록시", paseo: "간편 주소", direct: "직접", }, states: { exitCode: "종료 {{code}}", startFailed: "{{scriptName}}을(를) 시작하지 못했습니다", stopFailed: "{{scriptName}}를 중지하지 못했습니다.", }, }, git: { actions: { moreOptions: "옵션 더 보기", moreActions: "작업 더 보기", commit: { label: "커밋", pending: "커밋하는 중...", success: "커밋됨", }, pull: { label: "풀", pending: "가져오는 중...", success: "가져옴", }, push: { label: "푸시", pending: "푸시하는 중...", success: "푸시됨", }, pullAndPush: { label: "풀 후 푸시", pending: "가져온 뒤 푸시하는 중...", success: "가져온 뒤 푸시됨", }, viewPr: "PR 보기", viewPr_mr: "MR 보기", createPr: { label: "PR 생성", pending: "PR 생성 중...", success: "PR 생성됨", label_mr: "MR 생성", pending_mr: "MR 생성 중...", success_mr: "MR 생성됨", }, mergeBranch: { label: "로컬에서 병합", pending: "병합하는 중...", success: "병합됨", }, mergeFromBase: { label: "{{baseRef}}에서 업데이트", pending: "업데이트하는 중...", success: "업데이트됨", }, archive: { label: "워크스페이스 보관", pending: "보관하는 중...", success: "보관됨", }, mergePr: { squash: "PR 병합(스쿼시)", merge: "PR 병합(병합)", rebase: "PR 병합(리베이스)", pending: "PR 병합 중...", success: "PR 병합됨", squash_mr: "MR 병합(스쿼시)", merge_mr: "MR 병합(병합)", rebase_mr: "MR 병합(리베이스)", pending_mr: "MR 병합 중...", success_mr: "MR 병합됨", }, autoMerge: { enableSquash: "자동 병합(스쿼시)", enableMerge: "자동 병합(병합)", enableRebase: "자동 병합(리베이스)", enabled: "자동 병합 사용 설정됨", enabling: "자동 병합 사용 설정 중...", disabling: "자동 병합 해제 중...", disabled: "자동 병합 해제됨", }, unavailable: { viewPrNoForge: "{{brand}}가 연결되지 않아 지금은 {{noun}} 보기를 사용할 수 없습니다.", pullNoRemote: "이 브랜치가 아직 원격에 연결되어 있지 않아 여기서 풀을 사용할 수 없습니다", pullDirty: "로컬 변경 사항이 있어 풀을 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요", pullUpToDate: "이 브랜치가 이미 최신 상태이므로 풀을 사용할 수 없습니다", pushNoRemote: "이 브랜치가 아직 원격에 연결되어 있지 않아 여기서 푸시를 사용할 수 없습니다", pushBehind: "먼저 가져와야 할 최신 변경 사항이 있어 아직 푸시를 사용할 수 없습니다", pushNothing: "새로 보낼 항목이 없어 푸시를 사용할 수 없습니다", pullAndPushNoRemote: "이 브랜치가 아직 원격에 연결되어 있지 않아 여기서 풀 후 푸시를 사용할 수 없습니다", pullAndPushDirty: "로컬 변경 사항이 있어 풀 후 푸시를 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요", pullAndPushNoIncoming: "먼저 가져올 변경 사항이 없으므로 풀 후 푸시를 사용할 수 없습니다.", pullAndPushInSync: "이 브랜치가 이미 동기화되어 있어 풀 후 푸시를 사용할 수 없습니다", pullAndPushNothingToPush: "풀 이후 새로 푸시할 내용이 없습니다.", createPrNoForge: "{{brand}}가 연결되어 있지 않기 때문에 지금은 {{noun}} 생성을 사용할 수 없습니다.", createPrNoCommits: "이 브랜치에 아직 새 커밋이 없어 PR 생성을 사용할 수 없습니다", mergeNoBase: "기준 브랜치를 확인할 수 없어 병합을 사용할 수 없습니다", mergeDirty: "로컬 변경 사항이 있어 병합을 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요", mergeNothing: "이 브랜치에 아직 병합할 새 항목이 없어 병합을 사용할 수 없습니다", updateNoBase: "기준 브랜치를 확인할 수 없어 업데이트를 사용할 수 없습니다", updateDirty: "로컬 변경 사항이 있어 업데이트를 사용할 수 없습니다. 먼저 커밋하거나 스태시하세요", updateCurrent: "이 브랜치가 이미 {{baseRef}}와 최신 상태이므로 업데이트를 사용할 수 없습니다", mergePrNoGithub: "GitHub가 연결되어 있지 않아 지금은 PR 병합을 사용할 수 없습니다", archiveNotWorktree: "이 워크스페이스가 Paseo 워크트리로 생성되지 않아 여기서 보관을 사용할 수 없습니다", mergePrNoForge: "{{brand}}가 연결되어 있지 않기 때문에 지금은 {{noun}} 병합을 사용할 수 없습니다.", mergePrMissing: "아직 풀 리퀘스트가 없어 PR 병합을 사용할 수 없습니다", mergePrDraft: "풀 리퀘스트가 아직 초안이라 PR 병합을 사용할 수 없습니다", mergePrMerged: "풀 리퀘스트가 이미 병합되어 PR 병합을 사용할 수 없습니다", mergePrClosed: "풀 리퀘스트가 닫혀 있어 PR 병합을 사용할 수 없습니다", mergePrConflicts: "풀 리퀘스트에 충돌이 있어 PR 병합을 사용할 수 없습니다", mergePrQueue: "이 저장소는 병합 대기열을 사용하므로 여기서 PR 병합을 사용할 수 없습니다", mergePrNotReady: "{{brand}}에서 {{noun}}의 병합 준비가 확인될 때까지 {{noun}}을(를) 병합할 수 없습니다.", autoMergeCannotDisable: "자동 병합이 사용 설정되어 있지만 이 계정은 해제할 수 없습니다", }, toasts: { failedCommit: "커밋하지 못했습니다", failedPull: "가져오지 못했습니다", failedPush: "푸시하지 못했습니다", failedPullAndPush: "풀 후 푸시하지 못했습니다", failedCreatePr: "PR을 생성하지 못했습니다", failedMergePr: "PR을 병합하지 못했습니다", failedEnableAutoMerge: "자동 병합을 사용 설정하지 못했습니다", failedDisableAutoMerge: "자동 병합을 해제하지 못했습니다", baseRefUnavailable: "기준 ref를 사용할 수 없습니다", failedMerge: "병합하지 못했습니다", failedMergeFromBase: "기준에서 병합하지 못했습니다", }, archiveWarning: { title: '"{{workspaceName}}"를 보관하시겠습니까?', confirm: "보관", cancel: "취소", uncommittedChanges: "커밋되지 않은 변경 사항", uncommittedChangesWithDiff: "커밋되지 않은 변경 사항 ({{diffStat}})", addedLine: "추가된 줄 {{count}}개", addedLines: "추가된 줄 {{count}}개", deletedLine: "삭제된 줄 {{count}}개", deletedLines: "삭제된 줄 {{count}}개", unpushedCommit: "푸시되지 않은 커밋 {{count}}개", unpushedCommits: "푸시되지 않은 커밋 {{count}}개", }, }, diff: { openChangesTab: "변경사항 탭 열기", closeChangesTab: "변경사항 탭 닫기", binaryFile: "바이너리 파일", tooLarge: "표시하기에 diff가 너무 큽니다", previewTooLargeTitle: "Diff가 너무 커서 미리 볼 수 없습니다", previewTooLargeDescription: "여기에서 미리 보려면 비교 범위를 좁히세요.", unified: "통합 diff", split: "나란히 보기 diff", switchToUnified: "통합 diff로 전환", switchToSplit: "나란히 보기 diff로 전환", showTreeView: "폴더 트리 표시", hideTreeView: "폴더 트리 숨기기", options: "Diff 옵션", hideWhitespace: "공백 숨기기", showWhitespace: "공백 표시", scrollLongLines: "긴 줄 스크롤", wrapLongLines: "긴 줄 줄바꿈", collapseAllFolders: "모든 폴더 축소", expandAllFolders: "모든 폴더 확장", collapseAllFiles: "모든 파일 축소", expandAllFiles: "모든 파일 확장", refreshing: "새로고침 중", refresh: "새로고침", refreshState: "Git 및 {{brand}} 상태 새로고침", failedRefresh: "Git 상태를 새로고침하지 못했습니다.", emptyHiddenWhitespace: "공백을 숨긴 후 표시할 변경 사항이 없습니다", emptyUncommitted: "커밋되지 않은 변경 사항이 없습니다", emptyAgainstBase: "{{baseRef}} 대비 변경 사항이 없습니다", checkingRepository: "저장소 확인 중...", notRepository: "Git 저장소가 아닙니다", diffMode: "Diff 모드", uncommitted: "커밋되지 않음", committed: "커밋됨", branchUnknown: "알 수 없음", base: "기준", newFile: "신규", deletedFile: "삭제됨", modifiedFile: "수정됨", commits: { title: "커밋", countLabel: "워크스페이스 커밋 {{count}}개", noneAhead: "아직 {{baseRef}}보다 앞서 커밋이 없습니다.", fileDiffEmpty: "표시할 변경사항이 없습니다.", fileDiffError: "파일 diff를 불러오지 못했습니다.", loading: "커밋 로드 중…", loadError: "커밋을 로드하지 못했습니다.", empty: "아직 커밋이 없습니다.", }, }, openInEditor: { open: "열기", chooseEditor: "편집기 선택", openIn: "{{target}}에서 워크스페이스 열기", openFileIn: "{{target}}에서 {{fileName}} 열기", failedOpen: "워크스페이스를 열지 못했습니다", }, pr: { actions: { viewPullRequest: "보기", openOn: "{{brand}}에서 열기", }, checksSummary: { passedLabel: "통과", failedLabel: "실패", runningLabel: "진행 중", passedAccessible: "검사 통과", failedAccessible: "검사 실패", runningAccessible: "검사 진행 중", }, sections: { checks: "검사", pipeline: "파이프라인", reviews: "리뷰", }, empty: { noJobs: "작업 없음", loadingPipeline: "파이프라인 로드 중…", pipelineJobsLoadFailed: "파이프라인 작업을 로드할 수 없습니다.", allowedToFail: "실패가 허용됨", }, approvals: "{{required}} 중 {{given}} 승인", accessibility: { pullRequest: "풀 리퀘스트 #{{number}}", pullRequest_mr: "병합 요청 !{{number}}", }, states: { draft: "초안", merged: "병합됨", closed: "닫힘", open: "열림", }, activity: { commented: "댓글 작성됨", approved: "승인됨", requestedChanges: "변경 요청됨", reviewed: "리뷰됨", }, time: { justNow: "방금", }, thread: { discussion: "토론 스레드", }, errors: { statusLoadFailed: "풀 리퀘스트 상태를 불러올 수 없습니다", activityLoadFailed: "풀 리퀘스트 활동을 불러올 수 없습니다", }, }, forgeSetup: { installCli: "{{brand}} 기능을 사용하려면 {{cli}} CLI를 설치하세요.", signIn: "{{brand}} 기능을 사용하려면 {{command}}를 실행하세요.", generic: "해당 기능을 사용하려면 이 호스트에 {{brand}}를 설정하세요.", }, }, }, workspaceLabels: { title: "레이블", unlabelled: "레이블 없음", create: "레이블 만들기", createConfirm: "만들기", creating: "만드는 중…", name: "레이블 이름", updateHostUse: "레이블을 사용하려면 호스트를 업데이트하세요.", errors: { update: "레이블을 업데이트할 수 없습니다", load: "레이블을 불러올 수 없습니다" }, colors: { violet: "보라", sky: "하늘", emerald: "에메랄드", orange: "주황", pink: "분홍", indigo: "남색", teal: "청록", red: "빨강", amber: "호박", blue: "파랑", }, filter: { clear: "필터 지우기", noMatchesTitle: "일치하는 워크스페이스가 없습니다", noMatchesDescription: "워크스페이스를 보려면 레이블 필터를 변경하거나 지우세요.", }, manage: { open: "레이블 관리…", title: "레이블 관리", search: "레이블 검색", empty: "이 호스트에 레이블이 없습니다.", edit: "레이블 편집", editLabel: "{{name}} 편집", name: "이름", color: "색상", save: "저장", delete: "삭제", deleteTitle: "{{name}}을(를) 삭제할까요?", deleteMessage_one: "이 호스트의 워크스페이스 {{count}}개에서 레이블을 제거합니다.", deleteMessage_other: "이 호스트의 워크스페이스 {{count}}개에서 레이블을 제거합니다.", offline: "이 호스트는 오프라인입니다.", updateHost: "레이블을 관리하려면 호스트를 업데이트하세요.", }, }, sidebar: { display: { trigger: "표시 설정", heading: "표시", grouping: { label: "그룹화", project: "프로젝트", status: "상태", labels: "레이블", }, titleSource: { label: "제목", title: "제목", branch: "브랜치 이름", }, show: { label: "표시 항목", branch: "브랜치", project: "프로젝트", host: "호스트", changeRequest: "풀 리퀘스트", checks: "검사", services: "서비스", labels: "레이블", diff: "Diff 통계", timestamp: "마지막 활동", }, checks: { iconAndText: "아이콘 및 텍스트", icon: "아이콘만", none: "숨김", }, hostFilter: { label: "호스트", all: "모든 호스트", }, }, pinned: { title: "고정됨", }, host: { noHost: "호스트 없음", switchTitle: "호스트 전환", searchPlaceholder: "호스트 검색...", }, actions: { addProject: "프로젝트 추가", newWorkspace: "새 워크스페이스", hosts: "호스트", home: "홈", settings: "설정", closeSidebar: "사이드바 닫기", }, help: { trigger: "도움말 및 지원", sectionHelp: "도움말", diagnostics: "진단 실행", shortcuts: "키보드 단축키", reportIssue: "문제 신고", discord: "Discord", github: "GitHub 이슈 만들기", whatsNew: "새로운 소식", appName: "Paseo", }, sections: { sessions: "기록", schedules: "일정", }, worktreeSetup: { title: "워크트리 스크립트 설정", description: "새 워크트리가 의존성을 설치하고 자동으로 준비될 수 있도록 설정 명령을 추가하세요.", openProjectSettings: "프로젝트 설정 열기", }, project: { actions: { menu: "프로젝트 작업", openSettings: "프로젝트 설정 열기", openNewWindow: "새 창에서 열기", openNewWindowFailed: "새 창을 열 수 없습니다", openFolder: "파일 관리자에서 열기", openFolderFailed: "폴더를 열 수 없습니다.", remove: "프로젝트 제거", removing: "제거하는 중...", }, confirmations: { removeTitle: "프로젝트를 제거할까요?", removeMessage: '"{{projectName}}"을(를) 사이드바에서 제거할까요?\n\n디스크의 파일은 변경되지 않습니다.', removeConfirm: "제거", cancel: "취소", }, toasts: { hostDisconnected: "호스트가 연결되어 있지 않습니다", removeFailed: "일부 워크스페이스를 제거하지 못했습니다", updateHostToRemove: "프로젝트를 제거하려면 호스트를 업데이트하세요.", }, empty: { title: "아직 프로젝트가 없습니다", description: "시작하려면 프로젝트를 추가하세요", }, }, workspace: { status: { serviceRunning: "서비스 {{name}} 실행 중", serviceUnhealthy: "서비스 {{name}} 비정상", creating: "생성하는 중...", }, actions: { menu: "워크스페이스 작업", newWorkspace: "새 워크스페이스", showMore: "더 보기", showLess: "간략히 보기", createWorkspaceFor: "{{projectName}}을(를) 위한 새 워크스페이스 생성", copyPath: "경로 복사", copyBranchName: "브랜치 이름 복사", rename: "워크스페이스 이름 변경", pin: "상단에 고정", unpin: "고정 해제", archive: "보관", archiveWorkspace: "워크스페이스 보관", hideFromSidebar: "사이드바에서 숨기기", archiving: "보관하는 중...", hiding: "숨기는 중...", }, confirmations: { hideTitle: "워크스페이스를 숨길까요?", hideMessage: '"{{workspaceName}}"을(를) 사이드바에서 숨길까요?\n\n디스크의 파일은 변경되지 않습니다.', hideConfirm: "숨기기", cancel: "취소", }, rename: { title: "워크스페이스 이름 변경", submit: "이름 변경", invalidBranchName: "잘못된 브랜치 이름", }, toasts: { workspacePathUnavailable: "워크스페이스 경로를 사용할 수 없습니다", pathCopied: "경로가 복사되었습니다", branchNameCopied: "브랜치 이름이 복사되었습니다", hostDisconnected: "호스트가 연결되어 있지 않습니다", hideFailed: "워크스페이스를 숨기지 못했습니다", archiveFailed: "워크스페이스를 보관하지 못했습니다.", }, }, }, newWorkspace: { title: "새 워크스페이스", create: "생성", isolation: { local: "로컬", worktree: "새 워크트리", label: "격리", }, fields: { project: "프로젝트", base: "기준", baseNotApplicable: "해당 없음", }, titlePlaceholder: "제목(선택 사항)", errors: { hostDisconnected: "호스트가 연결되어 있지 않습니다", createWorktreeFailed: "워크트리를 생성하지 못했습니다", composerStateRequired: "작성기 상태가 필요합니다", selectModel: "모델을 선택하세요", }, tooltips: { project: "Choose the project", host: "Choose the host", isolation: "Choose the isolation level", startingRef: "시작 위치를 선택하세요", launch: "Choose what to launch", }, refPicker: { startingRef: "시작 ref", intoBase: "{{baseRef}}(으)로", searching: "검색 중...", noMatchingRefs: "일치하는 ref가 없습니다.", searchPlaceholder: "브랜치와 PR 검색", title: "시작 위치", }, launch: { title: "What to launch", chat: "Chat", terminal: "Terminal", manageProfiles: "Manage profiles", submit: "Launch", promptPlaceholder: "Prompt {{name}}", commandPlaceholder: "Run a command, or leave empty for a blank terminal", }, }, desktop: { quitting: { title: "Paseo 종료 중...", detail: "로컬 데몬을 중지하는 중입니다.", }, daemon: { title: "데몬", status: { title: "상태", builtInOnly: "여기에는 내장 데스크톱 데몬만 표시됩니다", running: "실행 중", notRunning: "실행 중이 아님", pid: "PID {{pid}}", }, management: { title: "내장 데몬 관리", hint: "Paseo가 내장 데몬을 시작하고 중지하도록 허용합니다", pauseTitle: "내장 데몬 일시 중지", pauseMessage: "내장 데몬이 즉시 중지됩니다. 내장 데몬에 연결된 실행 중인 에이전트와 터미널이 중지됩니다.", pauseAndStop: "일시 중지 후 중지", registrationFailed: "내장 데몬이 시작되었지만 Paseo가 localhost 연결을 저장하지 못했습니다. 데몬 관리를 껐다가 다시 켜거나 localhost를 수동으로 추가하세요.", pausedStopFailed: "내장 데몬 관리가 일시 중지되었지만 Paseo가 데몬을 중지하지 못했습니다.", updateFailed: "내장 데몬 관리를 업데이트할 수 없습니다.", }, keepRunning: { title: "종료 후에도 데몬 계속 실행", hint: "Paseo를 종료해도 데몬이 계속 실행됩니다", }, logs: { title: "로그 파일", modalTitle: "데몬 로그", unavailable: "로그 경로를 사용할 수 없습니다", empty: "(로그 파일이 비어 있습니다)", copied: "로그 경로가 복사되었습니다.", copyFailed: "로그 경로를 복사할 수 없습니다.", open: "로그 열기", copyPath: "경로 복사", }, fullStatus: { title: "전체 상태", modalTitle: "데몬 상태", hint: "`paseo daemon status`를 실행하고 출력을 표시합니다", view: "상태 보기", copied: "상태가 클립보드에 복사되었습니다.", fetchFailed: "데몬 상태를 가져오지 못했습니다: {{message}}", }, advancedSettings: "고급 설정", openAdvancedSettings: "고급 데몬 설정 열기", versionMismatch: "앱과 데몬의 버전이 일치하지 않습니다. 최상의 경험을 위해 둘 다 동일한 버전으로 업데이트하세요.", loadFailed: "데스크톱 데몬 상태를 불러올 수 없습니다.", }, updates: { status: { checking: "앱 업데이트 확인 중...", installing: "앱 업데이트 설치 중...", upToDate: "앱이 최신 상태입니다.", upToDateWithLastChecked: "최신 상태입니다. 마지막 확인: {{time}}.", pending: "업데이트가 준비되면 알려드리겠습니다.", pendingWithLastChecked: "업데이트가 준비되면 알려드리겠습니다. {{time}}에서 마지막으로 확인했습니다.", pendingWithVersion: "업데이트 발견: {{version}}. 다운로드 중...", pendingWithVersionAndLastChecked: "업데이트 발견: {{version}}. 다운로드 중... {{time}}에서 마지막으로 확인했습니다.", availableWithVersion: "업데이트 준비됨: {{version}}", availableWithVersionAndLastChecked: "업데이트 준비됨: {{version}}. {{time}}에서 마지막으로 확인했습니다.", available: "설치할 앱 업데이트가 준비되었습니다.", availableWithLastChecked: "앱 업데이트를 설치할 준비가 되었습니다. {{time}}에서 마지막으로 확인했습니다.", installed: "앱 업데이트가 설치되었습니다. 재시작이 필요합니다.", failed: "앱을 업데이트하지 못했습니다.", idle: "업데이트 상태를 아직 확인하지 않았습니다.", }, installError: "데스크톱 앱 업데이트를 설치할 수 없습니다.", callout: { installingTitle: "업데이트 설치 중", failedTitle: "업데이트 실패", availableTitle: "업데이트 사용 가능", genericError: "문제가 발생했습니다.", whatsNew: "새로운 기능", installingAction: "설치 중...", installAndRestart: "설치 후 재시작", installingDescription: "설치 후 재시작 중...", versionReady: "{{version}} 설치가 준비되었습니다.", newVersionReady: "새 버전 설치가 준비되었습니다.", restartWarning: "앱을 업그레이드하면 실행 중인 에이전트가 중지되고 터미널 세션이 닫힙니다.", }, }, settings: { loadFailed: "데스크톱 설정을 불러올 수 없습니다.", saveFailed: "데스크톱 설정을 저장할 수 없습니다.", }, rosetta: { title: "Apple Silicon 빌드 다운로드", runningIntel: "Apple Silicon에서 Rosetta로 Paseo의 Intel 빌드를 실행하고 있습니다.", highCpu: "이로 인해 CPU 사용량이 높아집니다. 이를 해결하려면 Apple Silicon 빌드를 다운로드하세요.", download: "다운로드", }, permissions: { notifications: { allowed: "OS에서 알림이 허용되어 있습니다.", denied: "시스템 설정에서 알림이 거부되어 있습니다.", notGranted: "알림이 아직 허용되지 않았습니다.", webOnly: "데스크톱 알림 상태는 웹 런타임에서만 사용할 수 있습니다.", supported: "데스크톱 알림이 지원됩니다.", unsupported: "이 플랫폼에서는 데스크톱 알림이 지원되지 않습니다.", apiUnavailable: "이 환경에서는 웹 알림 API를 사용할 수 없습니다.", requestsWebOnly: "데스크톱 알림 요청은 웹 런타임에서만 사용할 수 있습니다.", requestUnavailable: "웹 알림 API의 requestPermission()을 사용할 수 없습니다.", requestFailed: "알림 권한을 요청하지 못했습니다: {{message}}", unexpectedState: "예기치 않은 알림 권한 상태: {{state}}", }, microphone: { webOnly: "데스크톱 마이크 상태는 웹 런타임에서만 사용할 수 있습니다.", navigatorUnavailable: "이 환경에서는 Navigator를 사용할 수 없습니다.", granted: "마이크 접근이 허용되었습니다.", denied: "시스템 설정에서 마이크 접근이 거부되어 있습니다.", notGranted: "마이크 권한이 아직 허용되지 않았습니다.", unexpectedState: "예기치 않은 마이크 권한 상태: {{state}}", statusApiUnavailable: "이 런타임에서는 마이크 상태 API를 사용할 수 없습니다. 접근을 확인하려면 요청을 사용하세요.", queryFailed: "마이크 상태를 조회하지 못했습니다: {{message}}", captureUnavailable: "이 환경에서는 마이크 캡처를 사용할 수 없습니다.", permissionApiUnavailable: "권한 상태 API를 사용할 수 없습니다. 접근을 확인하려면 요청을 사용하세요.", requestsWebOnly: "데스크톱 마이크 요청은 웹 런타임에서만 사용할 수 있습니다.", captureApiUnavailable: "이 환경에서는 마이크 캡처 API를 사용할 수 없습니다.", requestDenied: "사용자 또는 시스템에 의해 마이크 권한이 거부되었습니다.", noDevice: "마이크 장치를 찾을 수 없습니다.", requestFailed: "마이크 권한을 요청하지 못했습니다: {{message}}", }, empty: { notifications: "알림 상태를 아직 확인하지 않았습니다.", microphone: "마이크 상태를 아직 확인하지 않았습니다.", }, testNotification: { title: "Paseo 알림 테스트", body: "이 메시지가 보이면 데스크톱 알림이 작동하는 것입니다.", notDelivered: "알림이 전달되지 않았습니다. 시스템 설정 > 알림을 확인하세요.", failed: "알림을 보내지 못했습니다.", }, }, integrations: { cli: { statusFailed: "CLI 설치 상태를 확인할 수 없습니다.", installFailed: "Paseo CLI를 설치할 수 없습니다.", }, }, }, rootError: { title: "Paseo에 문제가 발생했습니다.", body: "앱을 다시 로드해 보세요. 이런 일이 계속 발생하면 신고할 때 아래 세부정보를 포함하세요.", details: "세부", }, startup: { errorTitle: "문제가 발생했습니다", errorDescription: "로컬 서버를 시작하지 못했습니다. 이 문제가 계속되면 아래 로그를 포함하여 GitHub에 문제를 보고해 주세요.", logs: { loading: "데몬 로그 불러오는 중...", unavailable: "사용 가능한 데몬 로그가 없습니다.", loadFailed: "데몬 로그를 불러올 수 없습니다: {{message}}", }, }, openProject: { tiles: { addProject: { title: "프로젝트 추가", description: "내 컴퓨터의 폴더를 엽니다", }, importSession: { title: "세션 가져오기", description: "최근 외부 CLI 세션을 가져옵니다", }, setupProviders: { title: "프로바이더 설정", description: "Claude Code, Codex 등을 구성합니다", }, pairDevice: { title: "기기 페어링", description: "휴대폰을 이 데몬에 연결합니다", }, }, }, projectPicker: { placeholder: "검색할 내용을 입력하세요...", browse: "찾아보기…", opening: "프로젝트 여는 중...", searching: "검색 중...", empty: "경로를 입력하기 시작하세요", errors: { directory_not_found: "디렉터리를 찾을 수 없습니다.", open_failed: "프로젝트를 열 수 없습니다.", }, openPath: "경로 열기", }, branchSwitcher: { triggerTooltip: "워크스페이스 브랜치 전환", currentBranch: "현재 브랜치: {{branchName}}. 브랜치를 전환하려면 누르세요.", placeholder: "브랜치 전환...", searchPlaceholder: "브랜치 필터...", empty: "브랜치를 찾을 수 없습니다.", title: "브랜치 전환", uncommittedTitle: "커밋되지 않은 변경 사항", uncommittedMessage: "커밋되지 않은 변경 사항이 있습니다. 브랜치를 전환하기 전에 스태시할까요?", stashAndSwitch: "스태시 후 전환", failedToStash: "변경 사항을 스태시하지 못했습니다", failedToSwitch: "브랜치를 전환하지 못했습니다", restoreStashTitle: "스태시된 변경 사항을 복원할까요?", restoreStashMessage: "이 브랜치에는 이전 세션에서 스태시된 변경 사항이 있습니다. 복원하시겠습니까?", restore: "복원", later: "나중에", stashRestored: "스태시된 변경 사항이 복원되었습니다", }, agentAutocomplete: { searchingWorkspace: "워크스페이스 검색 중...", loadingCommands: "명령 불러오는 중...", noFiles: "파일 또는 디렉터리를 찾을 수 없습니다", noCommands: "명령을 찾을 수 없습니다", failedToLoad: "불러오지 못했습니다", }, loadOlderHistory: { failed: "이전 기록을 불러올 수 없습니다", }, imageAttachmentPicker: { permissionTitle: "권한 필요", permissionMessage: "이미지를 첨부하려면 사진 라이브러리 접근을 허용해 주세요.", errorTitle: "오류", failedToSelect: "이미지를 선택하지 못했습니다", dialogTitle: "이미지 첨부", dialogFilterName: "이미지", }, workspaceSetup: { title: "워크스페이스 생성", errors: { failedCreateWorktree: "워크트리를 생성하지 못했습니다", failedOpenProject: "프로젝트를 열지 못했습니다", selectModel: "모델을 선택하세요", hostDisconnected: "호스트가 연결되어 있지 않습니다", pendingRequired: "대기 중인 워크스페이스 설정이 없습니다", composerStateRequired: "워크스페이스 설정 작성기 상태가 필요합니다", }, }, onboarding: { title: "Paseo에 오신 것을 환영합니다", subtitle: "시작하려면 컴퓨터를 연결하세요", actions: { settings: "설정", }, }, modelSelector: { title: "프로바이더 선택", selectModel: "모델 선택", selectedModel: "모델 선택 ({{model}})", loading: "불러오는 중...", loadingShort: "불러오는 중", loadingSelector: "모델 선택기 불러오는 중...", error: "오류", defaultModel: "기본값", profiles: "프로필", providers: "제공자", model: "모델", editProfiles: "편집", editProfilesLabel: "에이전트 프로필 편집", createProfile: "프로필 만들기", createProfileFromModel: "이 모델에서 프로필 만들기", editProfileLabel: "{{name}} 편집", editProfilesCount: "프로필 편집 ({{count}})", modelCount: "모델 {{count}}개", modelCountPlural: "모델 {{count}}개", retry: "다시 시도", retrying: "다시 시도 중...", noMatches: "검색과 일치하는 모델이 없습니다", noMatchesForQuery: '"{{query}}"과(와) 일치하는 모델이 없습니다', searchAllPlaceholder: "모든 모델 검색...", searchPlaceholder: "모델 검색...", openProviderSettings: "{{provider}} 설정 열기", }, providerCatalog: { title: "프로바이더 추가", search: "프로바이더 검색", noProviders: "프로바이더를 찾을 수 없습니다", actions: { add: "추가", adding: "추가 중", installed: "설치됨", cancel: "취소", installInstructions: "설치 안내", installInstructionsFor: "{{provider}} 설치 안내", }, errors: { unableToInstall: "프로바이더를 설치할 수 없습니다", }, }, providerSelection: { defaultModel: "기본값", selectModel: "모델 선택", loading: "불러오는 중...", error: "오류", unavailable: "사용 불가", unknownError: "알 수 없는 오류", readiness: { initialPromptRequired: "초기 프롬프트가 필요합니다", noProviders: "선택한 호스트에 사용 가능한 프로바이더가 없습니다", modelDefaultsLoading: "모델 기본값을 아직 불러오는 중입니다", noModelAvailable: "선택한 프로바이더에 사용 가능한 모델이 없습니다", workspaceDirectoryNotFound: "워크스페이스 디렉터리를 찾을 수 없습니다", hostDisconnected: "호스트가 연결되어 있지 않습니다", }, }, pairing: { connectionMethods: { title: "연결 추가", direct: { title: "직접 연결", description: "로컬 네트워크 또는 VPN.", }, scanQr: { title: "QR 코드 스캔", description: "암호화된 릴레이 연결.", }, pasteLink: { title: "페어링 링크 붙여넣기", description: "암호화된 릴레이 연결.", }, }, direct: { title: "직접 연결", helper: "Paseo 서버의 주소를 입력하세요.", fields: { host: "호스트", port: "포트", password: "비밀번호", optional: "선택 사항", useSsl: "SSL 사용", connectionUri: "연결 URI", }, advanced: { label: "고급", show: "고급 표시", hide: "고급 숨기기", }, passwordVisibility: { show: "비밀번호 표시", hide: "비밀번호 숨기기", }, actions: { cancel: "취소", connect: "연결", connecting: "연결 중...", }, errors: { hostRequired: "호스트를 입력하세요", invalidPort: "포트는 1에서 65535 사이여야 합니다", invalidConnection: "잘못된 연결", failedTitle: "연결 실패", failedToConnect: "{{endpoint}}에 연결하지 못했습니다.", noAdditionalDetails: "{{detail}} (추가 세부 정보 없음)", timedOut: "연결 시간이 초과되었습니다. 호스트/포트와 네트워크를 확인하세요.", refused: "연결이 거부되었습니다. 이 주소에서 서버가 실행 중입니까?", hostNotFound: "호스트를 찾을 수 없습니다. 호스트 이름을 확인하고 다시 시도하세요.", hostUnreachable: "호스트에 연결할 수 없습니다. 네트워크와 방화벽을 확인하세요.", tlsError: "TLS 오류. 직접 연결은 데몬 앞에 TLS 종단 장치가 있을 때만 SSL을 사용합니다.", unableToConnect: "연결할 수 없습니다. 호스트/포트와 데몬에 접근 가능한지 확인하세요.", details: "세부 정보: {{detail}}", }, }, link: { title: "페어링 링크 붙여넣기", helper: "서버에서 받은 페어링 링크를 붙여넣으세요.", label: "페어링 링크", errors: { required: "페어링 링크를 붙여넣으세요 (.../#offer=...)", missingOffer: "링크에 #offer=...가 포함되어야 합니다", emptyOffer: "Offer 페이로드가 비어 있습니다", invalid: "잘못된 페어링 링크", unableToPair: "호스트를 페어링할 수 없습니다", }, alert: { failedTitle: "페어링 실패", }, actions: { cancel: "취소", pair: "페어링", pairing: "페어링 중...", }, }, scan: { title: "QR 스캔", webUnavailableTitle: "웹에서 사용할 수 없습니다", webUnavailableBody: '웹 빌드에서는 QR 스캔이 지원되지 않습니다. 대신 "링크 붙여넣기"를 사용하세요.', backToSettings: "설정으로 돌아가기", cameraPermissionTitle: "카메라 권한", cameraPermissionBody: "데몬에서 페어링 QR 코드를 스캔하려면 카메라 접근을 허용하세요.", grantPermission: "권한 허용", pairing: "페어링 중...", unableToPair: "호스트를 페어링할 수 없습니다", errorTitle: "오류", }, device: { loadingOffer: "페어링 정보 불러오는 중...", failedToLoadOffer: "페어링 정보를 불러오지 못했습니다.", relayDisabled: "릴레이가 활성화되어 있지 않습니다. 기기를 페어링하려면 릴레이를 활성화하세요.", enableTitle: "릴레이를 활성화하시겠습니까?", enableDescription: "릴레이를 사용하면 이 장치를 어디에서나 연결할 수 있습니다. 페어링 트래픽은 종단 간 암호화됩니다.", relayDocs: "릴레이 작동 방식", relayDocsAccessibility: "Paseo 릴레이 작동 방식 읽기", enableRelay: "릴레이 활성화", enablingRelay: "활성화 중...", notNow: "지금은 아님", directConnectionHint: "릴레이 없이 TCP, Tailscale 또는 다른 VPN을 통해 직접 연결하세요. QR 코드가 생성되지 않습니다.", updateRequired: "Paseo 데스크톱에서 릴레이를 활성화하려면 호스트를 업데이트하세요.", unavailable: "페어링 정보를 사용할 수 없습니다.", hint: "휴대폰의 Paseo로 이 QR 코드를 스캔하거나 아래 링크를 복사하세요.", qrUnavailable: "QR 코드를 사용할 수 없습니다.", qrAccessibility: "페어링 QR 코드", retry: "다시 시도", copy: "복사", copied: "복사됨", }, }, realtimeVoice: { actions: { mute: "실시간 음성 음소거", unmute: "실시간 음성 음소거 해제", stop: "실시간 음성 중지 및 턴 중단", }, }, rewind: { tooltip: "이 메시지로 되감기", warning: "이 작업은 되돌릴 수 없습니다", actions: { conversation: "대화 되감기", files: "파일 되감기", both: "대화와 파일 되감기", }, errors: { failed: "에이전트를 되감지 못했습니다", }, }, diffViewer: { empty: "표시할 변경 사항이 없습니다", }, serviceUrl: { title: "서비스 URL 열기", message: "{{url}}을(를) 열까요?", inPaseo: "Paseo에서", externalBrowser: "외부 브라우저", dontAskAgain: "다시 묻지 않기", }, downloads: { requestTokenFailed: "다운로드 토큰을 요청하지 못했습니다.", hostUnavailable: "다운로드 호스트를 사용할 수 없습니다.", cancelled: "다운로드가 취소되었습니다.", failed: "파일을 다운로드하지 못했습니다.", shareFile: "파일 공유", shareFileNamed: "{{fileName}} 공유", }, menu: { backdrop: "메뉴 배경", }, subagents: { title: "하위 에이전트", pillLabelOne: "하위 에이전트 1개", pillLabelMany: "하위 에이전트 {{count}}개", pillLabelWorking: "{{count}}개 실행 중", pillLabelFailed: "{{count}}개 실패", pillLabelNeedsInputOne: "1개 입력 필요", pillLabelNeedsInputMany: "{{count}}개 입력 필요", pillLabelReadyToReview: "{{count}}개 검토 대기", detachAction: "{{label}} 분리", detachTooltip: "하위 에이전트 분리", archiveAction: "{{label}} 보관", archiveTooltip: "서브에이전트 보관", archiveFinishedAction: "완료된 하위 에이전트 보관", archiveFinishedRetry: "다시 시도 ({{failed}}/{{total}})", }, panels: { draft: { newAgent: "새 에이전트", creatingAgent: "에이전트 생성 중", }, file: { directoryMissing: "워크스페이스 디렉터리를 찾을 수 없습니다.", loading: "파일 불러오는 중...", noPreview: "사용 가능한 미리보기가 없습니다", binaryPreviewUnavailable: "바이너리 미리보기를 사용할 수 없습니다", failedToLoad: "파일을 불러오지 못했습니다", failedToLoadPreview: "파일 미리보기를 불러오지 못했습니다", editor: { fileSize: "파일 크기 {{size}}", lines: "{{count}} 라인", editorStatus: "편집기 상태 {{status}}", unsavedChanges: "저장되지 않은 변경사항", saving: "저장 중...", saveFailed: "저장 실패", changedOnDisk: "디스크에서 변경됨", vimMode: "Vim 모드 {{mode}}", cursor: "{{line}} 라인, {{column}} 열", preview: "미리보기", source: "소스", deletedTitle: "디스크에서 파일이 삭제되었습니다.", checkFailedTitle: "디스크의 파일을 확인할 수 없습니다.", preservedDescription: "열린 복사본은 보존됩니다.", conflictDescription: "로컬 버퍼가 보존되었습니다. 유지할 버전을 선택하세요.", overwrite: "덮어쓰기", reload: "새로고침", reloadTitle: "디스크에서 다시 로드하시겠습니까?", reloadMessage: "로컬 변경사항이 손실됩니다.", }, }, files: { label: "파일", subtitle: "워크스페이스 파일", tooltip: "워크스페이스 파일 탐색", }, pullRequest: { label: "풀 리퀘스트", subtitle: "풀 리퀘스트 세부 정보", emptyTitle: "아직 풀 리퀘스트가 없습니다", emptyDescription: "이 체크아웃에 풀 리퀘스트를 만들면 세부 정보가 여기에 표시됩니다.", }, diff: { changesLabel: "변경 사항", changesSubtitle: "작업 트리 diff", commitSubtitle: "커밋 diff", uncommittedSubtitle: "커밋되지 않은 변경 사항", baseSubtitle: "{{baseRef}}와 비교", directoryMissing: "워크스페이스 디렉터리를 찾을 수 없습니다.", empty: "변경사항 없음", loadError: "Diff를 불러오지 못했습니다.", capabilityMissing: "커밋 diff를 보려면 호스트를 업데이트하세요.", }, }, toolCallDetails: { error: "오류", empty: "추가 세부 정보가 없습니다", subAgentActivity: "서브에이전트 활동", input: "입력", output: "출력", }, toolCallGroup: { editedFiles: { one: "{{count}} 파일을 편집했습니다.", other: "{{count}} 파일을 편집했습니다.", }, commands: { one: "{{count}} 명령을 실행했습니다.", other: "{{count}} 명령을 실행했습니다.", }, readFiles: { one: "파일 {{count}}개 읽음", other: "파일 {{count}}개 읽음", }, searches: { one: "{{count}}회 검색함", other: "{{count}}회 검색함", }, otherTools: { one: "기타 도구 {{count}}개 사용함", other: "기타 도구 {{count}}개 사용함", }, paseoCalls: { one: "Paseo를 {{count}}회 호출함", other: "Paseo를 {{count}}회 호출함", }, and: "그리고", }, renameModal: { rename: "이름 변경", saving: "저장하는 중...", }, sidebarCallout: { dismiss: "닫기", }, contextWindow: { title: "컨텍스트 윈도우", used: "{{percentage}}% 사용됨", tokens: "{{used}} / {{max}} 토큰", sessionCost: "세션 비용 {{cost}}", accessibility: "컨텍스트 윈도우 {{percentage}}% 사용됨", }, review: { comment: { add: "리뷰 댓글 추가", edit: "리뷰 댓글 편집", delete: "리뷰 댓글 삭제", label: "리뷰 댓글", placeholder: "댓글을 남기세요", cancel: "취소", cancelAccessibility: "리뷰 댓글 취소", save: "댓글", saveAccessibility: "리뷰 댓글 저장", }, }, settings: { title: "설정", loading: "설정 불러오는 중...", groups: { app: "앱", host: "호스트", }, hostPicker: { switchHost: "호스트 전환", local: "로컬", }, backToWorkspace: "뒤로", addHost: "호스트 추가", enableBuiltInDaemon: "내장 데몬 활성화", projects: "프로젝트", projectList: { hostLoadFailed: "{{hostName}} 호스트에서 프로젝트를 불러올 수 없습니다: {{message}}", editProject: "{{projectName}} 편집", }, groupInfo: "{{title}} 정보", sections: { general: "일반", appearance: "모양", editor: "편집기", shortcuts: "단축키", integrations: "통합", notifications: "알림", permissions: "권한", diagnostics: "진단", about: "정보", }, editor: { title: "편집기", vimKeybindings: "Vim 키 바인딩", vimHint: "웹 및 데스크톱의 소스 파일에 적용됩니다.", }, notifications: { title: "알림", permission: "알림 권한", refreshAccessibility: "알림 권한 새로 고침", playSound: "소리 재생", playSoundHint: "데스크톱 알림이 도착하면 소리를 재생합니다", test: "알림 테스트", testHint: "현재 설정으로 테스트 알림을 보냅니다", permissionRequired: "테스트하기 전에 알림 접근을 허용하세요", send: "보내기", sending: "보내는 중...", sentTitle: "테스트 알림을 보냈습니다", sentDescription: "Paseo가 알림을 운영 체제에 전달했습니다.", sendFailedTitle: "테스트 알림을 보낼 수 없음", }, hostSections: { projects: "프로젝트", connections: "연결", agents: "에이전트", metadata: "메타데이터", workspaces: "워크스페이스", providers: "프로바이더", usage: "사용량", terminals: "터미널", plugins: "플러그인", host: "개요", }, plugins: pluginSettings.ko, metadataGeneration: { title: "메타데이터 생성", description: "워크스페이스 제목, 브랜치 이름, 커밋 메시지 및 풀 리퀘스트 초안에 사용할 모델을 선택하세요", selection: "모델 선택", automatic: "자동", preferred: "수동", automaticHint: "Paseo가 사용 가능한 빠른 모델을 선택합니다", preferredHint: "Paseo에서 사용할 모델을 선택하세요", model: "모델", fallbackHint: "사용할 수 없으면 Paseo가 다른 사용 가능한 모델을 사용합니다", docs: "문서", saveError: "메타데이터 생성을 업데이트할 수 없습니다", }, general: { title: "일반", browserData: { title: "브라우저 데이터", siteData: "쿠키 및 사이트 데이터", description: "브라우저 탭은 Paseo 전체에서 로그인 및 사이트 데이터를 공유합니다.", clear: "브라우저 데이터 지우기", clearing: "삭제 중...", confirmTitle: "브라우저 데이터를 삭제하시겠습니까?", confirmMessage: "사이트가 로그아웃되고 열려 있는 브라우저 탭이 다시 로드됩니다.", success: "브라우저 데이터가 삭제되었습니다.", error: "브라우저 데이터를 삭제할 수 없습니다.", }, defaultSend: { label: "기본 전송", descriptions: { interrupt: "에이전트가 실행 중일 때 Enter는 중단합니다. Command/Ctrl+Enter는 대기열에 추가합니다.", steer: "에이전트가 실행 중일 때 Enter는 현재 턴에 지시합니다. Command/Ctrl+Enter는 대기열에 추가합니다.", queue: "에이전트가 실행 중일 때 Enter는 대기열에 추가합니다. Command/Ctrl+Enter는 제출합니다.", }, options: { interrupt: "중단", steer: "지시", queue: "대기열", }, }, serviceUrls: { label: "서비스 URL", description: "실행 중인 스크립트의 URL을 열 위치", options: { ask: "물어보기", inApp: "Paseo에서", external: "외부 브라우저", }, }, terminalScrollback: { label: "터미널 스크롤백", description: "내장 터미널 버퍼에 보관되는 줄 수", accessibilityLabel: "터미널 스크롤백 줄 수", }, autoExpandReasoning: { label: "추론 항상 펼치기", description: "에이전트의 사고 및 추론 블록을 기본적으로 모두 펼쳐 표시합니다.", }, toolCallDetail: { label: "도구 호출 표시", description: "타임라인에 도구 호출이 표시되는 방식", accessibilityLabel: "도구 호출 표시 선택({{value}})", options: { overview: "요약", detailed: "전체 세부정보", }, }, language: { label: "언어", description: "앱 언어", options: { system: "시스템", ar: "العربية", en: "English", es: "Español", fr: "Français", ja: "일본어", ko: "한국어", ptBR: "브라질 포르투갈어", ru: "Русский", zhCN: "简体中文", }, }, }, diagnostics: { title: "진단", legacyTerminalRenderer: { label: "레거시 터미널 렌더러 사용", description: "터미널을 다시 열 때 이전 WebView 터미널을 사용합니다.", accessibilityLabel: "레거시 터미널 렌더러 사용", }, testAudio: "오디오 테스트", playTest: "테스트 재생", playing: "재생 중...", playbackFailed: "재생 실패: {{message}}", app: { title: "앱 진단", rowTitle: "앱 진단", rowHint: "연결, 데몬, 프로바이더, 데스크톱 및 로그 세부 정보를 수집합니다.", run: "실행", running: "진단 실행 중...", copyLabel: "진단", copyAccessibility: "진단 복사", copyFailed: "진단을 복사하지 못했습니다.", refreshAccessibility: "진단 새로 고침", refreshingAccessibility: "진단 새로고침", progress: { client: "클라이언트", desktop: "데스크톱", }, }, }, about: { title: "정보", appVersion: "앱 버전", thisDevice: "이 기기", connectedHosts: "연결된 호스트", offline: "오프라인", versionDiffers: "이 기기와 버전이 다릅니다", releaseChannel: { label: "릴리스 채널", description: "Beta로 전환하면 업데이트를 더 빨리 받고 개선에 참여할 수 있습니다", stable: "안정", beta: "베타", }, updates: { label: "앱 업데이트", readyToInstall: "설치 준비됨: {{version}}", installTitle: "데스크톱 업데이트 설치", installMessage: "이 컴퓨터의 Paseo를 업데이트합니다", installConfirm: "업데이트 설치", update: "업데이트", updateTo: "{{version}}(으)로 업데이트", installing: "설치 중...", check: "확인", checking: "확인 중...", alertTitle: "오류", alertMessage: "업데이트 확인 대화 상자를 열 수 없습니다.", }, }, appearance: { theme: { title: "테마", accessibilityLabel: "테마: {{value}}", options: { light: "라이트", dark: "다크", zinc: "Zinc", midnight: "Midnight", claude: "Claude", ghostty: "Ghostty", pureBlack: "순수 검정", auto: "시스템", }, }, detailLevel: { title: "세부 수준", }, chatOutline: { title: "채팅 개요", description: "프롬프트 사이를 이동하기 위한 개요 표시", }, fonts: { title: "글꼴", systemDefault: "시스템 기본값", interfaceFont: "인터페이스 글꼴", interfaceFontHint: "앱 전체에 사용됩니다. 시스템 기본값을 사용하려면 비워 두세요", interfaceFontAccessibility: "인터페이스 글꼴 패밀리", baseSize: "기본 크기", baseSizeAccessibility: "기본 글꼴 크기", codeFont: "코드 글꼴", codeFontHint: "코드, diff, 터미널 출력에 사용됩니다. 시스템 기본값을 사용하려면 비워 두세요", codeFontAccessibility: "코드 글꼴 패밀리", codeSize: "코드 크기", codeSizeAccessibility: "코드 글꼴 크기", }, syntax: { title: "구문", highlightTheme: "강조 테마", highlightThemeHint: "앱 테마와 독립적인 코드 색상", highlightThemeAccessibility: "강조 테마: {{value}}", previewAccessibility: "구문 테마와 코드 글꼴의 실시간 미리보기", }, }, shortcuts: { dialogTitle: "단축키", searchPlaceholder: "검색 단축키", unavailableOnMobile: "키보드 단축키는 데스크톱에서만 사용할 수 있습니다", capturePrompt: "단축키를 누르세요...", unassigned: "설정되지 않음", actions: { menu: "{{name}} 작업", done: "완료", cancel: "취소", bind: "지정", rebind: "다시 지정", clear: "지우기", reset: "기본값으로 재설정", resetAll: "모두 재설정", }, sections: { general: "일반", workspaces: "프로젝트 및 워크스페이스", tabsPanes: "탭 및 창", layout: "레이아웃", agentInput: "에이전트 입력", }, help: { openProject: "프로젝트 열기", newWorkspace: "새 워크스페이스", newWorktree: "새 워크트리", archiveWorkspace: "워크스페이스 보관", newTab: "새 탭", closeCurrentTab: "현재 탭 닫기", jumpToWorkspace: "워크스페이스로 이동", jumpToTab: "탭으로 이동", previousWorkspace: "이전 워크스페이스", nextWorkspace: "다음 워크스페이스", previousTab: "이전 탭", nextTab: "다음 탭", splitPaneRight: "창을 오른쪽으로 분할", splitPaneDown: "창을 아래로 분할", focusPaneLeft: "왼쪽 창에 포커스", focusPaneRight: "오른쪽 창에 포커스", focusPaneUp: "위쪽 창에 포커스", focusPaneDown: "아래쪽 창에 포커스", moveTabLeft: "탭을 왼쪽으로 이동", moveTabRight: "탭을 오른쪽으로 이동", moveTabUp: "탭을 위로 이동", moveTabDown: "탭을 아래로 이동", closePane: "창 닫기", newTerminal: "새 터미널", searchFiles: "파일 검색", toggleCommandCenter: "명령 센터 토글", showKeyboardShortcuts: "키보드 단축키 표시", toggleLeftSidebar: "왼쪽 사이드바 토글", toggleRightSidebar: "오른쪽 사이드바 토글", toggleBothSidebars: "양쪽 사이드바 토글", toggleSettings: "설정 토글", toggleFocusMode: "집중 모드 토글", toggleExplorerPaneMaximization: "탐색기 창 최대화 전환", cycleTheme: "테마 순환", focusMessageInput: "메시지 입력란에 포커스", cycleAgentMode: "에이전트 모드 전환", toggleVoiceMode: "음성 모드 토글", startStopDictation: "받아쓰기 시작/중지", interruptAgent: "에이전트 중단", sendMessage: "메시지 보내기", queueMessage: "메시지 대기열에 추가", muteUnmuteVoiceMode: "음성 모드 음소거/해제", switchProject: "프로젝트 전환", }, helpNotes: { showKeyboardShortcuts: "포커스가 텍스트 필드나 터미널에 있지 않을 때 사용할 수 있습니다.", }, }, integrations: { title: "통합", docs: { cli: "CLI 문서", openCli: "CLI 문서 열기", }, commandLine: { title: "명령줄", description: "터미널에서 에이전트를 제어하고 스크립팅합니다", }, actions: { install: "설치", installing: "설치 중...", installed: "설치됨", }, }, permissions: { title: "권한", microphone: "마이크", refresh: "새로고침", refreshing: "새로고침 중...", refreshAccessibility: "데스크톱 권한 새로고침", actions: { granted: "허용됨", request: "요청", requesting: "요청 중...", }, }, host: { appearance: { title: "모양", name: { label: "이름", }, color: { label: "색상", accessibilityLabel: "색상, {{value}}", options: { none: "기본", violet: "보라색", sky: "하늘", emerald: "에메랄드", orange: "주황색", pink: "분홍색", indigo: "남색", teal: "청록색", red: "빨간색", amber: "호박색", blue: "파란색", }, }, badge: { label: "사이드바 배지", accessibilityLabel: "사이드바 배지, {{value}}", options: { name: "이름", icon: "아이콘만", hidden: "숨겨진", }, }, preview: { workspaceName: "내-워크스페이스", }, }, notFound: "호스트를 찾을 수 없습니다", badges: { relay: "릴레이", local: "로컬", }, connections: { title: "연결", removeTitle: "연결 제거", removeMessage: "{{name}}을(를) 제거할까요? 되돌릴 수 없습니다.", removeAction: "제거", removeErrorTitle: "오류", removeErrorMessage: "연결을 제거할 수 없습니다", timeout: "시간 초과", }, pairDevices: { title: "기기 페어링", rowTitle: "기기 페어링", rowHint: "QR 코드를 스캔하거나 링크를 복사하여 휴대폰을 이 호스트에 연결하세요", }, skills: { ...en.settings.host.skills, sectionTitle: "오케스트레이션 스킬", title: "오케스트레이션 스킬", description: "CLI를 통해 에이전트가 오케스트레이션하도록 가르칩니다", updateAvailable: "업데이트 사용 가능", updateTitle: "Paseo 스킬을 업데이트할까요?", updateFallback: "번들된 스킬을 내 컴퓨터에 동기화합니다.", uninstallTitle: "Paseo 스킬을 제거할까요?", uninstallMessage: "~/.agents, ~/.claude, ~/.codex에서 모든 Paseo 오케스트레이션 스킬을 제거합니다.", choose: "스킬 선택", chooseAll: "모든 스킬", chooseAllHint: "나중에 추가되는 항목을 포함하여 모든 번들 스킬을 설치된 상태로 유지합니다.", chooseList: "번들 스킬", chooseEmpty: "이 빌드에는 번들 스킬이 없습니다.", removeTitle: "선택 해제한 스킬을 제거할까요?", removeMessage: "{{skills}}는 ~/.agents, ~/.claude 및 ~/.codex에서 삭제됩니다. 해당 스킬 폴더 안에 추가한 모든 항목도 삭제됩니다.", saveFailed: "선택한 스킬을 저장하지 못했습니다.", statusFailed: "오케스트레이션 스킬 상태를 확인할 수 없습니다.", updateFailed: "오케스트레이션 스킬을 업데이트할 수 없습니다.", uninstallFailed: "오케스트레이션 스킬을 제거할 수 없습니다.", saveSelectionFailed: "오케스트레이션 스킬 선택을 저장하지 못했습니다.", actions: { install: "설치", installing: "설치 중...", installed: "설치됨", update: "업데이트", working: "작업 중...", remove: "제거", uninstall: "제거", save: "저장", saving: "저장 중...", cancel: "취소", }, operations: { add: "스킬 추가", update: "스킬 업데이트", delete: "스킬 삭제", }, }, orchestration: { title: "오케스트레이션", unavailable: "오케스트레이션을 관리하려면 이 호스트에 연결하세요", enableTools: { title: "Paseo 도구 활성화", hint: "에이전트가 워크트리, 에이전트, 일정을 관리할 수 있습니다", accessibilityLabel: "Paseo 도구 주입", }, systemPrompt: { title: "시스템 프롬프트", hint: "모든 에이전트에 시스템 프롬프트를 추가합니다", sheetTitle: "시스템 프롬프트 추가", accessibilityLabel: "시스템 프롬프트 추가", placeholder: "항상 답변을 간결하게 유지하세요.", edit: "편집", reset: "재설정", save: "저장", saving: "저장하는 중...", }, }, agents: { unavailable: "에이전트를 관리하려면 이 호스트에 연결하세요", }, workspaces: { unavailable: "워크스페이스를 관리하려면 이 호스트에 연결하세요", }, terminalProfiles: { unavailable: "터미널 프로필을 관리하려면 이 호스트에 연결하세요", sectionTitle: "터미널 프로필", editProfile: "프로필 편집", addProfileTitle: "터미널 프로필 추가", editProfileTitle: "터미널 프로필 편집", namePlaceholder: "Claude Code", commandPlaceholder: "claude", argsPlaceholder: "--dangerously-skip-permissions", nameLabel: "이름", commandLabel: "명령", argsLabel: "인수", nameRequired: "이름을 입력하세요", commandRequired: "명령을 입력하세요", argsHint: "명령에 전달되는 공백으로 구분된 인수", saving: "저장하는 중...", remove: "제거", removeConfirmTitle: "프로필을 제거할까요?", removeConfirmMessage: '"{{name}}"을(를) 제거할까요?', moveUp: "위로 이동", moveDown: "아래로 이동", save: "저장", emptyState: "아직 프로필이 없습니다. 특정 명령으로 터미널을 실행하려면 하나 추가하세요.", }, agentProfiles: { sectionTitle: "에이전트 프로필", unavailable: "에이전트 프로필을 관리하려면 이 호스트에 연결하세요", unsupported: "이 호스트에서 실행 중인 데몬은 아직 에이전트 프로필을 지원하지 않습니다", emptyState: "아직 프로필이 없습니다. 저장된 프로바이더와 모델로 에이전트를 시작하려면 하나 추가하세요.", addProfileTitle: "에이전트 프로필 추가", newProfile: "새 프로필", editProfile: "프로필 편집", editProfileTitle: "에이전트 프로필 편집", nameLabel: "이름", namePlaceholder: "UI 작업", iconLabel: "아이콘", noIcon: "없음", providerLabel: "프로바이더", providerPlaceholder: "프로바이더 선택", noProviders: "이 호스트에서 사용 가능한 프로바이더가 없습니다", modelLabel: "모델", noModels: "이 프로바이더에는 선택할 수 있는 모델이 없습니다", modeLabel: "모드", noModes: "이 프로바이더에는 선택할 수 있는 모드가 없습니다", thinkingLabel: "사고", noThinkingOptions: "이 모델에는 사고 수준이 없습니다", featuresLabel: "기능", featureCount: "기능 {{count}}개", featureCountOne: "기능 {{count}}개", notesLabel: "에이전트를 위한 메모", notesPlaceholder: "UI 작업에 사용 — 컴포넌트, 레이아웃, 디자인 토큰.", notesHint: "list_profiles MCP 도구가 반환합니다. 다른 에이전트에게 전달할 지침으로 작성하세요.", save: "저장", saving: "저장하는 중...", remove: "제거", removeConfirmTitle: "프로필을 제거할까요?", removeConfirmMessage: '"{{name}}"을(를) 제거할까요?', moveUp: "위로 이동", moveDown: "아래로 이동", }, daemon: { rename: { editLabel: "레이블 편집", title: "호스트 이름 변경", placeholder: "내 호스트", submit: "이름 변경", }, restart: { title: "데몬 재시작", hint: "데몬 프로세스를 재시작합니다. 앱이 자동으로 다시 연결됩니다", confirm: "재시작", confirmTitle: "{{name}} 재시작", confirmMessage: "데몬을 재시작합니다. 데몬에서 실행 중인 에이전트는 계속 동작하며 앱이 자동으로 다시 연결됩니다.", restarting: "재시작 중...", unableToReconnectTitle: "다시 연결할 수 없습니다", unableToReconnectMessage: "{{name}}이(가) 다시 온라인 상태가 되지 않았습니다. 재시작되었는지 확인하세요.", unavailableTitle: "호스트를 사용할 수 없습니다", unavailableMessage: "이 호스트는 연결되어 있지 않습니다. 재시작하기 전에 온라인 상태가 될 때까지 기다리세요.", offlineTitle: "호스트 오프라인", offlineMessage: "이 호스트는 오프라인입니다. Paseo가 자동으로 다시 연결하므로 다시 온라인이 될 때까지 기다린 후 재시작하세요.", requestFailedTitle: "오류", requestFailedMessage: "재시작 요청을 보내지 못했습니다. Paseo가 자동으로 다시 연결하므로 호스트가 온라인으로 표시되면 다시 시도하세요.", dialogFailedMessage: "재시작 확인 대화 상자를 열 수 없습니다.", }, update: { desktopManagedHint: "이 데몬은 Paseo Desktop에서 관리됩니다. 호스트에서 Paseo 데스크톱을 업데이트합니다.", title: "데몬 업데이트", hint: "데몬을 최신 버전으로 업데이트하고 다시 시작하세요.", confirm: "업데이트", confirmTitle: "{{name}} 업데이트", confirmMessage: "그러면 데몬이 최신 버전으로 업데이트되고 다시 시작됩니다. 실행 중인 에이전트가 잠시 중단됩니다.", updating: "업데이트 중...", phaseStarting: "업데이트 준비 중...", phaseDownloading: "패키지 다운로드 중...", phaseInstalling: "설치 중...", phaseComplete: "업데이트 완료, 다시 시작 중...", unableToReconnectTitle: "다시 연결할 수 없습니다.", unableToReconnectMessage: "업데이트 후 {{name}}가 다시 온라인 상태로 돌아오지 않았습니다. 데몬이 다시 시작되었는지 확인하세요.", unavailableTitle: "호스트를 사용할 수 없습니다", unavailableMessage: "이 호스트는 연결되어 있지 않습니다. 업데이트하기 전에 온라인 상태가 될 때까지 기다리십시오.", offlineTitle: "호스트 오프라인", offlineMessage: "이 호스트는 오프라인 상태입니다. 업데이트하기 전에 다시 온라인 상태가 될 때까지 기다리십시오.", requestFailedTitle: "업데이트 실패", requestFailedMessage: "데몬 업데이트 실패: {{error}}", dialogFailedMessage: "업데이트 확인 대화 상자를 열 수 없습니다.", }, dangerZone: "위험 구역", remove: { title: "호스트 제거", localTitle: "localhost 연결 제거", hint: "이 호스트와 저장된 연결을 이 기기에서 제거합니다", localHint: "이 기기에서 localhost를 제거하고 내장 데몬을 중지합니다", localConfirmTitle: "localhost 연결을 제거하고 데몬을 중지할까요?", confirmMessage: "{{name}}을(를) 제거할까요? 저장된 연결이 삭제됩니다.", localConfirmMessage: "localhost 연결을 제거하고, 내장 데몬 관리를 끄고, 관리되는 데몬을 중지합니다. 원격 호스트는 연결된 상태로 유지됩니다.", errorTitle: "오류", errorMessage: "호스트를 제거할 수 없습니다", localErrorMessage: "localhost 연결을 제거할 수 없습니다", }, }, }, providers: { title: "프로바이더", addProvider: "프로바이더 추가", providerDetails: "{{name}} 프로바이더 세부 정보", enableProvider: "{{name}} 활성화", unavailable: "프로바이더를 보려면 이 호스트에 연결하세요", loading: "불러오는 중...", addErrorTitle: "프로바이더를 추가할 수 없습니다", updateErrorTitle: "프로바이더를 업데이트할 수 없습니다", actions: { menu: "{{name}} 작업", remove: "프로바이더 제거", removing: "제거 중...", }, remove: { confirmTitle: "{{name}}를 제거하시겠습니까?", confirmMessage: "config.json에서 프로바이더 항목을 삭제합니다. 이 작업은 되돌릴 수 없습니다.", confirm: "제거", errorTitle: "프로바이더를 제거할 수 없습니다.", }, statuses: { disabled: "비활성화됨", loading: "불러오는 중", error: "오류", available: "사용 가능", notInstalled: "설치되지 않음", }, models: { one: "모델 1개", many: "모델 {{count}}개", addModel: "모델 추가", addCustomTitle: "사용자 지정 모델 추가", modelId: "모델 ID", modelIdPlaceholder: "예: openai/gpt-5", add: "추가", adding: "추가 중...", failedToSave: "모델을 저장하지 못했습니다", removeModel: "{{id}} 제거", searchPlaceholder: "모델 검색", loading: "모델 불러오는 중...", retry: "다시 시도", retrying: "다시 시도 중...", noSearchMatches: "검색과 일치하는 모델이 없습니다", noneDetected: "감지된 모델이 없습니다", discovered: "발견됨", custom: "사용자 지정 모델", updated: "{{time}} 업데이트됨", }, diagnostic: { title: "진단", button: "진단", refresh: "새로고침", refreshing: "새로고침 중...", copyLabel: "진단", copyAccessibility: "진단 복사", copyFailed: "진단을 복사하지 못했습니다.", refreshAccessibility: "진단 새로고침", refreshingAccessibility: "진단 새로고침 중", running: "진단 실행 중...", none: "사용 가능한 진단이 없습니다", failedToFetch: "진단을 가져오지 못했습니다", unknownError: "알 수 없는 오류", }, }, project: { noEditableTarget: "이 호스트에서는 이 프로젝트를 편집할 수 없습니다.", backToProjects: "프로젝트로 돌아가기", edit: { title: "프로젝트 편집", name: "이름", nameLabel: "프로젝트 이름", icon: "아이콘", chooseImage: "이미지 선택", useAutomatic: "자동 사용", imageUrl: "이미지 또는 웹사이트 URL", save: "변경사항 저장", savedToast: "프로젝트가 업데이트되었습니다.", }, readFailures: { invalidTitle: "paseo.json을 파싱할 수 없습니다", invalidDescription: "디스크의 파일을 수정한 후 다시 로드하세요.", missingTitle: "이 호스트에는 이 프로젝트가 없습니다", missingSingleHost: "선택한 호스트에 이 프로젝트의 기록이 없습니다.", transportTitle: "paseo.json을 불러올 수 없습니다", transportFallback: "호스트가 응답하지 않았습니다.", failedTitle: "paseo.json을 불러올 수 없습니다", failedDescription: "다시 로드하여 재시도하세요.", }, worktree: { title: "워크트리 수명 주기 훅", info: "이 프로젝트에서 워크트리가 생성되거나 정리될 때 실행되는 명령", docs: "문서", docsTooltip: "자세한 내용과 이 명령에 사용할 수 있는 환경 변수는 문서를 참조하세요", setup: "설정", setupAccessibility: "워크트리 설정 명령", uncommittedTitle: "paseo.json 변경 사항을 커밋하세요", uncommittedDescription: "새 워크트리는 선택한 기본 브랜치의 설정 스크립트를 사용합니다.", teardown: "정리", teardownAccessibility: "워크트리 정리 명령", }, scripts: { title: "스크립트", info: "이 프로젝트의 모든 에이전트에서 실행할 수 있는 장기 실행 서비스 및 일회성 명령", empty: "아직 스크립트가 없습니다.", untitled: "제목 없는 스크립트", port: "포트 {{port}}", menuAccessibility: "스크립트 메뉴 열기", removeTitle: "스크립트를 제거할까요?", removeMessage: "{{name}}을(를) 제거할까요?", removeFallbackName: "이 스크립트", name: "이름", command: "명령", nameAccessibility: "스크립트 이름", commandAccessibility: "스크립트 명령", nameRequired: "이름을 입력하세요", commandRequired: "명령을 입력하세요", newScript: "새 스크립트", editScript: "{{name}} 편집", runAsService: "서비스로 실행", serviceHint: "Paseo가 프로세스를 감독하고 $PASEO_PORT를 통해 포트를 할당합니다", actions: { add: "스크립트 추가", edit: "편집", remove: "제거", }, }, metadata: { title: "메타데이터 생성", info: "Paseo가 메타데이터를 생성하는 데 사용하는 AI 프롬프트에 주입되는 프로젝트별 지침 - 브랜치 이름, 커밋 스타일, PR 형식 같은 팀 규칙을 적용하는 데 사용하세요", branchName: "브랜치 이름", branchNamePlaceholder: "브랜치에 feat/ 또는 fix/를 접두사로, 개인 브랜치에는 mb/를 붙이세요", commitMessage: "커밋 메시지", commitMessagePlaceholder: "스코프와 함께 Conventional Commits를 사용하세요", pullRequest: "풀 리퀘스트", pullRequestPlaceholder: "한 문단 요약으로 시작하고 테스트 계획 섹션을 포함하세요", }, writeFailures: { staleTitle: "디스크에서 구성이 변경되었습니다", staleDescription: "저장하기 전에 다시 로드하여 최신 paseo.json을 가져오세요.", failedTitle: "paseo.json을 저장할 수 없습니다", failedDescription: "다시 시도하거나 디스크에서 최신 버전을 다시 로드하세요.", }, actions: { reload: "다시 로드", tryAgain: "다시 시도", save: "저장", saved: "프로젝트가 저장되었습니다", saving: "저장하는 중...", cancel: "취소", }, }, }, };