{ "Language": { "followSystem": "시스템 설정 따름", "english": "영어", "simplifiedChinese": "简体中文", "traditionalChinese": "繁體中文", "japanese": "일본어", "korean": "한국어", "spanish": "스페인어", "german": "독일어", "french": "프랑스어", "portuguese": "포르투갈어", "arabic": "아랍어" }, "WelcomePage": { "title": "Codeg에 오신 것을 환영합니다", "openSettings": "설정 열기", "searchPlaceholder": "폴더 검색...", "loading": "로딩 중...", "emptyFolders": "폴더가 없습니다", "removeFromHistory": "기록에서 제거", "openFolder": "폴더 열기", "cloneRepository": "저장소 클론", "softwareVersion": "버전 {version}", "toasts": { "loadFolderHistoryFailed": "폴더 기록을 불러오지 못했습니다", "openFolderFailed": "폴더를 열지 못했습니다", "removeFromHistoryFailed": "기록에서 제거하지 못했습니다", "openSettingsFailed": "설정을 열지 못했습니다", "cloneFailed": "저장소 클론에 실패했습니다" }, "errors": { "unknown": "예기치 않은 오류가 발생했습니다", "invalidInput": "잘못된 입력입니다.", "notFound": "리소스를 찾을 수 없습니다.", "alreadyExists": "리소스가 이미 존재합니다.", "dependencyMissing": "필수 의존성이 누락되었습니다.", "databaseError": "데이터베이스 작업에 실패했습니다.", "ioError": "파일 작업에 실패했습니다.", "externalCommandFailed": "외부 명령 실행에 실패했습니다.", "windowOperationFailed": "창 작업에 실패했습니다.", "gitNotInstalled": "Git이 설치되어 있지 않습니다. 먼저 Git을 설치하세요.", "targetDirectoryNotEmpty": "대상 디렉터리가 이미 존재하며 비어 있지 않습니다.", "repositoryNotFound": "저장소를 찾을 수 없습니다. URL 및 접근 권한을 확인하세요.", "networkUnavailable": "네트워크를 사용할 수 없습니다. 연결을 확인한 뒤 다시 시도하세요.", "authenticationFailed": "인증에 실패했습니다. 자격 증명 또는 SSH 키를 확인하세요.", "permissionDenied": "권한이 없습니다. 디렉터리 권한을 확인하세요." }, "cloneDialog": { "title": "저장소 클론", "repositoryUrl": "저장소 URL", "repositoryUrlPlaceholder": "https://github.com/user/repo.git", "directory": "디렉터리", "directoryPlaceholder": "대상 디렉터리 선택...", "browseDirectory": "디렉터리 찾아보기", "cancel": "취소", "clone": "클론" } }, "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": "시스템" } }, "AppearanceSettings": { "sectionTitle": "테마 모양", "sectionDescription": "라이트, 다크 또는 시스템 설정을 선택할 수 있습니다. 설정은 자동으로 저장됩니다.", "themeMode": "테마 모드", "placeholder": "테마 모드 선택", "system": "시스템 설정 따름", "light": "라이트", "dark": "다크", "currentTheme": "현재 적용된 테마: {theme}", "resolvedTheme": { "light": "라이트", "dark": "다크", "unknown": "--" } }, "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": "설치 중...", "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": "사용 가능한 에이전트가 없습니다.", "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": "제거 확인" }, "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 활성화", "authJsonNative": "auth.json (네이티브)", "configTomlNative": "config.toml (네이티브)" }, "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 구성" }, "openClaw": { "gatewayConfig": "Gateway 구성", "gatewayDescription": "OpenClaw Gateway 연결을 구성합니다. 로컬 또는 원격 gateway를 지원합니다.", "gatewayUrlHint": "비워두면 로컬 openclaw 설정의 gateway.remote.url을 사용합니다.", "gatewayTokenPlaceholder": "Gateway 인증 토큰", "gatewayTokenHint": "가능하면 평문 토큰 대신 token-file을 사용하세요. openclaw CLI로 설정하세요.", "sessionKeyHint": "선택 사항입니다. gateway 세션 키를 지정합니다. 비워두면 격리된 세션이 자동 할당됩니다." }, "claude": { "mainModel": "메인 모델", "reasoningModel": "추론 모델 (thinking)", "haikuDefaultModel": "기본 Haiku 모델", "sonnetDefaultModel": "기본 Sonnet 모델", "opusDefaultModel": "기본 Opus 모델" }, "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": "구성 관리 저장 실패" }, "version": { "statusLabel": "버전 상태", "notInstalled": "설치되지 않음", "remoteLocal": "원격: {remoteVersion} · 로컬: {localVersion}", "platformUnsupported": "{versionText}. 현재 플랫폼에서는 이 에이전트를 지원하지 않습니다.", "clickInstall": "{versionText}. 오른쪽의 설치를 클릭하세요.", "localUnrecognized": "{versionText}. 로컬 버전을 비교할 수 없습니다. 덮어쓰기 설치를 위해 업그레이드를 시도하세요.", "upgradeAvailable": "{versionText}. 업그레이드가 가능합니다.", "remoteUnavailable": "{versionText}. 현재 원격 버전을 사용할 수 없습니다.", "latest": "{versionText}. 이미 최신입니다." } }, "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": { "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}" } }, "conversation": { "reloadFailed": "대화 다시 불러오기 실패: {message}", "reloaded": "대화를 다시 불러왔습니다", "reload": "다시 불러오기", "newConversation": "새 대화", "closeConversation": "대화 닫기", "forkSession": "세션 포크", "forkSessionSuccess": "세션 포크 성공", "forkSessionFailed": "세션 포크 실패: {error}" }, "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": "연결 중...", "downloading": "다운로드 중...", "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})" }, "sessionFiles": { "currentResponse": "현재 응답", "noDiffDataAvailable": "{filePath}에 대한 diff 데이터가 없습니다", "loading": "로딩 중...", "noFileChangesInConversation": "이 대화에서 파일 변경을 찾을 수 없습니다", "openConversationToSeeChanges": "대화를 열어 파일 변경을 확인하세요", "remove": "제거", "changeCount": "{count, plural, one {#개 변경} other {#개 변경}}", "fileCount": "{count, plural, one {#개 파일} other {#개 파일}}" }, "folderNameDropdown": { "fallbackFolderName": "폴더", "openFolder": "폴더 열기", "cloneRepository": "리포지토리 클론", "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} 삭제", "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}가 완전히 병합되지 않았습니다. 강제 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다." }, "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": "코드 커밋이 완료되었습니다", "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})", "head": "HEAD", "workingTree": "작업 트리", "clickFileToDiff": "파일 이름을 클릭해 diff를 확인하세요", "loadingDiff": "diff 로딩 중..." }, "pushWindow": { "title": "코드 푸시", "noUnpushedCommits": "푸시되지 않은 커밋이 없습니다", "newBranchNoPushedCommits": "새 브랜치 — 푸시하여 원격 추적 브랜치 생성", "unpushed": "미푸시", "selectFileToViewDiff": "파일을 선택하여 차이 보기", "before": "변경 전", "after": "변경 후", "push": "푸시", "toasts": { "pushSuccess": "푸시 성공", "pushFailed": "푸시 실패", "upstreamSet": "원격 추적 브랜치가 설정되었습니다", "upstreamSetAndPushed": "원격 추적 브랜치 설정 및 {count}개 커밋 푸시 완료", "noCommitsToPush": "푸시할 커밋이 없습니다", "pushedCommits": "{count}개 커밋 푸시 완료" } }, "gitLogTab": { "filesTitle": "파일", "expandAllFiles": "모든 파일 펼치기", "collapseAllFiles": "모든 파일 접기", "workspace": "작업 공간", "retry": "다시 시도", "noCommitsFound": "커밋을 찾을 수 없습니다", "hash": "해시", "copyHash": "해시 복사", "copyMessage": "메시지 복사", "author": "작성자", "noFileChangeDetails": "파일 변경 상세 정보가 없습니다.", "branchesTitle": "브랜치", "loadingBranches": "브랜치 로딩 중...", "noContainingBranches": "포함하는 브랜치를 찾을 수 없습니다.", "newBranch": "새 브랜치...", "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": "푸시 창을 열지 못했습니다" }, "branchSelector": { "selectBranchPlaceholder": "브랜치 선택...", "localBranches": "로컬 브랜치", "current": "현재", "remoteBranches": "원격 브랜치", "refreshCommitHistory": "커밋 히스토리 새로고침" }, "dialogs": { "newBranchTitle": "새 브랜치", "newBranchDescription": "커밋 {shortHash}를 최신 커밋으로 하여 새 브랜치를 생성합니다.", "branchNamePlaceholder": "브랜치 이름" } }, "gitChangesTab": { "workspace": "작업 공간", "noChanges": "로컬 변경 사항이 없습니다", "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가 설치되어 있지 않습니다" }, "unableReadAgentConfig": "에이전트 구성을 읽을 수 없습니다: {message}", "autoLinkFailedTitle": "{agent} 자동 연결 실패", "preflightCheckFailedDefault": "사전 점검에 실패했습니다. 에이전트 설정을 확인하세요.", "preflightFailedTitle": "{agent} 사전 점검 실패", "autoLinkPreflightFailed": "자동 연결 사전 점검 실패: {message}", "connectFailedTitle": "{agent} 연결 실패", "toolFallbackTitle": "도구", "eventErrorTitle": "에이전트 오류", "notificationTurnComplete": "{agent} 응답이 완료되었습니다" }, "connectionLifecycle": { "tasks": { "connectingTitle": "{agent}에 연결 중", "connectingDescription": "연결을 설정하는 중", "loadingSelectorsTitle": "{agent} 선택자 불러오는 중", "loadingSelectorsDescription": "모드 및 세션 구성 옵션을 가져오는 중" }, "errors": { "connectionFailed": "연결 실패" } }, "shared": { "attachedResources": "첨부된 리소스", "toolCallFailed": "도구 호출 실패" }, "messageThread": { "emptyTitle": "아직 메시지가 없습니다", "emptyDescription": "대화를 시작하면 여기에서 메시지를 볼 수 있습니다" }, "chatInput": { "connecting": "연결 중...", "agentResponding": "에이전트가 응답 중...", "sendMessage": "메시지 보내기..." }, "messageInput": { "askAnything": "무엇이든 물어보세요...", "removeAttachmentAria": "{name} 제거", "attachFiles": "파일 첨부", "dropFilesToAttach": "파일을 놓아 첨부", "loadingSettings": "설정 불러오는 중...", "loadingMode": "모드 불러오는 중...", "cancel": "취소", "send": "보내기", "forkAndSend": "포크 & 전송" }, "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": "생각함" }, "messageList": { "attachedResources": "첨부된 리소스", "loading": "불러오는 중...", "error": "오류: {message}", "emptyConversation": "이 대화에는 메시지가 없습니다." }, "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": "알 수 없음", "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": "이름:", "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 데이터 없음" } } }