{
  "common": {
    "confirm": "Confirm",
    "cancel": "Cancel",
    "back": "Back",
    "save": "Save",
    "add": "Add",
    "edit": "Edit",
    "delete": "Delete",
    "search": "Search",
    "loading": "Loading...",
    "operation": "Actions",
    "enable": "Enable",
    "optional": "optional",
    "import": "Import",
    "export": "Export",
    "copy": "Copy",
    "copied": "Copied to clipboard",
    "tabAddSingle": "Add single",
    "tabImportJson": "Import JSON",
    "copyAsJson": "Copy as JSON",
    "fillForm": "Fill form",
    "batchSelected": "{count} selected",
    "batchDelete": "Batch delete",
    "batchDeleteConfirm": "Delete {count} selected item(s)?",
    "batchExport": "Batch export",
    "cancelSelection": "Cancel selection",
    "name": "Name",
    "namePlaceholder": "Enter name",
    "type": "Type",
    "typePlaceholder": "Select type",
    "refresh": "Refresh",
    "status": "Status",
    "loadFailed": "Failed to load",
    "saveFailed": "Failed to save",
    "createdAt": "Created at",
    "none": "None"
  },
  "auth": {
    "welcome": "Welcome Back",
    "username": "Username",
    "password": "Password",
    "login": "Sign In",
    "register": "Sign Up",
    "forgotPassword": "Forgot password?",
    "logout": "Sign Out",
    "logoutConfirm": "Are you sure you want to sign out?",
    "loginFailed": "Login failed",
    "invalidCredentials": "Invalid username or password",
    "retryHint": "Please check and try again"
  },
  "sidebar": {
    "chat": "Chat",
    "bots": "Bots",
    "models": "Models",
    "searchProvider": "Search Providers",
    "emailProvider": "Email Providers",
    "settings": "Settings",
    "home": "Home",
    "mcp": "MCP",
    "platform": "Platform",
    "usage": "Usage"
  },
  "breadcrumb": {
    "main": "Home"
  },
  "settings": {
    "display": "General",
    "user": "User",
    "backToChat": "Back to Chat",
    "userProfile": "Profile",
    "userID": "User ID",
    "displayName": "Display Name",
    "avatarUrl": "Avatar URL",
    "saveProfile": "Save Profile",
    "profileUpdated": "Profile updated",
    "profileUpdateFailed": "Failed to update profile",
    "changePassword": "Change Password",
    "currentPassword": "Current Password",
    "newPassword": "New Password",
    "confirmPassword": "Confirm New Password",
    "updatePassword": "Update Password",
    "passwordRequired": "Current password and new password are required",
    "passwordNotMatch": "The new passwords do not match",
    "passwordUpdated": "Password updated",
    "passwordUpdateFailed": "Failed to update password",
    "changeEmail": "Change Email",
    "emailRequired": "Email is required",
    "emailUpdated": "Email updated",
    "emailUpdateFailed": "Failed to update email",
    "linkedChannels": "Linked Platform Accounts",
    "noLinkedChannels": "No linked platform accounts yet",
    "bindCode": "Bind Code",
    "platform": "Platform",
    "platformAny": "Any platform",
    "bindCodeTTL": "TTL (seconds)",
    "generateBindCode": "Generate Bind Code",
    "bindCodeGenerated": "Bind Code generated",
    "bindCodeGenerateFailed": "Failed to generate bind code",
    "bindCodeValue": "Bind Code",
    "bindCodeExpiresAt": "Expires At",
    "copyBindCode": "Copy",
    "bindCodeCopied": "Bind code copied",
    "bindCodeCopyFailed": "Failed to copy bind code",
    "loadUserFailed": "Failed to load user data",
    "language": "Language",
    "languagePlaceholder": "Select language",
    "theme": "Theme",
    "themePlaceholder": "Select theme",
    "themeLight": "Light",
    "themeDark": "Dark",
    "langZh": "中文",
    "langEn": "English"
  },
  "chat": {
    "greeting": "Hi! How can I help you today?",
    "selectBot": "Select a Bot",
    "selectBotHint": "Choose a bot from the sidebar to start chatting",
    "thinking": "Thinking…",
    "thinkingInProgress": "Thinking…",
    "thinkingDone": "Thinking complete",
    "currentBot": "Current Bot",
    "inputPlaceholder": "Type your question…",
    "readonlyHint": "This chat is read-only",
    "readonlyPlaceholder": "This chat is read-only. Sending messages is disabled.",
    "send": "Send",
    "startChat": "Start Chat",
    "noBot": "No bots available, please create a bot first",
    "newChat": "New Chat",
    "history": "History",
    "historyParticipant": "Chats",
    "historyObserved": "Observed Chats",
    "readonly": "Read-only",
    "toolDone": "Done",
    "toolRunning": "Running",
    "toolInput": "Input",
    "toolResult": "Result",
    "unknownUser": "{platform} User",
    "files": "Files"
  },
  "models": {
    "title": "Models",
    "searchPlaceholder": "Search providers…",
    "addModel": "Add Model",
    "editModel": "Edit Model",
    "deleteModelConfirm": "Are you sure you want to delete this model?",
    "emptyTitle": "No Models",
    "emptyDescription": "Click the button above to add a model for this provider",
    "clientType": "Client Type",
    "clientTypePlaceholder": "Select client type",
    "model": "Model ID",
    "modelPlaceholder": "e.g. gpt-4o",
    "displayName": "Display Name",
    "displayNamePlaceholder": "Custom display name",
    "dimensions": "Dimensions",
    "dimensionsPlaceholder": "e.g. 1536",
    "multimodal": "Multimodal",
    "inputModalities": "Input Modalities",
    "supportsReasoning": "Supports Reasoning",
    "modality": {
      "text": "Text",
      "image": "Image",
      "audio": "Audio",
      "video": "Video",
      "file": "File"
    }
  },
  "provider": {
    "add": "Add Provider",
    "addBtn": "Add",
    "apiKey": "API Key",
    "apiKeyPlaceholder": "Enter API key",
    "url": "Base URL",
    "urlPlaceholder": "Enter base URL",
    "deleteConfirm": "Are you sure you want to delete this provider?",
    "saveChanges": "Save Changes",
    "emptyTitle": "No Providers",
    "emptyDescription": "Add a model provider first to configure models",
    "testConnection": "Test Connection",
    "reachable": "Reachable",
    "unreachable": "Unreachable",
    "supported": "Supported",
    "authError": "Auth Error",
    "unsupported": "Unsupported",
    "error": "Error",
    "embedding": "Embedding",
    "testFailed": "Test failed"
  },
  "searchProvider": {
    "title": "Search Providers",
    "add": "Add Search Provider",
    "empty": "No search providers",
    "provider": "Provider Type",
    "selectHint": "Select or create a search provider",
    "unsupportedProvider": "This provider does not have a settings panel yet",
    "saveSuccess": "Search provider saved",
    "deleteSuccess": "Search provider deleted",
    "deleteFailed": "Failed to delete search provider",
    "searchPlaceholder": "Search providers...",
    "emptyTitle": "No Search Providers",
    "emptyDescription": "Add a search provider to configure web search",
    "deleteConfirm": "Are you sure you want to delete this search provider? This action cannot be undone.",
    "providerNames": {
      "brave": "Brave",
      "bing": "Bing",
      "google": "Google",
      "tavily": "Tavily",
      "sogou": "Sogou",
      "serper": "Serper",
      "searxng": "SearXNG",
      "jina": "Jina",
      "exa": "Exa",
      "bocha": "Bocha",
      "duckduckgo": "DuckDuckGo",
      "yandex": "Yandex"
    }
  },
  "emailProvider": {
    "title": "Email Providers",
    "add": "Add Email Provider",
    "providerType": "Provider Type",
    "searchPlaceholder": "Search email providers...",
    "emptyTitle": "No Email Providers",
    "emptyDescription": "Add an email provider to enable email for your bots",
    "deleteConfirm": "Are you sure you want to delete this email provider? This action cannot be undone.",
    "fields": {
      "username": "Username",
      "password": "Password",
      "smtp_host": "SMTP Host",
      "smtp_port": "SMTP Port",
      "smtp_security": "SMTP Security",
      "imap_host": "IMAP Host",
      "imap_port": "IMAP Port",
      "imap_security": "IMAP Security",
      "poll_interval_seconds": "Poll Interval (seconds)",
      "domain": "Domain",
      "api_key": "API Key",
      "region": "Region",
      "inbound_mode": "Inbound Mode",
      "webhook_signing_key": "Webhook Signing Key"
    }
  },
  "mcp": {
    "addTitle": "Add MCP",
    "addDescription": "Configure MCP server connection",
    "searchPlaceholder": "Search MCP servers...",
    "emptyTitle": "No MCP Servers",
    "emptyDescription": "Add an MCP server to extend your bot's capabilities",
    "command": "Command",
    "commandPlaceholder": "Enter start command",
    "arguments": "Arguments",
    "argumentsPlaceholder": "Type and press Enter to add",
    "cwd": "Working Directory",
    "cwdPlaceholder": "Enter working directory path",
    "env": "Environment",
    "envPlaceholder": "Format: KEY:VALUE",
    "active": "Enabled",
    "types": {
      "stdio": "Stdio (Local)",
      "remote": "Remote (HTTP/SSE)"
    },
    "table": {
      "command": "Command",
      "cwd": "Working Directory",
      "arguments": "Arguments",
      "env": "Environment"
    },
    "draft": "Draft",
    "empty": "No MCP servers configured yet.",
    "deleteConfirm": "Are you sure you want to delete this MCP server?",
    "loadFailed": "Failed to load MCP servers",
    "saveFailed": "Failed to save MCP server",
    "createSuccess": "MCP server created",
    "updateSuccess": "MCP server updated",
    "deleteSuccess": "MCP server deleted",
    "deleteFailed": "Failed to delete MCP server",
    "importHint": "Paste a standard mcpServers JSON configuration. Existing servers with the same name will be updated.",
    "importSuccess": "MCP servers imported",
    "importFailed": "Failed to import MCP servers",
    "exportFailed": "Failed to export MCP servers"
  },
  "home": {
    "title": "Home"
  },
  "bots": {
    "title": "Bots",
    "searchPlaceholder": "Search bots…",
    "createBot": "New Bot",
    "editBot": "Edit Bot",
    "deleteConfirm": "Are you sure you want to delete this bot?",
    "renameSuccess": "Bot name updated",
    "renameFailed": "Failed to update bot name",
    "deleteSuccess": "Bot deleted",
    "emptyTitle": "No Bots",
    "emptyDescription": "Click the button above to create your first bot",
    "displayName": "Name",
    "displayNamePlaceholder": "Give your bot a name",
    "avatarUrl": "Avatar URL",
    "avatarUrlPlaceholder": "Enter avatar image URL",
    "editAvatar": "Edit Avatar",
    "editAvatarDescription": "Set the image URL for the bot avatar.",
    "avatarUpdateSuccess": "Avatar updated",
    "avatarUpdateFailed": "Failed to update avatar",
    "typePlaceholder": "Select bot type",
    "types": {
      "personal": "Personal",
      "public": "Public"
    },
    "active": "Active",
    "inactive": "Inactive",
    "lifecycle": {
      "creating": "Creating",
      "deleting": "Deleting",
      "createFailed": "Create failed",
      "deleteFailed": "Delete failed"
    },
    "checks": {
      "title": "Runtime Checks",
      "subtitle": "View current health status and issue details.",
      "ok": "No issues",
      "hasIssue": "Has issues",
      "issueCount": "{count} issues",
      "empty": "No check items",
      "loadFailed": "Failed to load runtime checks",
      "actions": {},
      "titles": {
        "containerInit": "Container initialization",
        "containerRecord": "Container record",
        "containerTask": "Container task",
        "containerDataPath": "Container data path",
        "botDelete": "Bot deletion",
        "mcpConnection": "MCP connection",
        "channelConnection": "Channel connection"
      },
      "keys": {
        "containerInit": "Container initialization",
        "containerRecord": "Container record",
        "containerTask": "Container task",
        "containerDataPath": "Container data path",
        "botDelete": "Bot deletion"
      },
      "status": {
        "ok": "OK",
        "warn": "WARN",
        "error": "ERROR",
        "unknown": "UNKNOWN"
      }
    },
    "tabs": {
      "overview": "Overview",
      "memory": "Memory",
      "channels": "Platforms",
      "container": "Container",
      "mcp": "MCP",
      "subagents": "Subagents",
      "heartbeat": "Heartbeat",
      "schedule": "Schedule",
      "history": "History",
      "skills": "Skills",
      "email": "Email",
      "files": "Files",
      "settings": "Settings"
    },
    "files": {
      "name": "Name",
      "size": "Size",
      "modified": "Modified",
      "empty": "This directory is empty",
      "upload": "Upload",
      "newFolder": "New Folder",
      "download": "Download",
      "rename": "Rename",
      "delete": "Delete",
      "save": "Save",
      "unsaved": "(unsaved)",
      "previewNotAvailable": "Preview not available for this file type",
      "folderNamePlaceholder": "Folder name",
      "newNamePlaceholder": "New name",
      "confirmDelete": "Confirm Delete",
      "confirmDeleteMessage": "Are you sure you want to delete \"{name}\"? This action cannot be undone.",
      "loadFailed": "Failed to load directory",
      "readFailed": "Failed to read file",
      "saveSuccess": "File saved",
      "saveFailed": "Failed to save file",
      "uploadSuccess": "File uploaded",
      "uploadFailed": "Failed to upload file",
      "mkdirSuccess": "Folder created",
      "mkdirFailed": "Failed to create folder",
      "renameSuccess": "Renamed successfully",
      "renameFailed": "Failed to rename",
      "deleteSuccess": "Deleted successfully",
      "deleteFailed": "Failed to delete"
    },
    "email": {
      "title": "Email",
      "subtitle": "Manage email provider bindings and view inbox / outbox.",
      "bindings": "Bindings",
      "addBinding": "Add Binding",
      "inbox": "Inbox",
      "outbox": "Outbox",
      "emailAddress": "Email Address",
      "emailPlaceholder": "user@example.com",
      "noBindings": "No email bindings configured",
      "noEmails": "No emails",
      "canRead": "Read",
      "canWrite": "Write",
      "canDelete": "Delete",
      "unbind": "Unbind",
      "unbindConfirm": "Are you sure you want to remove this email binding?",
      "bindSuccess": "Email binding added",
      "unbindSuccess": "Email binding removed",
      "from": "From",
      "to": "To",
      "subject": "Subject",
      "status": "Status",
      "receivedAt": "Received",
      "sentAt": "Sent"
    },
    "container": {
      "title": "Container Management",
      "subtitle": "Manage the runtime container attached to this bot.",
      "botNotReady": "This bot is in lifecycle transition. Container actions are temporarily disabled.",
      "empty": "No container found for this bot. Create one to enable runtime tooling.",
      "deleteConfirm": "Are you sure you want to delete this container?",
      "taskRunning": "Running",
      "taskStopped": "Stopped",
      "taskCompleted": "Completed",
      "statusCreated": "Created",
      "statusRunning": "Running",
      "statusStopped": "Stopped",
      "statusExited": "Exited",
      "statusUnknown": "Unknown",
      "loadFailed": "Failed to load container information",
      "actionFailed": "Container action failed",
      "createSuccess": "Container created",
      "startSuccess": "Container started",
      "stopSuccess": "Container stopped",
      "deleteSuccess": "Container deleted",
      "snapshotSuccess": "Snapshot created",
      "snapshotEmpty": "No snapshots found",
      "snapshotLoadFailed": "Failed to load snapshots",
      "snapshotNamePlaceholder": "Snapshot name (optional)",
      "fields": {
        "id": "Container ID",
        "status": "Container Status",
        "task": "Task",
        "namespace": "Namespace",
        "image": "Image",
        "hostPath": "Host Path",
        "containerPath": "Container Path",
        "createdAt": "Created At",
        "updatedAt": "Updated At"
      },
      "snapshotColumns": {
        "name": "Name",
        "kind": "Kind",
        "parent": "Parent",
        "createdAt": "Created At"
      },
      "actions": {
        "create": "Create Container",
        "start": "Start",
        "stop": "Stop",
        "delete": "Delete",
        "snapshot": "Create Snapshot"
      }
    },
    "settings": {
      "chatModel": "Chat Model",
      "memoryModel": "Memory Model",
      "embeddingModel": "Embedding Model",
      "searchProvider": "Search Provider",
      "searchProviderPlaceholder": "Select search provider",
      "maxContextLoadTime": "Max Context Load Time",
      "maxContextTokens": "Max Context Tokens",
      "language": "Language",
      "reasoningEnabled": "Enable Reasoning",
      "reasoningEffort": "Reasoning Effort",
      "reasoningEffortLow": "Low",
      "reasoningEffortMedium": "Medium",
      "reasoningEffortHigh": "High",
      "heartbeatEnabled": "Enable Heartbeat",
      "heartbeatDescription": "Periodically trigger agent to check for items that need attention",
      "heartbeatInterval": "Heartbeat Interval (minutes)",
      "heartbeatModel": "Heartbeat Model",
      "heartbeatModelDescription": "Select a model for heartbeat checks. Defaults to the bot's chat model if not set.",
      "heartbeatModelPlaceholder": "Use chat model (default)",
      "allowGuest": "Allow Guest Access",
      "allowGuestPersonalHint": "Personal bots do not support guest access. Use a public bot instead.",
      "searchModel": "Search models…",
      "noModel": "No models available",
      "saveSuccess": "Settings saved",
      "save": "Save Settings",
      "dangerZone": "Danger Zone",
      "deleteBotDescription": "Deleting this bot cannot be undone. Proceed with caution.",
      "deleteBot": "Delete Bot"
    },
    "channels": {
      "title": "Platforms",
      "addChannel": "Add Platform",
      "selectType": "Select platform type",
      "configured": "Configured",
      "notConfigured": "Not configured",
      "emptyTitle": "No Platforms",
      "emptyDescription": "Click below to add an access platform for this bot",
      "credentials": "Credentials",
      "saveSuccess": "Platform configuration saved",
      "saveFailed": "Failed to save platform configuration",
      "requiredField": "{field} is required",
      "save": "Save Platform Configuration",
      "statusActive": "Active",
      "statusInactive": "Inactive",
      "actionEnable": "Enable",
      "actionDisable": "Disable",
      "saveOnly": "Save only",
      "saveAndEnable": "Save and enable",
      "copyFailed": "Copy failed",
      "deleteConfirm": "Are you sure you want to remove this platform?",
      "deleteSuccess": "Platform removed",
      "deleteFailed": "Failed to remove platform",
      "webhookCallback": "WebHook Callback URL",
      "webhookCallbackHint": "Use this URL as the event subscription request URL in Feishu/Lark.",
      "webhookCallbackPending": "Save this platform configuration to generate the callback URL.",
      "noAvailableTypes": "All platform types have been configured",
      "types": {
        "feishu": "Feishu",
        "telegram": "Telegram",
        "web": "Web",
        "local": "Local"
      },
      "typesShort": {
        "feishu": "FS",
        "telegram": "TG",
        "web": "Web",
        "local": "CLI"
      }
    },
    "memory": {
      "title": "Here lie the memories.",
      "files": "Memory Files",
      "empty": "No memory entries found.",
      "searchPlaceholder": "Search memory...",
      "newMemory": "New Memory",
      "compact": "Compact Memory",
      "compactConfirm": "Are you sure you want to compact the memory? This will merge similar content using AI and may reduce the number of entries.",
      "compactRatio": "Compression Ratio",
      "compactRatioLight": "Light (0.8)",
      "compactRatioMedium": "Medium (0.5)",
      "compactRatioAggressive": "Aggressive (0.3)",
      "compactRatioLightDesc": "Keep most details, mostly deduplicate.",
      "compactRatioMediumDesc": "Merge similar facts, balanced compression.",
      "compactRatioAggressiveDesc": "Heavily consolidate, keep core facts only.",
      "compactDecayDate": "Target memories before this date",
      "compactSuccess": "Memory compacted successfully",
      "compactFailed": "Memory compaction failed",
      "selectConversation": "Select Conversation",
      "fromConversation": "Create from Conversation",
      "noConversations": "No history conversations found",
      "idCopied": "ID copied to clipboard",
      "deleteConfirm": "Are you sure you want to delete this memory? This cannot be undone."
    },
    "skills": {
      "title": "Skills",
      "addSkill": "New Skill",
      "emptyTitle": "No Skills",
      "emptyDescription": "Click above to create a new skill",
      "description": "Description",
      "descriptionPlaceholder": "Enter skill description",
      "content": "Content",
      "contentPlaceholder": "Enter skill content/prompt",
      "deleteConfirm": "Are you sure you want to delete this skill?",
      "deleteSuccess": "Skill deleted",
      "deleteFailed": "Failed to delete skill",
      "saveSuccess": "Skill saved",
      "saveFailed": "Failed to save skill",
      "loadFailed": "Failed to load skills"
    },
    "heartbeat": {
      "title": "Heartbeat Logs",
      "loadFailed": "Failed to load heartbeat logs",
      "empty": "No heartbeat logs",
      "loadMore": "Load More",
      "clearLogs": "Clear Logs",
      "clearConfirm": "Are you sure you want to clear all heartbeat logs? This cannot be undone.",
      "clearSuccess": "Heartbeat logs cleared",
      "clearFailed": "Failed to clear heartbeat logs",
      "status": "Status",
      "time": "Time",
      "duration": "Duration",
      "result": "Result",
      "error": "Error",
      "statusOk": "OK",
      "statusAlert": "Alert",
      "statusError": "Error",
      "filterAll": "All",
      "noResult": "—"
    },
    "schedule": {
      "title": "Scheduled Tasks",
      "loadFailed": "Failed to load schedules",
      "empty": "No scheduled tasks",
      "name": "Name",
      "pattern": "Pattern",
      "enabled": "Enabled",
      "calls": "Calls",
      "createdAt": "Created",
      "updatedAt": "Updated",
      "statusEnabled": "Enabled",
      "statusDisabled": "Disabled",
      "unlimited": "∞"
    },
    "history": {
      "title": "History",
      "loadFailed": "Failed to load history",
      "empty": "No history messages",
      "loadMore": "Load More",
      "messageCount": "{count} messages",
      "selectAll": "Select all",
      "deleteSelectedConfirm": "Are you sure you want to delete the selected {count} message(s)? This will clear all history and cannot be undone.",
      "deleteSuccess": "Messages deleted",
      "deleteFailed": "Failed to delete messages",
      "role": {
        "user": "User",
        "assistant": "Assistant",
        "tool": "Tool",
        "system": "System"
      },
      "filter": "Filter by role",
      "filterAll": "All",
      "expandContent": "Expand",
      "collapseContent": "Collapse"
    },
    "subagents": {
      "title": "Subagents",
      "subtitle": "Manage autonomous subagents for this bot.",
      "add": "Create Subagent",
      "emptyTitle": "No Subagents",
      "emptyDescription": "Click above to create a subagent",
      "description": "Description",
      "descriptionPlaceholder": "Enter subagent description",
      "deleteConfirm": "Are you sure you want to delete this subagent?",
      "deleteSuccess": "Subagent deleted",
      "deleteFailed": "Failed to delete subagent",
      "saveSuccess": "Subagent saved",
      "saveFailed": "Failed to save subagent",
      "loadFailed": "Failed to load subagents",
      "viewContext": "View Context",
      "contextTitle": "Subagent Context",
      "contextEmpty": "No context messages",
      "messagesCount": "{count} messages",
      "usage": "Usage",
      "skills": "Skills"
    }
  },
  "usage": {
    "title": "Token Usage",
    "selectBot": "Select Bot",
    "selectBotPlaceholder": "Choose a bot to view usage",
    "timeRange": "Time Range",
    "last7Days": "Last 7 Days",
    "last30Days": "Last 30 Days",
    "last90Days": "Last 90 Days",
    "noData": "No usage data for the selected period",
    "loadFailed": "Failed to load token usage",
    "totalInputTokens": "Total Input Tokens",
    "totalOutputTokens": "Total Output Tokens",
    "avgCacheHitRate": "Avg Cache Hit Rate",
    "totalReasoningTokens": "Total Reasoning Tokens",
    "dailyTokens": "Daily Token Usage",
    "cacheBreakdown": "Cache Breakdown",
    "cacheHitRate": "Cache Hit Rate",
    "chatInput": "Chat Input",
    "chatOutput": "Chat Output",
    "heartbeatInput": "Heartbeat Input",
    "heartbeatOutput": "Heartbeat Output",
    "cacheRead": "Cache Read",
    "cacheWrite": "Cache Write",
    "noCache": "No Cache",
    "tokens": "Tokens",
    "date": "Date",
    "modelDistribution": "Model Usage Distribution",
    "filterByModel": "Filter by Model",
    "allModels": "All Models",
    "dateFrom": "From",
    "dateTo": "To",
    "chartPie": "Pie",
    "chartBar": "Bar"
  }
}
