mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-06-08 00:59:57 +08:00
发布 0.15.0: - 新增内核版本兼容层、特性门控、低版本阻断和升级提示 - 新增 PATH 中 OpenClaw CLI 冲突检测、隔离与恢复 - 修复 Hermes Gateway loopback 自动拉起与 /v1/runs 诊断 - 修复 standalone 一键安装包在 About/仪表盘显示未知版本 - 同步 OpenClaw 2026.5.6 推荐版本和热更新 minAppVersion - 补齐本地 JS/Rust 测试与发布前检查说明 验证: - npm run build - node --test tests/*.test.js - node --check src/scripts JS 文件 - cargo fmt --all -- --check - cargo check - cargo clippy --all-targets -- -D warnings - cargo test
2157 lines
109 KiB
JSON
2157 lines
109 KiB
JSON
{
|
||
"common": {
|
||
"save": "저장",
|
||
"cancel": "취소",
|
||
"confirm": "확인",
|
||
"delete": "삭제",
|
||
"edit": "편집",
|
||
"add": "추가",
|
||
"close": "닫기",
|
||
"loading": "로딩 중...",
|
||
"retry": "재시도",
|
||
"copy": "복사",
|
||
"copied": "복사됨",
|
||
"search": "검색",
|
||
"refresh": "새로고침",
|
||
"back": "뒤로",
|
||
"submit": "제출",
|
||
"reset": "초기화",
|
||
"enabled": "활성화됨",
|
||
"disabled": "비활성화됨",
|
||
"unknown": "알 수 없음",
|
||
"none": "없음",
|
||
"yes": "예",
|
||
"no": "아니오",
|
||
"online": "온라인",
|
||
"offline": "오프라인",
|
||
"running": "실행 중",
|
||
"stopped": "중지됨",
|
||
"error": "오류",
|
||
"success": "성공",
|
||
"warning": "경고",
|
||
"info": "알림",
|
||
"loadFailed": "로드 실패",
|
||
"saveFailed": "저장 실패",
|
||
"saveSuccess": "저장 완료",
|
||
"operationFailed": "작업 실패",
|
||
"operationSuccess": "작업 성공",
|
||
"noData": "데이터 없음",
|
||
"unit": "개",
|
||
"survivalRate": "가동률",
|
||
"settings": "설정",
|
||
"update": "업데이트"
|
||
},
|
||
"sidebar": {
|
||
"collapse": "접기/펼치기",
|
||
"closeMenu": "메뉴 닫기",
|
||
"themeLight": "라이트 모드",
|
||
"themeDark": "다크 모드",
|
||
"sectionMonitor": "모니터링",
|
||
"sectionConfig": "설정",
|
||
"sectionData": "데이터",
|
||
"sectionExtension": "확장",
|
||
"dashboard": "대시보드",
|
||
"assistant": "어시스턴트",
|
||
"chat": "실시간 채팅",
|
||
"services": "서비스 관리",
|
||
"logs": "로그",
|
||
"models": "모델 설정",
|
||
"agents": "Agent 관리",
|
||
"gateway": "Gateway",
|
||
"channels": "채널",
|
||
"communication": "통신 및 자동화",
|
||
"security": "보안 설정",
|
||
"memory": "메모리",
|
||
"cron": "예약 작업",
|
||
"usage": "사용 현황",
|
||
"skills": "Skills",
|
||
"settings": "패널 설정",
|
||
"chatDebug": "시스템 진단",
|
||
"about": "정보",
|
||
"setup": "초기 설정"
|
||
},
|
||
"instance": {
|
||
"local": "로컬",
|
||
"remote": "원격",
|
||
"docker": "Docker",
|
||
"switchHint": "전환 후 모델 설정, Agent 등의 페이지에서 해당 인스턴스를 관리합니다",
|
||
"addInstance": "인스턴스 추가",
|
||
"addRemote": "원격 인스턴스 추가",
|
||
"namePlaceholder": "원격 서버",
|
||
"endpointPlaceholder": "http://192.168.1.100:1420",
|
||
"nameLabel": "이름",
|
||
"endpointLabel": "패널 주소",
|
||
"gwPortLabel": "Gateway 포트 (선택)",
|
||
"nameRequired": "이름과 패널 주소를 입력하세요",
|
||
"endpointExists": "이 엔드포인트는 이미 존재합니다",
|
||
"adding": "추가 중...",
|
||
"switchedTo": "{name}(으)로 전환됨",
|
||
"current": "현재",
|
||
"remoteHint": "원격 서버에서 ClawPanel (serve.js)이 실행 중이어야 합니다.",
|
||
"example": "예시"
|
||
},
|
||
"dashboard": {
|
||
"title": "대시보드",
|
||
"desc": "OpenClaw 실행 상태 개요",
|
||
"gateway": "Gateway",
|
||
"portDetect": "포트 감지",
|
||
"notStarted": "미시작",
|
||
"versionLabel": "버전",
|
||
"versionOfficial": "공식",
|
||
"versionChinese": "중국어판",
|
||
"versionUnknown": "버전 정보 없음",
|
||
"versionAhead": "현재 버전이 권장 안정 버전 {version}보다 높아 불안정할 수 있습니다",
|
||
"versionStable": "안정 버전 {version}",
|
||
"versionRecommend": "권장 안정 버전 {version}",
|
||
"versionLatest": "최신 업스트림 {version}",
|
||
"agentFleet": "Agent 함대",
|
||
"defaultAgent": "기본",
|
||
"modelPool": "모델 풀",
|
||
"basedOnProviders": "{count}개 프로바이더 기반",
|
||
"baseServices": "기본 서비스",
|
||
"controlUI": "Control UI",
|
||
"controlUIDesc": "OpenClaw 네이티브 패널",
|
||
"controlUIClick": "브라우저에서 열기",
|
||
"controlUINotRunning": "Gateway 미실행",
|
||
"restartGw": "Gateway 재시작",
|
||
"checkUpdate": "업데이트 확인",
|
||
"createBackup": "백업 생성",
|
||
"recentLogs": "최근 로그",
|
||
"cliPath": "CLI 경로",
|
||
"cliSource": "설치 출처",
|
||
"cliSourceStandalone": "독립 설치판",
|
||
"cliSourceNpmZh": "npm 중국어판",
|
||
"cliSourceNpmOfficial": "npm 공식판",
|
||
"cliSourceNpmGlobal": "npm 전역",
|
||
"cliSourceUnknown": "알 수 없음",
|
||
"multiInstall": "여러 설치가 감지됨",
|
||
"multiInstallHint": "설정에서 사용할 설치를 선택할 수 있습니다",
|
||
"installCount": "{count}개 설치",
|
||
"retry": "재시도",
|
||
"servicesLoadFail": "서비스 상태 로드 실패",
|
||
"versionLoadFail": "버전 정보 로드 실패",
|
||
"notSet": "미설정",
|
||
"port": "포트",
|
||
"startBtn": "시작",
|
||
"stopBtn": "중지",
|
||
"restartBtn": "재시작",
|
||
"primaryModel": "기본 모델",
|
||
"maxConcurrent": "최대 동시 실행",
|
||
"mcpTools": "MCP 도구",
|
||
"mountedExtensions": "마운트된 확장",
|
||
"recentBackup": "최근 백업",
|
||
"noBackup": "백업 없음",
|
||
"backupCount": "{count}개 백업 파일",
|
||
"workspaceCount": "{count}개 워크스페이스",
|
||
"runtimeVersion": "런타임 버전",
|
||
"remaining": "남은",
|
||
"activeSessions": "활성 세션",
|
||
"defaultModel": "기본 모델",
|
||
"context": "컨텍스트",
|
||
"noLogs": "로그 없음",
|
||
"openControlUIFail": "Control UI 열기 실패",
|
||
"starting": "시작 중...",
|
||
"gwStartSent": "Gateway 시작 명령 전송됨",
|
||
"startFail": "시작 실패",
|
||
"stopping": "중지 중...",
|
||
"gwStopped": "Gateway 중지됨",
|
||
"stopFail": "중지 실패",
|
||
"restarting": "재시작 중...",
|
||
"gwRestartSent": "Gateway 재시작 명령 전송됨",
|
||
"restartFail": "재시작 실패",
|
||
"gwRestarted": "Gateway 재시작됨 (PID: {pid})",
|
||
"restartTimeout": "재시작 타임아웃, Gateway가 아직 시작 중일 수 있습니다",
|
||
"checking": "확인 중...",
|
||
"versionAheadWarn": "로컬 버전 {current}이 권장 안정 버전 {recommended}보다 높아 호환성 위험이 있을 수 있습니다",
|
||
"updateAvailable": "권장 안정 버전 사용 가능: {version}",
|
||
"alignedWithLatest": "Aligned with recommended stable, latest upstream is {version}",
|
||
"upToDate": "권장 안정 버전과 일치",
|
||
"checkUpdateFail": "업데이트 확인 실패",
|
||
"backingUp": "백업 중...",
|
||
"backupDone": "백업 완료: {name}",
|
||
"backupFail": "백업 실패"
|
||
},
|
||
"services": {
|
||
"title": "서비스 관리",
|
||
"desc": "OpenClaw 서비스 시작·중지·모니터링",
|
||
"start": "시작",
|
||
"stop": "중지",
|
||
"restart": "재시작",
|
||
"install": "Install",
|
||
"uninstall": "Uninstall",
|
||
"installing": "Installing...",
|
||
"uninstalling": "Uninstalling...",
|
||
"refreshStatus": "Refresh",
|
||
"cliNotInstalled": "OpenClaw CLI not installed",
|
||
"installCliHint": "Please install OpenClaw CLI first:",
|
||
"gwNotInstalled": "Gateway service not installed",
|
||
"gwInstalled": "Gateway service installed",
|
||
"gwUninstalled": "Gateway service uninstalled",
|
||
"installFailed": "Install failed",
|
||
"uninstallFailed": "Uninstall failed",
|
||
"uninstallConfirm": "Uninstall Gateway service?\nThis will stop the service and remove the LaunchAgent.",
|
||
"actionProgress": "{action} in progress...",
|
||
"actionProgressSec": "{action} in progress... {sec}s",
|
||
"actionTimeout": "{action} timed out, Gateway may still be starting",
|
||
"actionCmdFailed": "{action} command failed: {error}",
|
||
"actionDone": "{label} {action} complete",
|
||
"cancelWait": "Cancel wait",
|
||
"cancelled": "Cancelled waiting. Refresh later to check status.",
|
||
"currentVersion": "Current Version",
|
||
"dockerDeploy": "Docker Deploy",
|
||
"chineseEdition": "Chinese Edition",
|
||
"officialEdition": "Official Edition",
|
||
"switchToChinese": "Switch to Chinese Edition",
|
||
"switchToOfficial": "Switch to Official Edition",
|
||
"aheadOfRecommended": "Current version is ahead of recommended stable: {version}",
|
||
"alignedRecommended": "Aligned with recommended stable: {version}",
|
||
"recommendedStable": "Recommended stable: {version}",
|
||
"noRecommended": "Recommended stable version unavailable",
|
||
"latestUpstream": "Latest upstream: {version}",
|
||
"pullNewImage": "Pull new image to update",
|
||
"currentImageVer": "Already on current image version",
|
||
"rollbackToRecommended": "Rollback to recommended",
|
||
"switchToRecommended": "Switch to recommended",
|
||
"versionLoadFailed": "Failed to load version info",
|
||
"serviceLoadFailed": "Failed to load service list",
|
||
"policyAhead": "Local version {ver} is ahead of panel recommended stable {recommended}. Continued use may have compatibility or stability risks. Consider rolling back.",
|
||
"policyDefault": "Only the panel-verified recommended stable version is suggested by default. To try other versions or latest features, manually switch in the About page and verify compatibility yourself. To request newer version support, file an issue.",
|
||
"configEditor": "Config Editor",
|
||
"configEditorHint": "Edit the openclaw.json config file directly. A backup is auto-created before saving. Changes may require a Gateway restart.",
|
||
"saveAndRestart": "Save & Restart",
|
||
"saveOnly": "Save Only",
|
||
"reloadConfig": "Reload",
|
||
"configLoaded": "Loaded",
|
||
"configUnsaved": "Unsaved changes",
|
||
"configNoChange": "No changes",
|
||
"configJsonError": "JSON syntax error",
|
||
"configSaveJsonError": "Invalid JSON, cannot save",
|
||
"autoBackingUp": "Auto-backing up...",
|
||
"autoBackupFailed": "Auto-backup failed",
|
||
"continueWithoutBackup": "Continue saving anyway?",
|
||
"saving": "Saving...",
|
||
"configSaved": "Config saved",
|
||
"configSavedRestarting": "Config saved, restarting Gateway...",
|
||
"gwRestarted": "Gateway 재시작됨 (PID: {pid})",
|
||
"configSavedGwFailed": "Config saved, but Gateway restart failed",
|
||
"configBackup": "Config Backups",
|
||
"configBackupHint": "Backup scope: openclaw.json main config (models, providers, Gateway settings). Agent data and memory files are not included.",
|
||
"createBackup": "Create Backup",
|
||
"backupCreated": "Backup created: {name}",
|
||
"noBackup": "No backups yet",
|
||
"restore": "Restore",
|
||
"restoreConfirm": "Restore backup \"{name}\"?\nCurrent config will be auto-backed up first.",
|
||
"restored": "Config restored",
|
||
"deleteConfirm": "Delete backup \"{name}\"? This cannot be undone.",
|
||
"backupDeleted": "Backup deleted",
|
||
"backupLoadFailed": "Failed to load backup list",
|
||
"upgradeTitle": "Upgrade / Switch Version",
|
||
"upgradeConfirm": "Switch OpenClaw to the panel-recommended stable {source}{version}?\nGateway will be briefly interrupted.\nTo try the latest version, manually switch in the About page.",
|
||
"switchSourceConfirm": "Switch to {target}{version}?\nThis installs the corresponding npm package. Config data is not affected.\nTo try the latest, manually switch in the About page.",
|
||
"taskStarted": "Background task started, please wait...",
|
||
"webModeNoLog": "Web mode: Upgrade logs unavailable, please wait...",
|
||
"taskDone": "Operation complete",
|
||
"upgradeDone": "Upgrade complete",
|
||
"upgradeScene": "Upgrade OpenClaw",
|
||
"invalidConfigTitle": "OpenClaw 설정 문제 감지",
|
||
"invalidConfigPrompt": "작업 \"{action}\" 실패:\n\n{error}\n\n설정 파일 스키마가 오래된 것이 원인일 수 있습니다. doctor 로 자동 수정할까요?",
|
||
"runDoctorFix": "자동 수정 실행",
|
||
"runningDoctorFix": "doctor --fix 실행 중...",
|
||
"doctorFixSuccess": "설정이 수정되었습니다. 다시 시도하세요",
|
||
"doctorFixFailed": "doctor 수정 실패"
|
||
},
|
||
"settings": {
|
||
"title": "패널 설정",
|
||
"desc": "ClawPanel 네트워크, 프록시 및 다운로드 소스 설정 관리",
|
||
"networkProxy": "네트워크 프록시",
|
||
"modelProxy": "모델 요청 프록시",
|
||
"npmRegistry": "npm 레지스트리",
|
||
"openclawDir": "OpenClaw 설치 경로",
|
||
"openclawCli": "OpenClaw CLI 바인딩",
|
||
"cliAutoDetect": "자동 감지 (권장)",
|
||
"cliBindHint": "패널이 사용할 OpenClaw CLI 선택, 여러 버전 공존 시 유용",
|
||
"cliCurrent": "현재 사용 중",
|
||
"cliBound": "바인딩됨",
|
||
"cliActive": "활성",
|
||
"cliVersion": "버전",
|
||
"cliSwitchConfirm": "Switch to this CLI? The panel will use this installation for all operations.",
|
||
"language": "표시 언어",
|
||
"languageHint": "인터페이스 언어를 전환합니다. 일부 콘텐츠는 원래 언어로 표시될 수 있습니다.",
|
||
"testProxy": "연결 테스트",
|
||
"clearProxy": "프록시 비활성화",
|
||
"proxyHint": "Once set, npm install/upgrade, version checks, GitHub/Gitee update checks, ClawHub Skills downloads will use this proxy. Localhost and LAN addresses are auto-bypassed. Takes effect immediately; if Gateway is running, consider restarting the service.",
|
||
"modelProxyToggle": "Route model test and model list requests through proxy",
|
||
"modelProxyHint": "Off by default. Some model API endpoints are already domestic or LAN addresses — proxying them may cause connection failures. Only enable if your model provider requires a proxy.",
|
||
"modelProxyNoProxy": "Please set up a network proxy above before enabling this option.",
|
||
"registryTaobao": "Taobao 미러 (중국 권장)",
|
||
"registryNpm": "npm 공식",
|
||
"registryHuawei": "Huawei Cloud 미러",
|
||
"registryCustom": "사용자 정의",
|
||
"registryHint": "npm registry used for upgrades and version checks. Taobao mirror recommended for users in China.",
|
||
"registryEmpty": "레지스트리 URL을 입력하세요",
|
||
"registrySaved": "npm 레지스트리 저장됨",
|
||
"configExists": "설정 파일 있음",
|
||
"configMissing": "설정 파일을 찾을 수 없음",
|
||
"currentPath": "현재 경로",
|
||
"customBadge": "사용자 정의",
|
||
"dirPlaceholder": "Leave empty for default path ~/.openclaw",
|
||
"resetDefault": "기본값으로 복원",
|
||
"dirHint": "Custom OpenClaw config directory path. Restart required after changes. Target directory must exist and contain openclaw.json.",
|
||
"customPathSaved": "사용자 정의 경로 저장됨",
|
||
"defaultRestored": "기본 경로로 복원됨",
|
||
"restartConfirm": "Restart required for changes to take effect. Restart now?",
|
||
"restarting": "재시작 중...",
|
||
"restartFailed": "Auto-restart failed, please close and reopen manually",
|
||
"effectNextLaunch": "will take effect on next launch",
|
||
"proxyUrlInvalid": "Proxy URL must start with http:// or https://",
|
||
"testingProxy": "Testing proxy connectivity...",
|
||
"proxyOk": "프록시 연결됨 (HTTP {status}, {ms}ms) → {target}",
|
||
"proxyWarn": "Proxy reachable but returned abnormal response (HTTP {status}, {ms}ms)",
|
||
"proxyUrlEmpty": "Please enter a proxy URL, or click \"Disable Proxy\"",
|
||
"proxySaved": "네트워크 프록시 저장됨",
|
||
"proxyCleared": "네트워크 프록시 비활성화됨",
|
||
"modelProxyOn": "모델 요청이 프록시를 사용합니다",
|
||
"modelProxyOff": "모델 요청 프록시 비활성화됨"
|
||
},
|
||
"models": {
|
||
"title": "모델 설정",
|
||
"desc": "AI 모델 프로바이더 및 모델 관리",
|
||
"addProvider": "+ 프로바이더 추가",
|
||
"undo": "↩ Undo",
|
||
"undoN": "↩ Undo ({n})",
|
||
"undone": "Undone",
|
||
"providerHint": "Providers are sources of models (e.g. OpenAI, DeepSeek). Each provider can have multiple models. The \"primary\" model is used first; others serve as fallbacks. Changes are auto-saved.",
|
||
"qtcoolName": "QingChen Cloud",
|
||
"qtcoolRecommend": "Recommended",
|
||
"qtcoolDesc": "매일 체크인으로 무료 크레딧, 친구 초대 보너스. 유료는 공식가의 2~3할",
|
||
"qtcoolMore": "Learn more →",
|
||
"qtcoolCheckin": "Daily check-in for credits",
|
||
"qtcoolKeyPlaceholder": "Paste API Key (get from dashboard after check-in)",
|
||
"qtcoolFetchModels": "Fetch Model List",
|
||
"qtcoolFetching": "Fetching...",
|
||
"qtcoolNoKey": "No key? Go to",
|
||
"qtcoolCheckinPage": "check-in page",
|
||
"qtcoolCheckinHint": "for free daily credits, copy your Key from",
|
||
"qtcoolDashboard": "dashboard",
|
||
"qtcoolCopyKey": "",
|
||
"qtcoolSelectTitle": "Select models to add",
|
||
"qtcoolSelectHint": "Fetched {count} available models from QingChen Cloud. Select and add.",
|
||
"qtcoolKeyLabel": "API Key",
|
||
"qtcoolKeyCheckinLink": "Daily check-in for free credits →",
|
||
"qtcoolKeyPlaceholder2": "Paste your API Key",
|
||
"qtcoolNoKeyWarn": "Please enter an API Key (get free credits via daily check-in)",
|
||
"qtcoolAddSelected": "Add Selected Models",
|
||
"qtcoolNoneSelected": "No models selected",
|
||
"qtcoolAllExist": "All selected models already exist",
|
||
"qtcoolAdded": "Added {count} models",
|
||
"qtcoolProviderAdded": "Added QingChen Cloud ({count} models)",
|
||
"already": "Exists",
|
||
"alreadyAdded": "Added",
|
||
"searchPlaceholder": "Search models (by ID or name)",
|
||
"currentConfig": "Current Configuration",
|
||
"primaryModel": "기본 모델",
|
||
"primaryModelLabel": "Primary: ",
|
||
"notConfigured": "Not configured",
|
||
"fallbackModels": "Fallbacks: ",
|
||
"fallbackNone": "None",
|
||
"fallbackHint": "When the primary model is unavailable, the system auto-switches to fallbacks",
|
||
"primaryAutoSwitch": "Primary model auto-switched to {model}",
|
||
"noProvider": "No providers. Click \"+ Add Provider\" to get started.",
|
||
"noModel": "No models. Click \"+ Model\" to add.",
|
||
"nModels": "{count} models",
|
||
"hiddenModels": "{count} non-matching models hidden",
|
||
"editProvider": "프로바이더 편집",
|
||
"addModel": "모델 추가",
|
||
"fetchList": "Fetch List",
|
||
"deleteProvider": "프로바이더 삭제",
|
||
"batchTest": "Batch Test",
|
||
"selectAll": "모두 선택",
|
||
"selectNone": "Deselect All",
|
||
"batchDelete": "Batch Delete",
|
||
"sort": "Sort:",
|
||
"sortDefault": "Default order (drag to reorder)",
|
||
"sortNameAsc": "Name A-Z (persist)",
|
||
"sortNameDesc": "Name Z-A (persist)",
|
||
"sortLatencyAsc": "Latency low→high (persist)",
|
||
"sortLatencyDesc": "Latency high→low (persist)",
|
||
"sortContextAsc": "Context small→large (persist)",
|
||
"sortContextDesc": "Context large→small (persist)",
|
||
"applySortBtn": "Save current sort",
|
||
"sortSaved": "Sort order saved",
|
||
"reasoning": "Reasoning",
|
||
"unavailable": "Unavailable",
|
||
"testBtn": "Test",
|
||
"setPrimary": "기본으로 설정",
|
||
"setPrimaryDone": "Set as primary model",
|
||
"editModel": "Edit",
|
||
"deleteModel": "Delete",
|
||
"context": "context",
|
||
"justTested": "Just tested",
|
||
"minAgoTest": "{n} min ago",
|
||
"hourAgoTest": "{n} hr ago",
|
||
"dayAgoTest": "{n} day ago",
|
||
"confirmDeleteProvider": "Delete \"{name}\" and all its models?",
|
||
"providerDeleted": "프로바이더 삭제됨",
|
||
"confirmDeleteModel": "Delete model \"{name}\"?",
|
||
"modelDeleted": "Deleted {name}",
|
||
"confirmBatchDelete": "Delete {count} selected models?\n{ids}",
|
||
"batchDeleted": "Deleted {count} models",
|
||
"batchSelectHint": "Please select models to delete first",
|
||
"addProviderTitle": "Add Provider",
|
||
"quickSelect": "Quick Select",
|
||
"quickSelectHint": "Choose a preset to auto-fill, or fill manually below",
|
||
"providerName": "프로바이더명",
|
||
"providerNamePlaceholder": "e.g. openai, newapi",
|
||
"providerNameHint": "Custom identifier to distinguish different sources",
|
||
"baseUrl": "Base URL",
|
||
"baseUrlPlaceholder": "https://api.openai.com/v1",
|
||
"baseUrlHint": "API endpoint URL, usually ends with /v1; Ollama: http://127.0.0.1:11434",
|
||
"apiKey": "API Key",
|
||
"apiKeyPlaceholder": "sk-...",
|
||
"apiKeyHint": "Required key for the service. Leave empty if not needed.",
|
||
"apiType": "API Type",
|
||
"apiTypeHint": "Most proxies and Ollama use \"OpenAI Compatible\"",
|
||
"providerNameRequired": "Provider name is required",
|
||
"providerAdded": "Provider added: {name}",
|
||
"editProviderTitle": "Edit Provider: {name}",
|
||
"apiKeyEditHint": "Changes are auto-saved",
|
||
"providerUpdated": "Provider updated",
|
||
"addModelTitle": "Add Model to {provider}",
|
||
"quickAdd": "Quick Add",
|
||
"quickAddHint": "Click to add a common model, or fill in manually below",
|
||
"manualAdd": "Manual Add",
|
||
"modelId": "Model ID",
|
||
"modelIdPlaceholder": "e.g. gpt-4o",
|
||
"modelIdHint": "Must match the model name supported by the provider",
|
||
"modelIdRequired": "Model ID is required",
|
||
"displayName": "Display Name (optional)",
|
||
"displayNamePlaceholder": "e.g. GPT-4o",
|
||
"displayNameHint": "A friendly name for identification",
|
||
"contextLength": "Context Length (optional)",
|
||
"contextLengthPlaceholder": "e.g. 128000",
|
||
"contextLengthHint": "Maximum token count supported by the model",
|
||
"isReasoning": "This is a reasoning model (e.g. o3, R1, QwQ)",
|
||
"reasoningHint": "Reasoning models use special invocation methods",
|
||
"modelAdded": "Model added: {name}",
|
||
"editModelTitle": "Edit Model: {name}",
|
||
"displayNameLabel": "Display Name",
|
||
"contextLengthLabel": "Context Length",
|
||
"isReasoningLabel": "Reasoning model",
|
||
"modelUpdated": "Model updated",
|
||
"stopBatchTest": "Stop Test",
|
||
"stoppingBatchTest": "Stopping batch test...",
|
||
"noTestModels": "No models to test",
|
||
"batchTestDone": "Batch test done: {ok} passed, {fail} failed",
|
||
"batchTestAborted": "Batch test aborted: {ok} passed, {fail} failed, {skip} skipped",
|
||
"testing": "테스트 중...",
|
||
"testOk": "{model} OK ({time}s): \"{reply}\"",
|
||
"testFail": "{model} unavailable ({time}s): {error}",
|
||
"remoteListTitle": "Remote Models — {provider} ({count})",
|
||
"remoteSearch": "Search models...",
|
||
"remoteSelected": "{count} selected",
|
||
"addSelected": "Add Selected",
|
||
"selectAtLeast": "Please select at least one model",
|
||
"fetchFailed": "모델 목록 가져오기 실패",
|
||
"configNotReady": "Config not loaded yet, please wait",
|
||
"fetchRemoteFailed": "Cannot fetch model list. Check network or try later.",
|
||
"configLoadFailed": "Failed to load config",
|
||
"autoFixUrl": "Auto-fixed model API URLs (e.g. Ollama /v1)",
|
||
"saveFailed": "저장 실패",
|
||
"autoSaveFailed": "Auto-save failed",
|
||
"configSavedRestarting": "Config saved, restarting Gateway...",
|
||
"configEffective": "Config applied, Gateway restarted",
|
||
"retryRestart": "Retry",
|
||
"restarting": "Restarting Gateway...",
|
||
"restartOk": "Gateway restarted",
|
||
"restartFailed": "Restart failed",
|
||
"configSavedGwFailed": "Config saved, but Gateway restart failed",
|
||
"visitSite": "Visit {name} website",
|
||
"configSavedGwNotRunning": "설정이 저장되었습니다. Gateway가 실행 중이 아니므로 시작 시 자동으로 적용됩니다."
|
||
},
|
||
"agents": {
|
||
"title": "Agent 관리",
|
||
"desc": "OpenClaw Agent 생성 및 관리, ID·모델·워크스페이스 설정",
|
||
"addAgent": "+ 새 Agent",
|
||
"noAgents": "Agent 없음",
|
||
"loadFailed": "로드 실패",
|
||
"loadListFailed": "Agent 목록 로드 실패",
|
||
"noDesc": "설명 없음",
|
||
"default": "기본",
|
||
"backup": "백업",
|
||
"edit": "편집",
|
||
"delete": "삭제",
|
||
"labelName": "이름:",
|
||
"labelModel": "모델:",
|
||
"labelWorkspace": "워크스페이스:",
|
||
"labelBindings": "바인딩 채널:",
|
||
"notSet": "미설정",
|
||
"noBinding": "채널 미바인딩",
|
||
"addModelsFirst": "먼저 모델 설정 페이지에서 모델을 추가하세요",
|
||
"addTitle": "새 Agent",
|
||
"agentId": "Agent ID",
|
||
"agentIdPlaceholder": "예: translator (소문자, 숫자, 밑줄, 하이픈)",
|
||
"agentName": "이름",
|
||
"agentNamePlaceholder": "예: 번역 도우미",
|
||
"agentEmoji": "Emoji",
|
||
"agentEmojiPlaceholder": "예: 🌐 (선택)",
|
||
"agentModel": "모델",
|
||
"agentWorkspace": "워크스페이스 경로",
|
||
"agentWorkspacePlaceholder": "비워두면 자동 생성 (선택, 절대 경로)",
|
||
"idRequired": "Agent ID를 입력하세요",
|
||
"idInvalid": "Agent ID는 소문자, 숫자, 밑줄, 하이픈만 사용 가능합니다",
|
||
"created": "Agent 생성됨",
|
||
"createdNameFailed": "Agent created, but name setting failed. You can edit it later.",
|
||
"createFailed": "생성 실패",
|
||
"editTitle": "Agent 편집 — {id}",
|
||
"workspaceReadonly": "생성 시 설정, 변경 불가",
|
||
"updated": "업데이트됨",
|
||
"updateFailed": "업데이트 실패",
|
||
"confirmDelete": "Agent「{id}」를 삭제하시겠습니까?\\n\\n이 Agent의 모든 데이터와 대화가 삭제됩니다.",
|
||
"deleted": "삭제됨",
|
||
"deleteFailed": "삭제 실패",
|
||
"backingUp": "Agent「{id}」 백업 중...",
|
||
"backupDone": "백업 완료: {file}",
|
||
"backupFailed": "백업 실패",
|
||
"labelRuntime": "런타임:"
|
||
},
|
||
"gateway": {
|
||
"title": "Gateway",
|
||
"desc": "OpenClaw Gateway 서비스 설정 및 관리",
|
||
"saveApply": "Save & Apply",
|
||
"saveHint": "Click save after changes, Gateway will auto-reload",
|
||
"saving": "저장 중...",
|
||
"loadFailed": "Failed to load config",
|
||
"portTitle": "Service Port",
|
||
"portLabel": "Port",
|
||
"portHint": "Apps connect to Gateway via this port. Default 18789, usually no need to change.",
|
||
"accessTitle": "Access Control",
|
||
"localOnly": "Local Only",
|
||
"localOnlyDesc": "Only apps on this machine can access, most secure",
|
||
"lanShare": "LAN Sharing",
|
||
"lanShareDesc": "Phones, tablets and other devices on the same network can also use it",
|
||
"authTitle": "Authentication",
|
||
"authMode": "인증 모드",
|
||
"authToken": "Token",
|
||
"authTokenDesc": "Standard auth, suitable for local and LAN use",
|
||
"authPassword": "Password",
|
||
"authPasswordDesc": "Required for Tailscale Funnel or other public exposure scenarios",
|
||
"tokenLabel": "Access Token",
|
||
"tokenPlaceholder": "Leave empty for no auth",
|
||
"tokenHintRef": "Current token is configured via env variable/reference. Clear to enter plaintext.",
|
||
"tokenHintNormal": "Apps must include this token to authenticate. Strongly recommended if LAN sharing is enabled.",
|
||
"passwordLabel": "Password",
|
||
"passwordPlaceholder": "Set Gateway access password",
|
||
"passwordHint": "Password auth is required when exposing Gateway via Tailscale Funnel",
|
||
"show": "Show",
|
||
"hide": "Hide",
|
||
"toolsTitle": "Agent Tool Permissions",
|
||
"toolsPermission": "Tool Access",
|
||
"toolsFull": "Full Access",
|
||
"toolsFullDesc": "Agent can use all tools (recommended)",
|
||
"toolsLimited": "Limited Mode",
|
||
"toolsLimitedDesc": "Only safe tools allowed, file/command ops disabled",
|
||
"toolsNone": "Disabled",
|
||
"toolsNoneDesc": "Agent can only chat, cannot use any tools",
|
||
"sessionsLabel": "Session Visibility",
|
||
"sessionsAll": "All sessions visible",
|
||
"sessionsOwn": "Own sessions only",
|
||
"sessionsNone": "Not visible",
|
||
"sessionsHint": "Controls whether Agent can see context from other sessions",
|
||
"advancedToggle": "Advanced Options",
|
||
"tailscaleTitle": "Tailscale Network",
|
||
"tailscaleLabel": "Tailscale Address",
|
||
"tailscalePlaceholder": "e.g. 100.x.x.x:18789",
|
||
"tailscaleHint": "If using Tailscale VPN, fill in the address so remote devices can access Gateway through it. Leave empty if not used.",
|
||
"configSaved": "Config saved, reloading Gateway...",
|
||
"reloaded": "Gateway reloaded, new config is active",
|
||
"savedButReloadFailed": "Config saved, but reload failed",
|
||
"saveFailed": "저장 실패"
|
||
},
|
||
"security": {
|
||
"title": "보안",
|
||
"loadFailed": "보안 설정 로드 실패",
|
||
"passwordStatus": "Password Status",
|
||
"stateDefault": "Using default password (change required)",
|
||
"stateCustom": "Custom password set",
|
||
"stateIgnoreRisk": "Ignore risk mode (no password)",
|
||
"stateNone": "No password set",
|
||
"tauriHasPassword": "Password required each time the app is opened",
|
||
"webHasPassword": "Password required for remote access to the panel",
|
||
"tauriNoPassword": "Anyone who opens the app can use it",
|
||
"webNoPassword": "Anyone can access the panel directly",
|
||
"changePassword": "Change Password",
|
||
"setPassword": "Set Password",
|
||
"currentPassword": "Current Password",
|
||
"currentPasswordPlaceholder": "Enter current password",
|
||
"defaultFilled": "Default password auto-filled. Just set a new password.",
|
||
"newPassword": "New Password",
|
||
"newPasswordPlaceholder": "At least 6 chars, not all digits",
|
||
"confirmPassword": "Confirm New Password",
|
||
"confirmPasswordPlaceholder": "Enter new password again",
|
||
"confirmChange": "Confirm Change",
|
||
"submitting": "Submitting...",
|
||
"passwordMismatch": "Passwords do not match",
|
||
"passwordChanged": "Password changed successfully",
|
||
"passwordUpdated": "Password updated",
|
||
"wrongPassword": "Current password is incorrect",
|
||
"pwMin6": "Password must be at least 6 characters",
|
||
"pwMax64": "Password cannot exceed 64 characters",
|
||
"pwNoDigitOnly": "Password cannot be all digits",
|
||
"pwTooCommon": "Password is too common, please choose a more secure one",
|
||
"pwSameAsOld": "New password cannot be the same as the old one",
|
||
"strengthTooShort": "Too short",
|
||
"strengthDigitOnly": "All digits, too weak",
|
||
"strengthFair": "Fair",
|
||
"strengthGood": "Good",
|
||
"strengthStrong": "Strong",
|
||
"ignoreRiskTitle": "Ignore Risk Mode",
|
||
"ignoreRiskLabel": "Disable Password Protection",
|
||
"ignoreRiskDesc": "When enabled, anyone can access the panel without a password.",
|
||
"ignoreRiskWarn": "Only recommended in trusted network environments.",
|
||
"ignoreRiskConfirmTitle": "Disable password protection?",
|
||
"ignoreRiskConfirmDesc": "Once disabled, <strong>anyone who can reach this server's IP and port</strong> can directly access the admin panel and modify your AI config.",
|
||
"ignoreRiskConfirmBtn": "I understand the risk, confirm",
|
||
"ignoreRiskEnabled": "Ignore risk mode enabled, password protection disabled",
|
||
"ignoreRiskDisabled": "Ignore risk mode disabled, please set a new password",
|
||
"operationFailed": "Operation failed"
|
||
},
|
||
"communication": {
|
||
"title": "통신 및 자동화",
|
||
"desc": "알림 채널 및 자동화 규칙 설정",
|
||
"tabMessages": "Messages",
|
||
"tabBroadcast": "Broadcast",
|
||
"tabCommands": "Commands",
|
||
"tabHooks": "Webhook",
|
||
"tabApprovals": "Approvals",
|
||
"save": "저장",
|
||
"saving": "저장 중...",
|
||
"loadFailed": "로드 실패",
|
||
"configSaved": "Config saved, reloading Gateway...",
|
||
"gwReloaded": "Gateway reloaded",
|
||
"saveFailed": "저장 실패",
|
||
"replySettings": "Reply Settings",
|
||
"replyPrefix": "Reply Prefix",
|
||
"replyPrefixPlaceholder": "e.g. [{model}] or auto",
|
||
"replyPrefixHint": "Auto-prepended prefix for each AI reply. Supports {model}, {provider}, {thinkingLevel} variables. Set to auto for Agent name.",
|
||
"ackReaction": "Ack Reaction Emoji",
|
||
"ackReactionPlaceholder": "e.g. 👀 or leave empty to disable",
|
||
"ackReactionHint": "Emoji reaction auto-added when a message is received (acknowledgement)",
|
||
"ackScope": "Ack Reaction Scope",
|
||
"ackScopeGroupMentions": "Group @mentions",
|
||
"ackScopeGroupAll": "All group messages",
|
||
"ackScopeDirect": "Direct messages only",
|
||
"ackScopeAll": "All messages",
|
||
"ackScopeOff": "Off",
|
||
"removeAckAfterReply": "Remove ack after reply",
|
||
"removeAckAfterReplyHint": "Auto-remove the ack emoji after the reply is sent",
|
||
"suppressToolErrors": "Hide tool errors",
|
||
"suppressToolErrorsHint": "Don't show ⚠️ tool execution errors to users",
|
||
"statusReactions": "Status Reaction Emoji",
|
||
"enableStatusReactions": "Enable status reactions",
|
||
"enableStatusReactionsHint": "Show AI status via emoji in channels (thinking, executing tools, done, etc.)",
|
||
"messageQueue": "Message Queue",
|
||
"debounceMs": "Debounce Delay (ms)",
|
||
"debounceMsHint": "Wait time to merge rapid consecutive messages (ms), prevents AI from replying to each one",
|
||
"queueCap": "Queue Capacity",
|
||
"queueCapHint": "Max length of pending message queue",
|
||
"groupChat": "Group Chat",
|
||
"groupHistoryLimit": "Group History Limit",
|
||
"groupHistoryLimitHint": "Number of history messages to include as context in group chats",
|
||
"broadcastStrategy": "Broadcast Strategy",
|
||
"broadcastMode": "Broadcast Mode",
|
||
"broadcastParallel": "Parallel — send to all targets simultaneously",
|
||
"broadcastSequential": "Sequential — send one by one, strictly ordered",
|
||
"broadcastHint": "Strategy for broadcasting to multiple Agents. Parallel is faster, sequential is more controlled.",
|
||
"slashCommands": "Slash Commands",
|
||
"cmdText": "Text Command Parsing",
|
||
"cmdTextHint": "Allow executing commands via / prefix in chat",
|
||
"cmdBash": "Bash Commands",
|
||
"cmdBashHint": "Allow ! prefix or /bash to execute shell commands in chat (dangerous)",
|
||
"cmdConfig": "/config Command",
|
||
"cmdConfigHint": "Allow viewing/modifying config in chat",
|
||
"cmdDebug": "/debug Command",
|
||
"cmdDebugHint": "Allow viewing debug info in chat",
|
||
"cmdRestart": "Restart Command",
|
||
"cmdRestartHint": "Allow restarting Gateway via command",
|
||
"nativeCommands": "Native Command Registration",
|
||
"nativeLabel": "Native Commands",
|
||
"nativeAuto": "Auto",
|
||
"nativeEnabled": "Enabled",
|
||
"nativeDisabled": "Disabled",
|
||
"nativeHint": "Auto-register native command menus in supported channels (Telegram, Discord)",
|
||
"webhookSettings": "Webhook Settings",
|
||
"webhookEnabled": "Enable Webhook",
|
||
"webhookEnabledHint": "Allow external services to trigger AI execution via HTTP",
|
||
"webhookPath": "Webhook Path",
|
||
"webhookPathHint": "Webhook receive path exposed on Gateway",
|
||
"webhookToken": "Auth Token",
|
||
"webhookTokenHint": "External requests must include this token in header to trigger Webhook",
|
||
"webhookSessionKey": "Default Session Key",
|
||
"webhookSessionKeyHint": "Session identifier for Webhook-triggered Agent. Leave empty for auto-generated.",
|
||
"webhookMaxBody": "Max Body Size (bytes)",
|
||
"approvalsTitle": "Execution Approval Forwarding",
|
||
"approvalsDesc": "Forward approval requests to messaging channels when AI requests command execution, for mobile approval",
|
||
"approvalsEnabled": "Enable Approval Forwarding",
|
||
"approvalsEnabledHint": "Forward execution approval requests to configured channels",
|
||
"approvalsMode": "Forward Mode",
|
||
"approvalsModeSession": "Session — forward to the originating session",
|
||
"approvalsModeTargets": "Targets — forward to configured target channels",
|
||
"approvalsModeBoth": "Both",
|
||
"approvalsForwardExec": "Forward Exec Requests",
|
||
"approvalsForwardExecHint": "Forward exec approval requests to channels (off by default, enable for low-risk scenarios)"
|
||
},
|
||
"channels": {
|
||
"title": "채널",
|
||
"desc": "메시지 채널 관리 및 플랫폼 연결",
|
||
"tabChannels": "Channel List",
|
||
"tabAgents": "Agent Binding",
|
||
"configured": "Connected",
|
||
"available": "Available Platforms",
|
||
"accountCount": "{count} accounts",
|
||
"editAccount": "Edit",
|
||
"addAccount": "Add Account",
|
||
"editDefault": "Edit Default",
|
||
"noGuide": "No guide",
|
||
"disable": "비활성화",
|
||
"enable": "활성화",
|
||
"loadFailed": "채널 로드 실패",
|
||
"agentBindHint": "Each Agent can have multiple route bindings (e.g. different accounts or match conditions). Bindings are independent. Complete channel setup in \"Channel List\" first.",
|
||
"createAgentFirst": "Please create an Agent in \"Agent Management\" first",
|
||
"qqbotLabel": "QQ Bot",
|
||
"qqbotDesc": "Connect via QQ Open Platform, supports DM and group chat",
|
||
"qqbotGuide1": "前往 <a href=\"https://q.qq.com\" target=\"_blank\" rel=\"noopener\">QQ 开放平台</a> 创建机器人",
|
||
"qqbotGuide2": "在「开发 → 开发设置」中获取 <strong>AppID</strong> 和 <strong>ClientSecret</strong>",
|
||
"qqbotGuide3": "You can skip review and test directly in sandbox mode",
|
||
"qqbotGuide4": "Add the bot to your QQ group (sandbox channel also works)",
|
||
"qqbotGuide5": "Fill in credentials and save; the panel will auto-install the plugin, write config, and restart Gateway",
|
||
"qqbotGuide6": "@mention the bot in the group to start chatting",
|
||
"qqbotGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">遇到问题?参考 <a href=\"https://q.qq.com/qqbot/openclaw/faq.html\" target=\"_blank\" rel=\"noopener\">OpenClaw × QQ 常见问题</a></div>",
|
||
"qqbotAppIdPh": "QQ Open Platform AppID",
|
||
"qqbotSecretPh": "QQ Open Platform ClientSecret",
|
||
"dingtalkLabel": "DingTalk",
|
||
"dingtalkDesc": "Connect via DingTalk enterprise internal app, supports DM and group chat",
|
||
"dingtalkGuide1": "前往 <a href=\"https://open-dev.dingtalk.com\" target=\"_blank\" rel=\"noopener\">钉钉开放平台</a>,创建「企业内部应用」",
|
||
"dingtalkGuide2": "Enable Robot capability under \"App Features → Robot\"",
|
||
"dingtalkGuide3": "Set message receive mode to <strong>Stream Mode</strong> (recommended)",
|
||
"dingtalkGuide4": "Get <strong>Client ID (AppKey)</strong> and <strong>Client Secret (AppSecret)</strong> from credentials page",
|
||
"dingtalkGuide5": "权限管理中添加 <code>qyapi_robot_sendmsg</code>、<code>Card.Streaming.Write</code>、<code>Card.Instance.Write</code>",
|
||
"dingtalkGuide6": "Publish the app version, then add the bot to the target group",
|
||
"dingtalkGuide7": "Fill in credentials and save; the panel will auto-install the plugin and restart Gateway",
|
||
"dingtalkGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">注意:Stream 模式需要钉钉服务端主动推送,确保网络可达</div>",
|
||
"dingtalkClientIdPh": "AppKey / Client ID",
|
||
"dingtalkClientSecretPh": "AppSecret / Client Secret",
|
||
"feishuLabel": "Feishu",
|
||
"feishuDesc": "Connect via Feishu custom enterprise app, supports DM and group chat",
|
||
"feishuGuide1": "前往 <a href=\"https://open.feishu.cn/app\" target=\"_blank\" rel=\"noopener\">飞书开放平台</a> 创建企业自建应用",
|
||
"feishuGuide2": "Add \"Bot\" capability under \"Add App Capabilities\"",
|
||
"feishuGuide3": "Get <strong>App ID</strong> and <strong>App Secret</strong> from credentials page",
|
||
"feishuGuide4": "Select \"Long Connection\" for event callback (no public IP needed)",
|
||
"feishuGuide5": "权限管理中搜索并开通 <code>im:message</code>、<code>im:message.group_at_msg</code> 等消息权限",
|
||
"feishuGuide6": "Create a version, publish, then add the bot to the target group",
|
||
"feishuGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">推荐使用长连接方式,无需公网地址即可接收消息</div>",
|
||
"feishuAppIdPh": "Feishu App ID",
|
||
"feishuAppSecretPh": "Feishu App Secret",
|
||
"feishuDomainLabel": "Platform Domain",
|
||
"feishuDomainFeishu": "Feishu (feishu.cn)",
|
||
"feishuDomainLark": "Lark (larksuite.com)",
|
||
"telegramDesc": "Connect a Telegram Bot, supports DM and groups",
|
||
"telegramGuide1": "在 Telegram 中搜索 <a href=\"https://t.me/BotFather\" target=\"_blank\" rel=\"noopener\">@BotFather</a> 并发送 <code>/newbot</code>",
|
||
"telegramGuide2": "Follow prompts to set bot name and username",
|
||
"telegramGuide3": "Copy the <strong>Bot Token</strong> returned by BotFather",
|
||
"telegramGuide4": "Fill in credentials below and save",
|
||
"telegramGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">需要公网可达的服务器或使用 polling 模式</div>",
|
||
"discordDesc": "Connect a Discord Bot, supports server channels and DMs",
|
||
"discordGuide1": "前往 <a href=\"https://discord.com/developers/applications\" target=\"_blank\" rel=\"noopener\">Discord Developer Portal</a> 创建 Application",
|
||
"discordGuide2": "Click \"Reset Token\" on the Bot page to get the <strong>Bot Token</strong>",
|
||
"discordGuide3": "Enable <strong>MESSAGE CONTENT INTENT</strong>",
|
||
"discordGuide4": "Use OAuth2 URL Generator to invite the Bot to your server",
|
||
"discordGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">确保开启 Message Content Intent 以接收消息内容</div>",
|
||
"slackDesc": "Connect a Slack App, supports channels and DMs",
|
||
"slackGuide1": "前往 <a href=\"https://api.slack.com/apps\" target=\"_blank\" rel=\"noopener\">Slack API</a> 创建 App(推荐 From a manifest)",
|
||
"slackGuide2": "Add Bot Token Scopes in OAuth & Permissions: <code>chat:write</code>, <code>app_mentions:read</code>, etc.",
|
||
"slackGuide3": "Install the App to your workspace and get the <strong>Bot Token</strong> (xoxb-)",
|
||
"slackGuide4": "Socket Mode: Enable Socket Mode in Basic Information and get the <strong>App-Level Token</strong> (xapp-)",
|
||
"slackGuide5": "HTTP Mode: Fill in the Request URL under Event Subscriptions",
|
||
"slackGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">Socket Mode 无需公网地址;HTTP Mode 需要配置事件回调 URL</div>",
|
||
"modeLabel": "Connection Mode",
|
||
"slackSocketMode": "Socket Mode (recommended)",
|
||
"slackHttpMode": "HTTP Mode",
|
||
"slackAppTokenHint": "Socket Mode requires App-Level Token (xapp-)",
|
||
"slackSigningSecretPh": "Signing Secret",
|
||
"slackSigningSecretHint": "Used to verify request signatures in HTTP Mode",
|
||
"slackTeamIdPh": "Optional, e.g. T01234567",
|
||
"slackWebhookPathPh": "Optional, e.g. /slack/events",
|
||
"dmPolicy": "DM Policy",
|
||
"policyDefault": "Default",
|
||
"dmAllow": "Allow DMs",
|
||
"dmDeny": "Deny DMs",
|
||
"groupPolicy": "Group Policy",
|
||
"groupAllChannels": "All channels",
|
||
"groupMentionOnly": "Only when @mentioned",
|
||
"groupAllowlist": "Allowlist",
|
||
"allowFromPh": "Optional, comma-separated user/channel IDs",
|
||
"allowFromHint": "Restrict to specific user or channel IDs; leave empty for no restriction",
|
||
"weixinLabel": "WeChat",
|
||
"weixinDesc": "Connect personal WeChat via the openclaw-weixin plugin",
|
||
"weixinGuide1": "This feature is powered by the <strong>openclaw-weixin</strong> plugin",
|
||
"weixinGuide2": "Click \"Install Plugin\" below to auto-install",
|
||
"weixinGuide3": "After installation, click \"Scan to Login\" and scan the QR code with your phone",
|
||
"weixinGuide4": "Once logged in, Gateway will automatically handle messages",
|
||
"weixinGuide5": "Re-scan is needed if disconnected",
|
||
"weixinGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">注意:个人微信接入存在风控风险,建议使用小号</div>",
|
||
"weixinInstall": "Install Plugin",
|
||
"weixinInstallHint": "Auto-download and install the openclaw-weixin plugin",
|
||
"weixinLogin": "Scan to Login",
|
||
"weixinLoginHint": "Start the WeChat login flow; messages are handled after scanning",
|
||
"weixinScanQr": "Scan this QR code with WeChat on your phone",
|
||
"msteamsDesc": "Connect a Microsoft Teams Bot",
|
||
"msteamsGuide1": "在 <a href=\"https://portal.azure.com\" target=\"_blank\" rel=\"noopener\">Azure Portal</a> 注册 Bot Channel Registration",
|
||
"msteamsGuide2": "Get the <strong>App ID</strong> and <strong>App Password</strong>",
|
||
"msteamsGuide3": "Install the custom App in Teams",
|
||
"msteamsGuide4": "Configure the messaging endpoint URL",
|
||
"msteamsGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">需要 Azure AD 应用注册和 Teams 管理员权限</div>",
|
||
"msteamsTenantIdPh": "Optional, fill for single-tenant",
|
||
"msteamsAllowFromPh": "Optional, comma-separated",
|
||
"signalDesc": "Connect to Signal Messenger",
|
||
"signalGuide1": "安装 <a href=\"https://github.com/AsamK/signal-cli\" target=\"_blank\" rel=\"noopener\">signal-cli</a> 并注册/链接账号",
|
||
"signalGuide2": "Ensure signal-cli can send and receive messages",
|
||
"signalGuide3": "Fill in account info and signal-cli path",
|
||
"signalGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">需要本地安装 signal-cli 并完成账号注册</div>",
|
||
"signalAccountLabel": "Signal Account",
|
||
"signalAccountPh": "+1234567890",
|
||
"signalCliPathLabel": "signal-cli Path",
|
||
"signalCliPathPh": "Optional, defaults to PATH lookup",
|
||
"signalAllowFromPh": "Optional, comma-separated",
|
||
"matrixDesc": "Connect via Matrix protocol (Element and other clients)",
|
||
"matrixGuide1": "Register a Bot account on a Matrix server",
|
||
"matrixGuide2": "Get an <strong>Access Token</strong> (or use username & password)",
|
||
"matrixGuide3": "Invite the Bot to the target room",
|
||
"matrixGuideFooter": "<div style=\"margin-top:8px;font-size:var(--font-size-xs);color:var(--text-tertiary)\">支持任何兼容 Matrix 协议的服务器</div>",
|
||
"matrixAccessTokenHint": "Use either Access Token or User ID + Password",
|
||
"matrixPasswordPh": "Leave empty when using Access Token",
|
||
"matrixAllowFromPh": "Optional, comma-separated user IDs",
|
||
"matrixAuthRequired": "Matrix requires an Access Token, or User ID + Password",
|
||
"groupAllGroups": "All groups",
|
||
"groupAllRooms": "All rooms",
|
||
"groupAllTeams": "All teams",
|
||
"groupMentionBot": "Only when @bot",
|
||
"optionalEg": "Optional, e.g.",
|
||
"editAccountLabel": "Edit {id}",
|
||
"bound": "Bound",
|
||
"notBoundAgent": "No Agent bound",
|
||
"addAgentBindingForAccount": "Add Agent Binding",
|
||
"addAgentBindingSub": "Add a new Agent route for this account",
|
||
"editConfig": "Edit Config",
|
||
"addAgentBinding": "Add Agent Binding",
|
||
"routeToAgent": "Route incoming messages to a specific Agent",
|
||
"addNewAccount": "Add New Account",
|
||
"addNewAccountSub": "Create a new bot account configuration",
|
||
"actions": "Actions",
|
||
"bindAgentTitle": "Bind Agent",
|
||
"targetAgent": "Target Agent",
|
||
"targetAgentHint": "Select the Agent to receive messages",
|
||
"peerScope": "Match Scope",
|
||
"peerAll": "All (DM + Group)",
|
||
"peerAllHint": "Receive all messages from this channel",
|
||
"peerDirect": "DM Only",
|
||
"peerDirectHint": "Only receive one-on-one direct messages",
|
||
"peerDirectLabel": "DM",
|
||
"peerGroup": "Group Only",
|
||
"peerGroupHint": "Only receive group/channel messages",
|
||
"peerGroupLabel": "Group",
|
||
"peerIdHint": "Target ID",
|
||
"peerIdHintDetailed": "Restrict to a specific group/user ID; leave empty to match all",
|
||
"targetId": "Target ID",
|
||
"saveBinding": "Save Binding",
|
||
"duplicateBinding": "A binding with the same configuration already exists",
|
||
"saving": "저장 중...",
|
||
"bindingSaved": "Binding saved",
|
||
"saveFailed": "저장 실패",
|
||
"accountLabel": "Account",
|
||
"defaultAccount": "Default Account",
|
||
"accountShort": "Acct",
|
||
"peerDm": "DM",
|
||
"peerGroupShort": "Group",
|
||
"peerChannelShort": "Channel",
|
||
"noAgents": "No Agents",
|
||
"orphanAgent": "Binding exists in config but Agent ID not found in current list",
|
||
"diagnose": "Diagnose",
|
||
"remove": "Remove",
|
||
"noBindings": "No channel bindings yet",
|
||
"addChannelBinding": "Add Channel Binding",
|
||
"enableChannelFirst": "Please connect and enable at least one channel in \"Channel List\" first",
|
||
"confirmRemoveBinding": "Remove this binding?",
|
||
"bindingRemoved": "Binding removed",
|
||
"addBindingForAgent": "Add channel binding for {agent}",
|
||
"channel": "Channel",
|
||
"bindingIndependentHint": "Each binding works independently; you can add multiple rules for the same channel",
|
||
"subAccount": "Sub-account",
|
||
"noMultiAccount": "This channel does not support multiple accounts",
|
||
"noMultiAccountHint": "Add multiple accounts in the channel list first",
|
||
"confirmRemoveAccount": "Remove this account and all its config?",
|
||
"removed": "Removed",
|
||
"removeFailed": "Remove failed",
|
||
"disabled": "Disabled",
|
||
"enabled": "Enabled",
|
||
"operationFailed": "Operation failed",
|
||
"confirmRemovePlatform": "Remove this platform and all its config?",
|
||
"supportsActions": "Supports actions",
|
||
"connectedClickEdit": "Connected, click to edit",
|
||
"qqDiagAllPassed": "All checks passed ✓",
|
||
"qqDiagHasFailed": "Some checks failed",
|
||
"qqRepairHint": "Try one-click repair: reinstall plugin and restart Gateway",
|
||
"qqRepairBtn": "One-Click Repair",
|
||
"qqFaqBtn": "Open QQ OpenClaw FAQ",
|
||
"qqDiagTitle": "QQ Connectivity Diagnosis",
|
||
"notes": "Notes",
|
||
"processing": "Processing...",
|
||
"repairDone": "Repair complete",
|
||
"repairFailed": "Repair failed",
|
||
"unknownChannelType": "Unrecognized channel type",
|
||
"diagnosing": "Diagnosing...",
|
||
"testing": "테스트 중...",
|
||
"noCredentialsFound": "No credentials found for this channel in config",
|
||
"testPassed": "Channel test passed",
|
||
"verifyFailed": "Verification failed",
|
||
"testFailed": "연결 실패",
|
||
"diagFailed": "Diagnosis failed",
|
||
"connectingGateway": "Connecting Gateway...",
|
||
"gatewayNotConnected": "Gateway not connected",
|
||
"generatingQr": "Generating QR code...",
|
||
"generatingQrShort": "Generating QR...",
|
||
"whatsappScanQr": "Scan this QR code with WhatsApp on your phone",
|
||
"whatsappScanPath": "WhatsApp → Linked Devices → Link a Device",
|
||
"waitingScan": "Waiting for scan...",
|
||
"whatsappLinked": "WhatsApp linked successfully!",
|
||
"whatsappAlreadyLinked": "WhatsApp is already linked, no need to re-scan",
|
||
"linkedSuccess": "Linked successfully!",
|
||
"scanTimeout": "Scan timed out",
|
||
"scanTimeoutRetry": "Scan timed out or not completed, please retry",
|
||
"whatsappNotAvailableHint": "WhatsApp plugin not loaded",
|
||
"scanLoginFailed": "Scan login failed",
|
||
"unknownPlatform": "Unknown platform",
|
||
"setupSteps": "Setup Steps",
|
||
"clickToExpand": "click to expand",
|
||
"docsOnlyTitle": "Configuration wizard for this channel is not yet available",
|
||
"docsOnlyDefault": "Please complete setup via upstream docs or CLI first",
|
||
"setupGuide": "Setup Guide",
|
||
"gotIt": "Got It",
|
||
"detectingPlugin": "Detecting plugin status...",
|
||
"operations": "Operations",
|
||
"setup": "Setup",
|
||
"close": "Close",
|
||
"pluginStatusFailed": "Failed to get plugin status",
|
||
"pluginInstalled": "Installed",
|
||
"version": "Version",
|
||
"unknown": "Unknown",
|
||
"newVersionAvailable": "New version {version} available, click \"Upgrade Plugin\" to update",
|
||
"upgradePlugin": "Upgrade Plugin",
|
||
"upToDate": "Up to date",
|
||
"pluginNotInstalled": "Not installed",
|
||
"latestVersion": "Latest version",
|
||
"clickInstallBelow": "Click \"Install Plugin\" below to get started",
|
||
"executing": "Executing",
|
||
"executingShort": "Executing...",
|
||
"executingAction": "Executing channel action",
|
||
"executionDone": "Execution complete",
|
||
"executionFailed": "Execution failed",
|
||
"unknownError": "Unknown error",
|
||
"execute": "Execute",
|
||
"channelConnected": "🎉 Channel connected! Refreshing list...",
|
||
"reDetecting": "Re-detecting...",
|
||
"actionDone": "Channel action completed",
|
||
"actionFailed": "Channel action failed",
|
||
"accountIdentifier": "Account Identifier",
|
||
"accountIdPlaceholder": "Leave empty for default account; changing creates a new account",
|
||
"accountIdHint": "Each account corresponds to an independent bot. Different accounts can bind to different Agents.",
|
||
"bindAgent": "Agent 바인딩",
|
||
"bindAgentHint": "Which Agent receives messages for this account (add more bindings in \"Agent Binding\" tab).",
|
||
"show": "Show",
|
||
"hide": "Hide",
|
||
"pairingApproval": "Pairing Approval",
|
||
"pairingApprovalHint": "When the bot shows <code>access not configured</code>, <code>Pairing code</code>, or asks to run <code>openclaw pairing approve</code>, you can approve directly here.",
|
||
"pairingCodePlaceholder": "e.g. R3ZFPWZP",
|
||
"viewPending": "View Pending",
|
||
"approvePairingCode": "Approve Pairing Code",
|
||
"preActions": "Pre-run Actions",
|
||
"preActionsHint": "For channels that require CLI login, scanning, or initialization commands first.",
|
||
"gatewayAuthAutoFilled": "Auto-filled {type} from current Gateway auth config; usually no need to fill manually",
|
||
"existingConfigHint": "Existing config found; edit and click Save to overwrite",
|
||
"fullDiagnose": "Full Connectivity Diagnosis",
|
||
"qqDiagHint": "检查<strong>已保存到配置文件</strong>的凭证、本机 Gateway 端口、<code>/__api/health</code>、QQ 插件与 chatCompletions。QQ 提示「灵魂不在线」时优先看此处,并参考 <a href=\"https://q.qq.com/qqbot/openclaw/faq.html\" target=\"_blank\" rel=\"noopener\">OpenClaw × QQ 常见问题</a>。",
|
||
"edit": "편집",
|
||
"connect": "Connect",
|
||
"verifyCredentials": "Verify Credentials",
|
||
"save": "저장",
|
||
"connectAndSave": "Connect & Save",
|
||
"reading": "Reading...",
|
||
"pendingRequests": "Pending Requests",
|
||
"noPendingRequests": "No pending requests",
|
||
"readFailed": "Read failed",
|
||
"enterPairingCode": "Please enter pairing code",
|
||
"approving": "Approving...",
|
||
"pairingApproved": "Pairing approved",
|
||
"operationComplete": "Operation complete",
|
||
"approveFailed": "승인 실패",
|
||
"pleaseFill": "Please fill in \"{field}\"",
|
||
"verifying": "Verifying...",
|
||
"credentialsValid": "Credentials valid",
|
||
"qqVerifyNote": "此项只验证 AppID/Secret 能否向腾讯换 token。<strong>不能</strong>代表 QQ 里机器人已在线;若提示「灵魂不在线」,请使用下方 <strong>完整联通诊断</strong> 并对照 <a href=\"https://q.qq.com/qqbot/openclaw/faq.html\" target=\"_blank\" rel=\"noopener\">QQ OpenClaw 常见问题</a>。",
|
||
"verifyRequestFailed": "Verification request failed",
|
||
"installingPlugin": "Installing plugin...",
|
||
"installPlugin": "플러그인 설치",
|
||
"pluginInstallFailed": "Plugin installation failed",
|
||
"pluginDetected": "Plugin detected, no need to reinstall; only updating config",
|
||
"writingConfig": "Writing config...",
|
||
"configSaved": "{platform} config saved, Gateway is reloading"
|
||
},
|
||
"memory": {
|
||
"title": "메모리",
|
||
"agentLabel": "Agent:",
|
||
"newFile": "+ New",
|
||
"deleteFile": "Delete",
|
||
"exportZip": "Export All as ZIP",
|
||
"selectFile": "Select a file to view",
|
||
"download": "다운로드",
|
||
"preview": "Preview",
|
||
"save": "Save",
|
||
"edit": "Edit",
|
||
"editorPlaceholder": "Select a file on the left to edit...",
|
||
"catMemory": "Working Memory",
|
||
"catMemoryDesc": "Active working context, decision records and progress tracking",
|
||
"catArchive": "Memory Archive",
|
||
"catArchiveDesc": "Archived historical memory files, organized by time period",
|
||
"catCore": "Core Files",
|
||
"catCoreDesc": "Agent core configuration files like AGENTS.md, CLAUDE.md, etc.",
|
||
"newFileTitle": "New Memory File",
|
||
"newFileLabel": "Filename",
|
||
"newFilePlaceholder": "e.g. notes.md",
|
||
"newFileHint": "Recommended .md format. File will be saved to the current category directory",
|
||
"created": "Created {name}",
|
||
"createFailed": "Failed to create",
|
||
"confirmDelete": "메모리 파일「{name}」을 삭제하시겠습니까?",
|
||
"deleted": "삭제됨",
|
||
"deleteFailed": "삭제 실패",
|
||
"noFiles": "메모리 파일 없음",
|
||
"loadFailed": "메모리 파일 로드 실패",
|
||
"loadListFailed": "Failed to load file list",
|
||
"loading": "Loading...",
|
||
"readFailed": "Read failed",
|
||
"readFileFailed": "Failed to read file",
|
||
"fileSaved": "File saved",
|
||
"saveFailed": "Save failed",
|
||
"downloaded": "Downloaded {name}",
|
||
"downloadFailed": "Download failed",
|
||
"exported": "Exported: {label} → {path}",
|
||
"exportFailed": "Export failed"
|
||
},
|
||
"cron": {
|
||
"title": "예약 작업",
|
||
"desc": "OpenClaw 정기 작업 관리",
|
||
"gwHint": "Scheduled tasks are managed via Gateway. Please start Gateway first.",
|
||
"goServices": "Services",
|
||
"newTask": "+ New Task",
|
||
"refresh": "Refresh",
|
||
"totalTasks": "Total Tasks",
|
||
"running": "실행 중...",
|
||
"paused": "Paused",
|
||
"recentFailed": "Recent Failures",
|
||
"noTasks": "작업 없음",
|
||
"noTasksHint": "Click \"+ New Task\" to create your first scheduled task",
|
||
"statusRunning": "Running",
|
||
"statusPaused": "Paused",
|
||
"triggerSuccess": "Task triggered",
|
||
"triggerFailed": "Trigger failed",
|
||
"togglePaused": "Paused",
|
||
"toggleEnabled": "Enabled",
|
||
"toggleFailed": "Operation failed",
|
||
"confirmDelete": "작업「{name}」을 삭제하시겠습니까?",
|
||
"deleted": "작업 삭제됨",
|
||
"deleteFailed": "작업 삭제 실패",
|
||
"fetchFailed": "Failed to fetch task list",
|
||
"gwNotConnected": "Gateway not connected. Please start Gateway first to manage scheduled tasks",
|
||
"taskName": "작업명",
|
||
"taskNamePlaceholder": "e.g. Daily summary push",
|
||
"taskMessage": "Command *",
|
||
"taskMessagePlaceholder": "AI will execute this command when triggered",
|
||
"taskAgent": "Agent",
|
||
"taskAgentDefault": "Default Agent",
|
||
"taskAgentHint": "Uses default Agent if not specified",
|
||
"taskDelivery": "Delivery Channel",
|
||
"taskDeliveryNone": "None (main session)",
|
||
"taskDeliveryHint": "Must be specified when multiple messaging channels are configured",
|
||
"taskSchedule": "Schedule",
|
||
"taskSchedulePlaceholder": "Cron expression, e.g. 0 9 * * *",
|
||
"taskEnableNow": "Enable immediately after creation",
|
||
"editTitle": "작업 편집",
|
||
"createTitle": "Create Scheduled Task",
|
||
"saveEdit": "Save Changes",
|
||
"saveCreate": "Create",
|
||
"saving": "Saving...",
|
||
"nameRequired": "작업명을 입력하세요",
|
||
"messageRequired": "Please enter a command",
|
||
"scheduleRequired": "Please set a schedule",
|
||
"updated": "작업 업데이트됨",
|
||
"created": "작업 생성됨",
|
||
"saveFailed": "Save failed",
|
||
"fixedConfig": "Auto-fixed config (removed invalid cron.jobs)",
|
||
"cronEvery5min": "Every 5 min",
|
||
"cronEvery15min": "Every 15 min",
|
||
"cronHourly": "Every hour",
|
||
"cronDaily9": "Daily 9:00",
|
||
"cronDaily18": "Daily 18:00",
|
||
"cronMonday9": "Mon 9:00",
|
||
"cronMonthly1": "1st of month 9:00",
|
||
"unknown": "Unknown",
|
||
"unknownPeriod": "Unknown schedule",
|
||
"everyMinute": "매분",
|
||
"everyNMin": "Every {n} min",
|
||
"hourlyOnTheHour": "Every hour on the hour",
|
||
"everyNSec": "Every {n} sec",
|
||
"everyNHour": "Every {n} hour",
|
||
"oneTime": "One-time",
|
||
"justNow": "Just now",
|
||
"minutesAgo": "{n} min ago",
|
||
"hoursAgo": "{n} hr ago",
|
||
"daysAgo": "{n} days ago"
|
||
},
|
||
"usage": {
|
||
"title": "사용 현황",
|
||
"desc": "모델 사용량 및 토큰 통계 보기",
|
||
"today": "오늘",
|
||
"days7": "7 Days",
|
||
"days30": "30 Days",
|
||
"refresh": "Refresh",
|
||
"gwConnecting": "Connecting to Gateway...",
|
||
"gwWait": "Will auto-load once Gateway is connected",
|
||
"loadFailed": "사용 데이터 로드 실패",
|
||
"loadFailedHint": "You may need to update OpenClaw to 2026.3.11+ for Usage API support",
|
||
"retry": "Retry",
|
||
"noData": "사용 데이터 없음",
|
||
"messages": "Messages",
|
||
"userMsgs": "user",
|
||
"assistantMsgs": "assistant",
|
||
"toolCalls": "Tool Calls",
|
||
"toolKinds": "{count} tools",
|
||
"errors": "Errors",
|
||
"errorRate": "Error rate",
|
||
"totalTokens": "총 토큰",
|
||
"input": "input",
|
||
"output": "output",
|
||
"cost": "비용",
|
||
"sessions": "Sessions",
|
||
"topModels": "Top Models",
|
||
"topProviders": "Top Providers",
|
||
"topTools": "Top Tools",
|
||
"topAgents": "Top Agents",
|
||
"topChannels": "Top Channels",
|
||
"tokenBreakdown": "Token Breakdown",
|
||
"outputTokens": "출력 토큰",
|
||
"inputTokens": "입력 토큰",
|
||
"cacheRead": "Cache Read",
|
||
"cacheWrite": "Cache Write",
|
||
"dailyUsage": "Daily Usage",
|
||
"sessionDetail": "Session Details",
|
||
"recentN": "Recent {count}",
|
||
"times": "{count} times",
|
||
"timesCall": "{count} calls",
|
||
"unknownModel": "Unknown",
|
||
"unknownProvider": "Unknown"
|
||
},
|
||
"skills": {
|
||
"title": "Skills",
|
||
"desc": "OpenClaw Skills 관리 및 설치",
|
||
"tabInstalled": "Installed",
|
||
"tabStore": "Search & Install",
|
||
"filterPlaceholder": "Filter Skills...",
|
||
"refresh": "Refresh",
|
||
"loading": "Loading Skills...",
|
||
"loadFailed": "Skills 로드 실패",
|
||
"loadFailedHint": "Please confirm OpenClaw is installed and available",
|
||
"retry": "Retry",
|
||
"eligible": "Available",
|
||
"missingDeps": "Missing Deps",
|
||
"disabled": "Disabled",
|
||
"blocked": "Blocked",
|
||
"eligibleGroup": "✓ Available",
|
||
"missingGroup": "✗ Missing Dependencies",
|
||
"disabledGroup": "⏸ Disabled",
|
||
"blockedGroup": "🚫 Blocked by Allowlist",
|
||
"aiFixBtn": "Let AI assistant help install",
|
||
"summary": "{total} Skills: {detail}",
|
||
"summaryDetail": "{eligible} available / {missing} missing deps / {disabled} disabled",
|
||
"noSkills": "Skills 없음",
|
||
"noSkillsHint": "Please confirm OpenClaw is properly installed. Skills are bundled with OpenClaw; custom Skills may be in <code>~/.openclaw/skills/</code> or <code>~/.claude/skills/</code>.",
|
||
"bundled": "Bundled",
|
||
"custom": "Custom",
|
||
"missingCmd": "Missing commands",
|
||
"missingEnv": "Missing env vars",
|
||
"missingEnvHint": "— must be set in system environment",
|
||
"missingConfig": "Missing config",
|
||
"missingConfigHint": "— must be set in openclaw.json",
|
||
"noAutoInstall": "No auto-install option, please install manually",
|
||
"detail": "Details",
|
||
"uninstall": "제거",
|
||
"loadingDetail": "Loading details...",
|
||
"detailSource": "Source",
|
||
"detailPath": "Path",
|
||
"reqBins": "Required commands",
|
||
"reqEnv": "Environment variables",
|
||
"installOptions": "Install options",
|
||
"detailLoadFailed": "Failed to load details",
|
||
"installing": "설치 중...",
|
||
"depInstalled": "{name} dependency installed",
|
||
"installFailed": "설치 실패",
|
||
"searchPlaceholder": "Search skills, e.g. weather / github / tavily",
|
||
"search": "Skills 검색...",
|
||
"installCLI": "Install CLI",
|
||
"browse": "Browse",
|
||
"searchEmpty": "Enter keywords to search community Skills, then install with one click",
|
||
"searchKeyword": "Enter keywords to search community Skills",
|
||
"searching": "검색 중...",
|
||
"noResults": "일치하는 스킬 없음",
|
||
"install": "설치",
|
||
"installed": "설치됨",
|
||
"searchFailed": "Search failed",
|
||
"rateLimited": "⚠️ Rate limited",
|
||
"rateLimitClawHub": "ClawHub rate limited, try switching to SkillHub (China accelerated)",
|
||
"rateLimitRetry": "Please try again later",
|
||
"skillhubNeedCLI": "⚠️ Please install SkillHub CLI first",
|
||
"skillhubNeedCLIHint": "Click \"Install CLI\" above, or switch to ClawHub source",
|
||
"skillhubSetup": "Install SkillHub CLI",
|
||
"skillhubInstalling": "Installing SkillHub CLI...",
|
||
"skillhubInstalled": "SkillHub CLI installed",
|
||
"skillhubInstallFailed": "SkillHub CLI installation failed",
|
||
"confirmUninstall": "스킬「{name}」을 제거하시겠습니까?",
|
||
"uninstalling": "제거 중...",
|
||
"uninstalled": "Uninstalled {name}",
|
||
"uninstallFailed": "제거 실패",
|
||
"skillInstalled": "Skill {name} installed",
|
||
"sourceSkillHub": "SkillHub (China accelerated)",
|
||
"sourceClawHub": "ClawHub (Original overseas)",
|
||
"sourceLocalScanTimeout": "CLI available but timed out, showing local scan results",
|
||
"sourceLocalScanParseFailed": "CLI available but output parse failed, showing local scan results",
|
||
"sourceLocalScanExecFailed": "CLI execution failed, showing local scan results",
|
||
"sourceLocalScan": "Showing local scan results",
|
||
"sourceLocalScanNoCli": "CLI not available, showing local scan results",
|
||
"sourceCLI": "Using OpenClaw CLI results"
|
||
},
|
||
"chat": {
|
||
"title": "실시간 채팅",
|
||
"desc": "Agent와 실시간 대화",
|
||
"sessionList": "세션 목록",
|
||
"newSession": "새 세션",
|
||
"chatTitle": "Chat",
|
||
"loadingModels": "모델 로딩 중...",
|
||
"shortcuts": "Shortcuts",
|
||
"resetSession": "Reset Session",
|
||
"inputPlaceholder": "메시지를 입력하세요...",
|
||
"uploadImage": "Upload Image",
|
||
"refreshModels": "Refresh Models",
|
||
"send": "전송",
|
||
"stopGeneration": "Stop Generation",
|
||
"doubleClickRename": "Double-click to rename",
|
||
"delete": "Delete",
|
||
"messagesCount": "{count} messages",
|
||
"justNow": "just now",
|
||
"minutesAgo": "{n} min ago",
|
||
"hoursAgo": "{n} hr ago",
|
||
"daysAgo": "{n} days ago",
|
||
"unknown": "Unknown",
|
||
"mainSession": "Main Session",
|
||
"mainDefault": "main (default)",
|
||
"newAgent": "+ New Agent",
|
||
"sessionName": "Session Name",
|
||
"sessionNamePlaceholder": "e.g. Translation Helper",
|
||
"enterSessionName": "Please enter a session name",
|
||
"createAgentHint": "Please create a new Agent in the Agent management page",
|
||
"sessionCreated": "Session created",
|
||
"cannotDeleteMain": "Cannot delete the main session",
|
||
"confirmDeleteSession": "Delete session \"{label}\"?",
|
||
"sessionDeleted": "Session deleted",
|
||
"deleteFailed": "Delete failed: ",
|
||
"confirmResetSession": "Reset session \"{label}\"?\n\nThis will clear all chat history for this session. This action cannot be undone.",
|
||
"sessionResetDone": "Session has been reset",
|
||
"resetFailed": "Reset failed: ",
|
||
"sessionRenamed": "Session renamed",
|
||
"gatewayNotReadySend": "Gateway not ready, will send after connection",
|
||
"sendFailed": "전송 실패",
|
||
"usingTool": "Using tool: {name}",
|
||
"streamTimeout": "Output timed out, auto-ended",
|
||
"generationStopped": "Generation stopped",
|
||
"errorPrefix": "Error: ",
|
||
"connectionRejected": "Connection rejected by Gateway, click \"Fix & Reconnect\"",
|
||
"noMessages": "메시지 없음",
|
||
"imageHistoryHint": "Some history images cannot be displayed (Gateway does not retain original image data, only visible in current session)",
|
||
"loadHistoryFailed": "Failed to load history: ",
|
||
"toolSuccess": "Success",
|
||
"toolFailed": "Failed",
|
||
"toolParams": "Parameters",
|
||
"toolResult": "Result",
|
||
"noParams": "No parameters",
|
||
"noResult": "No result",
|
||
"tool": "Tool",
|
||
"file": "File",
|
||
"compacting": "Compacting context…",
|
||
"remaining": "Remaining",
|
||
"connectFailed": "Connection failed",
|
||
"fixDoneReconnecting": "Fix done, reconnecting...",
|
||
"fixing": "Fixing...",
|
||
"writingConfig": "Writing config...",
|
||
"fixFailed": "Fix failed: ",
|
||
"imageOnly": "Only images are supported",
|
||
"readFileFailed": "Failed to read file",
|
||
"noSessions": "세션 없음",
|
||
"disconnected": "연결 끊김",
|
||
"gatewayNotReady": "Gateway Connection Not Ready",
|
||
"connectingGateway": "Connecting to Gateway...",
|
||
"fixAndReconnect": "Fix & Reconnect",
|
||
"gatewaySettings": "Gateway Settings",
|
||
"firstUseHint": "First time? Make sure Gateway is running, or click \"Fix & Reconnect\" to auto-fix",
|
||
"guideTitle": "You are using Live Chat",
|
||
"guideDesc": "This page connects to your OpenClaw AI Agent via <b>Gateway</b>. Conversations are processed by your deployed OpenClaw service.",
|
||
"guideHint": "To use ClawPanel's built-in AI Assistant (independent of OpenClaw), go to \"AI Assistant\" in the left menu.",
|
||
"guideClose": "Got it",
|
||
"defaultSuffix": "(default)",
|
||
"cmdSession": "Session",
|
||
"cmdModel": "Model",
|
||
"cmdThinkMode": "Think Mode",
|
||
"cmdFastMode": "Fast Mode",
|
||
"cmdVerbose": "Verbose/Reasoning",
|
||
"cmdInfo": "Info",
|
||
"cmdNewSession": "New session",
|
||
"cmdResetSession": "Reset current session",
|
||
"cmdStopGen": "Stop generation",
|
||
"cmdSwitchModel": "Switch model (enter name)",
|
||
"cmdListModels": "List available models",
|
||
"cmdModelStatus": "Current model status",
|
||
"cmdThinkOff": "Disable deep thinking",
|
||
"cmdThinkLow": "Light thinking",
|
||
"cmdThinkMedium": "Medium thinking",
|
||
"cmdThinkHigh": "Deep thinking",
|
||
"cmdFastToggle": "Toggle fast mode (on/off)",
|
||
"cmdFastOn": "Enable fast mode (low latency)",
|
||
"cmdFastOff": "Disable fast mode",
|
||
"cmdVerboseOff": "Disable verbose mode",
|
||
"cmdVerboseLow": "Low verbosity",
|
||
"cmdVerboseHigh": "High verbosity",
|
||
"cmdReasoningOff": "Disable reasoning mode",
|
||
"cmdReasoningLow": "Light reasoning",
|
||
"cmdReasoningMedium": "Medium reasoning",
|
||
"cmdReasoningHigh": "Deep reasoning",
|
||
"cmdHelp": "Help",
|
||
"cmdStatus": "System status",
|
||
"cmdContext": "Context info",
|
||
"hostedAgent": "Hosted Agent",
|
||
"hostedBadge": "Hosted",
|
||
"taskGoal": "Task Goal",
|
||
"taskGoalPlaceholder": "e.g. Continuously optimize code quality until no improvements remain",
|
||
"hostedHint": "Hosted Agent will continuously guide OpenClaw to complete this goal. Uses <a href=\"#/assistant\" class=\"hosted-agent-link\">AI Assistant</a> model config.",
|
||
"maxReplies": "Max Replies",
|
||
"timerAutoStop": "Auto-stop Timer",
|
||
"startHosted": "Start Hosted",
|
||
"stopHosted": "Stop Hosted",
|
||
"ready": "Ready",
|
||
"hostedNotEnabled": "Not Enabled",
|
||
"hostedRunning": "Running",
|
||
"hostedWaiting": "Waiting for Reply",
|
||
"hostedPaused": "Paused",
|
||
"hostedErrorStatus": "Error",
|
||
"hostedStandby": "Standby",
|
||
"hostedStatusError": "Error: {msg}",
|
||
"hostedStatusRunning": "Running · {n} steps remaining",
|
||
"hostedRemaining": "{time} remaining",
|
||
"enterTaskGoal": "Please enter a task goal",
|
||
"hostedGatewayNotReady": "Gateway not ready, cannot start",
|
||
"hostedStarted": "Hosted Agent started",
|
||
"hostedStopped": "Hosted Agent stopped",
|
||
"hostedAutoStopSignal": "OpenClaw reply contains completion signal, auto-stopping",
|
||
"hostedTimerExpired": "Timer expired ({min} min), auto-stopping",
|
||
"hostedNeedIntervention": "Manual intervention needed: {reason}",
|
||
"hostedGwNotReady": "Gateway not ready",
|
||
"hostedErrorThreshold": "Consecutive errors exceeded threshold",
|
||
"hostedModelNotConfigured": "Hosted Agent model not configured (please configure in AI Assistant page)",
|
||
"hostedApiError": "API Error {code}",
|
||
"hostedPrefix": "[Hosted Agent] ",
|
||
"hostedContextSummary": "[Context Summary - compressed {n} history entries]"
|
||
},
|
||
"chatDebug": {
|
||
"title": "시스템 진단",
|
||
"desc": "WebSocket 연결 진단 및 네트워크 디버그",
|
||
"sectionAppState": "App State",
|
||
"sectionWs": "WebSocket Connection",
|
||
"sectionNode": "Node.js Environment",
|
||
"sectionVersion": "Version Info",
|
||
"sectionConfig": "Config File",
|
||
"sectionService": "Service Status",
|
||
"sectionDevice": "Device Key & Handshake Signature",
|
||
"sectionDiagnosis": "Diagnostic Suggestions",
|
||
"sectionDoctorOutput": "Config Diagnosis Output",
|
||
"wsTestTitle": "WebSocket Connection Test",
|
||
"btnRefresh": "Refresh Status",
|
||
"btnDiagConfig": "Diagnose Config",
|
||
"btnAutoFix": "Auto Fix",
|
||
"btnTestWs": "Test WebSocket",
|
||
"btnNetworkLog": "Network Log",
|
||
"btnFixPairing": "Fix Pairing",
|
||
"btnClear": "Clear",
|
||
"systemOk": "System OK",
|
||
"issuesFound": "Issues Found",
|
||
"allFunctionsOk": "All core functions running normally",
|
||
"someFunctionsError": "Some functions abnormal, see details below",
|
||
"openclawReady": "OpenClaw Ready",
|
||
"gatewayRunning": "Gateway Running",
|
||
"connStatus": "Connection Status",
|
||
"connected": "Connected",
|
||
"notConnected": "Not Connected",
|
||
"handshakeStatus": "Handshake Status",
|
||
"completed": "Completed",
|
||
"notCompleted": "Not Completed",
|
||
"sessionKey": "Session Key",
|
||
"installStatus": "Install Status",
|
||
"installed": "Installed",
|
||
"notInstalled": "Not Installed",
|
||
"version": "Version",
|
||
"unknownLabel": "(unknown)",
|
||
"currentVersion": "Current Version",
|
||
"recommendedVersion": "Recommended Stable",
|
||
"panelVersion": "Panel Version",
|
||
"latestUpstream": "Latest Upstream",
|
||
"notDetected": "(not detected)",
|
||
"deviationFromRecommended": "Deviation from Recommended",
|
||
"versionTooHigh": "Version too high, consider downgrade",
|
||
"versionAligned": "Aligned",
|
||
"versionNeedSwitch": "Needs switch",
|
||
"latestAvailable": "Latest Upstream Available",
|
||
"hasUpdate": "Update available",
|
||
"noUpdate": "No update",
|
||
"notSet": "(not set)",
|
||
"set": "Set",
|
||
"running": "Running",
|
||
"stopped": "Stopped",
|
||
"none": "(none)",
|
||
"empty": "(empty)",
|
||
"cliInstall": "CLI Install",
|
||
"runStatus": "Run Status",
|
||
"processPid": "Process PID",
|
||
"serviceLabel": "Service Label",
|
||
"deviceId": "Device ID",
|
||
"publicKey": "Public Key",
|
||
"signTime": "Sign Time",
|
||
"deviceKeySuccess": "Device key generated successfully",
|
||
"viewConnectFrame": "View full Connect Frame",
|
||
"diagNodeNotInstalled": "Node.js not installed. Please install Node.js first (<a href=\"https://nodejs.org/\" target=\"_blank\" rel=\"noopener\">Download</a>)",
|
||
"diagConfigMissing": "Config file missing or corrupted, please go to Setup page to complete configuration",
|
||
"diagCliNotInstalled": "OpenClaw CLI not installed, please go to Setup page to install",
|
||
"diagGatewayNotRunning": "Gateway not running, please go to Services page to start",
|
||
"diagTokenNotSet": "Gateway token not set (optional for local dev, recommended for production)",
|
||
"diagTokenSecretRef": "Gateway token via environment variable/SecretRef",
|
||
"diagDeviceKeyFailed": "Device key generation failed, check Rust backend logs",
|
||
"diagWsNotConnected": "Gateway running but WebSocket not connected. Common cause: <strong>origin not allowed</strong> (Tauri origin not whitelisted) or port {port} occupied. Click \"Fix Pairing\" to auto-fix origin issues",
|
||
"diagWsHandshakeFailed": "WebSocket connected but handshake incomplete, check if token is correct",
|
||
"diagAllOk": "All checks passed, system running normally",
|
||
"checkTime": "Check time: {time}",
|
||
"fixing": "Fixing...",
|
||
"diagnosing": "Diagnosing...",
|
||
"runningDoctorFix": "Running openclaw doctor --fix ...",
|
||
"runningDoctor": "Running openclaw doctor ...",
|
||
"noIssues": "✓ No issues found",
|
||
"diagDone": "Diagnosis complete",
|
||
"installCorrupt": "OpenClaw installation may be corrupted",
|
||
"installCorruptHint": "Module files missing. Go to <a href=\"#\" data-nav=\"about\" style=\"color:var(--primary);text-decoration:underline;font-weight:500\">About page</a> to switch version or reinstall OpenClaw CLI.",
|
||
"installCorruptToast": "OpenClaw installation corrupted, recommend reinstalling from About page",
|
||
"configFixDone": "Config fix complete",
|
||
"configFixPartial": "Fix complete, some issues may need manual handling",
|
||
"execFailed": "Execution failed: ",
|
||
"cliUnavailable": "OpenClaw CLI unavailable",
|
||
"cliUnavailableHint": "Please go to <a href=\"#\" data-nav=\"about\" style=\"color:var(--primary);text-decoration:underline;font-weight:500\">About page</a> to install or reinstall OpenClaw.",
|
||
"wsTestStart": "Starting WebSocket connection test...",
|
||
"wsAddress": "Address: {url}",
|
||
"wsToken": "Token: {token}",
|
||
"wsConnecting": "연결 중...",
|
||
"wsConnected": "연결됨",
|
||
"wsWaitChallenge": "Waiting for Gateway connect.challenge...",
|
||
"wsReceivedMsg": "Received message",
|
||
"wsReceivedChallenge": "Received challenge, nonce",
|
||
"wsGeneratingFrame": "Generating connect frame...",
|
||
"wsFrameGenerated": "Connect frame generated",
|
||
"wsSendingFrame": "Sending connect frame",
|
||
"wsFrameFailed": "Connect frame generation failed",
|
||
"wsHandshakeOk": "핸드셰이크 성공!",
|
||
"wsHandshakeFailed": "핸드셰이크 실패",
|
||
"wsParseFailed": "Message parse failed",
|
||
"wsRawData": "Raw data",
|
||
"wsError": "WebSocket 오류",
|
||
"wsClosed": "연결 종료",
|
||
"wsOriginRejected": "origin not allowed (1008) - Gateway rejected current app origin",
|
||
"wsOriginFix": "Solution: Click \"Fix Pairing\" to auto-add tauri://localhost to whitelist and restart Gateway",
|
||
"wsAuthFailed": "Auth failed (4001) - Token may be incorrect",
|
||
"wsAbnormalClose": "Abnormal close (1006) - May be network issue or Gateway disconnect",
|
||
"wsCreateFailed": "WebSocket creation failed",
|
||
"wsConfigReadFailed": "Config read failed",
|
||
"networkLogTitle": "네트워크 요청 로그 (최근 100건)",
|
||
"noRequests": "요청 기록 없음",
|
||
"totalRequests": "총 요청",
|
||
"cacheHit": "캐시 히트",
|
||
"avgDuration": "평균 소요 시간",
|
||
"colTime": "시간",
|
||
"colCommand": "명령",
|
||
"colArgs": "Args",
|
||
"colDuration": "소요 시간",
|
||
"colCache": "캐시",
|
||
"fixStarting": "수리 시작...",
|
||
"fixWritingPair": "Writing device pairing info + Gateway origin whitelist...",
|
||
"fixOriginAdded": "Added tauri://localhost to gateway.controlUi.allowedOrigins",
|
||
"fixStoppingGw": "Stopping Gateway service...",
|
||
"fixWaitExit": "Waiting for process exit (3s)...",
|
||
"fixStartingGw": "Starting Gateway service...",
|
||
"fixGwStartSent": "Gateway start command sent",
|
||
"fixWaitReady": "Waiting for Gateway ready (5s)...",
|
||
"fixCheckStatus": "Checking Gateway status...",
|
||
"fixGwStarted": "Gateway 시작됨",
|
||
"fixGwMaybeStarting": "Gateway may still be starting, please test manually later",
|
||
"fixTestingWs": "Testing WebSocket connection...",
|
||
"fixReceivedChallenge": "Received connect.challenge",
|
||
"fixFrameSent": "Connect frame sent",
|
||
"fixPairSuccess": "핸드셰이크 성공! 페어링 문제가 수리되었습니다!",
|
||
"fixReconnecting": "Re-establishing main app WebSocket connection...",
|
||
"fixOriginStillRejected": "Reason: Gateway rejected current app origin, need to restart Gateway",
|
||
"fixSuggestManualRestart": "Suggestion: Manually restart Gateway from Services page",
|
||
"fixWsConnFailed": "WebSocket connection failed, please confirm Gateway is running",
|
||
"fixOriginRejected1008": "Connection rejected (1008) - Gateway rejected current origin",
|
||
"fixRetryHint": "This issue should have been fixed, please click \"Fix Pairing\" again",
|
||
"fixFailed": "수리 실패"
|
||
},
|
||
"setup": {
|
||
"title": "초기 설정",
|
||
"desc": "OpenClaw 설치 및 설정",
|
||
"headerTitle": "ClawPanel에 오신 것을 환영합니다",
|
||
"headerDesc": "OpenClaw AI Agent 프레임워크의 데스크톱 관리 패널",
|
||
"recheck": "재감지",
|
||
"stepNode": "Node.js 환경",
|
||
"installed": "설치됨",
|
||
"stepNodeHint": "OpenClaw requires Node.js, please install it first.",
|
||
"downloadNode": "Node.js 다운로드",
|
||
"recheckAfterInstall": "Click \"Re-detect\" after installation",
|
||
"nodeInstalledButNotDetected": "Already installed but not detected?",
|
||
"macNodeHint": "On macOS, launching from Finder may not find Node.js. Try closing ClawPanel and launching from terminal:",
|
||
"winNodeHint": "After installing Node.js, click \"Re-detect\" or use \"Auto Scan\" below, no restart needed.",
|
||
"scanNodeBtn": "자동 스캔",
|
||
"orManualPath": "Or specify path manually:",
|
||
"checkPathBtn": "Check",
|
||
"stepGit": "Git 버전 관리",
|
||
"gitHttpsConfigured": "Auto-configured Git to use HTTPS (avoids SSH connection issues)",
|
||
"stepGitHint": "Some dependencies require Git to download source code. Click the button below to auto-install, or install manually if it fails.",
|
||
"autoInstallGitBtn": "Git 원클릭 설치",
|
||
"manualDownload": "수동 다운로드",
|
||
"gitOptionalHint": "<strong>Can I install without Git?</strong> Usually yes, but some dependencies may require Git. Recommended to install to avoid issues.",
|
||
"cliAvailable": "CLI available",
|
||
"cliAheadWarning": "Detected local OpenClaw {current} is ahead of the panel's recommended stable version {recommended}. There may be compatibility or stability risks. Consider rolling back to the recommended version on the About page.",
|
||
"stepConfig": "설정 파일",
|
||
"configAt": "Config file at {path}",
|
||
"configMissing": "설정 파일이 존재하지 않습니다",
|
||
"initConfigLabel": "설정 원클릭 초기화",
|
||
"customDirTitle": "사용자 정의 OpenClaw 설치 경로",
|
||
"customDirHint": "If OpenClaw is installed in a non-default directory, specify it here. Leave empty to use the default path.",
|
||
"customDirPlaceholder": "e.g. E:\\\\Data\\\\AI\\\\.openclaw",
|
||
"saveBtn": "저장",
|
||
"resetDefaultBtn": "기본값으로 복원",
|
||
"aiAssistant": "AI 어시스턴트",
|
||
"aiAssistantDesc": "Having installation issues? AI Assistant can help diagnose and solve them. After configuring a model, click the button below",
|
||
"aiAssistantDescProblem": ", current issues will be auto-sent to AI for analysis",
|
||
"openAiAssistant": "AI 어시스턴트 열기",
|
||
"askAiHelp": "Ask AI for Help",
|
||
"nextStepsTitle": "다음 단계",
|
||
"nextStepsDesc": "Environment is ready, but you still need to complete the following steps before chatting:",
|
||
"nextStep1": "「모델 설정」에서 최소 1개 모델 추가 및 기본 모델 설정",
|
||
"nextStep2": "「Gateway」에서 서비스가 시작되었는지 확인",
|
||
"nextStep3": "Feishu, DingTalk, QQ 등의 채널이 필요하면「채널」에서 설정",
|
||
"configModels": "모델 설정",
|
||
"gatewaySetup": "Gateway 설정",
|
||
"messageChannels": "채널",
|
||
"enterPanel": "패널 진입",
|
||
"installHint": "Installation will use the recommended stable version bound to this ClawPanel release. To change versions later, go to the About page.",
|
||
"installHint2": "To try latest features, install the recommended stable version first then switch manually. To request latest version support, submit an issue.",
|
||
"sourceChineseLabel": "Chinese Optimized (Recommended)",
|
||
"sourceOfficialLabel": "Official Version",
|
||
"installMethodLabel": "Install Method",
|
||
"methodAuto": "Auto Select (Recommended)",
|
||
"methodStandaloneR2": "Standalone Package · CDN (Recommended for China, includes Node.js, no npm needed)",
|
||
"methodStandaloneGithub": "Standalone Package · GitHub (Fallback when CDN unavailable)",
|
||
"methodNpm": "npm Install (Traditional, requires Node.js + npm + network)",
|
||
"registryLabel": "npm Registry",
|
||
"registryTaobao": "Taobao Mirror (Recommended for China)",
|
||
"registryNpm": "npm Official",
|
||
"registryHuawei": "Huawei Cloud Mirror",
|
||
"installBtn": "원클릭 설치",
|
||
"methodHintAuto": "Auto-selects best method: prefers standalone package (zero deps, fastest), falls back to npm on failure.",
|
||
"methodHintR2": "Downloads standalone package from CDN with bundled Node.js runtime, no npm needed. Fastest for China.",
|
||
"methodHintGithub": "Downloads standalone package from GitHub Releases. Fallback when CDN is unavailable.",
|
||
"methodHintNpm": "Traditional npm install, requires local Node.js, npm, and network access to npm registry.",
|
||
"envHintTitle": "Can't find installed OpenClaw?",
|
||
"envHintDesc": "ClawPanel desktop can only manage <strong>locally</strong> installed OpenClaw. Installations in these environments cannot be detected:",
|
||
"envHintWsl": "WSL (Windows Subsystem for Linux)",
|
||
"envHintWslDesc": "OpenClaw in WSL is not accessible from Windows side",
|
||
"envHintDocker": "Docker Container",
|
||
"envHintDockerDesc": "Container installations are isolated from host",
|
||
"envHintRemote": "Remote Server",
|
||
"envHintRemoteDesc": "Installed on another machine",
|
||
"envHintInstallManage": "Install management panel in the corresponding environment",
|
||
"envHintLocalReinstall": "Or, reinstall OpenClaw locally using the install button below.",
|
||
"wslWebHint": "Use Web version in WSL:",
|
||
"wslWebDesc": "Open WSL terminal, one-click deploy ClawPanel Web version:",
|
||
"wslWebPostDeploy": "After deployment, access via WSL IP in your browser.",
|
||
"dockerHint": "Use in Docker container:",
|
||
"dockerDesc": "Install OpenClaw + ClawPanel Web in container:",
|
||
"remoteHint": "Remote server:",
|
||
"remoteDesc": "SSH into server and run:",
|
||
"domesticMirror": "For users in China who cannot access GitHub:",
|
||
"domesticMirrorShort": "China mirror:",
|
||
"promptNodeMissing": "Node.js not installed or not detected",
|
||
"promptNodeOk": "Node.js installed: {version}",
|
||
"promptGitMissing": "Git not installed",
|
||
"promptGitOk": "Git installed: {version}",
|
||
"promptCliMissing": "OpenClaw CLI not installed",
|
||
"promptCliOk": "OpenClaw CLI installed",
|
||
"promptConfigMissing": "Config file not found",
|
||
"promptConfigOk": "Config file OK: {path}",
|
||
"promptIntro": "I'm having issues installing OpenClaw. Here is the current detection status:",
|
||
"promptOutro": "Please help me analyze the issues and provide solution steps. Use tools to check the system environment if needed.",
|
||
"installOpenclaw": "OpenClaw 설치",
|
||
"installingGit": "Installing...",
|
||
"gitInstallingHint": "Installing Git, please wait...",
|
||
"gitInstallSuccess": "Git installed successfully",
|
||
"gitAutoInstallFailed": "Auto install failed: {err}",
|
||
"gitManualHint": "Please install Git manually:",
|
||
"gitManualInstallHtml": "<strong>Windows:</strong> Download from <a href=\"https://git-scm.com/downloads\" target=\"_blank\" style=\"color:var(--accent)\">git-scm.com</a><br><strong>macOS:</strong> Run <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">xcode-select --install</code> or <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">brew install git</code><br><strong>Linux:</strong> <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">sudo apt install git</code> or <code style=\"background:var(--bg-secondary);padding:2px 4px;border-radius:3px\">sudo yum install git</code>",
|
||
"gitAutoInstallFailedToast": "Git auto install failed, please install manually",
|
||
"enterPath": "Please enter a path",
|
||
"saving": "Saving...",
|
||
"pathSaved": "Path saved, re-detecting...",
|
||
"customPathSaved": "Custom path saved",
|
||
"saveFailed": "Save failed: {err}",
|
||
"defaultRestored": "Default path restored, re-detecting...",
|
||
"defaultRestoredToast": "Default path restored",
|
||
"restoreFailed": "Restore failed: {err}",
|
||
"initializing": "Initializing...",
|
||
"configCreated": "Config file created",
|
||
"configExists": "Config file already exists",
|
||
"initFailed": "Init failed: {err}",
|
||
"scanning": "Scanning...",
|
||
"scanningPaths": "Scanning common install paths...",
|
||
"scanNotFound": "Node.js not found, please specify path manually or download.",
|
||
"scanUseBtn": "Use",
|
||
"scanFailed": "Scan failed: {err}",
|
||
"nodeSaved": "Node.js path saved, re-detecting...",
|
||
"detecting2": "Detecting...",
|
||
"nodeFoundSaved": "Found Node.js {version}, path saved",
|
||
"nodeNotFoundAtPath": "Node executable not found in this directory, please verify the path.",
|
||
"enterNodeDir": "Please enter Node.js install directory",
|
||
"checkFailed": "Detection failed: {err}",
|
||
"installComplete": "설치 완료",
|
||
"installingGateway": "Installing Gateway service...",
|
||
"gatewayInstalled": "Gateway service installed",
|
||
"gatewayInstallFailed": "Gateway install failed: {err}",
|
||
"gwModeSet": "Gateway mode set to local",
|
||
"toolsFullEnabled": "Agent tools full permissions enabled",
|
||
"autoConfigFailed": "Auto config failed: {err}",
|
||
"installSuccess": "OpenClaw 설치 성공",
|
||
"setRegistry": "Setting npm registry: {url}",
|
||
"bgTaskStarted": "Background install task started, please wait...",
|
||
"webModeLogHint": "Web mode: Install logs unavailable, please wait...",
|
||
"installScene": "Initial OpenClaw installation"
|
||
},
|
||
"about": {
|
||
"title": "정보",
|
||
"desc": "ClawPanel 버전 및 프로젝트 정보",
|
||
"subtitle": "OpenClaw 비주얼 관리 패널",
|
||
"sectionCommunity": "커뮤니티",
|
||
"sectionProjects": "관련 프로젝트",
|
||
"sectionContribute": "기여하기",
|
||
"sectionLinks": "링크",
|
||
"sectionAboutUs": "소개",
|
||
"techStack": "ClawPanel is built with Tauri v2, Vanilla JS + Vite frontend, Rust backend.",
|
||
"copyright": "MIT License © 2026 Wuhan Qingchen Tianxia Network Technology Co., Ltd.",
|
||
"checkingUpdate": "업데이트 확인 중...",
|
||
"official": "공식",
|
||
"chinese": "중국어판",
|
||
"policyAhead": "Your local installation {current} is ahead of the recommended stable version. There may be API, event, or config compatibility issues. Consider rolling back to {recommended}; if you want to keep the newer version, verify compatibility yourself and watch issues/releases.",
|
||
"policyDefault": "This panel only guarantees compatibility with the recommended stable version. If you want to try other versions or previews, verify compatibility yourself. Submit an issue if you want us to support the latest version sooner.",
|
||
"notInstalled": "미설치",
|
||
"aheadOfRecommended": "Current version is ahead of recommended stable: {ver}",
|
||
"rollbackToRecommended": "Rollback to recommended",
|
||
"recommendedStable": "권장 안정 버전: {ver}",
|
||
"switchToRecommended": "Switch to recommended",
|
||
"isRecommended": "Already on recommended stable",
|
||
"latestUpstream": "Latest upstream: {ver}",
|
||
"switchVersion": "버전 전환",
|
||
"installOpenclaw": "OpenClaw 설치",
|
||
"uninstall": "제거",
|
||
"installPath": "설치 경로",
|
||
"configExists": "설정 파일 있음",
|
||
"configNotFound": "설정 파일을 찾을 수 없음",
|
||
"rollbackToRecommendedStable": "Rollback to recommended stable",
|
||
"switchToRecommendedStable": "Switch to recommended stable",
|
||
"confirmUninstall": "Are you sure you want to uninstall OpenClaw?\n\nThis will stop the Gateway service and uninstall the npm global package.\nConfig files (~/.openclaw/) are kept by default and can be deleted manually later.",
|
||
"uninstallTitle": "Uninstall OpenClaw",
|
||
"uninstallStarting": "Starting OpenClaw uninstall...",
|
||
"uninstallDone": "Uninstall complete",
|
||
"uninstallFailed": "Uninstall failed: ",
|
||
"uninstallTaskStarted": "Background uninstall task started...",
|
||
"uninstallStopping": "서비스 중지 중...",
|
||
"uninstallRemoving": "구성 요소 제거 중...",
|
||
"uninstallCleaning": "파일 정리 중...",
|
||
"versionLabel": "버전",
|
||
"selectVersion": "버전 선택",
|
||
"versionPickerHint": "Recommended to use the stable version bound to this panel. Switching to other versions (especially preview/latest) requires manual compatibility verification. Submit an issue if you want latest version support.",
|
||
"btnSwitch": "Switch",
|
||
"btnInstall": "Install",
|
||
"tagRecommended": "(권장 안정판)",
|
||
"tagNeedTest": " (Verify compatibility)",
|
||
"hintInstall": "Will install {source} {ver}{tag}",
|
||
"hintCurrent": "Current",
|
||
"hintAlreadyVersion": "Already on {ver}{tag}",
|
||
"btnReinstall": "Reinstall",
|
||
"btnUpgrade": "Upgrade",
|
||
"btnDowngrade": "Downgrade",
|
||
"noVersions": "사용 가능한 버전 없음",
|
||
"recommended": "권장",
|
||
"current": "현재",
|
||
"hidePreview": "Hide preview ({count})",
|
||
"showPreview": "Show preview ({count})",
|
||
"operationDone": "작업 완료",
|
||
"taskStarted": "Background task started, please wait...",
|
||
"webModeNoLog": "Web mode: Install logs unavailable, please wait...",
|
||
"updateReady": "ready",
|
||
"reloadApp": "앱 새로고침",
|
||
"rollback": "Rollback",
|
||
"rollbackSuccess": "Rolled back to embedded version, reloading...",
|
||
"rollbackFailed": "Rollback failed: ",
|
||
"newVersion": "새 버전",
|
||
"hotUpdate": "핫 업데이트",
|
||
"fullInstaller": "Full Installer",
|
||
"downloading": "다운로드 중...",
|
||
"downloadDone": "Update downloaded, click \"Reload App\" to apply",
|
||
"downloadFailed": "다운로드 실패: ",
|
||
"retry": "재시도",
|
||
"needFullUpdate": "Full install package update required",
|
||
"goToWebsite": "Go to Website",
|
||
"upToDate": "최신 상태",
|
||
"checkUpdateFailed": "업데이트 확인 실패",
|
||
"qqGroup": "QQ Group",
|
||
"wechatGroup": "WeChat Group",
|
||
"douyinGroup": "Douyin Group",
|
||
"feishuGroup": "Feishu Group",
|
||
"communityDesc": "Scan QR code or click link to join, report issues and get help",
|
||
"joinQQ": "Join QQ Group",
|
||
"joinWechat": "Join WeChat Group",
|
||
"joinDouyin": "Join Douyin Group",
|
||
"joinFeishu": "Join Feishu Group",
|
||
"joinYuanbao": "Yuanbao Community",
|
||
"joinDiscord": "Discord 참여",
|
||
"discordDesc": "국제 커뮤니티",
|
||
"communityWelcome": "OpenClaw 커뮤니티에 오신 것을 환영합니다! 문제가 있으면 언제든 피드백해 주세요. 함께 AI Agent를 더 좋게 만들어요.",
|
||
"communityWelcomeIntl": "Welcome to the OpenClaw community! Share ideas, get help, and build amazing AI agents together.",
|
||
"communityNote": "2000+ members, auto-switch when full · Report issues directly in group",
|
||
"projectOpenClaw": "AI Agent framework with multi-model collaboration, tool calling, memory management",
|
||
"projectOpenClawZh": "Our maintained Chinese translation of OpenClaw, 3000+ Stars, Chinese UI + domestic mirror optimization",
|
||
"projectClawPanel": "OpenClaw visual management panel, Tauri v2 desktop app",
|
||
"projectClawApp": "Cross-platform mobile chat client, H5 + proxy server architecture, offline and streaming support",
|
||
"projectCftunnel": "Full-protocol tunnel tool, Cloud mode free HTTP/WS + Relay mode self-hosted",
|
||
"domesticMirror": "China Mirror",
|
||
"linkWebsite": "Claw Project Website",
|
||
"linkOpenClawZh": "OpenClaw Chinese Translation",
|
||
"linkClawApp": "ClawApp Mobile Client",
|
||
"linkCftunnel": "cftunnel Tunnel Tool",
|
||
"contributeDesc": "ClawPanel은 오픈소스 프로젝트입니다. Issue와 PR을 환영합니다!",
|
||
"submitIssue": "Issue 제출",
|
||
"submitPR": "PR 제출",
|
||
"contributeGuide": "기여 가이드",
|
||
"viewIssues": "View Issues",
|
||
"domesticMirrorHint": "China mirror: <a href=\"https://gitee.com/QtCodeCreators/clawpanel\" target=\"_blank\" rel=\"noopener\" style=\"color:var(--accent)\">Gitee</a> (use when GitHub is inaccessible)",
|
||
"companyName": "Wuhan Qingchen Tianxia Network Technology Co., Ltd.",
|
||
"officialWebsite": "공식 사이트",
|
||
"productWebsite": "Product Website",
|
||
"openSourceRepo": "오픈소스 저장소",
|
||
"businessCoop": "Business Contact",
|
||
"contactViaWebsite": "Please contact us via our website",
|
||
"companyDesc": "We are the team behind OpenClaw Chinese Translation (3000+ Stars) and ClawPanel. We build AI Agent products and open source tools, and offer enterprise deployment and custom development services."
|
||
},
|
||
"ext": {
|
||
"title": "확장 도구",
|
||
"desc": "cftunnel 터널링 및 ClawApp 모바일 클라이언트 관리",
|
||
"cftunnelTitle": "cftunnel 터널링",
|
||
"cftunnelDesc": "Cloudflare Tunnel로 로컬 서비스를 공개. 공인 IP나 포트 매핑 불필요.",
|
||
"clawappTitle": "ClawApp 모바일 클라이언트",
|
||
"clawappDesc": "H5 모바일 채팅 클라이언트, 프록시 서버를 통해 Gateway에 연결.",
|
||
"cftunnelNotInstalled": "cftunnel 미설치",
|
||
"clawappNotInstalled": "ClawApp 미설치",
|
||
"installBtn": "원클릭 설치",
|
||
"viewDocs": "문서 보기",
|
||
"status": "상태",
|
||
"running": "실행 중",
|
||
"stopped": "중지됨",
|
||
"version": "버전",
|
||
"unknown": "알 수 없음",
|
||
"routes": "라우트",
|
||
"noRoutes": "라우트 없음",
|
||
"active": "Active",
|
||
"localService": "Local service",
|
||
"startTunnel": "터널 시작",
|
||
"stopTunnel": "터널 중지",
|
||
"viewLogs": "로그 보기",
|
||
"refresh": "새로고침",
|
||
"port": "포트",
|
||
"accessUrl": "접속 URL",
|
||
"publicUrl": "공개",
|
||
"openClawapp": "ClawApp 열기",
|
||
"openPublicUrl": "Open Public URL",
|
||
"start": "시작",
|
||
"stop": "중지",
|
||
"tunnelActionDone": "Tunnel {action}d",
|
||
"tunnelActionFail": "{action} failed",
|
||
"recentLogs": "Recent Logs",
|
||
"collapse": "Collapse",
|
||
"noLogs": "No logs",
|
||
"readLogsFailed": "Failed to read logs",
|
||
"preparing": "Preparing...",
|
||
"installing": "설치 중...",
|
||
"installDone": "설치 완료",
|
||
"installSuccess": "{name} 설치 성공",
|
||
"installFailed": "설치 실패",
|
||
"installFailedTitle": "Failed to install {name}",
|
||
"installScene": "Installing {name}",
|
||
"error": "오류",
|
||
"webModeNoLogs": "Web mode: install logs unavailable, please wait..."
|
||
},
|
||
"logs": {
|
||
"title": "로그",
|
||
"desc": "OpenClaw 서비스 로그 보기",
|
||
"tabGateway": "Gateway 로그",
|
||
"tabGatewayErr": "Gateway 오류",
|
||
"tabGuardian": "가디언",
|
||
"tabBackup": "백업 로그",
|
||
"tabAudit": "감사 로그",
|
||
"searchPlaceholder": "로그 검색...",
|
||
"refresh": "새로고침",
|
||
"autoScroll": "자동 스크롤",
|
||
"loading": "로그 로딩 중...",
|
||
"empty": "로그 없음",
|
||
"loadFailed": "로그 로드 실패",
|
||
"noResults": "일치하는 결과 없음",
|
||
"searchFailed": "검색 실패"
|
||
},
|
||
"assistant": {
|
||
"modeChat": "채팅",
|
||
"modeChatDesc": "대화만, 도구 미사용",
|
||
"modePlan": "플래닝",
|
||
"modePlanDesc": "AI 읽기 전용 분석, 도구는 조회만",
|
||
"modeExecute": "실행",
|
||
"modeExecuteDesc": "명령 실행 및 파일 변경 허용",
|
||
"modeUnlimited": "무제한",
|
||
"modeUnlimitedDesc": "위험 확인 건너뛰기, 완전 자동 실행",
|
||
"apiHintOpenai": "OpenAI compatible API (most proxies, Ollama, etc.)",
|
||
"apiHintAnthropic": "Anthropic Claude native API",
|
||
"apiHintGemini": "Google Gemini native API",
|
||
"apiBasePlaceholderOpenai": "https://api.openai.com/v1 or proxy URL",
|
||
"apiKeyPlaceholderOpenai": "sk-... or proxy key",
|
||
"defaultName": "AI 어시스턴트",
|
||
"defaultPersonality": "Professional, friendly, and helpful",
|
||
"skillCheckConfig": "Check Config",
|
||
"skillCheckConfigDesc": "Check if OpenClaw config files are correct",
|
||
"skillDiagnoseGateway": "Diagnose Gateway",
|
||
"skillDiagnoseGatewayDesc": "Diagnose Gateway running status",
|
||
"skillBrowseDir": "Browse Directory",
|
||
"skillBrowseDirDesc": "Browse OpenClaw config directory structure",
|
||
"skillCheckEnv": "Check Environment",
|
||
"skillCheckEnvDesc": "Check if system meets requirements",
|
||
"skillAnalyzeLogs": "Analyze Logs",
|
||
"skillAnalyzeLogsDesc": "Analyze recent logs to find issues",
|
||
"skillFixCommon": "Auto Fix",
|
||
"skillFixCommonDesc": "Auto-detect and fix common issues",
|
||
"skillReportBug": "Report Bug",
|
||
"skillReportBugDesc": "Format as a standard GitHub Issue",
|
||
"skillPrAssistant": "PR Assistant",
|
||
"skillPrAssistantDesc": "Walk through the PR process",
|
||
"skillSkillsManager": "Skills Manager",
|
||
"skillSkillsManagerDesc": "Manage OpenClaw Skills",
|
||
"soulFileSoul": "Core persona",
|
||
"soulFileIdentity": "Identity info",
|
||
"soulFileUser": "User preferences",
|
||
"soulFileAgents": "Agent info",
|
||
"soulFileTools": "Tool descriptions",
|
||
"soulFileMemory": "Memory files",
|
||
"soulLoaded": "Loaded {loaded}/{total} files ({size})",
|
||
"soulMemoryDaily": "Daily memory",
|
||
"soulMemoryCount": "{count} entries",
|
||
"sendQueue": "Send Queue",
|
||
"clickToEdit": "Click to edit",
|
||
"edit": "Edit",
|
||
"sendNow": "Send Now",
|
||
"imageTooLarge": "Image too large, please select one under 10MB",
|
||
"imageMessage": "(image message)",
|
||
"image": "Image",
|
||
"newSession": "새 세션",
|
||
"deleteSession": "세션 삭제",
|
||
"noSessions": "세션 없음",
|
||
"confirmDeleteSession": "이 세션을 삭제하시겠습니까?",
|
||
"sessionList": "세션 목록",
|
||
"errConfigFirst": "먼저 설정에서 API를 설정하세요",
|
||
"errTimeout": "요청 타임아웃",
|
||
"errStreamTimeout": "Streaming response timed out ({seconds}s no data), connection may be lost",
|
||
"toolRunCmd": "Run command",
|
||
"toolReadFile": "Read file",
|
||
"toolWriteFile": "Write file",
|
||
"toolListDir": "List directory",
|
||
"toolSysInfo": "System info",
|
||
"toolCheckPort": "Check port",
|
||
"toolProcessList": "Process list",
|
||
"toolWebSearch": "Web search",
|
||
"toolWebSearchDesc": "Search the web for information",
|
||
"toolClawHubSearch": "Search ClawHub",
|
||
"toolClawHubInstall": "Install Skill",
|
||
"toolInstallDep": "Install dependency",
|
||
"toolFileOps": "File Operations",
|
||
"toolFileOpsDesc": "Read/write files and directories",
|
||
"toolTerminal": "Terminal",
|
||
"toolTerminalDesc": "Execute system commands",
|
||
"toolSkillsList": "Skills list",
|
||
"toolSkillsCheck": "Skills check",
|
||
"toolSkillInfo": "Skill details",
|
||
"toolFilterAll": "전체",
|
||
"toolNoDesc": "설명 없음",
|
||
"toolsAlwaysAvailable": "Always available",
|
||
"toolsHint": "Check the tool categories to enable",
|
||
"toolExecuting": "실행 중...",
|
||
"toolDone": "실행 완료",
|
||
"toolDenied": "사용자가 실행 거부",
|
||
"toolExecFail": "실행 실패",
|
||
"toolInstallSuccess": "Installed successfully",
|
||
"toolInstallFail": "Installation failed",
|
||
"toolNoSkillFound": "Skill not found",
|
||
"toolUnknown": "Unknown tool",
|
||
"toolRejected": "사용자가 이 작업을 거부했습니다",
|
||
"toolRejectedDanger": "User rejected dangerous operation",
|
||
"askConfirm": "Confirm",
|
||
"askSkip": "Skip",
|
||
"askSkipped": "(Skipped)",
|
||
"askPlaceholder": "Select an option",
|
||
"askCustomPlaceholder": "Enter custom answer...",
|
||
"askNotSelected": "Please select an option or enter a custom answer",
|
||
"confirmRunCmd": "다음 명령을 실행합니다",
|
||
"confirmCwd": "작업 디렉토리",
|
||
"confirmWriteFile": "다음 파일에 쓰기",
|
||
"confirmPreview": "Content preview",
|
||
"confirmTruncated": "(Content truncated)",
|
||
"confirmCritical": "⚠️ This is a dangerous operation, please review carefully",
|
||
"confirmAllow": "실행 허용",
|
||
"confirmAiRequest": "AI requests to perform the following operation",
|
||
"aiThinking": "생각 중...",
|
||
"aiProcessingRound": "{round}라운드 처리 중...",
|
||
"toolLoopQuestion": "AI가 {round}라운드의 도구 호출을 실행했습니다. 계속하시겠습니까?",
|
||
"toolLoopContinue": "추가 {rounds}라운드 자동 실행",
|
||
"toolLoopNoBreak": "Don't ask again, keep executing",
|
||
"toolLoopRethink": "Let AI rethink",
|
||
"toolLoopStop": "실행 중지",
|
||
"autoRoundsLabel": "Auto-execution rounds",
|
||
"autoRoundsDesc": "Number of auto-execution rounds before asking",
|
||
"autoRoundsHint": "Set to 0 to ask every time",
|
||
"autoRoundsUnit": "rounds",
|
||
"autoRoundsDefault": "Default",
|
||
"autoRoundsUnlimited": "Unlimited",
|
||
"errorAnalyze": "Let AI analyze",
|
||
"errorDismiss": "Dismiss",
|
||
"errorShowLog": "Show log",
|
||
"errorHideLog": "Hide log",
|
||
"welcomeText": "안녕하세요! AI 어시스턴트입니다. 무엇을 도와드릴까요?",
|
||
"loading": "로딩 중...",
|
||
"testConnTitle": "연결 테스트",
|
||
"testSuccess": "연결 성공",
|
||
"testFailed": "연결 실패",
|
||
"testNoReply": "(No reply content)",
|
||
"settingsTitle": "어시스턴트 설정",
|
||
"settings": "설정",
|
||
"settingsSaved": "설정 저장됨",
|
||
"settingsTabApi": "API 설정",
|
||
"settingsTabTools": "도구",
|
||
"settingsTabPersona": "페르소나",
|
||
"settingsTabKnowledge": "지식 베이스",
|
||
"apiType": "API 유형",
|
||
"model": "모델",
|
||
"temperature": "온도",
|
||
"quickSelect": "빠른 선택",
|
||
"visitSite": "사이트 방문",
|
||
"notConfigured": "미설정",
|
||
"qtcoolName": "QingChen Cloud",
|
||
"qtcoolDesc": "Daily check-in for free credits, premium models as low as 20-30% of official price",
|
||
"qtcoolRecommend": "Recommended",
|
||
"qtcoolCheckin": "Daily check-in for credits",
|
||
"qtcoolLearnMore": "Learn more →",
|
||
"qtcoolKeyPlaceholder": "Paste your API Key",
|
||
"qtcoolInstructions": "No key? Go to <a>check-in page</a> to get one for free",
|
||
"qtcoolEnterKey": "Please enter API Key",
|
||
"qtcoolFillFirst": "Please fill in API Key first",
|
||
"qtcoolConnecting": "Connecting...",
|
||
"qtcoolLoadingModels": "Fetching model list...",
|
||
"qtcoolConnectFail": "Connection failed",
|
||
"qtcoolSelectModel": "Select model",
|
||
"qtcoolApply": "One-Click Config",
|
||
"qtcoolConfigured": "Configured",
|
||
"qtcoolAssistantOnly": "Configure assistant only",
|
||
"qtcoolSetMain": "Set as primary",
|
||
"qtcoolSetMainDone": "Set as primary model",
|
||
"qtcoolMainSwitched": "Primary model switched to {model}",
|
||
"qtcoolTestPass": "Connection test passed",
|
||
"qtcoolTestFail": "Connection test failed",
|
||
"qtcoolSyncTitle": "Sync to OpenClaw",
|
||
"qtcoolSyncDesc": "Sync current QingChen Cloud config to OpenClaw global config",
|
||
"qtcoolSyncTo": "Sync to OpenClaw",
|
||
"qtcoolSyncToDesc": "Write QingChen Cloud API config to OpenClaw global config file",
|
||
"qtcoolSyncToTitle": "Confirm sync to OpenClaw",
|
||
"qtcoolConfirmSync": "This will overwrite the same-name Provider in OpenClaw. Continue?",
|
||
"qtcoolSyncToDone": "Synced to OpenClaw",
|
||
"qtcoolSyncFail": "Sync failed",
|
||
"qtcoolWriteFail": "Failed to write config",
|
||
"qtcoolGatewayFail": "Gateway restart failed",
|
||
"qtcoolAllDone": "All done",
|
||
"qtcoolSyncFrom": "Read from OpenClaw",
|
||
"qtcoolSyncFromTitle": "Confirm read from OpenClaw",
|
||
"qtcoolSyncFromDesc": "Will read config from OpenClaw:\nBase URL: {baseUrl}\nAPI Key: {apiKey}\nModel: {model}",
|
||
"qtcoolConfirmRead": "Confirm Read",
|
||
"qtcoolSyncFromDone": "Read config from OpenClaw",
|
||
"qtcoolReadFail": "Read failed",
|
||
"qtcoolNoProvider": "QingChen Cloud config not found in OpenClaw",
|
||
"testFillUrlKey": "Please fill in Base URL and API Key first",
|
||
"testFillUrl": "Please fill in Base URL first",
|
||
"testFillModel": "Please fill in model name first",
|
||
"testing": "테스트 중...",
|
||
"testSending": "Sending test request...",
|
||
"testBtn": "연결 테스트",
|
||
"fetching": "가져오는 중...",
|
||
"fetchingModels": "Fetching model list...",
|
||
"fetchModelsTitle": "모델 목록 가져오기",
|
||
"fetchBtn": "목록 가져오기",
|
||
"noModelsFound": "사용 가능한 모델 없음",
|
||
"modelsFound": "{count}개 모델 발견",
|
||
"personaSource": "페르소나 소스",
|
||
"personaDefault": "기본",
|
||
"personaOpenClaw": "OpenClaw Agent",
|
||
"personaOpenClawHint": "Inherit identity and workspace from OpenClaw Agent",
|
||
"personaName": "어시스턴트 이름",
|
||
"personaPersonality": "어시스턴트 성격",
|
||
"personaPersonalityHint": "Describe the assistant's personality traits",
|
||
"personaSelectAgent": "Agent 선택",
|
||
"personaSelectFirst": "Please select an Agent first",
|
||
"personaSoulInherit": "Inherit Soul files",
|
||
"personaSoulHint": "Use Agent's Soul files as part of the system prompt",
|
||
"personaLoadSoul": "Load Soul",
|
||
"personaLoadingAgent": "Loading Agent info...",
|
||
"personaNoAgent": "Agent not found",
|
||
"personaNoWorkspace": "This Agent has no workspace",
|
||
"personaLoadFailed": "Load failed",
|
||
"personaLoadFailedDetail": "Failed to load Soul files",
|
||
"personaRefreshTitle": "Refresh Agent List",
|
||
"personaScanning": "Scanning...",
|
||
"kbDesc": "사용자 정의 지식 베이스, AI 응답 시 참조됩니다",
|
||
"kbEmpty": "지식 베이스 항목 없음",
|
||
"kbNamePlaceholder": "Knowledge base name",
|
||
"kbContentPlaceholder": "Knowledge base content...",
|
||
"kbNameRequired": "Please fill in name",
|
||
"kbContentRequired": "Please fill in content",
|
||
"kbSave": "저장",
|
||
"kbSummary": "Summary",
|
||
"kbLines": "{count} lines",
|
||
"kbClickEnable": "Click to enable",
|
||
"kbClickDisable": "Click to disable",
|
||
"importTitle": "Import Config",
|
||
"importBtn": "Import OpenClaw Config",
|
||
"importScanning": "Scanning local OpenClaw config...",
|
||
"importNoConfig": "No importable config found",
|
||
"importNoModels": "No models",
|
||
"importGlobal": "Global Config",
|
||
"importFound": "Found {count} importable configs",
|
||
"importDone": "Imported {name} ({count} models)",
|
||
"importFail": "Import failed",
|
||
"stopped": "중지됨",
|
||
"requestInterrupted": "Request interrupted",
|
||
"retry": "재시도",
|
||
"continueInput": "Continue Input",
|
||
"retryHint": "Request failed (auto-retried 3 times)",
|
||
"retrying": "Retrying...",
|
||
"waitForReply": "Please wait for AI reply before sending images",
|
||
"waitForReplyShort": "Please wait for reply",
|
||
"copyText": "텍스트 복사",
|
||
"copyMd": "Markdown 복사",
|
||
"viewRaw": "View Raw Data",
|
||
"viewDebug": "View Request/Response",
|
||
"copiedText": "텍스트 복사됨",
|
||
"copiedMd": "Markdown 복사됨",
|
||
"rawData": "Raw Message Data",
|
||
"debugInfo": "Request/Response Debug",
|
||
"guideTag": "Built-in AI",
|
||
"guideTitle": "This is ClawPanel's built-in AI assistant",
|
||
"guideDesc": ", independent of OpenClaw, using the API configured in Settings.",
|
||
"guideHint": "To chat with OpenClaw Agents, go to the Live Chat page.",
|
||
"uploadImage": "이미지 업로드",
|
||
"inputPlaceholder": "문제를 설명하거나 로그/스크린샷을 붙여넣으세요...",
|
||
"send": "전송",
|
||
"inputHint": "Enter to send · Shift+Enter for newline · Paste/drag images · Independent of OpenClaw",
|
||
"autoSwitchExecute": "Auto-switched to Execute mode"
|
||
},
|
||
"toast": {
|
||
"copySuccess": "클립보드에 복사됨",
|
||
"copyFailed": "복사 실패"
|
||
},
|
||
"modal": {
|
||
"confirmTitle": "작업 확인",
|
||
"confirmOk": "확인",
|
||
"confirmCancel": "취소"
|
||
},
|
||
"kernel": {
|
||
"floorBlocker": {
|
||
"title": "커널 버전이 너무 낮습니다",
|
||
"message": "현재 OpenClaw 커널 {current} 은 ClawPanel 의 최소 지원 버전 {floor} 보다 낮습니다. 일부 기능이 작동하지 않을 수 있습니다.",
|
||
"targetHint": "최상의 경험을 위해 {target} 으로 업그레이드를 권장합니다.",
|
||
"goUpgrade": "업그레이드",
|
||
"continueReadonly": "계속 (읽기 전용)",
|
||
"readonlyHint": "읽기 전용 모드에서는 구 커널 설정을 손상시키지 않도록 쓰기 작업이 클라이언트 측에서 차단됩니다."
|
||
},
|
||
"badge": {
|
||
"currentKernel": "커널",
|
||
"featuresEnabled": "{enabled}/{total} 기능 활성화",
|
||
"belowTarget": "권장 이하",
|
||
"latest": "최신",
|
||
"unknown": "알 수 없음"
|
||
},
|
||
"upgrade": {
|
||
"title": "OpenClaw 커널 업그레이드",
|
||
"confirmMessage": "{from} 에서 {to} 로 업그레이드합니다.\n약 2 분 소요되며 그동안 Gateway 가 재시작됩니다. 계속할까요?",
|
||
"starting": "{version} 으로 업그레이드 중...",
|
||
"successMessage": "커널 업그레이드 완료",
|
||
"successToast": "커널 업그레이드 성공",
|
||
"failurePrefix": "커널 업그레이드 실패:"
|
||
},
|
||
"upgradeHint": {
|
||
"title": "새 커널 사용 가능",
|
||
"subtitle": "{from} → {to}, 클릭하여 업그레이드",
|
||
"dismissTooltip": "이 세션에서는 알리지 않음"
|
||
}
|
||
},
|
||
"cliConflict": {
|
||
"title": "Detected {count} possibly conflicting OpenClaw installation(s)",
|
||
"desc": "Your PATH has OpenClaw installations not managed by ClawPanel (e.g. Cherry Studio bundled, legacy npm global). They can cause terminal commands to pick up old versions, triggering schema mismatches and doctor --fix hangs.",
|
||
"viewDetails": "View details",
|
||
"hideDetails": "Hide details",
|
||
"quarantineAll": "Quarantine all",
|
||
"quarantining": "Quarantining…",
|
||
"quarantineOne": "Quarantine",
|
||
"dismiss": "Dismiss",
|
||
"dismissedHint": "Dismissed for this session. Next launch will scan again.",
|
||
"quarantineOk": "Quarantined {count} item(s)",
|
||
"quarantinePartial": "{count} item(s) failed",
|
||
"quarantineFail": "Quarantine failed: {error}",
|
||
"quarantineOneOk": "Quarantined",
|
||
"footnote": "Quarantine = rename to .disabled-by-clawpanel-<timestamp>.bak (not deleted). To restore, rename the .bak back to its original name in the same directory."
|
||
}
|
||
}
|