mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-05-30 12:50:14 +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": "Lưu",
|
||
"cancel": "Hủy",
|
||
"confirm": "Xác nhận",
|
||
"delete": "Xóa",
|
||
"edit": "Chỉnh sửa",
|
||
"add": "Thêm",
|
||
"close": "Đóng",
|
||
"loading": "Đang tải...",
|
||
"retry": "Thử lại",
|
||
"copy": "Sao chép",
|
||
"copied": "Đã sao chép",
|
||
"search": "Tìm kiếm",
|
||
"refresh": "Làm mới",
|
||
"back": "Quay lại",
|
||
"submit": "Gửi",
|
||
"reset": "Đặt lại",
|
||
"enabled": "Đã bật",
|
||
"disabled": "Đã tắt",
|
||
"unknown": "Không rõ",
|
||
"none": "Không",
|
||
"yes": "Có",
|
||
"no": "Không",
|
||
"online": "Trực tuyến",
|
||
"offline": "Ngoại tuyến",
|
||
"running": "Đang chạy",
|
||
"stopped": "Đã dừng",
|
||
"error": "Lỗi",
|
||
"success": "Thành công",
|
||
"warning": "Cảnh báo",
|
||
"info": "Thông tin",
|
||
"loadFailed": "Tải thất bại",
|
||
"saveFailed": "Lưu thất bại",
|
||
"saveSuccess": "Lưu thành công",
|
||
"operationFailed": "Thao tác thất bại",
|
||
"operationSuccess": "Thao tác thành công",
|
||
"noData": "Không có dữ liệu",
|
||
"unit": "",
|
||
"survivalRate": "Tỷ lệ hoạt động",
|
||
"settings": "Cài đặt",
|
||
"update": "Cập nhật"
|
||
},
|
||
"sidebar": {
|
||
"collapse": "Thu gọn",
|
||
"closeMenu": "Đóng menu",
|
||
"themeLight": "Sáng",
|
||
"themeDark": "Tối",
|
||
"sectionMonitor": "Giám sát",
|
||
"sectionConfig": "Cấu hình",
|
||
"sectionData": "Dữ liệu",
|
||
"sectionExtension": "Mở rộng",
|
||
"dashboard": "Bảng điều khiển",
|
||
"assistant": "Trợ lý",
|
||
"chat": "Trò chuyện",
|
||
"services": "Dịch vụ",
|
||
"logs": "Nhật ký",
|
||
"models": "Mô hình",
|
||
"agents": "Agent",
|
||
"gateway": "Gateway",
|
||
"channels": "Kênh",
|
||
"communication": "Truyền thông",
|
||
"security": "Bảo mật",
|
||
"memory": "Bộ nhớ",
|
||
"cron": "Tác vụ định kỳ",
|
||
"usage": "Sử dụng",
|
||
"skills": "Skills",
|
||
"settings": "Cài đặt",
|
||
"chatDebug": "Chẩn đoán",
|
||
"about": "Giới thiệu",
|
||
"setup": "Thiết lập"
|
||
},
|
||
"instance": {
|
||
"local": "Cục bộ",
|
||
"remote": "Từ xa",
|
||
"docker": "Docker",
|
||
"switchHint": "After switching, Models, Agents and other pages will manage the selected instance",
|
||
"addInstance": "Thêm instance",
|
||
"addRemote": "Thêm instance từ xa",
|
||
"namePlaceholder": "Remote Server",
|
||
"endpointPlaceholder": "http://192.168.1.100:1420",
|
||
"nameLabel": "Tên",
|
||
"endpointLabel": "Địa chỉ panel",
|
||
"gwPortLabel": "Gateway Port (optional)",
|
||
"nameRequired": "Please fill in name and endpoint",
|
||
"endpointExists": "This endpoint already exists",
|
||
"adding": "Đang thêm...",
|
||
"switchedTo": "Switched to {name} — Models, Agents, etc. will manage this instance",
|
||
"current": "Hiện tại",
|
||
"remoteHint": "The remote server must be running ClawPanel (serve.js).",
|
||
"example": "Example"
|
||
},
|
||
"dashboard": {
|
||
"title": "Bảng điều khiển",
|
||
"desc": "Tổng quan trạng thái OpenClaw",
|
||
"gateway": "Gateway",
|
||
"portDetect": "Port detection",
|
||
"notStarted": "Chưa khởi động",
|
||
"versionLabel": "Phiên bản",
|
||
"versionOfficial": "Official",
|
||
"versionChinese": "Chinese",
|
||
"versionUnknown": "Version info unavailable",
|
||
"versionAhead": "Current version is ahead of recommended stable {version}, may be unstable",
|
||
"versionStable": "Stable {version}",
|
||
"versionRecommend": "Recommended stable {version}",
|
||
"versionLatest": "Latest upstream {version}",
|
||
"agentFleet": "Đội Agent",
|
||
"defaultAgent": "Mặc định",
|
||
"modelPool": "Nhóm mô hình",
|
||
"basedOnProviders": "From {count} providers",
|
||
"baseServices": "Dịch vụ cơ bản",
|
||
"controlUI": "Control UI",
|
||
"controlUIDesc": "OpenClaw native panel",
|
||
"controlUIClick": "Click to open in browser",
|
||
"controlUINotRunning": "Gateway not running",
|
||
"restartGw": "Khởi động lại Gateway",
|
||
"checkUpdate": "Kiểm tra cập nhật",
|
||
"createBackup": "Tạo bản sao lưu",
|
||
"recentLogs": "Nhật ký gần đây",
|
||
"cliPath": "Đường dẫn CLI",
|
||
"cliSource": "Install Source",
|
||
"cliSourceStandalone": "Standalone",
|
||
"cliSourceNpmZh": "npm (Chinese)",
|
||
"cliSourceNpmOfficial": "npm (Official)",
|
||
"cliSourceNpmGlobal": "npm (Global)",
|
||
"cliSourceUnknown": "Unknown",
|
||
"multiInstall": "Multiple installations detected",
|
||
"multiInstallHint": "Choose which one to use in Settings",
|
||
"installCount": "{count} installations",
|
||
"retry": "Thử lại",
|
||
"servicesLoadFail": "Failed to load service status",
|
||
"versionLoadFail": "Failed to load version info",
|
||
"notSet": "Chưa đặt",
|
||
"port": "Cổng",
|
||
"startBtn": "Khởi động",
|
||
"stopBtn": "Dừng",
|
||
"restartBtn": "Khởi động lại",
|
||
"primaryModel": "Mô hình chính",
|
||
"maxConcurrent": "Max concurrent",
|
||
"mcpTools": "MCP Tools",
|
||
"mountedExtensions": "Mounted extensions",
|
||
"recentBackup": "Recent Backup",
|
||
"noBackup": "No backups",
|
||
"backupCount": "{count} backup files",
|
||
"workspaceCount": "{count} independent workspaces",
|
||
"runtimeVersion": "Runtime Version",
|
||
"remaining": "Remaining",
|
||
"activeSessions": "Active Sessions",
|
||
"defaultModel": "Default model",
|
||
"context": "Context",
|
||
"noLogs": "Không có nhật ký",
|
||
"openControlUIFail": "Failed to open Control UI",
|
||
"starting": "Đang khởi động...",
|
||
"gwStartSent": "Gateway start command sent",
|
||
"startFail": "Start failed",
|
||
"stopping": "Đang dừng...",
|
||
"gwStopped": "Gateway stopped",
|
||
"stopFail": "Stop failed",
|
||
"restarting": "Đang khởi động lại...",
|
||
"gwRestartSent": "Gateway restart command sent",
|
||
"restartFail": "Restart failed",
|
||
"gwRestarted": "Gateway restarted (PID: {pid})",
|
||
"restartTimeout": "Restart timed out, Gateway may still be starting",
|
||
"checking": "Đang kiểm tra...",
|
||
"versionAheadWarn": "Local version {current} is ahead of recommended stable {recommended}, may have compatibility risks",
|
||
"updateAvailable": "Recommended stable version available: {version}",
|
||
"alignedWithLatest": "Aligned with recommended stable, latest upstream is {version}",
|
||
"upToDate": "Đã cập nhật",
|
||
"checkUpdateFail": "Update check failed",
|
||
"backingUp": "Đang sao lưu...",
|
||
"backupDone": "Backed up: {name}",
|
||
"backupFail": "Sao lưu thất bại"
|
||
},
|
||
"services": {
|
||
"title": "Quản lý dịch vụ",
|
||
"desc": "Khởi động, dừng và giám sát dịch vụ OpenClaw",
|
||
"start": "Khởi động",
|
||
"stop": "Dừng",
|
||
"restart": "Khởi động lại",
|
||
"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 restarted",
|
||
"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": "Phát hiện vấn đề cấu hình OpenClaw",
|
||
"invalidConfigPrompt": "Hành động \"{action}\" thất bại:\n\n{error}\n\nThường do schema cấu hình lỗi thời. Chạy doctor để sửa tự động?",
|
||
"runDoctorFix": "Chạy doctor --fix",
|
||
"runningDoctorFix": "Đang chạy doctor --fix...",
|
||
"doctorFixSuccess": "Đã sửa cấu hình. Vui lòng thử lại",
|
||
"doctorFixFailed": "doctor sửa thất bại"
|
||
},
|
||
"settings": {
|
||
"title": "Cài đặt panel",
|
||
"desc": "Quản lý cài đặt mạng, proxy và nguồn tải xuống",
|
||
"networkProxy": "Proxy mạng",
|
||
"modelProxy": "Proxy yêu cầu mô hình",
|
||
"npmRegistry": "npm Registry",
|
||
"openclawDir": "OpenClaw Install Path",
|
||
"openclawCli": "OpenClaw CLI Binding",
|
||
"cliAutoDetect": "Auto-detect (Recommended)",
|
||
"cliBindHint": "Select which OpenClaw CLI the panel should use, useful when multiple versions coexist",
|
||
"cliCurrent": "Currently used",
|
||
"cliBound": "Bound",
|
||
"cliActive": "Active",
|
||
"cliVersion": "Version",
|
||
"cliSwitchConfirm": "Switch to this CLI? The panel will use this installation for all operations.",
|
||
"language": "Ngôn ngữ hiển thị",
|
||
"languageHint": "Chuyển đổi ngôn ngữ giao diện.",
|
||
"testProxy": "Kiểm tra kết nối",
|
||
"clearProxy": "Tắt proxy",
|
||
"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 Mirror (Recommended for China)",
|
||
"registryNpm": "npm Official",
|
||
"registryHuawei": "Huawei Cloud Mirror",
|
||
"registryCustom": "Custom",
|
||
"registryHint": "npm registry used for upgrades and version checks. Taobao mirror recommended for users in China.",
|
||
"registryEmpty": "Please enter a registry URL",
|
||
"registrySaved": "npm registry saved",
|
||
"configExists": "Config file exists",
|
||
"configMissing": "Config file not found",
|
||
"currentPath": "Current path",
|
||
"customBadge": "Custom",
|
||
"dirPlaceholder": "Leave empty for default path ~/.openclaw",
|
||
"resetDefault": "Khôi phục mặc định",
|
||
"dirHint": "Custom OpenClaw config directory path. Restart required after changes. Target directory must exist and contain openclaw.json.",
|
||
"customPathSaved": "Custom path saved",
|
||
"defaultRestored": "Default path restored",
|
||
"restartConfirm": "Restart required for changes to take effect. Restart now?",
|
||
"restarting": "Đang khởi động lại...",
|
||
"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": "Proxy connected (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": "Network proxy saved; if Gateway is running, consider restarting the service",
|
||
"proxyCleared": "Network proxy disabled",
|
||
"modelProxyOn": "Model requests will use proxy",
|
||
"modelProxyOff": "Model requests proxy disabled"
|
||
},
|
||
"models": {
|
||
"title": "Cấu hình mô hình",
|
||
"desc": "Quản lý nhà cung cấp và mô hình AI",
|
||
"addProvider": "+ Thêm nhà cung cấp",
|
||
"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": "Daily check-in for free model credits, invite friends for bonus. Paid plans as low as 20-30% of official price. Refund anytime.",
|
||
"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": "Mô hình chính",
|
||
"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": "Edit",
|
||
"addModel": "Thêm mô hình",
|
||
"fetchList": "Fetch List",
|
||
"deleteProvider": "Delete",
|
||
"batchTest": "Batch Test",
|
||
"selectAll": "Select All",
|
||
"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": "Set Primary",
|
||
"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": "Deleted {name}",
|
||
"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": "Tên nhà cung cấp",
|
||
"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": "Đang kiểm tra...",
|
||
"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": "Failed to fetch model list: {error}",
|
||
"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": "Save failed",
|
||
"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": "Đã lưu cấu hình. Gateway hiện không chạy — sẽ tự động áp dụng khi khởi động."
|
||
},
|
||
"agents": {
|
||
"title": "Quản lý Agent",
|
||
"desc": "Tạo và quản lý OpenClaw Agent",
|
||
"addAgent": "+ Agent mới",
|
||
"noAgents": "Không có Agent",
|
||
"loadFailed": "Tải thất bại",
|
||
"loadListFailed": "Failed to load agent list",
|
||
"noDesc": "No description",
|
||
"default": "Mặc định",
|
||
"backup": "Sao lưu",
|
||
"edit": "Sửa",
|
||
"delete": "Xóa",
|
||
"labelName": "Name:",
|
||
"labelModel": "Model:",
|
||
"labelWorkspace": "Workspace:",
|
||
"labelBindings": "Bindings:",
|
||
"notSet": "Chưa đặt",
|
||
"noBinding": "No channel bound",
|
||
"addModelsFirst": "Please add models in the Models page first",
|
||
"addTitle": "Agent mới",
|
||
"agentId": "Agent ID",
|
||
"agentIdPlaceholder": "e.g. translator (lowercase, digits, underscore, hyphen)",
|
||
"agentName": "Tên",
|
||
"agentNamePlaceholder": "e.g. Translation Assistant",
|
||
"agentEmoji": "Emoji",
|
||
"agentEmojiPlaceholder": "e.g. 🌐 (optional)",
|
||
"agentModel": "Mô hình",
|
||
"agentWorkspace": "Workspace Path",
|
||
"agentWorkspacePlaceholder": "Leave empty to auto-create (optional, absolute path)",
|
||
"idRequired": "Please enter an Agent ID",
|
||
"idInvalid": "Agent ID can only contain lowercase letters, digits, underscores and hyphens",
|
||
"created": "Agent đã tạo",
|
||
"createdNameFailed": "Agent created, but name setting failed. You can edit it later.",
|
||
"createFailed": "Tạo thất bại",
|
||
"editTitle": "Sửa Agent — {id}",
|
||
"workspaceReadonly": "Set at creation, cannot be changed",
|
||
"updated": "Đã cập nhật",
|
||
"updateFailed": "Cập nhật thất bại",
|
||
"confirmDelete": "Delete Agent \"{id}\"?\n\nThis will delete all data and conversations for this agent.",
|
||
"deleted": "Đã xóa",
|
||
"deleteFailed": "Xóa thất bại",
|
||
"backingUp": "Backing up Agent \"{id}\"...",
|
||
"backupDone": "Backup done: {file}",
|
||
"backupFailed": "Backup failed",
|
||
"labelRuntime": "Runtime:"
|
||
},
|
||
"gateway": {
|
||
"title": "Gateway",
|
||
"desc": "Cấu hình và quản lý Gateway",
|
||
"saveApply": "Save & Apply",
|
||
"saveHint": "Click save after changes, Gateway will auto-reload",
|
||
"saving": "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": "Auth Mode",
|
||
"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": "Lưu thất bại"
|
||
},
|
||
"security": {
|
||
"title": "Bảo mật",
|
||
"loadFailed": "Tải cài đặt thất bại",
|
||
"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": "Truyền thông & Tự động hóa",
|
||
"desc": "Cấu hình kênh thông báo và quy tắc tự động",
|
||
"tabMessages": "Messages",
|
||
"tabBroadcast": "Broadcast",
|
||
"tabCommands": "Commands",
|
||
"tabHooks": "Webhook",
|
||
"tabApprovals": "Approvals",
|
||
"save": "Lưu",
|
||
"saving": "Saving...",
|
||
"loadFailed": "Tải thất bại",
|
||
"configSaved": "Config saved, reloading Gateway...",
|
||
"gwReloaded": "Gateway reloaded",
|
||
"saveFailed": "Lưu thất bại",
|
||
"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": "Kênh",
|
||
"desc": "Quản lý kênh tin nhắn và kết nối nền tảng",
|
||
"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": "Disable",
|
||
"enable": "Enable",
|
||
"loadFailed": "Tải thất bại",
|
||
"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": "Saving...",
|
||
"bindingSaved": "Binding saved",
|
||
"saveFailed": "Lưu thất bại",
|
||
"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": "Đang kiểm tra...",
|
||
"noCredentialsFound": "No credentials found for this channel in config",
|
||
"testPassed": "Channel test passed",
|
||
"verifyFailed": "Verification failed",
|
||
"testFailed": "Kết nối thất bại",
|
||
"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": "Liên kết 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": "Sửa",
|
||
"connect": "Connect",
|
||
"verifyCredentials": "Verify Credentials",
|
||
"save": "Lưu",
|
||
"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": "Approve failed",
|
||
"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": "Cài đặt plugin",
|
||
"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": "Bộ nhớ",
|
||
"agentLabel": "Agent:",
|
||
"newFile": "+ New",
|
||
"deleteFile": "Delete",
|
||
"exportZip": "Export All as ZIP",
|
||
"selectFile": "Select a file to view",
|
||
"download": "Tải xuống",
|
||
"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": "Delete {name}?",
|
||
"deleted": "Đã xóa",
|
||
"deleteFailed": "Xóa thất bại",
|
||
"noFiles": "Không có tệp",
|
||
"loadFailed": "Tải thất bại",
|
||
"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": "Tác vụ định kỳ",
|
||
"desc": "Quản lý tác vụ định kỳ OpenClaw",
|
||
"gwHint": "Scheduled tasks are managed via Gateway. Please start Gateway first.",
|
||
"goServices": "Services",
|
||
"newTask": "+ New Task",
|
||
"refresh": "Refresh",
|
||
"totalTasks": "Total Tasks",
|
||
"running": "Running",
|
||
"paused": "Paused",
|
||
"recentFailed": "Recent Failures",
|
||
"noTasks": "Không có tác vụ",
|
||
"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": "Delete task \"{name}\"?",
|
||
"deleted": "Tác vụ đã xóa",
|
||
"deleteFailed": "Delete failed",
|
||
"fetchFailed": "Failed to fetch task list",
|
||
"gwNotConnected": "Gateway not connected. Please start Gateway first to manage scheduled tasks",
|
||
"taskName": "Tên tác vụ",
|
||
"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": "Edit Task",
|
||
"createTitle": "Create Scheduled Task",
|
||
"saveEdit": "Save Changes",
|
||
"saveCreate": "Create",
|
||
"saving": "Saving...",
|
||
"nameRequired": "Please enter a task name",
|
||
"messageRequired": "Please enter a command",
|
||
"scheduleRequired": "Please set a schedule",
|
||
"updated": "Task updated",
|
||
"created": "Tác vụ đã tạo",
|
||
"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": "Every minute",
|
||
"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": "Sử dụng",
|
||
"desc": "Xem thống kê sử dụng mô hình và token",
|
||
"today": "Hôm nay",
|
||
"days7": "7 Days",
|
||
"days30": "30 Days",
|
||
"refresh": "Refresh",
|
||
"gwConnecting": "Connecting to Gateway...",
|
||
"gwWait": "Will auto-load once Gateway is connected",
|
||
"loadFailed": "Tải thất bại",
|
||
"loadFailedHint": "You may need to update OpenClaw to 2026.3.11+ for Usage API support",
|
||
"retry": "Retry",
|
||
"noData": "Không có dữ liệu",
|
||
"messages": "Messages",
|
||
"userMsgs": "user",
|
||
"assistantMsgs": "assistant",
|
||
"toolCalls": "Tool Calls",
|
||
"toolKinds": "{count} tools",
|
||
"errors": "Errors",
|
||
"errorRate": "Error rate",
|
||
"totalTokens": "Tổng token",
|
||
"input": "input",
|
||
"output": "output",
|
||
"cost": "Cost",
|
||
"sessions": "Sessions",
|
||
"topModels": "Top Models",
|
||
"topProviders": "Top Providers",
|
||
"topTools": "Top Tools",
|
||
"topAgents": "Top Agents",
|
||
"topChannels": "Top Channels",
|
||
"tokenBreakdown": "Token Breakdown",
|
||
"outputTokens": "Output",
|
||
"inputTokens": "Input",
|
||
"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": "Quản lý và cài đặt OpenClaw Skills",
|
||
"tabInstalled": "Installed",
|
||
"tabStore": "Search & Install",
|
||
"filterPlaceholder": "Filter Skills...",
|
||
"refresh": "Refresh",
|
||
"loading": "Loading Skills...",
|
||
"loadFailed": "Tải thất bại",
|
||
"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": "Không có 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": "Gỡ cài đặt",
|
||
"loadingDetail": "Loading details...",
|
||
"detailSource": "Source",
|
||
"detailPath": "Path",
|
||
"reqBins": "Required commands",
|
||
"reqEnv": "Environment variables",
|
||
"installOptions": "Install options",
|
||
"detailLoadFailed": "Failed to load details",
|
||
"installing": "Đang cài...",
|
||
"depInstalled": "{name} dependency installed",
|
||
"installFailed": "Cài đặt thất bại",
|
||
"searchPlaceholder": "Search skills, e.g. weather / github / tavily",
|
||
"search": "Tìm kiếm 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": "Searching...",
|
||
"noResults": "Không có kết quả",
|
||
"install": "Cài đặt",
|
||
"installed": "Đã cài",
|
||
"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": "Uninstall Skill \"{name}\"?",
|
||
"uninstalling": "Uninstalling...",
|
||
"uninstalled": "Uninstalled {name}",
|
||
"uninstallFailed": "Uninstall failed",
|
||
"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": "Trò chuyện trực tiếp",
|
||
"desc": "Trò chuyện với Agent theo thời gian thực",
|
||
"sessionList": "Sessions",
|
||
"newSession": "Phiên mới",
|
||
"chatTitle": "Chat",
|
||
"loadingModels": "Loading models...",
|
||
"shortcuts": "Shortcuts",
|
||
"resetSession": "Reset Session",
|
||
"inputPlaceholder": "Nhập tin nhắn...",
|
||
"uploadImage": "Upload Image",
|
||
"refreshModels": "Refresh Models",
|
||
"send": "Gửi",
|
||
"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": "Send failed: ",
|
||
"usingTool": "Using tool: {name}",
|
||
"streamTimeout": "Output timed out, auto-ended",
|
||
"generationStopped": "Generation stopped",
|
||
"errorPrefix": "Error: ",
|
||
"connectionRejected": "Connection rejected by Gateway, click \"Fix & Reconnect\"",
|
||
"noMessages": "Không có tin nhắn",
|
||
"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": "Không có phiên",
|
||
"disconnected": "Đã ngắt kết nối",
|
||
"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": "Chẩn đoán hệ thống",
|
||
"desc": "Chẩn đoán kết nối WebSocket và gỡ lỗi mạng",
|
||
"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": "Đang kết nối...",
|
||
"wsConnected": "Đã kết nối",
|
||
"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": "Handshake successful!",
|
||
"wsHandshakeFailed": "Handshake failed",
|
||
"wsParseFailed": "Message parse failed",
|
||
"wsRawData": "Raw data",
|
||
"wsError": "Lỗi WebSocket",
|
||
"wsClosed": "Connection closed",
|
||
"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": "Nhật ký yêu cầu mạng",
|
||
"noRequests": "Không có yêu cầu",
|
||
"totalRequests": "Tổng yêu cầu",
|
||
"cacheHit": "Cache Hit",
|
||
"avgDuration": "Avg Duration",
|
||
"colTime": "Time",
|
||
"colCommand": "Command",
|
||
"colArgs": "Args",
|
||
"colDuration": "Duration",
|
||
"colCache": "Cache",
|
||
"fixStarting": "Bắt đầu sửa chữa...",
|
||
"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 started",
|
||
"fixGwMaybeStarting": "Gateway may still be starting, please test manually later",
|
||
"fixTestingWs": "Testing WebSocket connection...",
|
||
"fixReceivedChallenge": "Received connect.challenge",
|
||
"fixFrameSent": "Connect frame sent",
|
||
"fixPairSuccess": "Handshake successful! Pairing issue fixed!",
|
||
"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": "Sửa chữa thất bại"
|
||
},
|
||
"setup": {
|
||
"title": "Thiết lập ban đầu",
|
||
"desc": "Cài đặt và cấu hình OpenClaw",
|
||
"headerTitle": "Chào mừng đến ClawPanel",
|
||
"headerDesc": "Desktop management panel for OpenClaw AI Agent framework",
|
||
"recheck": "Kiểm tra lại",
|
||
"stepNode": "Môi trường Node.js",
|
||
"installed": "Đã cài đặt",
|
||
"stepNodeHint": "OpenClaw requires Node.js, please install it first.",
|
||
"downloadNode": "Tải 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": "Auto Scan",
|
||
"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": "Auto Install Git",
|
||
"manualDownload": "Manual Download",
|
||
"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": "Tệp cấu hình",
|
||
"configAt": "Config file at {path}",
|
||
"configMissing": "Config file not found. Click the button below to create default config.",
|
||
"initConfigLabel": "Initialize Config",
|
||
"customDirTitle": "Custom OpenClaw Install Path",
|
||
"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": "Lưu",
|
||
"resetDefaultBtn": "Khôi phục mặc định",
|
||
"aiAssistant": "Trợ lý 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": "Mở trợ lý AI",
|
||
"askAiHelp": "Ask AI for Help",
|
||
"nextStepsTitle": "Bước tiếp theo",
|
||
"nextStepsDesc": "Environment is ready, but you still need to complete the following steps before chatting:",
|
||
"nextStep1": "Go to \"Model Config\" to add at least one model and confirm primary model is set",
|
||
"nextStep2": "Go to \"Gateway\" to confirm service is running",
|
||
"nextStep3": "For messaging channels (Feishu, DingTalk, QQ etc.), go to \"Channels\" to set up",
|
||
"configModels": "Cấu hình mô hình",
|
||
"gatewaySetup": "Cấu hình Gateway",
|
||
"messageChannels": "Kênh",
|
||
"enterPanel": "Vào panel",
|
||
"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": "Cài đặt nhanh",
|
||
"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": "Cài đặt 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": "Cài đặt hoàn tất",
|
||
"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 installed successfully",
|
||
"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": "Giới thiệu",
|
||
"desc": "Thông tin phiên bản và dự án ClawPanel",
|
||
"subtitle": "Bảng quản lý trực quan OpenClaw",
|
||
"sectionCommunity": "Cộng đồng",
|
||
"sectionProjects": "Related Projects",
|
||
"sectionContribute": "Đóng góp",
|
||
"sectionLinks": "Liên kết",
|
||
"sectionAboutUs": "About Us",
|
||
"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": "Đang kiểm tra cập nhật...",
|
||
"official": "Chính thức",
|
||
"chinese": "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": "Chưa cài đặt",
|
||
"aheadOfRecommended": "Current version is ahead of recommended stable: {ver}",
|
||
"rollbackToRecommended": "Rollback to recommended",
|
||
"recommendedStable": "Recommended stable: {ver}",
|
||
"switchToRecommended": "Switch to recommended",
|
||
"isRecommended": "Already on recommended stable",
|
||
"latestUpstream": "Latest upstream: {ver}",
|
||
"switchVersion": "Switch Version",
|
||
"installOpenclaw": "Install OpenClaw",
|
||
"uninstall": "Uninstall",
|
||
"installPath": "Install Path",
|
||
"configExists": "Config file exists",
|
||
"configNotFound": "Config file not found",
|
||
"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": "Stopping services...",
|
||
"uninstallRemoving": "Removing components...",
|
||
"uninstallCleaning": "Cleaning up files...",
|
||
"versionLabel": "Phiên bản",
|
||
"selectVersion": "Select Version",
|
||
"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": " (Recommended Stable)",
|
||
"tagNeedTest": " (Verify compatibility)",
|
||
"hintInstall": "Will install {source} {ver}{tag}",
|
||
"hintCurrent": "Current",
|
||
"hintAlreadyVersion": "Already on {ver}{tag}",
|
||
"btnReinstall": "Reinstall",
|
||
"btnUpgrade": "Upgrade",
|
||
"btnDowngrade": "Downgrade",
|
||
"noVersions": "No versions found",
|
||
"recommended": "Khuyến nghị",
|
||
"current": "Hiện tại",
|
||
"hidePreview": "Hide preview ({count})",
|
||
"showPreview": "Show preview ({count})",
|
||
"operationDone": "Operation complete",
|
||
"taskStarted": "Background task started, please wait...",
|
||
"webModeNoLog": "Web mode: Install logs unavailable, please wait...",
|
||
"updateReady": "ready",
|
||
"reloadApp": "Reload App",
|
||
"rollback": "Rollback",
|
||
"rollbackSuccess": "Rolled back to embedded version, reloading...",
|
||
"rollbackFailed": "Rollback failed: ",
|
||
"newVersion": "New version",
|
||
"hotUpdate": "Hot Update",
|
||
"fullInstaller": "Full Installer",
|
||
"downloading": "Downloading...",
|
||
"downloadDone": "Update downloaded, click \"Reload App\" to apply",
|
||
"downloadFailed": "Download failed: ",
|
||
"retry": "Retry",
|
||
"needFullUpdate": "Full install package update required",
|
||
"goToWebsite": "Go to Website",
|
||
"upToDate": "Đã cập nhật",
|
||
"checkUpdateFailed": "Kiểm tra cập nhật thất bại",
|
||
"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": "Tham gia Discord",
|
||
"discordDesc": "Cộng đồng quốc tế",
|
||
"communityWelcome": "Chào mừng bạn đến với cộng đồng OpenClaw! Hãy phản hồi bất cứ lúc nào, cùng nhau làm cho AI Agent tốt hơn.",
|
||
"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 is open source! Report bugs via Issues, submit feature requests and code improvements via PRs.",
|
||
"submitIssue": "Gửi Issue",
|
||
"submitPR": "Gửi PR",
|
||
"contributeGuide": "Contributing Guide",
|
||
"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": "Trang web chính thức",
|
||
"productWebsite": "Product Website",
|
||
"openSourceRepo": "Kho mã nguồn mở",
|
||
"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": "Công cụ mở rộng",
|
||
"desc": "Quản lý cftunnel và ClawApp",
|
||
"cftunnelTitle": "cftunnel",
|
||
"cftunnelDesc": "Expose local services to the internet via Cloudflare Tunnel, no public IP or port mapping needed.",
|
||
"clawappTitle": "ClawApp",
|
||
"clawappDesc": "H5 mobile chat client connecting to Gateway via proxy server. Supports local and public access.",
|
||
"cftunnelNotInstalled": "cftunnel not installed",
|
||
"clawappNotInstalled": "ClawApp not installed",
|
||
"installBtn": "Cài đặt nhanh",
|
||
"viewDocs": "View Docs",
|
||
"status": "Trạng thái",
|
||
"running": "Đang chạy",
|
||
"stopped": "Đã dừng",
|
||
"version": "Phiên bản",
|
||
"unknown": "Unknown",
|
||
"routes": "routes",
|
||
"noRoutes": "No routes",
|
||
"active": "Active",
|
||
"localService": "Local service",
|
||
"startTunnel": "Bắt đầu tunnel",
|
||
"stopTunnel": "Dừng tunnel",
|
||
"viewLogs": "View Logs",
|
||
"refresh": "Refresh",
|
||
"port": "Port",
|
||
"accessUrl": "Access URL",
|
||
"publicUrl": "Public",
|
||
"openClawapp": "Open ClawApp",
|
||
"openPublicUrl": "Open Public URL",
|
||
"start": "Khởi động",
|
||
"stop": "Dừng",
|
||
"tunnelActionDone": "Tunnel {action}d",
|
||
"tunnelActionFail": "{action} failed",
|
||
"recentLogs": "Recent Logs",
|
||
"collapse": "Collapse",
|
||
"noLogs": "No logs",
|
||
"readLogsFailed": "Failed to read logs",
|
||
"preparing": "Preparing...",
|
||
"installing": "Đang cài đặt...",
|
||
"installDone": "Cài đặt hoàn tất",
|
||
"installSuccess": "{name} installed successfully",
|
||
"installFailed": "Cài đặt thất bại",
|
||
"installFailedTitle": "Failed to install {name}",
|
||
"installScene": "Installing {name}",
|
||
"error": "Error",
|
||
"webModeNoLogs": "Web mode: install logs unavailable, please wait..."
|
||
},
|
||
"logs": {
|
||
"title": "Nhật ký",
|
||
"desc": "Xem nhật ký dịch vụ OpenClaw",
|
||
"tabGateway": "Gateway",
|
||
"tabGatewayErr": "Lỗi Gateway",
|
||
"tabGuardian": "Guardian",
|
||
"tabBackup": "Sao lưu",
|
||
"tabAudit": "Kiểm toán",
|
||
"searchPlaceholder": "Tìm kiếm...",
|
||
"refresh": "Làm mới",
|
||
"autoScroll": "Tự động cuộn",
|
||
"loading": "Đang tải...",
|
||
"empty": "Không có nhật ký",
|
||
"loadFailed": "Tải thất bại",
|
||
"noResults": "Không có kết quả",
|
||
"searchFailed": "Tìm kiếm thất bại"
|
||
},
|
||
"assistant": {
|
||
"modeChat": "Chat",
|
||
"modeChatDesc": "Pure conversation, no tools",
|
||
"modePlan": "Plan",
|
||
"modePlanDesc": "AI read-only analysis, tools view-only",
|
||
"modeExecute": "Execute",
|
||
"modeExecuteDesc": "Allow running commands and modifying files",
|
||
"modeUnlimited": "Unlimited",
|
||
"modeUnlimitedDesc": "Skip danger confirmations, fully automated",
|
||
"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": "Trợ lý 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": "Phiên mới",
|
||
"deleteSession": "Xóa phiên",
|
||
"noSessions": "Không có phiên",
|
||
"confirmDeleteSession": "Delete this session?",
|
||
"sessionList": "Danh sách phiên",
|
||
"errConfigFirst": "Please configure the API in Settings first",
|
||
"errTimeout": "Request timed out",
|
||
"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": "All",
|
||
"toolNoDesc": "No description",
|
||
"toolsAlwaysAvailable": "Always available",
|
||
"toolsHint": "Check the tool categories to enable",
|
||
"toolExecuting": "Đang thực thi...",
|
||
"toolDone": "Thực thi hoàn tất",
|
||
"toolDenied": "User denied execution",
|
||
"toolExecFail": "Execution failed",
|
||
"toolInstallSuccess": "Installed successfully",
|
||
"toolInstallFail": "Installation failed",
|
||
"toolNoSkillFound": "Skill not found",
|
||
"toolUnknown": "Unknown tool",
|
||
"toolRejected": "User rejected this operation",
|
||
"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": "Will execute the following command",
|
||
"confirmCwd": "Working directory",
|
||
"confirmWriteFile": "Will write to the following file",
|
||
"confirmPreview": "Content preview",
|
||
"confirmTruncated": "(Content truncated)",
|
||
"confirmCritical": "⚠️ This is a dangerous operation, please review carefully",
|
||
"confirmAllow": "Cho phép thực thi",
|
||
"confirmAiRequest": "AI requests to perform the following operation",
|
||
"aiThinking": "Đang suy nghĩ...",
|
||
"aiProcessingRound": "Processing round {round}...",
|
||
"toolLoopQuestion": "AI has executed {round} rounds of tool calls. How to proceed?",
|
||
"toolLoopContinue": "Continue auto-executing {rounds} rounds",
|
||
"toolLoopNoBreak": "Don't ask again, keep executing",
|
||
"toolLoopRethink": "Let AI rethink",
|
||
"toolLoopStop": "Stop execution",
|
||
"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": "Xin chào! Tôi là trợ lý AI. Tôi có thể giúp gì cho bạn?",
|
||
"loading": "Đang tải...",
|
||
"testConnTitle": "Connection Test",
|
||
"testSuccess": "Kết nối thành công",
|
||
"testFailed": "Kết nối thất bại",
|
||
"testNoReply": "(No reply content)",
|
||
"settingsTitle": "Cài đặt trợ lý",
|
||
"settings": "Cài đặt",
|
||
"settingsSaved": "Đã lưu cài đặt",
|
||
"settingsTabApi": "API Config",
|
||
"settingsTabTools": "Tools",
|
||
"settingsTabPersona": "Persona",
|
||
"settingsTabKnowledge": "Knowledge Base",
|
||
"apiType": "API Type",
|
||
"model": "Mô hình",
|
||
"temperature": "Nhiệt độ",
|
||
"quickSelect": "Quick Select",
|
||
"visitSite": "Visit Website",
|
||
"notConfigured": "Not configured",
|
||
"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": "Đang kiểm tra...",
|
||
"testSending": "Sending test request...",
|
||
"testBtn": "Kiểm tra kết nối",
|
||
"fetching": "Fetching...",
|
||
"fetchingModels": "Fetching model list...",
|
||
"fetchModelsTitle": "Fetch Model List",
|
||
"fetchBtn": "Fetch List",
|
||
"noModelsFound": "No available models found",
|
||
"modelsFound": "Found {count} models",
|
||
"personaSource": "Persona Source",
|
||
"personaDefault": "Default",
|
||
"personaOpenClaw": "OpenClaw Agent",
|
||
"personaOpenClawHint": "Inherit identity and workspace from OpenClaw Agent",
|
||
"personaName": "Assistant Name",
|
||
"personaPersonality": "Personality",
|
||
"personaPersonalityHint": "Describe the assistant's personality traits",
|
||
"personaSelectAgent": "Select 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": "Custom knowledge base, AI will reference these when answering",
|
||
"kbEmpty": "No knowledge base entries",
|
||
"kbNamePlaceholder": "Knowledge base name",
|
||
"kbContentPlaceholder": "Knowledge base content...",
|
||
"kbNameRequired": "Please fill in name",
|
||
"kbContentRequired": "Please fill in content",
|
||
"kbSave": "Save",
|
||
"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": "Đã dừng",
|
||
"requestInterrupted": "Request interrupted",
|
||
"retry": "Thử lại",
|
||
"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": "Sao chép văn bản",
|
||
"copyMd": "Copy Markdown",
|
||
"viewRaw": "View Raw Data",
|
||
"viewDebug": "View Request/Response",
|
||
"copiedText": "Text copied",
|
||
"copiedMd": "Markdown copied",
|
||
"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": "Upload Image",
|
||
"inputPlaceholder": "Mô tả vấn đề...",
|
||
"send": "Gửi",
|
||
"inputHint": "Enter to send · Shift+Enter for newline · Paste/drag images · Independent of OpenClaw",
|
||
"autoSwitchExecute": "Auto-switched to Execute mode"
|
||
},
|
||
"toast": {
|
||
"copySuccess": "Đã sao chép",
|
||
"copyFailed": "Sao chép thất bại"
|
||
},
|
||
"modal": {
|
||
"confirmTitle": "Xác nhận",
|
||
"confirmOk": "Đồng ý",
|
||
"confirmCancel": "Hủy"
|
||
},
|
||
"kernel": {
|
||
"floorBlocker": {
|
||
"title": "Phiên bản kernel quá cũ",
|
||
"message": "Kernel OpenClaw {current} thấp hơn phiên bản tối thiểu được hỗ trợ {floor}. Một số tính năng có thể không hoạt động.",
|
||
"targetHint": "Khuyến nghị nâng cấp lên {target} để có trải nghiệm tốt nhất.",
|
||
"goUpgrade": "Nâng cấp ngay",
|
||
"continueReadonly": "Tiếp tục (chỉ đọc)",
|
||
"readonlyHint": "Ở chế độ chỉ đọc, các thao tác ghi sẽ bị chặn ở phía client để tránh làm hỏng cấu hình kernel cũ."
|
||
},
|
||
"badge": {
|
||
"currentKernel": "Kernel",
|
||
"featuresEnabled": "{enabled}/{total} tính năng đã bật",
|
||
"belowTarget": "Dưới khuyến nghị",
|
||
"latest": "Mới nhất",
|
||
"unknown": "Không xác định"
|
||
},
|
||
"upgrade": {
|
||
"title": "Nâng cấp kernel OpenClaw",
|
||
"confirmMessage": "Sẽ nâng cấp từ {from} lên {to}.\nMất khoảng 2 phút, Gateway sẽ khởi động lại tự động. Tiếp tục?",
|
||
"starting": "Đang nâng cấp lên {version}...",
|
||
"successMessage": "Nâng cấp kernel hoàn tất",
|
||
"successToast": "Nâng cấp kernel thành công",
|
||
"failurePrefix": "Nâng cấp kernel thất bại:"
|
||
},
|
||
"upgradeHint": {
|
||
"title": "Có kernel mới",
|
||
"subtitle": "{from} → {to}, nhấn để nâng cấp",
|
||
"dismissTooltip": "Không nhắc trong phiên này"
|
||
}
|
||
},
|
||
"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."
|
||
}
|
||
}
|