Files
clawpanel/src/locales/fr.json
晴天 328624cf03 chore: release v0.15.0
发布 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
2026-05-08 04:39:36 +08:00

2157 lines
109 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"save": "Enregistrer",
"cancel": "Annuler",
"confirm": "Confirmer",
"delete": "Supprimer",
"edit": "Modifier",
"add": "Ajouter",
"close": "Fermer",
"loading": "Chargement...",
"retry": "Réessayer",
"copy": "Copier",
"copied": "Copié",
"search": "Rechercher",
"refresh": "Actualiser",
"back": "Retour",
"submit": "Soumettre",
"reset": "Réinitialiser",
"enabled": "Activé",
"disabled": "Désactivé",
"unknown": "Inconnu",
"none": "Aucun",
"yes": "Oui",
"no": "Non",
"online": "En ligne",
"offline": "Hors ligne",
"running": "En cours",
"stopped": "Arrêté",
"error": "Erreur",
"success": "Succès",
"warning": "Avertissement",
"info": "Information",
"loadFailed": "Échec du chargement",
"saveFailed": "Échec de la sauvegarde",
"saveSuccess": "Sauvegardé",
"operationFailed": "Opération échouée",
"operationSuccess": "Opération réussie",
"noData": "Aucune donnée",
"unit": "",
"survivalRate": "Disponibilité",
"settings": "Paramètres",
"update": "Mettre à jour"
},
"sidebar": {
"collapse": "Réduire",
"closeMenu": "Fermer le menu",
"themeLight": "Clair",
"themeDark": "Sombre",
"sectionMonitor": "Surveillance",
"sectionConfig": "Configuration",
"sectionData": "Données",
"sectionExtension": "Extensions",
"dashboard": "Tableau de bord",
"assistant": "Assistant",
"chat": "Chat",
"services": "Services",
"logs": "Journaux",
"models": "Modèles",
"agents": "Agents",
"gateway": "Gateway",
"channels": "Canaux",
"communication": "Communication",
"security": "Sécurité",
"memory": "Mémoire",
"cron": "Tâches planifiées",
"usage": "Utilisation",
"skills": "Skills",
"settings": "Paramètres",
"chatDebug": "Diagnostic",
"about": "À propos",
"setup": "Configuration initiale"
},
"instance": {
"local": "Local",
"remote": "Distant",
"docker": "Docker",
"switchHint": "After switching, Models, Agents and other pages will manage the selected instance",
"addInstance": "Ajouter une instance",
"addRemote": "Ajouter une instance distante",
"namePlaceholder": "Remote Server",
"endpointPlaceholder": "http://192.168.1.100:1420",
"nameLabel": "Nom",
"endpointLabel": "Adresse du panneau",
"gwPortLabel": "Gateway Port (optional)",
"nameRequired": "Please fill in name and endpoint",
"endpointExists": "This endpoint already exists",
"adding": "Ajout...",
"switchedTo": "Switched to {name} — Models, Agents, etc. will manage this instance",
"current": "Actuel",
"remoteHint": "The remote server must be running ClawPanel (serve.js).",
"example": "Example"
},
"dashboard": {
"title": "Tableau de bord",
"desc": "Vue d'ensemble de l'état OpenClaw",
"gateway": "Gateway",
"portDetect": "Port detection",
"notStarted": "Non démarré",
"versionLabel": "Version",
"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": "Flotte d'Agents",
"defaultAgent": "Par défaut",
"modelPool": "Pool de modèles",
"basedOnProviders": "From {count} providers",
"baseServices": "Services de base",
"controlUI": "Control UI",
"controlUIDesc": "OpenClaw native panel",
"controlUIClick": "Click to open in browser",
"controlUINotRunning": "Gateway not running",
"restartGw": "Redémarrer Gateway",
"checkUpdate": "Vérifier les mises à jour",
"createBackup": "Créer une sauvegarde",
"recentLogs": "Journaux récents",
"cliPath": "Chemin 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": "Réessayer",
"servicesLoadFail": "Failed to load service status",
"versionLoadFail": "Failed to load version info",
"notSet": "Non défini",
"port": "Port",
"startBtn": "Démarrer",
"stopBtn": "Arrêter",
"restartBtn": "Redémarrer",
"primaryModel": "Modèle principal",
"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": "Aucun journal",
"openControlUIFail": "Failed to open Control UI",
"starting": "Démarrage...",
"gwStartSent": "Gateway start command sent",
"startFail": "Start failed",
"stopping": "Arrêt...",
"gwStopped": "Gateway stopped",
"stopFail": "Stop failed",
"restarting": "Redémarrage...",
"gwRestartSent": "Gateway restart command sent",
"restartFail": "Restart failed",
"gwRestarted": "Gateway restarted (PID: {pid})",
"restartTimeout": "Restart timed out, Gateway may still be starting",
"checking": "Vérification...",
"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": "À jour",
"checkUpdateFail": "Update check failed",
"backingUp": "Sauvegarde...",
"backupDone": "Backed up: {name}",
"backupFail": "Échec de la sauvegarde"
},
"services": {
"title": "Gestion des services",
"desc": "Démarrer, arrêter et surveiller les services OpenClaw",
"start": "Démarrer",
"stop": "Arrêter",
"restart": "Redémarrer",
"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": "Problème de configuration OpenClaw détecté",
"invalidConfigPrompt": "L'action « {action} » a échoué :\n\n{error}\n\nIl s'agit généralement d'un schéma de configuration obsolète. Lancer doctor pour corriger automatiquement ?",
"runDoctorFix": "Lancer doctor --fix",
"runningDoctorFix": "Exécution de doctor --fix...",
"doctorFixSuccess": "Configuration corrigée. Réessayez",
"doctorFixFailed": "Échec de la correction par doctor"
},
"settings": {
"title": "Paramètres du panneau",
"desc": "Gérer les paramètres réseau, proxy et sources de téléchargement",
"networkProxy": "Proxy réseau",
"modelProxy": "Proxy des requêtes de modèle",
"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": "Langue d'affichage",
"languageHint": "Changer la langue de l'interface.",
"testProxy": "Tester la connexion",
"clearProxy": "Désactiver le 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": "Restaurer les paramètres par défaut",
"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": "Redémarrage...",
"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": "Configuration des modèles",
"desc": "Gérer les fournisseurs et modèles IA",
"addProvider": "+ Ajouter un fournisseur",
"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": "Modèle principal",
"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": "Ajouter un modèle",
"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": "Nom du fournisseur",
"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": "Test en cours...",
"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": "Configuration enregistrée. Le Gateway n'est pas en cours d'exécution — les paramètres prendront effet au démarrage."
},
"agents": {
"title": "Gestion des Agents",
"desc": "Créer et gérer les Agents OpenClaw",
"addAgent": "+ Nouvel Agent",
"noAgents": "Aucun Agent",
"loadFailed": "Échec du chargement",
"loadListFailed": "Failed to load agent list",
"noDesc": "No description",
"default": "Par défaut",
"backup": "Sauvegarde",
"edit": "Modifier",
"delete": "Supprimer",
"labelName": "Name:",
"labelModel": "Model:",
"labelWorkspace": "Workspace:",
"labelBindings": "Bindings:",
"notSet": "Non défini",
"noBinding": "No channel bound",
"addModelsFirst": "Please add models in the Models page first",
"addTitle": "Nouvel Agent",
"agentId": "ID Agent",
"agentIdPlaceholder": "e.g. translator (lowercase, digits, underscore, hyphen)",
"agentName": "Nom",
"agentNamePlaceholder": "e.g. Translation Assistant",
"agentEmoji": "Emoji",
"agentEmojiPlaceholder": "e.g. 🌐 (optional)",
"agentModel": "Modèle",
"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 créé",
"createdNameFailed": "Agent created, but name setting failed. You can edit it later.",
"createFailed": "Échec de la création",
"editTitle": "Modifier l'Agent — {id}",
"workspaceReadonly": "Set at creation, cannot be changed",
"updated": "Mis à jour",
"updateFailed": "Échec de la mise à jour",
"confirmDelete": "Delete Agent \"{id}\"?\n\nThis will delete all data and conversations for this agent.",
"deleted": "Supprimé",
"deleteFailed": "Échec de la suppression",
"backingUp": "Backing up Agent \"{id}\"...",
"backupDone": "Backup done: {file}",
"backupFailed": "Backup failed",
"labelRuntime": "Runtime :"
},
"gateway": {
"title": "Gateway",
"desc": "Configurer et gérer 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": "Échec de la sauvegarde"
},
"security": {
"title": "Sécurité",
"loadFailed": "Échec du chargement de la configuration",
"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": "Communication et Automatisation",
"desc": "Configurer les canaux de notification et les règles d'automatisation",
"tabMessages": "Messages",
"tabBroadcast": "Broadcast",
"tabCommands": "Commands",
"tabHooks": "Webhook",
"tabApprovals": "Approvals",
"save": "Enregistrer",
"saving": "Saving...",
"loadFailed": "Échec du chargement",
"configSaved": "Config saved, reloading Gateway...",
"gwReloaded": "Gateway reloaded",
"saveFailed": "Échec de la sauvegarde",
"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": "Canaux",
"desc": "Gérer les canaux de messagerie et les connexions de plateforme",
"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": "Échec du chargement",
"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": "Échec de la sauvegarde",
"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": "Test en cours...",
"noCredentialsFound": "No credentials found for this channel in config",
"testPassed": "Channel test passed",
"verifyFailed": "Verification failed",
"testFailed": "Connexion échouée",
"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": "Lier un 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": "Modifier",
"connect": "Connect",
"verifyCredentials": "Verify Credentials",
"save": "Enregistrer",
"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": "Installer le 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": "Mémoire",
"agentLabel": "Agent:",
"newFile": "+ New",
"deleteFile": "Delete",
"exportZip": "Export All as ZIP",
"selectFile": "Select a file to view",
"download": "Télécharger",
"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": "Supprimé",
"deleteFailed": "Échec de la suppression",
"noFiles": "Aucun fichier",
"loadFailed": "Échec du chargement",
"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âches planifiées",
"desc": "Gérer les tâches planifiées 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": "Aucune tâche",
"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âche supprimée",
"deleteFailed": "Delete failed",
"fetchFailed": "Failed to fetch task list",
"gwNotConnected": "Gateway not connected. Please start Gateway first to manage scheduled tasks",
"taskName": "Nom de la tâche",
"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âche créée",
"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": "Utilisation",
"desc": "Voir les statistiques d'utilisation des modèles et tokens",
"today": "Aujourd'hui",
"days7": "7 Days",
"days30": "30 Days",
"refresh": "Refresh",
"gwConnecting": "Connecting to Gateway...",
"gwWait": "Will auto-load once Gateway is connected",
"loadFailed": "Échec du chargement",
"loadFailedHint": "You may need to update OpenClaw to 2026.3.11+ for Usage API support",
"retry": "Retry",
"noData": "Aucune donnée",
"messages": "Messages",
"userMsgs": "user",
"assistantMsgs": "assistant",
"toolCalls": "Tool Calls",
"toolKinds": "{count} tools",
"errors": "Errors",
"errorRate": "Error rate",
"totalTokens": "Tokens totaux",
"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": "Gérer et installer les Skills OpenClaw",
"tabInstalled": "Installed",
"tabStore": "Search & Install",
"filterPlaceholder": "Filter Skills...",
"refresh": "Refresh",
"loading": "Loading Skills...",
"loadFailed": "Échec du chargement",
"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": "Aucun Skill",
"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": "Désinstaller",
"loadingDetail": "Loading details...",
"detailSource": "Source",
"detailPath": "Path",
"reqBins": "Required commands",
"reqEnv": "Environment variables",
"installOptions": "Install options",
"detailLoadFailed": "Failed to load details",
"installing": "Installation...",
"depInstalled": "{name} dependency installed",
"installFailed": "Échec de l'installation",
"searchPlaceholder": "Search skills, e.g. weather / github / tavily",
"search": "Rechercher 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": "Aucun résultat",
"install": "Installer",
"installed": "Installés",
"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": "Chat en direct",
"desc": "Discuter avec l'Agent en temps réel",
"sessionList": "Sessions",
"newSession": "Nouvelle session",
"chatTitle": "Chat",
"loadingModels": "Loading models...",
"shortcuts": "Shortcuts",
"resetSession": "Reset Session",
"inputPlaceholder": "Tapez un message...",
"uploadImage": "Upload Image",
"refreshModels": "Refresh Models",
"send": "Envoyer",
"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": "Aucun message",
"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": "Aucune session",
"disconnected": "Déconnecté",
"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": "Diagnostic système",
"desc": "Diagnostic de connexion WebSocket et débogage réseau",
"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": "Connexion...",
"wsConnected": "Connecté",
"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": "Erreur 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": "Journal des requêtes réseau",
"noRequests": "Aucune requête",
"totalRequests": "Total des requêtes",
"cacheHit": "Cache Hit",
"avgDuration": "Avg Duration",
"colTime": "Time",
"colCommand": "Command",
"colArgs": "Args",
"colDuration": "Duration",
"colCache": "Cache",
"fixStarting": "Début de la réparation...",
"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": "Réparation échouée"
},
"setup": {
"title": "Configuration initiale",
"desc": "Installer et configurer OpenClaw",
"headerTitle": "Bienvenue sur ClawPanel",
"headerDesc": "Desktop management panel for OpenClaw AI Agent framework",
"recheck": "Revérifier",
"stepNode": "Environnement Node.js",
"installed": "Installé",
"stepNodeHint": "OpenClaw requires Node.js, please install it first.",
"downloadNode": "Télécharger 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": "Fichier de configuration",
"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": "Enregistrer",
"resetDefaultBtn": "Restaurer les paramètres par défaut",
"aiAssistant": "Assistant IA",
"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": "Ouvrir l'assistant IA",
"askAiHelp": "Ask AI for Help",
"nextStepsTitle": "Étapes suivantes",
"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": "Configurer les modèles",
"gatewaySetup": "Configurer Gateway",
"messageChannels": "Canaux",
"enterPanel": "Entrer dans le panneau",
"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": "Installation rapide",
"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": "Installer 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": "Installation terminée",
"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": "À propos",
"desc": "Informations de version et de projet ClawPanel",
"subtitle": "Panneau de gestion visuelle OpenClaw",
"sectionCommunity": "Communauté",
"sectionProjects": "Related Projects",
"sectionContribute": "Contribuer",
"sectionLinks": "Liens",
"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": "Vérification des mises à jour...",
"official": "Officiel",
"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": "Non installé",
"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": "Arrêt des services...",
"uninstallRemoving": "Suppression des composants...",
"uninstallCleaning": "Nettoyage des fichiers...",
"versionLabel": "Version",
"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": "Recommandé",
"current": "Actuel",
"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": "À jour",
"checkUpdateFailed": "Échec de la vérification des mises à jour",
"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": "Rejoindre Discord",
"discordDesc": "Communauté internationale",
"communityWelcome": "Bienvenue dans la communauté OpenClaw ! Signalez les problèmes à tout moment, construisons ensemble de meilleurs agents IA.",
"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": "Soumettre un Issue",
"submitPR": "Soumettre un 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": "Site officiel",
"productWebsite": "Product Website",
"openSourceRepo": "Dépôt open source",
"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": "Outils additionnels",
"desc": "Gérer cftunnel et 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": "Installation rapide",
"viewDocs": "View Docs",
"status": "Statut",
"running": "En cours",
"stopped": "Arrêté",
"version": "Version",
"unknown": "Unknown",
"routes": "routes",
"noRoutes": "No routes",
"active": "Active",
"localService": "Local service",
"startTunnel": "Démarrer le tunnel",
"stopTunnel": "Arrêter le tunnel",
"viewLogs": "View Logs",
"refresh": "Refresh",
"port": "Port",
"accessUrl": "Access URL",
"publicUrl": "Public",
"openClawapp": "Open ClawApp",
"openPublicUrl": "Open Public URL",
"start": "Démarrer",
"stop": "Arrêter",
"tunnelActionDone": "Tunnel {action}d",
"tunnelActionFail": "{action} failed",
"recentLogs": "Recent Logs",
"collapse": "Collapse",
"noLogs": "No logs",
"readLogsFailed": "Failed to read logs",
"preparing": "Preparing...",
"installing": "Installation...",
"installDone": "Installation terminée",
"installSuccess": "{name} installed successfully",
"installFailed": "Échec de l'installation",
"installFailedTitle": "Failed to install {name}",
"installScene": "Installing {name}",
"error": "Error",
"webModeNoLogs": "Web mode: install logs unavailable, please wait..."
},
"logs": {
"title": "Journaux",
"desc": "Voir les journaux OpenClaw",
"tabGateway": "Gateway",
"tabGatewayErr": "Erreurs Gateway",
"tabGuardian": "Guardian",
"tabBackup": "Sauvegarde",
"tabAudit": "Audit",
"searchPlaceholder": "Rechercher...",
"refresh": "Actualiser",
"autoScroll": "Défilement auto",
"loading": "Chargement...",
"empty": "Aucun journal",
"loadFailed": "Échec du chargement",
"noResults": "Aucun résultat",
"searchFailed": "Échec de la recherche"
},
"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": "Assistant IA",
"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": "Nouvelle session",
"deleteSession": "Supprimer la session",
"noSessions": "Aucune session",
"confirmDeleteSession": "Delete this session?",
"sessionList": "Liste des sessions",
"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": "Exécution...",
"toolDone": "Exécution terminée",
"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": "Autoriser l'exécution",
"confirmAiRequest": "AI requests to perform the following operation",
"aiThinking": "Réflexion...",
"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": "Bonjour ! Je suis l'assistant IA. Comment puis-je vous aider ?",
"loading": "Chargement...",
"testConnTitle": "Connection Test",
"testSuccess": "Connexion réussie",
"testFailed": "Connexion échouée",
"testNoReply": "(No reply content)",
"settingsTitle": "Paramètres de l'assistant",
"settings": "Paramètres",
"settingsSaved": "Paramètres enregistrés",
"settingsTabApi": "API Config",
"settingsTabTools": "Tools",
"settingsTabPersona": "Persona",
"settingsTabKnowledge": "Knowledge Base",
"apiType": "API Type",
"model": "Modèle",
"temperature": "Température",
"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": "Test en cours...",
"testSending": "Sending test request...",
"testBtn": "Tester la connexion",
"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": "Arrêté",
"requestInterrupted": "Request interrupted",
"retry": "Réessayer",
"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": "Copier le texte",
"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": "Décrivez le problème...",
"send": "Envoyer",
"inputHint": "Enter to send · Shift+Enter for newline · Paste/drag images · Independent of OpenClaw",
"autoSwitchExecute": "Auto-switched to Execute mode"
},
"toast": {
"copySuccess": "Copié",
"copyFailed": "Échec de la copie"
},
"modal": {
"confirmTitle": "Confirmer",
"confirmOk": "OK",
"confirmCancel": "Annuler"
},
"kernel": {
"floorBlocker": {
"title": "Version du noyau trop ancienne",
"message": "Le noyau OpenClaw {current} est inférieur à la version minimale prise en charge {floor}. Certaines fonctionnalités peuvent ne pas fonctionner.",
"targetHint": "Il est recommandé de passer à {target} pour la meilleure expérience.",
"goUpgrade": "Mettre à niveau",
"continueReadonly": "Continuer (lecture seule)",
"readonlyHint": "En mode lecture seule, les opérations d'écriture sont bloquées côté client pour éviter de corrompre les configurations d'anciens noyaux."
},
"badge": {
"currentKernel": "Noyau",
"featuresEnabled": "{enabled}/{total} fonctionnalités activées",
"belowTarget": "Sous la version recommandée",
"latest": "À jour",
"unknown": "Inconnu"
},
"upgrade": {
"title": "Mettre à jour le noyau OpenClaw",
"confirmMessage": "Mise à jour de {from} vers {to}.\nCela prend environ 2 minutes ; Gateway redémarrera automatiquement. Continuer ?",
"starting": "Mise à jour vers {version}...",
"successMessage": "Mise à jour du noyau terminée",
"successToast": "Noyau mis à jour avec succès",
"failurePrefix": "Échec de la mise à jour du noyau :"
},
"upgradeHint": {
"title": "Nouveau noyau disponible",
"subtitle": "{from} → {to}, cliquez pour mettre à jour",
"dismissTooltip": "Ne plus avertir pendant cette session"
}
},
"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."
}
}