{ "Language": { "followSystem": "시스템 설정 따름", "english": "영어", "simplifiedChinese": "简体中文", "traditionalChinese": "繁體中文", "japanese": "일본어", "korean": "한국어", "spanish": "스페인어", "german": "독일어", "french": "프랑스어", "portuguese": "포르투갈어", "arabic": "아랍어" }, "GitCredentialDialog": { "title": "인증 필요", "description": "원격 서버에서 자격 증명을 요구합니다. 사용자 이름과 비밀번호(또는 개인 액세스 토큰)를 입력하세요.", "username": "사용자 이름", "usernamePlaceholder": "사용자 이름 또는 이메일", "password": "비밀번호 / 토큰", "passwordPlaceholder": "비밀번호 또는 개인 액세스 토큰", "passwordHint": "서버의 사용자 이름과 비밀번호를 입력하세요.", "cancel": "취소", "authenticate": "인증", "authenticating": "인증 중...", "invalidCredentials": "자격 증명이 유효하지 않습니다. 다시 시도하세요.", "saveCredentials": "향후 작업을 위해 자격 증명 저장", "githubTitle": "GitHub 인증", "githubDescription": "개인 액세스 토큰을 입력하여 GitHub에 연결합니다. 토큰 확인 후 계정에 자동으로 저장됩니다.", "githubToken": "개인 액세스 토큰", "githubTokenPlaceholder": "ghp_xxxxxxxxxxxx", "githubTokenHint": "GitHub → Settings → Developer settings → Personal access tokens에서 토큰을 생성하세요.", "githubAuthenticate": "확인 및 연결", "generateToken": "토큰 생성" }, "SettingsShell": { "title": "설정", "preferences": "환경설정", "nav": { "appearance": "외관", "agents": "에이전트", "mcp": "MCP", "skills": "Skills", "shortcuts": "단축키", "version_control": "버전 관리", "system": "시스템", "chat_channels": "채팅 채널", "web_service": "웹 서비스", "model_providers": "모델 제공업체", "experts": "전문가" } }, "AppearanceSettings": { "sectionTitle": "테마 모양", "sectionDescription": "라이트, 다크 또는 시스템 설정을 선택할 수 있습니다. 설정은 자동으로 저장됩니다.", "themeMode": "테마 모드", "placeholder": "테마 모드 선택", "system": "시스템 설정 따름", "light": "라이트", "dark": "다크", "currentTheme": "현재 적용된 테마: {theme}", "resolvedTheme": { "light": "라이트", "dark": "다크", "unknown": "--" }, "themeColor": { "sectionTitle": "테마 색상", "sectionDescription": "버튼, 강조 색상, 하이라이트에 사용할 색상 팔레트를 선택하세요.", "current": "현재 색상: {color}", "options": { "neutral": "Neutral", "zinc": "Zinc", "slate": "Slate", "stone": "Stone", "gray": "Gray", "red": "Red", "rose": "Rose", "orange": "Orange", "green": "Green", "blue": "Blue", "yellow": "Yellow", "violet": "Violet" } }, "zoomLevel": { "sectionTitle": "창 확대/축소", "sectionDescription": "전체 인터페이스를 확대하거나 축소합니다. 즉시 적용되며 장치별로 저장됩니다.", "placeholder": "확대/축소 단계 선택", "default": "기본값", "current": "현재 확대/축소: {zoom}%" }, "resetToDefaults": "기본값으로 재설정", "resetHint": "테마 색상과 창 확대/축소를 기본값으로 재설정합니다." }, "SystemSettings": { "loading": "로딩 중...", "sectionTitle": "시스템 관리", "sectionDescription": "네트워크 프록시, 앱 업데이트, 언어 설정을 관리합니다.", "proxyTitle": "네트워크 프록시", "proxyDescription": "활성화하면 이후 네트워크 요청에서 이 프록시를 우선 사용합니다(ACP 채팅, 에이전트 설치, Git 원격 작업 포함).", "loadFailed": "불러오기 실패: {message}", "enableProxy": "시스템 프록시 활성화", "proxyAddress": "프록시 주소", "proxyHint": "http(s)/socks5 지원, 예: {example}. 시스템 프록시를 활성화한 경우에만 적용됩니다.", "save": "저장", "saving": "저장 중...", "proxyRequired": "프록시를 활성화하면 프록시 URL이 필요합니다", "saveSuccess": "시스템 프록시 설정이 저장되었습니다", "saveFailed": "저장 실패: {message}", "languageTitle": "언어", "languageDescription": "앱 언어를 설정합니다. 시스템 언어를 따를 때 지원되지 않는 언어는 영어로 대체됩니다.", "appLanguage": "앱 언어", "languageSaveSuccess": "언어 설정이 저장되었습니다", "languageSaveFailed": "언어 설정 저장 실패: {message}", "updateTitle": "앱 업데이트", "versionTitle": "소프트웨어 업데이트", "updateDescription": "설정된 릴리스 소스에서 새 버전을 확인하고 가능하면 바로 설치합니다.", "currentVersion": "현재 버전", "upgradableVersion": "최신 버전", "none": "없음", "lastChecked": "마지막 확인: {time}", "updateError": "업데이트 오류: {message}", "checking": "확인 중...", "checkUpdate": "업데이트 확인", "updating": "설치 중...", "downloading": "다운로드 중...", "upgradeTo": "v{version}로 업그레이드", "foundUpdate": "새 버전 v{version}을 찾았습니다", "alreadyLatest": "이미 최신 버전입니다", "checkUpdateFailed": "업데이트 확인 실패: {message}", "installSuccess": "업데이트가 설치되었습니다. 앱을 다시 시작합니다.", "installFailed": "업데이트 실패: {message}", "updateErrors": { "sourceUnavailable": "업데이트 소스에 연결할 수 없습니다. 네트워크 또는 프록시를 확인한 뒤 다시 시도하세요.", "network": "네트워크 연결에 실패했습니다. 네트워크 또는 프록시를 확인한 뒤 다시 시도하세요.", "downloadFailed": "업데이트 패키지 다운로드에 실패했습니다. 잠시 후 다시 시도하세요.", "installFailed": "업데이트 설치에 실패했습니다. 앱을 종료한 뒤 다시 시도하세요.", "unknown": "업데이트에 실패했습니다. 잠시 후 다시 시도하세요." } }, "VersionControlSettings": { "loading": "로딩 중...", "sectionTitle": "버전 관리", "sectionDescription": "Git 실행 파일을 설정하고 GitHub 계정을 관리합니다.", "gitTitle": "Git 설정", "gitDescription": "애플리케이션에서 사용할 Git 실행 파일을 설정합니다.", "gitDetected": "Git이 감지되었습니다", "gitNotFound": "시스템에서 Git을 찾을 수 없습니다", "gitVersion": "버전", "gitPath": "경로", "customGitPath": "사용자 지정 Git 경로", "customGitPathPlaceholder": "/usr/bin/git", "customGitPathHint": "비워두면 자동 감지된 경로를 사용합니다.", "test": "테스트", "testing": "테스트 중...", "testSuccess": "Git 실행 파일이 유효합니다.", "testFailed": "Git 테스트 실패: {message}", "save": "저장", "saving": "저장 중...", "saveSuccess": "Git 설정이 저장되었습니다.", "saveFailed": "저장 실패: {message}", "githubTitle": "GitHub 계정", "githubDescription": "인증용 GitHub 계정을 관리합니다. 토큰은 로컬에 저장됩니다.", "noAccounts": "설정된 GitHub 계정이 없습니다.", "addAccount": "계정 추가", "serverUrl": "서버 URL", "serverUrlPlaceholder": "https://github.com", "token": "개인 액세스 토큰", "tokenPlaceholder": "ghp_xxxxxxxxxxxx", "generateToken": "토큰 생성", "tokenHint": "GitHub → Settings → Developer settings → Personal access tokens에서 토큰을 생성하세요.", "validateAndAdd": "검증 및 추가", "validating": "검증 중...", "addSuccess": "계정 {username}이(가) 추가되었습니다.", "addFailed": "계정 추가 실패: {message}", "testConnection": "테스트", "connectionSuccess": "연결 성공.", "connectionFailed": "연결 실패: {message}", "setDefault": "기본값으로 설정", "defaultLabel": "기본", "defaultSet": "기본 계정이 업데이트되었습니다.", "removeAccount": "삭제", "removeConfirmTitle": "계정 삭제", "removeConfirmMessage": "계정 \"{username}\"을(를) 삭제하시겠습니까?", "removeConfirm": "삭제", "removeCancel": "취소", "removeSuccess": "계정이 삭제되었습니다.", "scopes": "범위", "loadFailed": "설정 로드 실패: {message}", "gitAccount": { "sectionTitle": "Git 서버 계정", "sectionDescription": "GitHub 이외의 Git 서버 자격 증명을 관리합니다 (GitLab, Bitbucket, 자체 호스팅 등).", "noAccounts": "설정된 Git 서버 계정이 없습니다.", "addAccount": "계정 추가", "addTitle": "Git 계정 추가", "addDescription": "서버 주소, 사용자 이름, 비밀번호 또는 액세스 토큰을 입력하세요.", "serverUrl": "서버 URL", "serverUrlPlaceholder": "https://gitlab.example.com", "username": "사용자 이름", "usernamePlaceholder": "사용자 이름 또는 이메일", "password": "비밀번호 / 토큰", "passwordPlaceholder": "비밀번호 또는 액세스 토큰", "passwordHint": "서버의 비밀번호 또는 액세스 토큰을 입력하세요.", "add": "추가", "serverRequired": "서버 URL을 입력하세요.", "usernameRequired": "사용자 이름을 입력하세요.", "passwordRequired": "비밀번호를 입력하세요." } }, "ShortcutSettings": { "sectionTitle": "단축키", "resetDefault": "기본값으로 재설정", "recordInstruction": "오른쪽 버튼을 클릭한 다음 키 조합을 누르세요. Ctrl/Cmd, Alt, Shift를 사용할 수 있습니다. Esc를 누르면 기록을 취소합니다.", "recording": "단축키 입력...", "toasts": { "conflict": "단축키가 이미 \"{title}\"에서 사용 중입니다", "updated": "단축키가 업데이트되었습니다", "invalid": "유효하지 않은 단축키입니다. 다시 시도하세요", "reset": "기본 단축키를 복원했습니다" }, "actions": { "toggle_search": { "title": "검색 열기", "description": "대화 검색 패널을 표시하거나 숨깁니다" }, "toggle_sidebar": { "title": "왼쪽 사이드바 전환", "description": "대화 목록 사이드바를 표시하거나 숨깁니다" }, "toggle_terminal": { "title": "터미널 전환", "description": "하단 터미널 패널을 표시하거나 숨깁니다" }, "new_terminal_tab": { "title": "새 터미널", "description": "터미널에 포커스가 있을 때 새 터미널 탭을 만듭니다" }, "close_current_terminal_tab": { "title": "현재 터미널 닫기", "description": "터미널에 포커스가 있을 때 현재 터미널 탭을 닫습니다" }, "toggle_aux_panel": { "title": "오른쪽 패널 전환", "description": "보조 정보 패널을 표시하거나 숨깁니다" }, "new_conversation": { "title": "새 대화", "description": "현재 폴더에 새 대화 탭을 만듭니다" }, "open_folder": { "title": "폴더 열기", "description": "폴더 선택기를 열고 새 창에서 엽니다" }, "open_settings": { "title": "설정 열기", "description": "설정 창을 엽니다" }, "close_current_tab": { "title": "현재 탭 닫기", "description": "현재 대화 또는 파일 탭을 닫습니다" }, "close_all_file_tabs": { "title": "모든 파일 탭 닫기", "description": "파일 모드에서만 모든 파일 탭을 닫습니다" }, "send_message": { "title": "메시지 보내기", "description": "입력창에서 현재 메시지를 전송" }, "newline_in_message": { "title": "메시지 줄바꿈", "description": "입력창에 줄바꿈을 삽입" } } }, "SkillsSettings": { "title": "Skills", "description": "왼쪽에서 Skill을 선택하세요. 오른쪽은 기본적으로 Markdown 미리보기이며, 편집으로 전환해 수정 후 저장할 수 있습니다.", "loadingAgents": "Skill을 지원하는 에이전트를 불러오는 중...", "emptyNoManageableAgents": "Skill을 관리할 수 있는 에이전트가 없습니다.", "managedTarget": "관리 대상", "selectAgentPlaceholder": "에이전트 선택", "searchPlaceholder": "이름 / ID / 경로로 검색...", "skillsList": "Skill 목록", "loadingSkills": "Skill 불러오는 중...", "agentNotSupported": "현재 에이전트는 Skill 관리를 지원하지 않습니다.", "emptySkills": "아직 Skill이 없습니다. \"새 Skill\"을 클릭해 생성하세요.", "newSkillTitle": "새 Skill", "skillInfo": "Skill 정보", "skillIdPlaceholder": "skill-id(영문/숫자/-/_/.)", "skillsDirectoryWithPath": "Skill 디렉터리: {path}", "skillsDirectoryNeedId": "Skill 디렉터리: Skill ID를 입력하면 전체 경로를 생성합니다", "markdownContent": "Markdown 내용", "editingStatus": "편집 중", "previewStatus": "미리보기 중", "contentPlaceholder": "Skill Markdown 내용을 입력하세요...", "metadataTitle": "Skill 메타데이터", "onlyYamlMetadata": "이 Skill에는 YAML 메타데이터만 포함되어 있습니다.", "emptyContentHint": "아직 내용이 없습니다. \"편집\"을 눌러 시작하세요.", "loadingSkill": "Skill 불러오는 중...", "emptyNoAgents": "사용 가능한 에이전트가 없습니다.", "noSelectionHint": "왼쪽에서 Skill을 선택하거나 \"새 Skill\"을 클릭하여 만드세요.", "scope": { "global": "전역", "folder": "폴더", "selectFolderPlaceholder": "폴더 선택", "noFolders": "폴더를 찾을 수 없습니다", "pickFolderHint": "Skills을 보려면 폴더를 선택하세요." }, "actions": { "preview": "미리보기", "edit": "편집", "openInWindow": "새 창에서 열기", "delete": "삭제", "deleting": "삭제 중...", "refresh": "새로고침", "newSkill": "새 Skill", "reset": "초기화", "save": "저장", "saving": "저장 중...", "cancel": "취소" }, "deleteDialog": { "title": "Skill 삭제", "confirm": "현재 Skill을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", "confirmWithNamePrefix": "Skill", "confirmWithNameSuffix": "을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다." }, "toasts": { "loadFailed": "Skill을 불러오지 못했습니다", "openFolderFailed": "폴더를 열지 못했습니다", "noSkillDirectory": "현재 에이전트에서 사용할 수 있는 Skill 디렉터리를 찾지 못했습니다", "nameRequired": "Skill 이름은 비워둘 수 없습니다", "updated": "Skill이 업데이트되었습니다", "created": "Skill이 생성되었습니다", "saveFailed": "Skill 저장에 실패했습니다", "deleted": "Skill이 삭제되었습니다", "deleteFailed": "Skill 삭제에 실패했습니다" }, "templates": { "gemini": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Skill Name\n\nInstructions for the agent when this skill is active.\n\n## Workflow\n\n1. Add actionable step one.\n2. Add actionable step two.\n", "openCode": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Steps\n\n1. Add actionable step one.\n2. Add actionable step two.\n", "openClaw": "---\nname: example-skill\ndescription: Describe when this skill should be used.\nuser-invocable: true\ndisable-model-invocation: false\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n", "default": "# Skill: example-skill\n\n## When to use\n\n- Describe trigger conditions.\n\n## Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n" } }, "McpSettings": { "loading": "로딩 중...", "summary": { "missingCommand": "(명령 없음)", "missingUrl": "(URL 없음)" }, "protocol": { "stdio": "Stdio" }, "errors": { "selectInstallProtocol": "설치 프로토콜을 선택하세요", "fieldRequired": "{field}은(는) 필수입니다", "fieldNeedsBoolean": "{field}은(는) true 또는 false여야 합니다", "fieldNeedsNumber": "{field}은(는) 숫자여야 합니다", "fieldNeedsInteger": "{field}은(는) 정수여야 합니다", "fieldInvalidJson": "{field}의 JSON이 잘못되었습니다: {message}", "fieldOutOfRange": "{field} 값이 허용 범위를 벗어났습니다", "jsonEmpty": "{name}은(는) 비워둘 수 없습니다", "jsonInvalid": "{name}은(는) 유효한 JSON이 아닙니다: {message}", "jsonMustBeObject": "{name}은(는) JSON 객체여야 합니다" }, "jsonNames": { "localConfig": "MCP 구성", "installConfig": "설치 구성" }, "toasts": { "uninstalled": "MCP가 제거되었습니다", "uninstallFailed": "제거 실패: {message}", "selectAtLeastOneApp": "대상 앱을 최소 하나 선택하세요", "saveSuccess": "저장됨", "saveFailed": "저장 실패: {message}", "installed": "{name} 설치됨", "installFailed": "설치 실패: {message}" }, "installDialog": { "title": "MCP 설치 확인", "descriptionWithName": "{name}을(를) 로컬 구성에 설치합니다.", "description": "설치할 대상 앱을 선택하세요.", "protocol": "프로토콜", "selectProtocol": "프로토콜 선택", "parameters": "구성 매개변수", "booleanPlaceholder": "true/false를 선택하세요", "selectOneValue": "값 선택", "targetApps": "대상 앱" }, "actions": { "cancel": "취소", "confirmInstall": "설치 확인", "installing": "설치 중", "uninstall": "제거", "uninstalling": "제거 중", "viewDetails": "상세 보기", "save": "저장", "saving": "저장 중", "install": "설치" }, "tabs": { "local": "로컬 MCP", "market": "MCP 마켓플레이스" }, "local": { "filterPlaceholder": "로컬 MCP 필터...", "loadFailed": "로드 실패: {message}", "empty": "감지된 로컬 MCP가 없습니다.", "description": "로컬 MCP 구성은 직접 수정하고 저장할 수 있습니다.", "enabledApps": "활성화된 앱", "configJson": "MCP 구성 (JSON)" }, "market": { "selectMarketplace": "마켓플레이스 선택", "searchPlaceholder": "MCP 검색...", "searchFailed": "검색 실패: {message}", "loadingList": "MCP 목록을 불러오는 중...", "empty": "MCP 검색 결과가 없습니다.", "loadingDetail": "마켓플레이스 상세 정보를 불러오는 중...", "detailLoadFailed": "상세 정보를 불러오지 못했습니다: {message}", "owner": "소유자: {owner}", "namespace": "네임스페이스: {namespace}", "defaultInstallProtocol": "기본 설치 프로토콜", "currentOptionParameterCount": "현재 옵션의 매개변수 수: {count}", "installConfigDescription": "설치 구성 (JSON, 설치 전에 편집 가능; 편집 내용은 프로토콜/매개변수 폼을 덮어씁니다)", "selectLeftToView": "상세 정보를 보려면 왼쪽에서 마켓플레이스 MCP를 선택하세요." }, "badges": { "verified": "검증됨", "remote": "원격", "hasHomepage": "홈페이지 있음", "uses": "{count}회 사용", "deployed": "배포됨", "notDeployed": "미배포" }, "selectLeftMcp": "왼쪽에서 MCP를 선택하세요." }, "AcpAgentSettings": { "title": "Agent SDK 관리", "description": "Agent SDK 연결, 활성화 상태, 환경 변수, 구성 관리, 버전 사전 점검 정보를 한곳에서 관리합니다.", "loadingAgents": "에이전트 목록 불러오는 중...", "agentList": "에이전트 목록", "emptyNoAgent": "사용 가능한 에이전트가 없습니다.", "configManagement": "구성 관리", "envVars": "환경 변수", "nativeJsonConfig": "네이티브 JSON 구성", "modelHintDefault": "비워두면 시스템 기본 모델을 사용합니다.", "generalConfigDescriptionClaude": "API URL, API Key, Claude 모델을 빠르게 설정하고 네이티브 JSON 구성과 동기화합니다.", "generalConfigDescriptionDefault": "주요 구성 입력(API URL, API Key, Model)과 네이티브 JSON 구성 관리를 지원합니다.", "actions": { "dragSort": "드래그하여 순서 변경", "dragSortAgent": "{name} 순서 변경", "refreshCheck": "다시 확인", "refreshCheckAgent": "{name} 다시 확인", "clickEnable": "{name} 활성화", "clickDisable": "{name} 비활성화", "install": "설치", "upgrade": "업그레이드", "uninstall": "제거", "uninstalling": "제거 중...", "saveEnvVars": "환경 변수 저장", "saving": "저장 중...", "saveCodexConfig": "Codex 설정 저장", "saveGeminiConfig": "Gemini 설정 저장", "saveOpenCodeConfig": "OpenCode 설정 저장", "saveOpenClawConfig": "OpenClaw 설정 저장", "saveConfigManagement": "구성 관리 저장", "saveCurrentProvider": "현재 Provider 저장", "showApiKey": "API 키 보기", "hideApiKey": "API 키 숨기기", "showKey": "키 보기", "hideKey": "키 숨기기", "showToken": "토큰 보기", "hideToken": "토큰 숨기기", "cancel": "취소", "delete": "삭제", "deleting": "삭제 중...", "confirmDelete": "삭제 확인", "confirmUninstall": "제거 확인", "saveClineConfig": "Cline 설정 저장" }, "status": { "enabled": "활성화됨", "disabled": "비활성화됨", "unchecked": "확인 안 됨", "agentEnabledAria": "{name} 활성화됨", "agentEnabledSwitch": "{name} 활성화 스위치" }, "preflight": { "count": "사전 점검 항목: {count}", "notRun": "점검이 아직 실행되지 않았습니다." }, "codex": { "configDescription": "API URL, API Key, 모델 이름, reasoning effort를 빠르게 설정하고 `auth.json` / `config.toml`과 동기화합니다.", "authMode": "인증 방식", "chatgptSubscription": "공식 구독", "chatgptSubscriptionHint": "ChatGPT 공식 구독으로 로그인, API Key 불필요", "apiKeyHint": "API Key로 OpenAI 또는 호환 API 서비스에 연결", "selectProvider": "Provider 선택", "modelName": "모델 이름", "selectReasoningEffort": "Reasoning Effort 선택", "enableWebsocket": "WebSocket 활성화", "enableWebsocketAria": "Codex Provider용 WebSocket 활성화", "enableSkills": "Skills 활성화", "enableSkillsAria": "Codex용 Skills 활성화", "enableFast": "Fast 활성화", "enableFastAria": "Codex용 Fast 서비스 계층 활성화", "authJsonNative": "auth.json (네이티브)", "configTomlNative": "config.toml (네이티브)", "loginButton": "ChatGPT로 로그인", "loginRequesting": "로그인 코드 요청 중...", "loginStep1": "브라우저에서 다음 URL을 열어주세요:", "loginStep2": "아래 코드를 입력하세요:", "loginPolling": "인증 대기 중...", "loginCancel": "취소", "loginSuccess": "로그인 성공, 설정이 저장되었습니다!", "loginFailed": "로그인 실패: {message}", "loginRetry": "재시도", "loginCodeCopied": "코드가 복사되었습니다", "loggedIn": "계정 로그인됨", "loginRelogin": "재로그인 / 계정 전환", "loginTimeout": "로그인 시간 초과, 다시 시도해 주세요", "loginSaveFailed": "로그인 성공했지만 설정 저장 실패" }, "gemini": { "authConfig": "Gemini 인증 설정", "authConfigDescription": "Gemini CLI 인증 문서와 정렬되며, 커스텀 엔드포인트, Google 로그인, Gemini API Key, Vertex AI(ADC / 서비스 계정 / API Key)를 지원합니다.", "authMode": "인증 모드", "selectAuthMode": "인증 모드 선택", "viewAuthDoc": "인증 문서 보기", "mode": { "custom": "커스텀 엔드포인트", "loginGoogle": "Google 로그인 (OAuth)", "vertexServiceAccount": "Vertex AI (서비스 계정)" }, "hint": { "custom": "API URL, API Key, Model을 입력하세요. GOOGLE_GEMINI_BASE_URL / GEMINI_API_KEY / GEMINI_MODEL에 매핑됩니다.", "loginGoogle": "먼저 터미널에서 gemini를 실행해 Google 로그인을 완료하세요. API key는 필요하지 않습니다.", "geminiApiKey": "Gemini API 사용 시 GEMINI_API_KEY를 입력하세요.", "vertexAdc": "gcloud ADC를 사용합니다. GOOGLE_CLOUD_PROJECT와 GOOGLE_CLOUD_LOCATION 설정을 권장합니다.", "vertexServiceAccount": "서비스 계정 JSON 경로를 GOOGLE_APPLICATION_CREDENTIALS에 설정하세요.", "vertexApiKey": "Vertex AI API key 사용 시 GOOGLE_API_KEY를 입력하세요." } }, "openCode": { "configManagement": "OpenCode 구성 관리", "configDescription": "OpenCode `provider` 스키마에 맞추어 다중 Provider 관리와 네이티브 JSON 파일 양방향 동기화를 지원합니다.", "providerManagement": "Provider 관리", "providerCount": "Provider {count}개", "addProvider": "Provider 추가", "emptyProvider": "아직 Provider가 없습니다. ID를 입력한 뒤 \"Provider 추가\"를 클릭하세요.", "providerEnabledState": "{providerId} 활성 상태", "selectProviderNpm": "provider.npm 선택", "notSet": "설정 안 됨", "modelManagement": "모델 관리", "modelCount": "모델 {count}개", "modelDescription": "OpenCode `provider.models`와 정렬됩니다. 빠른 관리는 현재 `name` / `id`를 지원하며, 기타 고급 필드는 유지되고 아래 네이티브 JSON에서 편집할 수 있습니다.", "addModel": "모델 추가", "emptyModel": "아직 모델이 없습니다. model id를 입력한 뒤 \"모델 추가\"를 클릭하세요.", "modelId": "모델 ID", "modelName": "모델 이름", "deleteModel": "모델 {modelId} 삭제", "nativeJsonConfig": "OpenCode 네이티브 JSON 구성", "mainModel": "메인 모델", "smallModel": "스몰 모델", "noMatchingModels": "일치하는 모델 없음" }, "openClaw": { "gatewayConfig": "Gateway 구성", "gatewayDescription": "OpenClaw Gateway 연결을 구성합니다. 로컬 또는 원격 gateway를 지원합니다.", "gatewayUrlHint": "비워두면 로컬 openclaw 설정의 gateway.remote.url을 사용합니다.", "gatewayTokenPlaceholder": "Gateway 인증 토큰", "gatewayTokenHint": "가능하면 평문 토큰 대신 token-file을 사용하세요. openclaw CLI로 설정하세요.", "sessionKeyHint": "선택 사항입니다. gateway 세션 키를 지정합니다. 비워두면 격리된 세션이 자동 할당됩니다." }, "authModeOfficialSubscription": "공식 구독", "authModeCustomEndpoint": "사용자 정의 엔드포인트", "authModeCustomEndpointHint": "API URL과 API Key를 수동으로 구성하여 사용자 정의 엔드포인트에 연결합니다.", "authModeModelProvider": "모델 공급자", "modelProvider": "모델 공급자", "modelProviderHint": "구성된 모델 공급자의 API URL 및 API Key를 사용합니다.", "selectModelProvider": "모델 공급자 선택", "noModelProviderAvailable": "이 에이전트에 구성된 모델 공급자가 없습니다. 모델 공급자 설정에서 추가하세요.", "claude": { "authMode": "인증 방식", "officialSubscription": "공식 구독", "officialSubscriptionHint": "Anthropic 공식 구독 사용, API Key 불필요.", "mainModel": "메인 모델", "reasoningModel": "추론 모델 (thinking)", "haikuDefaultModel": "기본 Haiku 모델", "sonnetDefaultModel": "기본 Sonnet 모델", "opusDefaultModel": "기본 Opus 모델", "effortLevel": "추론 수준", "effortLevelDefault": "기본 수준", "effortLevel_low": "낮음", "effortLevel_medium": "중간", "effortLevel_high": "높음", "effortLevel_xhigh": "매우 높음" }, "dialogs": { "confirmDeleteProvider": "Provider {providerId}를 삭제하시겠습니까?", "confirmDeleteProviderDescription": "OpenCode config와 auth JSON이 함께 업데이트됩니다. 이 작업은 되돌릴 수 없습니다.", "confirmUninstall": "{name}을(를) 제거하시겠습니까?", "confirmUninstallDescription": "로컬 설치 버전을 제거합니다. 나중에 다시 설치할 수 있습니다." }, "errors": { "nativeJsonMustBeObject": "네이티브 JSON 구성은 객체여야 합니다", "nativeJsonInvalid": "네이티브 JSON 구성 형식 오류: {message}", "openCodeAuthMustBeObject": "OpenCode auth.json은 JSON 객체여야 합니다", "openCodeAuthInvalid": "OpenCode auth.json 형식 오류: {message}", "authMustBeObject": "auth.json은 JSON 객체여야 합니다", "authInvalid": "auth.json 형식 오류: {message}", "providerIdPattern": "Provider ID는 문자, 숫자, 밑줄, 점, 하이픈만 지원합니다", "providerExists": "Provider '{providerId}'가 이미 존재합니다", "modelIdPattern": "Model ID는 문자, 숫자, 밑줄, 점, 콜론, 하이픈만 지원합니다", "modelExists": "Model '{modelId}'가 이미 존재합니다" }, "warnings": { "nativeJsonRecoveredStructured": "네이티브 JSON 구성이 잘못되어 구조화 구성으로 재설정했습니다", "nativeJsonRecoveredOpenCode": "네이티브 JSON 구성이 잘못되어 OpenCode 구조화 구성으로 재설정했습니다", "openCodeAuthRecovered": "OpenCode auth.json이 잘못되어 기본 구성으로 재설정했습니다", "authRecoveredStructured": "auth.json이 잘못되어 구조화 구성으로 재설정했습니다" }, "toasts": { "agentActionCompleted": "{name} {action} 완료", "agentActionFailed": "{name} {action} 실패", "localVersion": "로컬 버전: {version}", "installCompletedVersionLater": "설치가 완료되었습니다. 버전은 다음 확인 시 업데이트됩니다", "uninstallCompleted": "{name} 제거 완료", "uninstallFailed": "{name} 제거 실패", "localVersionRemoved": "로컬 버전이 제거되었습니다", "saveAgentOrderFailed": "Agent 순서 저장 실패", "saveAgentSwitchFailed": "Agent 스위치 저장 실패", "saveEnvFailed": "환경 변수 저장 실패", "codexSaved": "Codex 설정 저장됨", "saveCodexNativeFailed": "Codex 네이티브 구성 저장 실패", "geminiSaved": "Gemini 설정 저장됨", "saveGeminiFailed": "Gemini 설정 저장 실패", "providerDeleted": "Provider {providerId} 삭제됨", "providerDeleteFailed": "Provider {providerId} 삭제 실패", "providerSaved": "Provider {providerId} 저장됨", "saveProviderFailed": "Provider {providerId} 저장 실패", "openCodeConfigSynced": "OpenCode config와 auth JSON이 동기화되었습니다.", "openCodeSaved": "OpenCode 설정 저장됨", "saveOpenCodeFailed": "OpenCode 설정 저장 실패", "openClawSaved": "OpenClaw 설정 저장됨", "saveOpenClawFailed": "OpenClaw 설정 저장 실패", "configSaved": "구성이 저장되었습니다", "configSavedHint": "기존 세션은 다시 열어야 적용됩니다", "saveConfigManagementFailed": "구성 관리 저장 실패", "clineSaved": "Cline 설정 저장됨", "saveClineFailed": "Cline 설정 저장 실패", "modelProviderRequired": "저장하기 전에 모델 공급자를 선택하세요." }, "version": { "statusLabel": "버전 상태", "notInstalled": "설치되지 않음", "remoteLocal": "원격: {remoteVersion} · 로컬: {localVersion}", "platformUnsupported": "{versionText}. 현재 플랫폼에서는 이 에이전트를 지원하지 않습니다.", "clickInstall": "{versionText}. 오른쪽의 설치를 클릭하세요.", "localUnrecognized": "{versionText}. 로컬 버전을 비교할 수 없습니다. 덮어쓰기 설치를 위해 업그레이드를 시도하세요.", "upgradeAvailable": "{versionText}. 업그레이드가 가능합니다.", "remoteUnavailable": "{versionText}. 현재 원격 버전을 사용할 수 없습니다.", "latest": "{versionText}. 이미 최신입니다." }, "cline": { "configDescription": "Cline API 제공자와 자격 증명을 구성합니다. 설정은 ~/.cline/data/에 저장됩니다." }, "opencodePlugins": { "title": "OpenCode 플러그인", "declared": "선언된 플러그인", "noPlugins": "opencode.json에 선언된 플러그인이 없습니다", "status": { "installed": "설치됨", "missing": "미설치" }, "installAll": "누락된 플러그인 모두 설치", "pinVersions": "@latest 버전 고정", "install": "설치", "uninstall": "제거", "refresh": "새로고침", "success": "모든 플러그인이 성공적으로 설치되었습니다", "failed": "플러그인 작업 실패" } }, "SettingsPages": { "agentsLoading": "에이전트 설정을 불러오는 중..." }, "CommitPage": { "title": "커밋", "invalidFolderId": "유효하지 않은 폴더 ID", "loadingRepo": "저장소를 불러오는 중..." }, "MergePage": { "title": "충돌 해결", "invalidFolderId": "잘못된 폴더 ID", "loadingRepo": "저장소 로딩 중...", "localVersion": "로컬 (우리 쪽)", "result": "결과", "remoteVersion": "원격 (상대 쪽)", "acceptLocal": "로컬 적용", "acceptRemote": "원격 적용", "markResolved": "해결됨으로 표시", "abortMerge": "중단", "completeMerge": "병합 완료", "unresolvedConflicts": "파일에 아직 해결되지 않은 충돌 마커가 있습니다", "fileResolved": "파일이 해결되었습니다", "allResolved": "모든 충돌이 해결되었습니다", "conflictFiles": "충돌 파일", "loadingFile": "파일 로딩 중...", "preparingMerge": "병합 준비 중...", "selectFile": "해결할 파일을 선택하세요", "noConflicts": "충돌 파일 없음", "skipFile": "건너뛰기", "abortSuccess": "작업이 중단되었습니다", "applyAllNonConflicting": "충돌하지 않는 모든 변경 적용", "applyLeftNonConflicting": "로컬 적용", "applyRightNonConflicting": "원격 적용" }, "Folder": { "workspaceStatus": { "degradedTitle": "실시간 업데이트를 사용할 수 없음", "degradedHint": "감시자 시작 실패(권한 거부 등). 최신 변경 사항을 보려면 수동으로 새로 고치세요.", "retry": "다시 시도", "retrying": "다시 시도 중..." }, "common": { "all": "전체", "cancel": "취소", "close": "닫기", "closeOthers": "다른 항목 닫기", "closeAll": "모두 닫기", "confirm": "확인", "save": "저장", "delete": "삭제", "rename": "이름 변경", "loading": "로딩 중...", "refresh": "새로고침", "refreshing": "새로고침 중...", "create": "생성", "createAndSwitch": "생성 후 전환", "openFile": "파일 열기", "viewDiff": "Diff 보기", "push": "푸시..." }, "modes": { "conversation": "대화 모드", "fusion": "퓨전 모드", "files": "파일 모드", "workspaceModesAria": "워크스페이스 모드" }, "statusLabels": { "in_progress": "진행 중", "pending_review": "검토", "completed": "완료", "cancelled": "취소됨" }, "sidebar": { "title": "대화", "locateActiveConversation": "활성 대화 찾기", "expandAllGroups": "모든 그룹 펼치기", "collapseAllGroups": "모든 그룹 접기", "newConversation": "새 대화", "noConversationsFound": "대화를 찾을 수 없습니다.", "importLocalSessions": "로컬 세션 가져오기", "importing": "가져오는 중...", "error": "오류: {message}", "completeAllSessions": "모든 세션 완료 처리", "completeAllReviewTitle": "모든 검토 세션을 완료 처리할까요?", "completeAllReviewDescription": "검토 상태의 {count, plural, one {#개 세션} other {#개 세션}}을 모두 완료로 표시합니다.", "completing": "완료 처리 중...", "toasts": { "importedSessions": "{imported, plural, one {#개 세션} other {#개 세션}}을 가져오고 {skipped}개를 건너뛰었습니다", "noNewSessionsFound": "새 세션이 없습니다 ({skipped}개 건너뜀)", "importFailed": "가져오기 실패: {message}", "reviewCompleted": "{count, plural, one {#개 검토 세션} other {#개 검토 세션}}을 완료로 표시했습니다", "completeReviewFailed": "검토 세션 완료 처리 실패: {message}", "folderOpened": "폴더 {name}을(를) 열었습니다", "folderRemoved": "폴더 {name}을(를) 제거했습니다", "openFolderFailed": "폴더를 열 수 없습니다", "removeFolderFailed": "폴더 제거 실패: {message}" }, "statsLabel": "{folders}개 폴더 · {convos}개 대화", "openFolder": "폴더 열기", "searchPlaceholder": "대화 검색...", "showCompleted": "완료된 대화 표시", "moreOptions": "더 많은 옵션", "statusRunningBadge": "실행 중", "statusFailedBadge": "실패", "conversationCountUnit": "{count}개", "emptyFolderHint": "대화 없음", "noMatchingConversations": "일치하는 대화가 없습니다", "removeFolderConfirmTitle": "이 폴더를 워크스페이스에서 제거하시겠습니까?", "removeFolderConfirmDescription": "워크스페이스에서 \"{name}\"을(를) 제거하시겠습니까? 관련 탭과 터미널이 닫힙니다.", "folderHeaderMenu": { "focus": "포커스", "closeFolderTabs": "이 폴더의 모든 탭 닫기", "removeFromWorkspace": "워크스페이스에서 제거" } }, "conversation": { "reloadFailed": "대화 다시 불러오기 실패: {message}", "reloaded": "대화를 다시 불러왔습니다", "reload": "다시 불러오기", "newConversation": "새 대화", "closeConversation": "대화 닫기", "copyText": "텍스트 복사", "copyTextSuccess": "복사됨", "copyTextFailed": "복사 실패", "forkSession": "세션 포크", "forkSessionSuccess": "세션 포크 성공", "forkSessionFailed": "세션 포크 실패: {error}", "exportConversation": "대화 내보내기", "exportImage": "이미지", "exportMarkdown": "Markdown", "exportHtml": "HTML", "exportSuccess": "대화를 내보냈습니다", "exportFailed": "내보내기 실패", "exportImageTooLong": "대화가 너무 길어 이미지로 내보낼 수 없습니다", "exportLabels": { "untitledConversation": "제목 없는 대화", "agent": "에이전트", "model": "모델", "status": "상태", "started": "시작", "updated": "업데이트", "tokens": "토큰 통계", "duration": "소요 시간", "inputTokens": "입력", "outputTokens": "출력", "cacheRead": "캐시 읽기", "cacheWrite": "캐시 쓰기", "user": "사용자", "assistant": "어시스턴트", "system": "시스템", "toolResult": "결과", "toolError": "오류" } }, "conversationCard": { "untitledConversation": "제목 없는 대화", "newConversation": "새 대화", "rename": "이름 변경", "status": "상태", "delete": "삭제", "importLocalSessions": "로컬 세션 가져오기", "importing": "가져오는 중...", "renameConversation": "대화 이름 변경", "deleteConversationTitle": "대화를 삭제할까요?", "deleteConversationDescription": "\"{title}\"을(를) 삭제합니다. 이 작업은 되돌릴 수 없습니다.", "cancel": "취소", "save": "저장" }, "search": { "dialogTitle": "검색", "tabConversations": "대화", "tabFiles": "파일", "placeholder": "대화 검색...", "filePlaceholder": "파일 또는 디렉토리 검색...", "allAgents": "전체", "searching": "검색 중...", "typeToSearch": "입력하여 대화를 검색하세요", "typeToSearchFiles": "입력하여 파일 또는 디렉토리를 검색하세요", "noResults": "검색 결과가 없습니다.", "untitledConversation": "제목 없는 대화" }, "folderTitleBar": { "showSidebar": "사이드바 표시", "hideSidebar": "사이드바 숨기기", "toggleTerminal": "터미널 전환", "toggleAuxPanel": "보조 패널 전환", "search": "검색", "openSettings": "설정 열기", "withShortcut": "{label} ({shortcut} 단축키)" }, "statusBar": { "connection": { "connected": "연결됨", "connecting": "연결 중...", "prompting": "응답 중...", "error": "연결 오류", "disconnected": "연결 끊김", "tooltip": "{agent}: {status}", "tooltipError": "{agent}: {error}" }, "tasks": { "title": "작업" }, "alerts": { "title": "알림", "empty": "알림 없음" }, "stats": { "conversations": "{count}개 대화", "summary": "{conversations}개 대화 / {messages}개 메시지" }, "tokens": { "contextWindowUsageAria": "컨텍스트 윈도우 사용량", "contextWindow": "컨텍스트 윈도우", "usedMax": "사용 / 최대", "tokenUsage": "토큰 사용량", "input": "입력", "output": "출력", "cacheRead": "캐시 읽기", "cacheWrite": "캐시 쓰기", "total": "합계" } }, "auxPanel": { "tabs": { "diff": "차이", "files": "파일", "changes": "변경사항", "commits": "커밋" } }, "windowControls": { "minimizeWindow": "창 최소화", "minimize": "최소화", "maximizeWindow": "창 최대화", "maximize": "최대화", "restoreWindow": "창 복원", "restore": "복원", "closeWindow": "창 닫기", "close": "닫기" }, "tabs": { "closeConversationTab": "대화 탭 닫기", "close": "닫기", "closeOthers": "다른 항목 닫기", "closeAll": "모두 닫기", "tileDisplay": "타일 표시", "untileDisplay": "타일 해제" }, "fileWorkspace": { "files": "파일", "closeFileTab": "파일 탭 닫기", "close": "닫기", "closeOthers": "다른 항목 닫기", "closeAll": "모두 닫기", "preview": "미리보기", "editSource": "소스 편집" }, "terminal": { "rename": "이름 변경", "close": "닫기", "closeOthers": "다른 항목 닫기", "closeAll": "모두 닫기", "hideTerminal": "터미널 숨기기 ({shortcut})", "openFolderFirst": "먼저 폴더를 여세요" }, "sessionFiles": { "currentResponse": "현재 응답", "noDiffDataAvailable": "{filePath}에 대한 diff 데이터가 없습니다", "loading": "로딩 중...", "noFileChangesInConversation": "이 대화에서 파일 변경을 찾을 수 없습니다", "openConversationToSeeChanges": "대화를 열어 파일 변경을 확인하세요", "remove": "제거", "changeCount": "{count, plural, one {#개 변경} other {#개 변경}}", "fileCount": "{count, plural, one {#개 파일} other {#개 파일}}" }, "folderNameDropdown": { "fallbackFolderName": "폴더", "openFolder": "폴더 열기", "cloneRepository": "리포지토리 클론", "projectBoot": "프로젝트 부트", "opened": "열린 항목", "recentOpen": "최근 연 항목" }, "fileWorkspacePanel": { "viewDiff": "Diff 보기", "openFile": "파일 열기", "fileCount": "{count, plural, one {#개 파일} other {#개 파일}}", "openFileOrDiff": "오른쪽 패널에서 파일 또는 diff를 여세요", "disk": "디스크", "head": "HEAD", "unsaved": "저장되지 않음", "workingTree": "작업 트리", "loading": "로딩 중...", "compareWithBranch": "{path} · {branch}와 비교", "hunkCount": "{count, plural, one {#개 hunk} other {#개 hunks}}", "prev": "이전", "next": "다음", "jumpToLine": "{line}행으로 이동", "noParsedDiffSections": "파싱된 diff 섹션이 없습니다", "loadingEditor": "에디터 로딩 중...", "imageZoomIn": "확대", "imageZoomOut": "축소", "imageZoomReset": "확대/축소 초기화" }, "branchDropdown": { "toasts": { "commitCodeCompleted": "코드 커밋이 완료되었습니다", "pushCodeCompleted": "코드 푸시가 완료되었습니다", "committedFiles": "{count, plural, one {#개 파일 커밋됨} other {#개 파일 커밋됨}}", "taskCompleted": "{label} 완료", "taskFailed": "{label} 실패", "mergeNoNewCommits": "{branchName}에는 새 커밋이 없습니다", "mergedCommits": "{count, plural, one {#개 커밋 병합됨} other {#개 커밋 병합됨}}", "allFilesUpToDate": "모든 파일이 최신 상태입니다", "updatedFiles": "{count, plural, one {#개 파일 업데이트됨} other {#개 파일 업데이트됨}}", "openCommitWindowFailed": "커밋 창을 열지 못했습니다", "openPushWindowFailed": "푸시 창 열기 실패", "upstreamSet": "업스트림 브랜치가 설정되었습니다", "upstreamSetAndPushed": "업스트림 브랜치를 설정하고 {count, plural, one {#개 커밋} other {#개 커밋}}을 푸시했습니다", "noCommitsToPush": "푸시할 커밋이 없습니다", "pushedCommits": "{count, plural, one {#개 커밋 푸시됨} other {#개 커밋 푸시됨}}" }, "tasks": { "newBranch": "브랜치 {name} 생성", "newWorktree": "워크트리 {name} 생성", "checkoutTo": "{branchName}(으)로 체크아웃", "mergeBranch": "{branchName} 병합", "rebaseTo": "{branchName}로 리베이스", "deleteBranch": "브랜치 {branchName} 삭제", "deleteRemoteBranch": "원격 브랜치 {branchName} 삭제", "initGitRepo": "Git 저장소 초기화", "pullCode": "코드 pull", "fetchInfo": "정보 fetch", "pushCode": "코드 push", "stashChanges": "변경 사항 stash", "stashPop": "stash pop" }, "confirm": { "mergeTitle": "브랜치 병합", "rebaseTitle": "브랜치 리베이스", "deleteTitle": "브랜치 삭제", "mergeDescription": "{branchName}을(를) 현재 브랜치 {currentBranch}에 병합할까요?", "rebaseDescription": "현재 브랜치 {currentBranch}를 {branchName} 위로 리베이스할까요?", "deleteDescription": "브랜치 {branchName}을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.", "forceDeleteTitle": "브랜치 강제 삭제", "forceDeleteDescription": "브랜치 {branchName}가 완전히 병합되지 않았습니다. 강제 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.", "deleteRemoteTitle": "원격 브랜치 삭제", "deleteRemoteDescription": "원격 브랜치 {branchName}을(를) 삭제하시겠습니까? 이 작업은 원격 저장소에서 브랜치를 제거하며 되돌릴 수 없습니다." }, "current": "현재", "switchToBranch": "이 브랜치로 전환", "mergeBranchIntoCurrent": "{branchName}을(를) {currentBranch}에 병합", "rebaseCurrentToBranch": "{currentBranch}를 {branchName}로 리베이스", "deleteBranch": "브랜치 삭제", "versionControl": "버전 관리", "initGitRepo": "Git 저장소 초기화", "pullCode": "코드 pull", "fetchRemoteBranches": "원격 브랜치 가져오기", "openCommitWindow": "코드 커밋...", "pushCode": "푸시...", "newBranch": "새 브랜치...", "newWorktree": "새 워크트리...", "stashChanges": "스태시...", "stashPop": "stash pop...", "manageRemotes": "원격 관리...", "localBranches": "로컬 브랜치 ({count, plural, one {#} other {#}})", "noLocalBranches": "로컬 브랜치가 없습니다", "remoteBranches": "원격 브랜치 ({count, plural, one {#} other {#}})", "noRemoteBranches": "원격 브랜치가 없습니다", "parentBranchHint": "현재 브랜치는 {parentBranch}에서 생성되었습니다. 클릭하여 {parentBranch}를 현재 브랜치에 병합하세요.", "dialogs": { "newBranchTitle": "새 브랜치", "newBranchDescription": "현재 브랜치 {branch}에서 새 브랜치를 만듭니다", "branchNamePlaceholder": "브랜치 이름", "newWorktreeTitle": "새 워크트리", "newWorktreeDescription": "현재 브랜치 {branch}에서 새 워크트리를 만듭니다", "branchNameLabel": "브랜치 이름", "worktreePathLabel": "워크트리 경로", "worktreePathPlaceholder": "워크트리 경로", "manageRemotesTitle": "원격 관리", "manageRemotesEmpty": "구성된 원격이 없습니다", "remoteNamePlaceholder": "원격 이름", "remoteUrlPlaceholder": "원격 URL", "addRemote": "추가", "savingRemotes": "저장 중..." }, "conflict": { "title": "병합 충돌", "description": "다음 파일에 충돌이 있어 해결이 필요합니다:", "abort": "병합 중단", "openMergeTool": "병합 도구 열기", "completeMerge": "병합 완료", "abortSuccess": "병합이 중단되었습니다", "completeSuccess": "병합이 완료되었습니다" }, "stashDialog": { "title": "변경 사항 스태시", "description": "현재 변경 사항을 스태시에 저장", "messageLabel": "메시지", "messagePlaceholder": "스태시 메시지 (선택사항)", "keepIndex": "인덱스 유지 (스테이지된 변경 사항 유지)", "cancel": "취소", "stash": "스태시", "success": "변경 사항이 스태시되었습니다", "error": "스태시 실패" }, "unstashDialog": { "title": "스태시 적용", "noStashes": "스태시가 없습니다", "selectFile": "파일을 선택하여 차이 보기", "viewDiff": "차이 보기", "original": "원본", "modified": "수정됨", "apply": "적용", "drop": "삭제", "applySuccess": "스태시가 적용되었습니다", "dropSuccess": "스태시가 삭제되었습니다", "confirmApply": "스태시 {ref}을(를) 작업 디렉토리에 적용하시겠습니까?", "cancel": "취소" } }, "commitDialog": { "toasts": { "commitCompleted": "코드 커밋이 완료되었습니다", "pushFailed": "푸시 실패", "committedFiles": "{count, plural, one {#개 파일 커밋됨} other {#개 파일 커밋됨}}", "addedToVcs": "VCS에 추가되었습니다", "addToVcsFailed": "VCS에 추가하지 못했습니다", "fileDeleted": "파일이 삭제되었습니다", "deleteFailed": "삭제에 실패했습니다", "fileRolledBack": "파일이 롤백되었습니다", "rollbackFailed": "롤백에 실패했습니다", "dirRolledBack": "디렉토리가 롤백되었습니다", "dirDeleted": "디렉토리가 삭제되었습니다" }, "confirm": { "deleteTitle": "삭제 확인", "deleteDescription": "파일 \"{file}\"을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.", "rollbackTitle": "롤백 확인", "rollbackDescription": "파일 \"{file}\"을(를) HEAD로 롤백할까요? 저장되지 않은 변경 사항은 사라집니다.", "rollbackDirDescription": "디렉토리 \"{dir}\"를 HEAD로 롤백하시겠습니까? 저장되지 않은 변경 사항이 손실됩니다.", "deleteDirDescription": "디렉토리 \"{dir}\"를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다." }, "actions": { "select": "선택", "unselect": "선택 해제", "rollback": "롤백", "addToVcs": "VCS에 추가" }, "aria": { "selectFile": "{action}: {path}", "unselectAllFiles": "모든 파일 선택 해제", "selectAllFiles": "모든 파일 선택", "unselectTracked": "추적된 변경 선택 해제", "selectTracked": "추적된 변경 선택", "unselectUntracked": "추적되지 않은 파일 선택 해제", "selectUntracked": "추적되지 않은 파일 선택" }, "loading": "로딩 중...", "selectionCount": "{selected} / {total}개 파일", "emptyFiles": "변경된 파일이 없습니다", "trackedChanges": "추적된 변경 ({count})", "untrackedFiles": "추적되지 않은 파일 ({count})", "commitMessage": "커밋 메시지", "commitMessagePlaceholder": "커밋 메시지 입력...", "commitButton": "커밋 ({count})", "commitAndPushButton": "커밋 후 푸시 ({count})", "head": "HEAD", "workingTree": "작업 트리", "clickFileToDiff": "파일 이름을 클릭해 diff를 확인하세요", "loadingDiff": "diff 로딩 중..." }, "pushWindow": { "title": "코드 푸시", "noUnpushedCommits": "푸시되지 않은 커밋이 없습니다", "noRemoteConfigured": "Git 원격이 구성되지 않았습니다\n「원격 관리」에서 원격을 추가하세요", "newBranchNoPushedCommits": "새 브랜치 — 푸시하여 원격 추적 브랜치 생성", "unpushed": "미푸시", "selectFileToViewDiff": "파일을 선택하여 차이 보기", "before": "변경 전", "after": "변경 후", "push": "푸시", "toasts": { "pushSuccess": "푸시 성공", "pushFailed": "푸시 실패", "upstreamSet": "원격 추적 브랜치가 설정되었습니다", "upstreamSetAndPushed": "원격 추적 브랜치 설정 및 {count}개 커밋 푸시 완료", "noCommitsToPush": "푸시할 커밋이 없습니다", "pushedCommits": "{count}개 커밋 푸시 완료" } }, "gitLogTab": { "filesTitle": "파일", "expandAllFiles": "모든 파일 펼치기", "collapseAllFiles": "모든 파일 접기", "workspace": "작업 공간", "retry": "다시 시도", "noCommitsFound": "커밋을 찾을 수 없습니다", "notAGitRepoTitle": "Git 저장소가 아닙니다", "notAGitRepoHint": "위의 브랜치 메뉴에서 Git을 초기화하거나 기존 저장소를 여세요.", "hash": "해시", "copyHash": "해시 복사", "copyMessage": "메시지 복사", "author": "작성자", "noFileChangeDetails": "파일 변경 상세 정보가 없습니다.", "branchesTitle": "브랜치", "loadingBranches": "브랜치 로딩 중...", "noContainingBranches": "포함하는 브랜치를 찾을 수 없습니다.", "newBranch": "새 브랜치...", "resetToHere": "여기로 리셋", "resetDisabledReasonNotCurrentBranchView": "현재 브랜치 보기에서만 사용할 수 있습니다", "viewCommitDiffAria": "커밋 {hash}의 diff 보기", "copyFullCommitHashAria": "전체 커밋 해시 {hash} 복사", "pushStatus": { "pushed": "원격에 푸시됨", "notPushed": "원격에 푸시되지 않음", "unknown": "푸시 상태 알 수 없음 (upstream 미설정)" }, "time": { "monthsAgo": "{count, plural, one {#개월 전} other {#개월 전}}", "daysAgo": "{count, plural, one {#일 전} other {#일 전}}", "hoursAgo": "{count, plural, one {#시간 전} other {#시간 전}}", "minsAgo": "{count, plural, one {#분 전} other {#분 전}}", "justNow": "방금 전" }, "toasts": { "createdAndSwitchedNewBranch": "새 브랜치를 생성하고 전환했습니다", "newBranchFromCommit": "{name} ({shortHash}에서 생성)", "createBranchFailed": "브랜치 생성에 실패했습니다", "openPushWindowFailed": "푸시 창을 열지 못했습니다", "resetSuccess": "리셋 완료", "resetSuccessDescription": "{branch}을(를) {mode}로 {shortHash}에 리셋했습니다", "resetFailed": "리셋 실패" }, "branchSelector": { "selectBranchPlaceholder": "브랜치 선택...", "localBranches": "로컬 브랜치", "current": "현재", "remoteBranches": "원격 브랜치", "refreshCommitHistory": "커밋 히스토리 새로고침" }, "dialogs": { "newBranchTitle": "새 브랜치", "newBranchDescription": "커밋 {shortHash}를 최신 커밋으로 하여 새 브랜치를 생성합니다.", "branchNamePlaceholder": "브랜치 이름", "reset": { "title": "현재 브랜치를 이 커밋으로 리셋", "branchLabel": "브랜치", "targetLabel": "대상 커밋", "messageLabel": "커밋 메시지", "modeLabel": "리셋 모드", "confirmButton": "리셋", "modes": { "soft": { "label": "--soft", "description": "HEAD와 현재 브랜치 포인터를 대상 커밋으로 이동합니다.\nIndex와 Working Tree는 변경하지 않습니다.\n되돌려진 커밋의 변경 사항은 staged 상태로 유지됩니다." }, "mixed": { "label": "--mixed (기본값)", "description": "HEAD를 대상 커밋으로 이동합니다.\nIndex를 대상 커밋으로 되돌리고 Working Tree 변경은 유지합니다.\n변경 사항은 staged에서 unstaged로 바뀝니다." }, "hard": { "label": "--hard", "description": "HEAD를 이동하고 Index와 Working Tree를 모두 대상 커밋으로 되돌립니다.\n대상 커밋 이후의 추적된 로컬 변경은 삭제됩니다.\n파괴적인 작업입니다." }, "keep": { "label": "--keep", "description": "HEAD를 대상 커밋으로 이동하면서 가능한 한 로컬 변경을 유지합니다.\n충돌하지 않는 변경만 보존됩니다.\n충돌이 감지되면 작업 보호를 위해 리셋이 중단됩니다." } } } } }, "gitChangesTab": { "workspace": "작업 공간", "noChanges": "로컬 변경 사항이 없습니다", "notAGitRepoTitle": "Git 저장소가 아닙니다", "notAGitRepoHint": "위의 브랜치 메뉴에서 Git을 초기화하거나 기존 저장소를 여세요.", "trackedChanges": "추적된 변경 ({count})", "untrackedFiles": "추적되지 않은 파일 ({count})", "expandTracked": "추적된 변경 펼치기", "collapseTracked": "추적된 변경 접기", "expandUntracked": "추적되지 않은 파일 펼치기", "collapseUntracked": "추적되지 않은 파일 접기", "actions": { "commitCode": "코드 커밋", "rollback": "롤백", "addToVcs": "VCS에 추가", "delete": "삭제" }, "toasts": { "noAddableFilesInDir": "이 디렉터리에는 VCS에 추가할 수 있는 변경 파일이 없습니다", "noRollbackFilesInDir": "이 디렉터리에는 롤백할 수 있는 변경 파일이 없습니다", "addedToVcs": "{name}을(를) VCS에 추가했습니다", "addToVcsFailed": "VCS에 추가하지 못했습니다", "openCommitWindowFailed": "커밋 창을 열지 못했습니다", "rolledBack": "{name}을(를) 롤백했습니다", "rollbackFailed": "롤백에 실패했습니다", "addedFilesToVcs": "{count, plural, one {#개 파일을 VCS에 추가} other {#개 파일을 VCS에 추가}}", "rolledBackFiles": "{count, plural, one {#개 파일 롤백} other {#개 파일 롤백}}", "deleted": "{name}이(가) 삭제되었습니다", "deleteFailed": "삭제에 실패했습니다", "deletedFiles": "{count}개 파일을 삭제했습니다", "noDeletableFilesInDir": "이 디렉터리에서 삭제할 수 있는 변경된 파일이 없습니다" }, "directoryDialog": { "descriptionAdd": "디렉터리 {path} 아래에서 VCS에 추가할 파일을 선택하세요.", "descriptionRollback": "디렉터리 {path} 아래에서 롤백할 파일을 선택하세요.", "descriptionDelete": "디렉터리 {path} 아래에서 삭제할 파일을 선택하세요. 이 작업은 되돌릴 수 없습니다.", "descriptionFallback": "계속 진행할 파일을 선택하세요.", "selectionCount": "{selected} / {total} 선택됨", "selectAll": "모두 선택", "unselectAll": "모두 선택 해제", "loadingCandidates": "디렉터리 변경 사항 로딩 중...", "noOperableFiles": "작업 가능한 파일이 없습니다" }, "rollbackConfirm": { "title": "롤백 확인", "descriptionWithTarget": "{kind} \"{name}\"의 로컬 변경 사항을 롤백할까요?", "descriptionFallback": "로컬 변경 사항을 롤백할까요?", "kindDirectory": "디렉터리", "kindFile": "파일" }, "deleteConfirm": { "title": "삭제 확인", "descriptionWithTarget": "{kind} \"{name}\"을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.", "descriptionFallback": "이 작업은 되돌릴 수 없습니다.", "kindDirectory": "디렉터리", "kindFile": "파일" } }, "tabContext": { "loadingConversation": "로딩 중...", "untitledConversation": "제목 없는 대화", "newConversation": "새 대화" }, "fileTreeTab": { "workspace": "작업 공간", "retry": "다시 시도", "git": "Git", "openInFileManager": "파일 관리자에서 열기", "openInFinder": "Finder에서 열기", "openInExplorer": "Explorer에서 열기", "attachToCurrentSession": "세션에 추가", "compareWithBranch": "브랜치와 비교...", "reloadFromDisk": "디스크에서 다시 불러오기", "new": "새로 만들기", "newFile": "파일", "newDirectory": "디렉터리", "openIn": "열기", "openInTerminal": "터미널에서 열기", "actions": { "select": "선택", "unselect": "선택 해제", "commitCode": "코드 커밋", "rollback": "롤백", "addToVcs": "VCS에 추가" }, "aria": { "selectPath": "{action}: {path}" }, "toasts": { "openDirectoryFailed": "디렉터리를 열지 못했습니다", "openBuiltinTerminalFailed": "내장 터미널을 열 수 없습니다", "openCommitWindowFailed": "커밋 창을 열지 못했습니다", "noAddableFilesInDir": "이 디렉터리에는 VCS에 추가할 수 있는 변경 파일이 없습니다", "noRollbackFilesInDir": "이 디렉터리에는 롤백할 수 있는 변경 파일이 없습니다", "addedToVcs": "{name}을(를) VCS에 추가했습니다", "addToVcsFailed": "VCS에 추가하지 못했습니다", "loadBranchesFailed": "브랜치를 불러오지 못했습니다", "renameFailed": "이름 변경에 실패했습니다", "deleteFailed": "삭제에 실패했습니다", "rolledBack": "{name}을(를) 롤백했습니다", "rollbackFailed": "롤백에 실패했습니다", "addedFilesToVcs": "{count, plural, one {#개 파일을 VCS에 추가했습니다} other {#개 파일을 VCS에 추가했습니다}}", "rolledBackFiles": "{count, plural, one {#개 파일을 롤백했습니다} other {#개 파일을 롤백했습니다}}", "savedAsCopy": "사본으로 저장했습니다", "saveCopyFailed": "사본으로 저장하지 못했습니다", "watchStartFailed": "파일 감시 시작에 실패했습니다", "createFailed": "생성 실패" }, "createDialog": { "newFile": "새 파일", "newDirectory": "새 디렉터리", "description": "새 {kind}의 이름을 입력하세요.", "placeholderFile": "file-name.ext", "placeholderDirectory": "folder-name" }, "renameDialog": { "renameDirectory": "디렉터리 이름 변경", "renameFile": "파일 이름 변경", "description": "새 이름을 입력하세요(이름만, 경로 제외).", "placeholderDirectory": "새-폴더-이름", "placeholderFile": "새-파일-이름.ext" }, "directoryDialog": { "descriptionAdd": "디렉터리 {path} 아래에서 VCS에 추가할 파일을 선택하세요.", "descriptionRollback": "디렉터리 {path} 아래에서 롤백할 파일을 선택하세요.", "descriptionFallback": "계속할 파일을 선택하세요.", "selectionCount": "{selected} / {total}개 파일 선택됨", "selectAll": "모두 선택", "unselectAll": "모두 선택 해제", "loadingCandidates": "디렉터리 변경 사항을 불러오는 중...", "noOperableFiles": "작업 가능한 파일이 없습니다" }, "compareDialog": { "title": "브랜치와 비교", "descriptionWithTarget": "브랜치를 선택하고 {kind} {path}와(과) 비교하세요", "descriptionFallback": "비교할 브랜치를 선택하세요.", "kindDirectory": "디렉터리", "kindFile": "파일", "filterPlaceholder": "브랜치 필터링 (예: main / origin/main)", "singleClickHint": "브랜치를 클릭하면 바로 비교합니다", "loadingBranches": "브랜치를 불러오는 중...", "recentBranches": "최근 브랜치 ({count})", "noCurrentBranch": "현재 브랜치 없음", "localBranches": "로컬 브랜치 ({count})", "remoteBranches": "원격 브랜치 ({count})", "noMatchingBranches": "일치하는 브랜치가 없습니다" }, "externalConflictDialog": { "title": "외부 파일 변경 감지됨", "descriptionWithPath": "파일 {path} 이(가) 디스크에서 변경되었고 현재 편집 내용은 저장되지 않았습니다.", "descriptionFallback": "현재 파일이 디스크에서 변경되었고 현재 편집 내용은 저장되지 않았습니다.", "compare": "비교", "savingCopy": "사본 저장 중...", "saveAsCopy": "사본으로 저장", "reload": "다시 불러오기" }, "deleteConfirm": { "title": "삭제 확인", "descriptionWithTarget": "{kind} \"{name}\"을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.", "descriptionFallback": "이 작업은 되돌릴 수 없습니다.", "kindDirectory": "디렉터리", "kindFile": "파일" }, "rollbackConfirm": { "title": "롤백 확인", "descriptionWithTarget": "파일 \"{name}\"의 로컬 변경 사항을 롤백할까요?", "descriptionFallback": "이 파일의 로컬 변경 사항을 롤백할까요?" }, "terminalTitle": "터미널 · {name}" }, "commandDropdown": { "loading": "로딩 중...", "addCommand": "명령 추가", "manageCommands": "명령 관리...", "runCommandTitle": "실행: {command}", "stopCommandTitle": "중지: {command}", "manageDialog": { "title": "명령 관리", "empty": "아직 명령이 없습니다", "namePlaceholder": "이름", "commandPlaceholder": "명령", "add": "추가", "saving": "저장 중..." } }, "workspaceContext": { "confirmCloseDirtyTab": "저장하지 않고 \"{title}\" 탭을 닫을까요?", "confirmCloseOtherDirtyTabs": "저장되지 않은 변경 사항이 있는 다른 탭을 닫을까요?", "confirmCloseAllDirtyTabs": "저장되지 않은 변경 사항이 있는 모든 탭을 닫을까요?", "unableLoadContent": "콘텐츠를 불러올 수 없습니다.\n\n{message}", "previewRequestTimedOut": "미리보기 요청 시간이 초과되었습니다", "diffRequestTimedOut": "Diff 요청 시간이 초과되었습니다", "branchCompareRequestTimedOut": "브랜치 비교 요청 시간이 초과되었습니다", "commitDiffRequestTimedOut": "커밋 Diff 요청 시간이 초과되었습니다", "saveRequestTimedOut": "저장 요청 시간이 초과되었습니다", "reloadRequestTimedOut": "다시 불러오기 요청 시간이 초과되었습니다", "noChanges": "변경 사항이 없습니다.", "noDiffOutput": "Diff 출력이 없습니다.", "diffTitleWorkspace": "Diff · 워크스페이스", "diffDescriptionWorkingTree": "작업 트리 (HEAD)", "diffTitleFile": "차이 · {name}", "compareTitleFile": "비교 · {name}", "compareTitleBranch": "비교 · {branch}", "compareDescriptionPath": "{path} · {branch}와 비교", "compareDescriptionBranch": "{branch}와 비교", "diffTitleCommitFile": "차이 · {name} @ {hash}", "diffTitleCommit": "차이 · {hash}", "diffDescriptionCommitPath": "{path} · 커밋 {commit}", "diffDescriptionCommit": "커밋 {commit}", "diffTitleConflictFile": "충돌 · {name}", "diffDescriptionConflict": "{path} · 디스크 vs 저장되지 않음" }, "chat": { "acpConnections": { "actions": { "openAgentsSettings": "에이전트 설정 열기", "retry": "다시 시도" }, "agentsSetupHint": "설정 > 에이전트를 열어 설치를 관리하세요.", "withSetupHint": "{message}\n{hint}", "blocked": { "missingConfig": "현재 에이전트 구성을 읽을 수 없습니다.", "disabled": "{agent}은(는) 에이전트 설정에서 비활성화되어 있습니다. 연결 전에 활성화하세요.", "unavailable": "{agent}은(는) 현재 플랫폼에서 사용할 수 없습니다.", "sdkMissing": "{agent} SDK가 설치되어 있지 않습니다" }, "backendErrors": { "initializeTimeout": "{agent} 연결 핸드셰이크가 시간 초과되었습니다(60초 동안 응답 없음). 설정을 열어 에이전트 및 네트워크 구성을 확인하세요.", "processExited": "{agent} 프로세스가 예기치 않게 종료되었습니다.", "spawnFailed": "{agent} 시작 실패: {message}", "downloadFailed": "{agent} 다운로드 실패: {message}" }, "unableReadAgentConfig": "에이전트 구성을 읽을 수 없습니다: {message}", "connectFailedTitle": "{agent} 연결 실패", "toolFallbackTitle": "도구", "eventErrorTitle": "에이전트 오류", "notificationTurnComplete": "{agent} 응답이 완료되었습니다", "notificationError": "{agent} 오류: {message}", "claudeApiRetry": { "fallbackError": "authentication_failed", "retryingWithMax": "재시도 중 {attempt}/{max}", "retryingAttempt": "{attempt}번째 재시도 중", "retrying": "재시도 중", "nextRetryIn": "{seconds}초 후 재시도", "line": "{error}{status} · {retry}", "lineWithDelay": "{error}{status} · {retry}, {delay}", "httpStatus": " (HTTP {status})" } }, "connectionLifecycle": { "tasks": { "connectingTitle": "{agent}에 연결 중", "connectingDescription": "연결을 설정하는 중", "loadingSelectorsTitle": "{agent} 선택자 불러오는 중", "loadingSelectorsDescription": "모드 및 세션 구성 옵션을 가져오는 중", "initSessionTitle": "{agent} 세션 초기화 중", "initSessionDescription": "세션 생성 및 설정 불러오는 중" }, "errors": { "connectionFailed": "연결 실패" } }, "shared": { "attachedResources": "첨부된 리소스", "toolCallFailed": "도구 호출 실패" }, "messageThread": { "emptyTitle": "아직 메시지가 없습니다", "emptyDescription": "대화를 시작하면 여기에서 메시지를 볼 수 있습니다" }, "chatInput": { "connecting": "연결 중...", "agentResponding": "{agent} 응답 중...", "sendMessage": "메시지 보내기..." }, "messageInput": { "askAnything": "무엇이든 물어보세요...", "removeAttachmentAria": "{name} 제거", "attachFiles": "파일 첨부", "dropFilesToAttach": "파일을 놓아 첨부", "loadingSettings": "설정 불러오는 중...", "loadingMode": "모드 불러오는 중...", "cancel": "취소", "send": "보내기", "forkAndSend": "포크 & 전송", "slashCommands": "슬래시 명령", "expertSkills": "전문가 스킬", "expertsEmptyForAgent": "이 에이전트에 활성화된 전문가가 없습니다. 설정 > 전문가에서 활성화하세요.", "slashSearchPlaceholder": "명령 검색...", "slashSearchEmpty": "일치하는 명령이 없습니다" }, "messageQueue": { "addToQueue": "대기열에 추가", "saveEdit": "저장", "cancelEdit": "편집 취소", "editItem": "편집", "deleteItem": "삭제" }, "welcomeInputPanel": { "agentsSettingsPath": "설정 > 에이전트", "autoConnectFallback": "{path}을(를) 열어 설치를 관리하세요.", "autoConnectAppend": "{message}. {path}을(를) 열어 설치를 관리하세요.", "enableAgentFirstPlaceholder": "세션을 시작하기 전에 최소 한 개의 에이전트를 활성화하세요...", "askAnythingPlaceholder": "무엇이든 물어보세요..." }, "agentSelector": { "noEnabledAgents": "활성화된 에이전트가 없습니다", "openAgentsSettings": "에이전트 설정 열기" }, "agentPlanOverlay": { "title": "에이전트 계획", "collapsePlanAria": "계획 접기", "collapsedSummary": "계획 {completed}/{total}", "status": { "completed": "완료", "inProgress": "진행 중", "pending": "대기", "unknown": "알 수 없음" }, "priority": { "high": "높음", "medium": "중간", "low": "낮음", "unknown": "알 수 없음" } }, "permissionDialog": { "subtitle": "에이전트가 이 턴을 계속하기 위한 권한을 요청합니다.", "kindFallbackTool": "도구", "command": "명령", "cwd": "작업 디렉터리: {cwd}", "filesSummary": "파일: {count}", "moreFiles": "+{count}개 파일 더", "plan": "계획", "allowedActions": "허용된 작업", "targetMode": "대상 모드: {mode}" }, "questionDialog": { "title": "에이전트가 질문하고 있습니다", "placeholder": "답변을 입력하세요...", "send": "전송" }, "messageBranch": { "previousBranchAria": "이전 브랜치", "nextBranchAria": "다음 브랜치", "pageOf": "{current} / {total}" }, "terminal": { "title": "터미널", "running": "실행 중" }, "reasoning": { "thinking": "생각 중…", "thoughtForFewSeconds": "생각함", "thoughtForSeconds": "생각함" }, "linkSafety": { "localFileTitle": "로컬 파일을 여시겠습니까?", "externalLinkTitle": "외부 링크를 여시겠습니까?", "localFileDescription": "파일 패널에서 로컬 파일을 열려고 합니다.", "externalLinkDescription": "외부 웹사이트를 방문하려고 합니다.", "cancel": "취소", "opening": "열고 있습니다…", "openFile": "파일 열기", "openLink": "링크 열기", "errorCannotOpen": "로컬 파일을 열 수 없습니다", "errorNoWorkspace": "현재 활성화된 워크스페이스 폴더가 없습니다.", "errorOutsideWorkspace": "파일이 현재 워크스페이스 폴더 밖에 있습니다.", "errorFailedOpen": "로컬 파일 열기 실패", "errorFailedLink": "링크 열기 실패" }, "messageList": { "attachedResources": "첨부된 리소스", "loading": "불러오는 중...", "error": "오류: {message}", "emptyConversation": "이 대화에는 메시지가 없습니다.", "systemMessage": "시스템 메시지", "copyMessage": "복사", "copied": "복사됨" }, "liveTurnStats": { "thinking": "생각 중...", "streaming": "스트리밍 중", "elapsedHours": "{value}시간", "elapsedMinutes": "{value}분", "elapsedSeconds": "{value}초", "toolUseCount": "{count}개 도구 {count, plural, one {use} other {uses}}" }, "tool": { "parameters": "매개변수", "error": "오류", "result": "결과", "status": { "approvalRequested": "승인 대기 중", "approvalResponded": "응답됨", "inputAvailable": "실행 중", "inputStreaming": "대기 중", "outputAvailable": "완료", "outputDenied": "거부됨", "outputError": "오류" } }, "toolCallBlock": { "tool": "도구", "error": "오류", "result": "결과" }, "contentParts": { "showingTailOutput": "성능을 위해 스트리밍 중에는 출력의 끝부분만 표시합니다.", "result": "결과", "unknown": "알 수 없음", "inputTruncated": "입력이 잘렸습니다 — diff가 불완전할 수 있습니다.", "replaceAll": "모두 바꾸기", "filesCount": "파일: {count}", "update": "업데이트", "moreFiles": "+{count}개 파일 더", "timeoutMs": "시간 초과: {timeout}ms", "backgroundTrue": "백그라운드: true", "offset": "오프셋: {offset}", "limit": "제한: {limit}", "pages": "페이지: {pages}", "mode": "모드: {mode}", "cell": "셀: {cell}", "pathLabel": "경로:", "globLabel": "Glob 패턴:", "typeLabel": "유형:", "outputLabel": "출력:", "caseInsensitive": "대소문자 구분 안 함", "multiline": "여러 줄", "promptLabel": "프롬프트", "subjectLabel": "제목", "taskLabel": "작업", "nameLabel": "이름:", "agentPromptLabel": "프롬프트", "agentModelLabel": "모델", "agentRunning": "실행 중...", "agentStatsBash": "명령", "agentStatsRead": "파일 읽기", "agentStatsSearch": "검색", "agentStatsEdit": "편집", "agentStatsOther": "기타", "field": { "file": "파일", "notebook": "노트북", "command": "명령", "old": "이전", "new": "새", "pattern": "패턴", "path": "경로", "query": "쿼리", "url": "URL:", "description": "설명", "content": "내용", "source": "소스", "prompt": "프롬프트", "subject": "제목", "taskId": "작업 ID", "status": "상태", "skill": "Skill", "args": "인자", "offset": "오프셋", "limit": "제한", "glob": "Glob 패턴", "type": "유형", "output": "출력", "replaceAll": "모두 바꾸기", "language": "언어", "timeout": "시간 초과", "background": "백그라운드", "agentType": "에이전트 유형", "library": "라이브러리", "libraryId": "라이브러리 ID" }, "title": { "edit": "편집", "command": "명령", "todoWrite": "TodoWrite(할 일 업데이트)", "read": "읽기", "write": "쓰기", "notebookEdit": "NotebookEdit(노트북 편집)", "editFiles": "편집 ({count}개 파일)", "editWithTarget": "{target} 편집", "readWithTarget": "{target} 읽기", "writeWithTarget": "{target} 쓰기", "notebookEditWithTarget": "NotebookEdit({target})", "globWithPattern": "Glob 패턴 {pattern}", "grepWithPattern": "Grep 패턴 {pattern}", "taskCreateWithSubject": "작업 생성: {subject}", "taskUpdateWithStatus": "작업 업데이트 #{id} -> {status}", "taskUpdate": "작업 업데이트 #{id}", "webFetchWithUrl": "WebFetch ({url})", "webSearchWithQuery": "WebSearch ({query})", "todosProgress": "할 일 ({done}/{total})", "skillWithName": "Skill: {name}", "genericWithContext": "{tool} ({context})" } } }, "diffPreview": { "mode": { "added": "추가됨", "deleted": "삭제됨", "renamed": "이름 변경됨", "modified": "수정됨" }, "hunkLabel": "청크 {index}", "loadingHunk": "Hunk 로딩 중...", "noDiffData": "Diff 데이터 없음" }, "conversationContextBar": { "searchFolder": "Search folder...", "searchBranch": "Search branch...", "noFolders": "No folders", "noBranches": "No branches", "noBranch": "(no branch)", "openNewFolder": "Open folder from disk...", "cancel": "Cancel", "create": "Create", "commit": "Commit", "push": "Push", "merge": "Merge", "toasts": { "folderChanged": "Switched to {name}", "openFolderFailed": "Failed to open folder", "openStashFailed": "Failed to open stash window", "openMergeFailed": "Failed to open merge window" } } }, "ProjectBoot": { "title": "프로젝트 부트", "tabs": { "shadcn": "shadcn" }, "config": { "base": "베이스", "style": "스타일", "baseColor": "베이스 색상", "theme": "테마", "chartColor": "차트 색상", "iconLibrary": "아이콘 라이브러리", "font": "글꼴", "fontHeading": "제목 글꼴", "menuAccent": "메뉴 강조", "menuColor": "메뉴 색상", "radius": "둥글기", "template": "템플릿", "createProject": "프로젝트 만들기", "sectionStyle": "스타일", "sectionColors": "색상", "sectionTypography": "타이포그래피", "sectionInterface": "인터페이스" }, "preview": { "loading": "미리보기 로딩 중..." }, "createDialog": { "title": "프로젝트 만들기", "projectName": "프로젝트 이름", "projectNamePlaceholder": "my-app", "frameworkTemplate": "프레임워크 템플릿", "packageManager": "패키지 매니저", "saveDirectory": "저장 디렉토리", "saveDirectoryPlaceholder": "디렉토리 선택...", "browseDirectory": "찾아보기", "projectPath": "프로젝트 생성 위치: {path}", "advancedOptions": "고급 옵션", "base": "기본 라이브러리", "enableRtl": "RTL 지원 활성화", "enableRtlDescription": "오른쪽에서 왼쪽으로 쓰는 언어(예: 아랍어, 히브리어)의 레이아웃 지원 활성화", "pmChecking": "확인 중...", "pmNotInstalled": "설치되지 않음", "cancel": "취소", "create": "만들기", "creating": "프로젝트 생성 중..." }, "toasts": { "createFailed": "프로젝트 생성에 실패했습니다", "createSuccess": "프로젝트가 성공적으로 생성되었습니다" }, "errors": { "directoryExists": "대상 디렉터리가 이미 존재합니다", "commandFailed": "프로젝트 생성 명령이 실패했습니다." } }, "WebServiceSettings": { "sectionTitle": "웹 서비스", "sectionDescription": "활성화하면 브라우저를 통해 Codeg에 원격으로 접속할 수 있습니다", "port": "포트", "status": "상태", "running": "실행 중", "stopped": "중지됨", "processing": "처리 중...", "start": "시작", "stop": "중지", "startFailed": "시작 실패", "stopFailed": "중지 실패", "open": "열기", "hide": "숨기기", "show": "표시", "copy": "복사", "addressLabel": "접속 주소", "tokenLabel": "접속 토큰", "tokenHint": "웹 클라이언트 첫 접속 시 이 토큰을 입력하세요", "tokenPlaceholder": "비워두면 자동 생성", "regenerate": "재생성", "errors": { "alreadyRunning": "웹 서비스가 이미 실행 중입니다", "invalidAddress": "호스트 또는 포트 형식이 올바르지 않습니다", "portInUse": "포트 {port}가 이미 사용 중입니다. 해당 포트를 사용 중인 프로세스를 종료하거나 다른 포트를 선택하세요", "permissionDenied": "권한이 부족합니다. 1024 이상의 포트를 사용하거나 더 높은 권한으로 실행하세요", "addressUnavailable": "이 주소는 현재 시스템에서 사용할 수 없습니다", "bindFailed": "주소 바인딩에 실패했습니다" } }, "DirectoryBrowser": { "title": "디렉토리 찾아보기", "pathPlaceholder": "디렉토리 경로 입력...", "goHome": "홈 디렉토리로 이동", "navigateUp": "상위 디렉토리로 이동", "select": "선택", "cancel": "취소", "loading": "로딩 중...", "emptyDirectory": "이 디렉토리는 비어 있습니다", "errorLoadingDir": "디렉토리 로딩 실패", "permissionDenied": "권한이 없습니다" }, "ChatChannelSettings": { "loading": "로딩 중...", "sectionTitle": "채팅 채널", "sectionDescription": "IM 봇을 설정하여 이벤트 알림을 수신하고 코딩 활동을 조회합니다.", "addChannel": "채널 추가", "noChannels": "설정된 채팅 채널이 없습니다.", "channelName": "이름", "channelNamePlaceholder": "내 Telegram 봇", "channelType": "채널 유형", "lark": "Lark (飛書)", "weixin": "WeChat", "dailyReport": "일일 리포트", "dailyReportTime": "발송 시간", "nameRequired": "채널 이름을 입력하세요.", "tokenRequired": "토큰을 입력하세요.", "chatIdRequired": "Chat ID를 입력하세요.", "loadFailed": "채널 로딩에 실패했습니다.", "saveFailed": "저장에 실패했습니다.", "connectSuccess": "채널이 연결되었습니다.", "connectFailed": "연결에 실패했습니다", "disconnectSuccess": "채널이 연결 해제되었습니다.", "disconnectFailed": "연결 해제에 실패했습니다.", "testSuccess": "연결 테스트를 통과했습니다.", "testFailed": "연결 테스트에 실패했습니다", "deleteSuccess": "채널이 삭제되었습니다.", "deleteFailed": "채널 삭제에 실패했습니다.", "deleteConfirmTitle": "채널 삭제", "deleteConfirmMessage": "이 채널과 메시지 기록이 영구 삭제됩니다. 계속하시겠습니까?", "cancel": "취소", "delete": "삭제", "create": "생성", "save": "저장", "channelListTitle": "설정된 채널", "channelListDescription": "활성화된 채널은 서비스 시작 시 자동으로 연결됩니다.", "editChannel": "채널 편집", "editSuccess": "채널이 업데이트되었습니다.", "tokenPlaceholderKeep": "비워두면 현재 값 유지", "weixinScanTitle": "QR 코드 스캔", "weixinScanDescription": "WeChat을 열고 QR 코드를 스캔하여 연결하세요.", "weixinQrcodeExpired": "QR 코드가 만료되었습니다.", "weixinRefreshQrcode": "새로고침", "weixinWaitingScan": "스캔 대기 중...", "weixinPollError": "연결이 불안정합니다. 재시도 중...", "weixinReconnectNotice": "iLink 프로토콜 제한으로 인해, 재연결할 때마다 먼저 봇에게 메시지를 보내야 이벤트 트리거가 활성화됩니다.", "connect": "연결", "disconnect": "연결 해제", "test": "연결 테스트", "tabs": { "channels": "채널", "commands": "명령어", "events": "이벤트", "other": "기타" }, "commands": { "title": "내장 명령어", "description": "채팅 채널에서 사용 가능한 Bot 명령어입니다. 그룹 채팅에서는 메시지를 처리하려면 @Bot이 필요합니다.", "prefixLabel": "명령어 접두사", "prefixDescription": "Bot 명령어를 실행하는 접두사, 1-3개의 영숫자가 아닌 문자 (기본값 /).", "prefixSaved": "명령어 접두사가 저장되었습니다.", "prefixSaveFailed": "명령어 접두사 저장에 실패했습니다.", "prefixInvalid": "접두사는 1-3개의 영숫자가 아닌 문자여야 합니다.", "save": "저장", "folderDesc": "작업 폴더 선택", "agentDesc": "AI 에이전트 선택", "taskDesc": "세션 생성 및 작업 실행", "sessionsDesc": "폴더 내 활성 세션 목록", "resumeDesc": "최근 대화 / 세션 재개", "cancelDesc": "현재 작업 취소", "approveDesc": "에이전트 권한 요청 승인", "denyDesc": "에이전트 권한 요청 거부", "searchDesc": "키워드로 대화 검색", "todayDesc": "오늘의 활동 요약", "statusDesc": "채널 연결 상태", "helpDesc": "도움말 표시" }, "events": { "title": "이벤트 알림", "description": "이벤트를 활성화하면, 트리거 시 채널로 푸시됩니다.", "turnComplete": "턴 완료", "turnCompleteDesc": "에이전트 턴이 종료될 때", "error": "에이전트 오류", "errorDesc": "에이전트에 오류가 발생했을 때", "saved": "이벤트 필터가 업데이트되었습니다.", "saveFailed": "이벤트 필터 저장에 실패했습니다." }, "language": { "title": "메시지 언어", "description": "이벤트 알림, 명령 응답, 일일 보고서를 채팅 채널로 전송할 때 사용하는 언어입니다.", "saved": "메시지 언어가 저장되었습니다.", "saveFailed": "메시지 언어 저장에 실패했습니다.", "en": "영어", "zh-cn": "중국어 간체", "zh-tw": "중국어 번체", "ja": "일본어", "ko": "한국어", "es": "스페인어", "de": "독일어", "fr": "프랑스어", "pt": "포르투갈어", "ar": "아랍어" } }, "ModelProviderSettings": { "sectionTitle": "모델 제공업체", "sectionDescription": "에이전트의 API 제공업체 자격 증명을 관리합니다.", "filterAll": "전체", "providerListTitle": "구성된 제공업체", "addProvider": "제공업체 추가", "editProvider": "제공업체 편집", "noProviders": "아직 구성된 모델 제공업체가 없습니다.", "providerName": "이름", "providerNamePlaceholder": "예: OpenAI, Anthropic", "apiUrl": "API URL", "apiUrlPlaceholder": "https://api.openai.com/v1", "apiKey": "API 키", "apiKeyPlaceholder": "sk-...", "apiKeyKeepCurrent": "현재 값을 유지하려면 비워두세요", "agentTypes": "에이전트 유형", "agentTypesRequired": "최소 하나의 에이전트 유형을 선택하세요.", "nameRequired": "제공업체 이름은 필수입니다.", "apiUrlRequired": "API URL은 필수입니다.", "apiKeyRequired": "API 키는 필수입니다.", "loadFailed": "제공업체를 불러오지 못했습니다.", "saveFailed": "변경 사항을 저장하지 못했습니다.", "createSuccess": "제공업체가 생성되었습니다.", "editSuccess": "제공업체가 업데이트되었습니다.", "deleteSuccess": "제공업체가 삭제되었습니다.", "deleteConfirmTitle": "제공업체 삭제", "deleteConfirmMessage": "제공업체 \"{name}\"을(를) 영구적으로 삭제하시겠습니까?", "deleteBlockedByAgent": "{agents}이(가) 이 공급자를 사용 중입니다. 삭제하기 전에 연결을 해제해 주세요.", "cancel": "취소", "delete": "삭제", "create": "생성", "save": "저장" }, "ExpertsSettings": { "title": "전문가 스킬", "description": "AI 코딩 에이전트를 위해 엄선되고 실전 검증된 스킬 워크플로를 활성화하세요. 각 전문가는 superpowers 프로젝트의 독립 실행형 스킬이며 — codeg가 중앙 복사본을 관리하고 선택한 에이전트에 연결합니다.", "loading": "전문가 로딩 중…", "loadingContent": "콘텐츠 로딩 중…", "emptyExperts": "사용 가능한 전문가가 없습니다. 애플리케이션 로그를 확인하세요.", "emptySelection": "전문가를 선택하여 내용을 보고 활성화를 관리하세요.", "emptySearch": "현재 검색과 일치하는 전문가가 없습니다.", "searchPlaceholder": "이름, ID 또는 설명으로 전문가 검색", "enableForAgents": "에이전트에 활성화", "noAgents": "ACP 에이전트가 감지되지 않았습니다.", "copyModeWarning": "복사됨(연결되지 않음). 최신 버전을 받으려면 codeg 업데이트 후 재활성화하세요.", "previewTitle": "SKILL.md 미리보기", "categories": { "discovery": "발견 및 설계", "planning": "계획", "execution": "실행", "quality": "품질 및 테스트", "debugging": "디버깅", "review": "검토 및 통합", "meta": "메타" }, "states": { "not_linked": "활성화되지 않음", "linked_to_codeg": "활성화됨", "linked_elsewhere": "차단됨 — 다른 링크가 존재함", "blocked_by_real_directory": "차단됨 — 사용자 정의 스킬이 이 이름을 점유 중", "broken": "손상된 링크" }, "badges": { "userModified": "사용자가 수정함" }, "actions": { "openCentralDir": "중앙 폴더 열기", "refresh": "새로고침" }, "toasts": { "loadFailed": "전문가 세부 정보를 로드하지 못했습니다", "enabled": "이 에이전트에 전문가가 활성화되었습니다", "disabled": "이 에이전트에서 전문가가 비활성화되었습니다", "enableFailed": "전문가 활성화에 실패했습니다", "disableFailed": "전문가 비활성화에 실패했습니다", "openFolderFailed": "폴더를 열지 못했습니다" } } }