{
  "common": {
    "back": "Back",
    "save": "Save",
    "cancel": "Cancel",
    "edit": "Edit",
    "viewDetail": "View Details",
    "delete": "Delete",
    "add": "Add",
    "search": "Search",
    "refresh": "Refresh",
    "loading": "Loading...",
    "success": "Success",
    "failed": "Failed",
    "confirm": "Confirm",
    "submit": "Submit",
    "reset": "Reset",
    "close": "Close",
    "create": "Create",
    "copy": "Copy",
    "copySuccess": "Copied successfully",
    "copyFailed": "Copy failed",
    "yes": "Yes",
    "no": "No",
    "actions": "Actions",
    "all": "All",
    "createdAt": "Created At",
    "updatedAt": "Updated At",
    "status": "Status",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "noData": "No Data",
    "saveConfig": "Save Config",
    "refreshConfig": "Refresh Config",
    "total": "Total",
    "items": "items",
    "prev": "Previous",
    "previous": "Previous",
    "next": "Next",
    "page": "Page",
    "pageOf": "Page",
    "ascending": "Ascending",
    "descending": "Descending",
    "day": "day"
  },
  "account": {
    "title": "Account Management",
    "list": "Account List",
    "detail": "Account Details",
    "import": "Import Account",
    "update": "Update Account",
    "delete": "Delete Account",
    "accountId": "Account ID",
    "accountName": "Account Name",
    "walletAddress": "Wallet Address",
    "balance": "Account Balance",
    "refreshBalance": "Refresh Balance",
    "apiCredentials": "API Credentials Configuration",
    "apiKey": "API Key",
    "apiSecret": "API Secret",
    "apiPassphrase": "API Passphrase",
    "configured": "Configured",
    "notConfigured": "Not Configured",
    "fullConfig": "Full Configuration",
    "partialConfig": "Partial Configuration",
    "statistics": "Trading Statistics",
    "totalOrders": "Total Orders",
    "activeOrders": "Active Orders",
    "completedOrders": "Completed Orders",
    "positionCount": "Position Count",
    "totalPnl": "Total P&L",
    "editTip": "Edit Tip",
    "editTipDesc": "Leave API credential fields empty to keep unchanged. Enter new values to update API credentials.",
    "accountNamePlaceholder": "Account Name (Optional)",
    "leaveEmptyToNotModify": "Leave empty to not modify",
    "updateSuccess": "Account updated successfully",
    "updateFailed": "Failed to update account",
    "getDetailFailed": "Failed to get account details",
    "accountIdRequired": "Account ID cannot be empty",
    "proxyAddress": "Proxy Wallet Address"
  },
  "message": {
    "success": "Operation successful",
    "error": "Operation failed",
    "loading": "Loading...",
    "noData": "No Data",
    "loginSuccess": "Login successful",
    "loginFailed": "Login failed",
    "createUserSuccess": "User created successfully",
    "createUserFailed": "Failed to create user",
    "updatePasswordSuccess": "Password updated successfully",
    "updatePasswordFailed": "Failed to update password"
  },
  "login": {
    "title": "Login",
    "username": "Username",
    "password": "Password",
    "usernameRequired": "Please enter username",
    "passwordRequired": "Please enter password",
    "usernamePlaceholder": "Please enter username",
    "passwordPlaceholder": "Please enter password",
    "forgotPassword": "Forgot password?",
    "loginFailed": "Login failed",
    "loginSuccess": "Login successful"
  },
  "order": {
    "create": "Order Created",
    "update": "Order Updated",
    "cancel": "Order Cancelled",
    "event": "Order Event",
    "buy": "Buy",
    "sell": "Sell",
    "market": "Market",
    "status": "Status",
    "filled": "Filled",
    "remaining": "Remaining"
  },
  "accountList": {
    "title": "Account Management",
    "addAccount": "Add Account",
    "actions": "Actions",
    "importAccount": "Import Account",
    "accountName": "Account Name",
    "walletAddress": "Wallet Address",
    "proxyAddress": "Proxy Wallet Address",
    "apiCredentials": "API Credentials",
    "balance": "Balance",
    "activeOrders": "Active Orders",
    "action": "Actions",
    "detail": "Detail",
    "edit": "Edit",
    "delete": "Delete",
    "viewDetail": "View Detail",
    "deleteConfirm": "Are you sure you want to delete this account?",
    "deleteConfirmDesc": "Before deleting the account, please make sure all active orders are cancelled. This action cannot be undone!",
    "deleteConfirmDescSimple": "This action cannot be undone!",
    "deleteConfirmOk": "Confirm Delete",
    "deleteSuccess": "Account deleted successfully",
    "deleteFailed": "Failed to delete account",
    "copySuccess": "Copied to clipboard",
    "copyFailed": "Copy failed",
    "fullConfig": "Full Config",
    "partialConfig": "Partial Config",
    "notConfigured": "Not Configured",
    "totalBalance": "Total Balance",
    "available": "Available",
    "position": "Position",
    "refreshBalance": "Refresh Balance",
    "refreshBalanceSuccess": "Balance refreshed successfully",
    "refreshBalanceFailed": "Failed to refresh balance",
    "getDetailFailed": "Failed to get account detail",
    "openDetailFailed": "Failed to open detail",
    "accountDetail": "Account Detail",
    "accountId": "Account ID",
    "apiKey": "API Key",
    "apiSecret": "API Secret",
    "apiPassphrase": "API Passphrase",
    "configured": "Configured",
    "notConfiguredStatus": "Not Configured",
    "configStatus": "Config Status",
    "statistics": "Trading Statistics",
    "totalOrders": "Total Orders",
    "activeOrdersCount": "Active Orders",
    "completedOrders": "Completed Orders",
    "positionCount": "Position Count",
    "totalPnl": "Total PnL",
    "editAccount": "Edit Account",
    "editTip": "Edit Tip",
    "editTipDesc": "Leave API credential fields empty to keep unchanged. Enter new values to update API credentials.",
    "accountNamePlaceholder": "Account Name (Optional)",
    "leaveEmptyToNotModify": "Leave empty to keep unchanged",
    "updateSuccess": "Account updated successfully",
    "updateFailed": "Failed to update account",
    "getDetailFailedForEdit": "Failed to get account detail",
    "loading": "Loading...",
    "fetchFailed": "Failed to get account list"
  },
  "accountImport": {
    "title": "Import Account",
    "back": "Back",
    "securityTip": "Security Tip",
    "securityTipDesc": "Private keys will be stored in the backend database. Please ensure database access is secure. HTTPS is recommended.",
    "importMethod": "Import Method",
    "privateKey": "Private Key",
    "mnemonic": "Mnemonic",
    "privateKeyLabel": "Private Key",
    "privateKeyPlaceholder": "Enter private key (64-character hex string, 0x prefix optional)",
    "privateKeyRequired": "Please enter private key",
    "privateKeyInvalid": "Invalid private key format (should be 64-character hex string)",
    "walletAddress": "Wallet Address",
    "walletAddressPlaceholder": "Wallet address (will be derived from private key)",
    "walletAddressRequired": "Please enter wallet address",
    "walletAddressInvalid": "Invalid wallet address format",
    "walletAddressMismatch": "Wallet address does not match private key",
    "mnemonicLabel": "Mnemonic",
    "mnemonicPlaceholder": "Enter 12 or 24 words mnemonic (space-separated)",
    "mnemonicRequired": "Please enter mnemonic",
    "mnemonicInvalid": "Invalid mnemonic format (should be 12 or 24 words, space-separated)",
    "walletAddressMismatchMnemonic": "Wallet address does not match mnemonic",
    "accountName": "Account Name",
    "accountNameRequired": "Please enter account name",
    "accountNamePlaceholder": "Optional, for identifying account",
    "accountNameHelp": "Used to identify account for management",
    "privateKeyHelp": "Private key will be encrypted and stored, only used for signing transactions",
    "submit": "Import",
    "invalidPrivateKey": "Invalid private key",
    "duplicateAccount": "Account already exists",
    "importAccount": "Import Account",
    "importSuccess": "Account imported successfully",
    "importFailed": "Failed to import account",
    "derivedAddress": "Derived Address",
    "addressError": "Cannot derive address from private key",
    "addressErrorMnemonic": "Cannot derive address from mnemonic",
    "walletType": "Wallet Type",
    "walletTypeHelp": "Web3 Wallet: Polymarket accounts connected via browser wallets like MetaMask\nMagic: Polymarket accounts logged in via email or social accounts (Google, Twitter, etc.)",
    "walletTypeMagic": "Magic (Email/Social Login)",
    "walletTypeSafe": "Web3 Wallet",
    "magicNotSupported": "(Not Supported)"
  },
  "leader": {
    "title": "Leader Management",
    "leaderName": "Leader Name",
    "leaderAddress": "Wallet Address",
    "walletAddress": "Wallet Address",
    "category": "Category",
    "all": "All",
    "copyTradingCount": "Copy Trading Count",
    "createdAt": "Created At",
    "action": "Actions",
    "add": "Add",
    "addLeader": "Add Leader",
    "edit": "Edit",
    "editLeader": "Edit Leader",
    "delete": "Delete",
    "deleteLeader": "Delete Leader",
    "listFailed": "Failed to get Leader list",
    "deleteSuccess": "Leader deleted successfully",
    "deleteFailed": "Failed to delete Leader",
    "deleteConfirm": "Are you sure you want to delete this Leader?",
    "deleteConfirmDesc": "This action cannot be undone!",
    "deleteConfirmOk": "Confirm Delete"
  },
  "menu": {
    "accounts": "Account Management",
    "copyTrading": "Copy Trading",
    "leaders": "Leader Management",
    "templates": "Templates",
    "copyTradingConfig": "Copy Trading Config",
    "positions": "Position Management",
    "backtest": "Backtest",
    "statistics": "Statistics",
    "announcements": "Announcements",
    "users": "User Management",
    "systemSettings": "System",
    "systemOverview": "Overview",
    "language": "Language",
    "rpcNodes": "RPC Nodes",
    "apiHealth": "API Health",
    "builderApiKey": "Builder API Key",
    "proxy": "Proxy",
    "notifications": "Notifications",
    "logout": "Logout",
    "logoutConfirm": "Confirm Logout",
    "logoutConfirmDesc": "Are you sure you want to logout?",
    "navigation": "Navigation Menu"
  },
  "languageSettings": {
    "title": "Language Settings",
    "currentLanguage": "Current Language",
    "followSystem": "Follow System",
    "currentSystemLanguage": "Current System Language",
    "description": "After changing the language, the interface will update immediately.",
    "changeSuccess": "Language changed successfully",
    "changeFailed": "Failed to change language"
  },
  "apiHealthStatus": {
    "title": "API Health Status",
    "checkFailed": "Check Failed",
    "status": "Status",
    "responseTime": "Response Time",
    "lastCheck": "Last Check",
    "healthy": "Healthy",
    "unhealthy": "Unhealthy",
    "unknown": "Unknown",
    "normal": "Normal",
    "notConfigured": "Not Configured",
    "abnormal": "Abnormal"
  },
  "proxySettings": {
    "title": "Proxy Settings",
    "enabled": "Enable Proxy",
    "host": "Proxy Host",
    "port": "Proxy Port",
    "username": "Proxy Username (Optional)",
    "password": "Proxy Password (Optional)",
    "hostRequired": "Please enter proxy host address",
    "hostInvalid": "Please enter a valid host address",
    "hostPlaceholder": "e.g., 127.0.0.1 or proxy.example.com",
    "portRequired": "Please enter proxy port",
    "portInvalid": "Port must be between 1-65535",
    "portPlaceholder": "e.g., 8888",
    "usernamePlaceholder": "Enter username if proxy requires authentication",
    "passwordPlaceholder": "Enter password if proxy requires authentication",
    "passwordPlaceholderUpdate": "Leave empty to keep password unchanged",
    "passwordHelp": "Enter password if proxy requires authentication",
    "passwordHelpUpdate": "Leave empty to keep password unchanged, enter new password to update",
    "check": "Check Proxy",
    "checkSuccess": "Proxy check successful",
    "checkFailed": "Proxy check failed",
    "saveSuccess": "Configuration saved successfully",
    "saveFailed": "Failed to save configuration",
    "getFailed": "Failed to get proxy configuration",
    "latency": "Latency"
  },
  "configPage": {
    "title": "Global Configuration",
    "message": "Configuration Function Migrated",
    "description": "Global configuration function has been migrated to the following pages:",
    "templates": "Templates",
    "templatesDesc": "Manage copy trading parameters (ratio, amount, risk control, etc.)",
    "copyTrading": "Copy Trading Config",
    "copyTradingDesc": "Associate accounts, templates and Leaders to enable copy trading relationships",
    "systemSettings": "System Settings",
    "systemSettingsDesc": "Configure proxy, view API health status",
    "footer": "Please use the above pages for configuration management."
  },
  "systemSettings": {
    "title": "General Settings",
    "language": {
      "title": "Language Settings",
      "currentLanguage": "Current Language",
      "languageRequired": "Please select a language"
    },
    "notification": {
      "title": "Notification Settings"
    },
    "relayer": {
      "title": "Relayer Configuration"
    },
    "proxy": {
      "title": "Proxy Settings"
    },
    "autoRedeem": {
      "title": "Auto Redeem Configuration",
      "label": "Enable Auto Redeem",
      "tooltip": "When enabled, the system will automatically redeem all redeemable positions in all accounts. Requires Builder API Key configuration to take effect.",
      "builderApiKeyNotConfigured": "Builder API Key Not Configured",
      "builderApiKeyNotConfiguredDesc": "Auto redeem feature requires Builder API Key configuration to take effect.",
      "goToConfigure": "Go to Configure",
      "saveSuccess": "Auto redeem configuration saved",
      "saveFailed": "Failed to save auto redeem configuration"
    }
  },
  "builderApiKey": {
    "title": "Builder API Key Configuration",
    "alertTitle": "What is Builder API Key?",
    "description": "Builder API Key is a system-level configuration, not related to your account. It is an API credential for Polymarket's Builder service, used to execute Gasless (no gas fee) transactions.",
    "purposeTitle": "Main purposes:",
    "purpose1": "Execute Gasless transactions: Operations like redeeming positions and creating orders don't require gas fees",
    "purpose2": "Improve user experience: No need to prepare MATIC tokens in wallet for gas fees",
    "purpose3": "Reduce transaction costs: Gas fees are covered by Builder service",
    "getApiKey": "Get API Key:",
    "openSettings": "Go to Polymarket Settings",
    "apiKey": "Builder API Key",
    "secret": "Builder Secret",
    "passphrase": "Builder Passphrase",
    "apiKeyPlaceholder": "Please enter Builder API Key",
    "secretPlaceholder": "Please enter Builder Secret",
    "passphrasePlaceholder": "Please enter Builder Passphrase",
    "apiKeyHelp": "Configured, enter new value to update",
    "secretHelp": "Configured, enter new value to update",
    "passphraseHelp": "Configured, enter new value to update",
    "saveSuccess": "Builder API Key configuration saved successfully",
    "saveFailed": "Failed to save Builder API Key configuration",
    "getFailed": "Failed to get Builder API Key configuration",
    "noChanges": "No fields to update",
    "notConfigured": "Builder API Key not configured, please go to System Settings to configure",
    "notConfiguredError": "Builder API Key not configured, cannot execute Gasless transactions. Please go to System Settings to configure Builder API Key.",
    "apiReference": "API Reference Documentation",
    "apiReferenceDesc": "Learn more about Builder API usage:",
    "relayerApiDocs": "Builder Relayer API Documentation",
    "builderDocs": "Builder Development Documentation",
    "apiTest": "API Test",
    "apiTestDesc": "Test if Builder API is working correctly",
    "testNonce": "Test Get Nonce",
    "testNonceHelp": "Enter Safe address (proxyAddress)",
    "testDeployed": "Test Check Deployed Status",
    "testDeployedHelp": "Enter Safe address (proxyAddress)",
    "testTransaction": "Test Get Transaction Status",
    "testTransactionHelp": "Enter transaction ID",
    "testAddressRequired": "Please enter address",
    "testTransactionIdRequired": "Please enter transaction ID",
    "testAddressPlaceholder": "Enter address, e.g., 0x...",
    "testTransactionIdPlaceholder": "Enter transaction ID",
    "testSuccess": "Test successful",
    "testFailed": "Test failed"
  },
  "resetPassword": {
    "title": "Reset Password",
    "firstUse": "First Time Using System",
    "firstUseDesc": "Please use the reset key provided by the administrator to set the initial password",
    "resetKey": "Reset Key",
    "resetKeyRequired": "Please enter reset key",
    "resetKeyPlaceholder": "Please enter reset key",
    "username": "Username",
    "usernameRequired": "Please enter username",
    "usernamePlaceholder": "Please enter username",
    "newPassword": "New Password",
    "newPasswordRequired": "Please enter new password",
    "passwordPlaceholder": "At least 6 characters",
    "passwordMinLength": "Password must be at least 6 characters",
    "passwordStrength": "Password Strength",
    "weak": "Weak",
    "fair": "Fair",
    "medium": "Medium",
    "strong": "Strong",
    "veryStrong": "Very Strong",
    "confirmPassword": "Confirm Password",
    "confirmPasswordRequired": "Please confirm password",
    "confirmPasswordPlaceholder": "Please enter password again",
    "passwordMismatch": "Passwords do not match",
    "submit": "Reset Password",
    "success": "Password reset successfully",
    "failed": "Password reset failed"
  },
  "leaderList": {
    "title": "Leader Management",
    "addLeader": "Add Leader",
    "leaderName": "Leader Name",
    "walletAddress": "Wallet Address",
    "category": "Category",
    "remark": "Remark",
    "website": "Website",
    "openWebsite": "Open Website",
    "all": "All",
    "copyTradingCount": "Copy Trading Count",
    "backtestCount": "Backtest Count",
    "copyTradingRelations": "{{count}} copy trading relations",
    "viewCopyTradings": "View Copy Tradings",
    "viewBacktests": "View Backtests",
    "createdAt": "Created At",
    "noData": "No Leader data",
    "fetchFailed": "Failed to get Leader list",
    "deleteSuccess": "Leader deleted successfully",
    "deleteFailed": "Failed to delete Leader",
    "deleteConfirm": "Are you sure you want to delete this Leader?",
    "deleteConfirmDesc": "This Leader has {{count}} copy trading relations, please delete them first",
    "openDetailFailed": "Failed to open detail",
    "noCopyTradings": "No copy trading configs",
    "noBacktests": "No backtests"
  },
  "leaderAdd": {
    "title": "Add Leader",
    "back": "Back",
    "leaderAddress": "Leader Wallet Address",
    "leaderAddressRequired": "Please enter Leader wallet address",
    "leaderAddressInvalid": "Invalid wallet address format (must be a 42-character address starting with 0x)",
    "leaderAddressTooltip": "The wallet address of the leader to be copied. The system will monitor transactions from this address and automatically copy trade",
    "leaderName": "Leader Name",
    "leaderNameTooltip": "Optional, used to identify the Leader for easier management",
    "leaderNamePlaceholder": "Optional, used to identify the Leader",
    "remark": "Leader Remark",
    "remarkTooltip": "Optional, used to record remarks about the Leader",
    "remarkPlaceholder": "Optional, used to record remarks about the Leader",
    "website": "Leader Website",
    "websiteTooltip": "Optional, Leader's website link",
    "websitePlaceholder": "Optional, e.g.: https://example.com",
    "websiteInvalid": "Please enter a valid URL address",
    "category": "Category Filter",
    "categoryTooltip": "Only copy trades of this category. Leave empty to copy all categories (sports or crypto)",
    "categoryPlaceholder": "Select category (optional)",
    "add": "Add Leader",
    "cancel": "Cancel",
    "addSuccess": "Leader added successfully",
    "addFailed": "Failed to add Leader"
  },
  "leaderEdit": {
    "title": "Edit Leader",
    "leaderName": "Leader Name",
    "leaderNameTooltip": "Optional, used to identify the Leader for easier management",
    "leaderNamePlaceholder": "Optional, used to identify the Leader",
    "remark": "Leader Remark",
    "remarkTooltip": "Optional, used to record remarks about the Leader",
    "remarkPlaceholder": "Optional, used to record remarks about the Leader",
    "website": "Leader Website",
    "websiteTooltip": "Optional, Leader's website link",
    "websitePlaceholder": "Optional, e.g.: https://example.com",
    "websiteInvalid": "Please enter a valid URL address",
    "category": "Category Filter",
    "categoryTooltip": "Only copy trades of this category. Leave empty to copy all categories (sports or crypto)",
    "categoryPlaceholder": "Select category (optional)",
    "save": "Save",
    "cancel": "Cancel",
    "saveSuccess": "Leader updated successfully",
    "saveFailed": "Failed to update Leader",
    "fetchFailed": "Failed to get Leader details",
    "invalidId": "Invalid Leader ID"
  },
  "leaderDetail": {
    "title": "Leader Details",
    "loading": "Loading...",
    "invalidId": "Invalid Leader ID",
    "fetchFailed": "Failed to get Leader details",
    "fetchBalanceFailed": "Failed to get balance",
    "noBalanceData": "No balance data",
    "basicInfo": "Basic Information",
    "leaderName": "Leader Name",
    "leaderAddress": "Wallet Address",
    "category": "Category",
    "copyTradingCount": "Copy Trading Count",
    "remark": "Remark",
    "createdAt": "Created At",
    "updatedAt": "Updated At",
    "website": "Website",
    "openWebsite": "Open Website",
    "balanceInfo": "Balance Information",
    "refresh": "Refresh",
    "availableBalance": "Available Balance",
    "positionBalance": "Position Asset",
    "totalBalance": "Total Balance",
    "positions": "Positions",
    "noPositions": "No positions",
    "market": "Market",
    "marketId": "Market ID",
    "side": "Side",
    "quantity": "Quantity",
    "avgPrice": "Avg Price",
    "currentValue": "Current Value",
    "pnl": "PnL"
  },
  "userList": {
    "title": "User Management",
    "username": "Username",
    "role": "Role",
    "defaultAccount": "Default Account",
    "normalUser": "Normal User",
    "updateMyPassword": "Update My Password",
    "addUser": "Add User",
    "createUser": "Create User",
    "updatePassword": "Update Password",
    "updateMyPasswordTitle": "Update My Password",
    "newPassword": "New Password",
    "password": "Password",
    "passwordRequired": "Please enter password",
    "passwordMinLength": "Password must be at least 6 characters",
    "passwordPlaceholder": "At least 6 characters",
    "usernameRequired": "Please enter username",
    "usernamePlaceholder": "Please enter username",
    "newPasswordRequired": "Please enter new password",
    "fetchFailed": "Failed to get user list",
    "createSuccess": "User created successfully",
    "createFailed": "Failed to create user",
    "updatePasswordSuccess": "Password updated successfully",
    "updatePasswordFailed": "Failed to update password",
    "updateOwnPasswordSuccess": "Password updated successfully, please login again",
    "updateOwnPasswordFailed": "Failed to update password",
    "deleteSuccess": "User deleted successfully",
    "deleteFailed": "Failed to delete user",
    "deleteConfirm": "Are you sure you want to delete this user?",
    "total": "Total {{total}} items"
  },
  "statistics": {
    "title": "Statistics",
    "totalOrders": "Total Orders",
    "totalPnl": "Total P&L",
    "winRate": "Win Rate",
    "avgPnl": "Average P&L",
    "maxProfit": "Max Profit",
    "maxLoss": "Max Loss",
    "startDate": "Start Date",
    "endDate": "End Date",
    "fetchFailed": "Failed to get statistics",
    "refresh": "Refresh",
    "reset": "Reset"
  },
  "orderList": {
    "title": "Order Management",
    "leader": "Leader",
    "market": "Market",
    "category": "Category",
    "side": "Side",
    "price": "Price",
    "size": "Size",
    "status": "Status",
    "pnl": "P&L",
    "createdAt": "Created At",
    "fetchFailed": "Failed to get order list"
  },
  "templateList": {
    "title": "Template Management",
    "addTemplate": "Add Template",
    "searchPlaceholder": "Search template name",
    "templateName": "Template Name",
    "copyMode": "Copy Mode",
    "ratio": "Ratio",
    "fixedAmount": "Fixed Amount",
    "ratioMode": "Ratio Mode",
    "fixedAmountMode": "Fixed Amount Mode",
    "copyConfig": "Copy Config",
    "supportSell": "Support Sell",
    "notSupportSell": "Not Support Sell",
    "useCount": "Use Count",
    "timesUsed": " times used",
    "amountLimit": "Amount Limit",
    "max": "Max",
    "min": "Min",
    "notSet": "Not Set",
    "otherConfig": "Other Config",
    "maxDailyOrders": "Max Daily Orders",
    "priceTolerance": "Price Tolerance",
    "copy": "Copy",
    "copySuffix": "Copy",
    "noData": "No template data",
    "fetchFailed": "Failed to get template list",
    "deleteSuccess": "Template deleted successfully",
    "deleteFailed": "Failed to delete template",
    "deleteConfirm": "Are you sure you want to delete this template?",
    "deleteConfirmDesc": "This action cannot be undone. Please ensure no copy trading relationships are using this template",
    "copySuccess": "Template copied successfully",
    "copyFailed": "Failed to copy template",
    "pushFilteredOrders": "Push Filtered Orders",
    "pushFilteredOrdersTooltip": "When enabled, filtered orders will be pushed to Telegram",
    "minAmountError": "Minimum amount must be >= 1",
    "fixedAmountRequired": "Please enter fixed copy trading amount",
    "invalidNumber": "Please enter a valid number",
    "fixedAmountError": "Fixed amount must be >= 1, please re-enter"
  },
  "templateAdd": {
    "title": "Create Copy Trading Template",
    "back": "Back",
    "templateName": "Template Name",
    "templateNamePlaceholder": "Please enter template name",
    "templateNameRequired": "Please enter template name",
    "templateNameTooltip": "Unique identifier name for the template, used to distinguish different copy trading configuration templates. Template name must be unique and cannot duplicate other templates.",
    "copyMode": "Copy Amount Mode",
    "copyModeTooltip": "Select the calculation method for copy amount. Ratio mode: copy amount changes proportionally with Leader order size; Fixed amount mode: copy amount remains fixed regardless of Leader order size.",
    "ratioMode": "Ratio Mode",
    "fixedAmountMode": "Fixed Amount Mode",
    "copyRatio": "Copy Ratio",
    "copyRatioTooltip": "Copy ratio represents the percentage of copy amount relative to Leader order amount. For example: 100% means 1:1 copy, 50% means half position copy, 200% means double copy",
    "copyRatioPlaceholder": "For example: 100 means 100% (1:1 copy), default 100%",
    "fixedAmount": "Fixed Copy Amount (USDC)",
    "fixedAmountPlaceholder": "Fixed amount, does not change with Leader order size, must be >= 1",
    "fixedAmountRequired": "Please enter fixed copy amount",
    "fixedAmountError": "Fixed amount must be >= 1, please re-enter",
    "maxOrderSize": "Max Order Size (USDC)",
    "maxOrderSizeTooltip": "In ratio mode, limits the maximum amount cap for single copy order, used to prevent excessive copy amount and control risk. For example: set to 1000, even if calculated copy amount exceeds 1000, it will be limited to 1000 USDC.",
    "maxOrderSizePlaceholder": "Only effective in ratio mode (optional)",
    "minOrderSize": "Min Order Size (USDC)",
    "minOrderSizeTooltip": "In ratio mode, limits the minimum amount floor for single copy order, used to filter out orders with too small amounts, avoiding frequent small trades. If filled, must be >= 1 USDC. For example: set to 10, if calculated copy amount is less than 10, skip this order.",
    "minOrderSizePlaceholder": "Only effective in ratio mode, must be >= 1 (optional)",
    "minOrderSizeError": "Minimum amount must be >= 1",
    "maxDailyOrders": "Max Daily Copy Orders",
    "maxDailyOrdersTooltip": "Limits the maximum number of copy orders per day, used for risk control and preventing overtrading. For example: set to 50, when daily copy orders reach 50, stop copying, reset next day.",
    "maxDailyOrdersPlaceholder": "Default 100 (optional)",
    "priceTolerance": "Price Tolerance (%)",
    "priceToleranceTooltip": "Allowed adjustment range for copy price based on Leader price, used to adjust price within Leader price ± tolerance range to improve fill rate. For example: set to 5%, Leader price is 0.5, then copy price can be in 0.475-0.525 range.",
    "priceTolerancePlaceholder": "Default 5% (optional)",
    "minOrderDepth": "Min Order Depth (USDC)",
    "minOrderDepthTooltip": "Check total order amount (bids + asks) in orderbook to ensure sufficient liquidity. Leave empty to disable",
    "minOrderDepthPlaceholder": "For example: 100 (optional, leave empty to disable)",
    "maxSpread": "Max Spread (Absolute Price)",
    "maxSpreadTooltip": "Maximum spread (absolute price). Avoid copying in markets with excessive spreads. Leave empty to disable",
    "maxSpreadPlaceholder": "For example: 0.05 (5 cents, optional, leave empty to disable)",
    "minOrderbookDepth": "Min Orderbook Depth (USDC)",
    "minOrderbookDepthTooltip": "Minimum orderbook depth (USDC amount), NULL means this filter is not enabled. Check depth of first N levels",
    "minOrderbookDepthPlaceholder": "For example: 50 (optional, leave empty to disable)",
    "priceRangeFilter": "Price Range Filter",
    "priceRange": "Price Range",
    "priceRangeTooltip": "Only copy orders where Leader's trade price is within the specified range. Leave empty to disable. Examples: Fill 0.11 and 0.89 means only copy orders with price between 0.11 and 0.89; Fill only max price 0.89 means only copy orders with price below 0.89; Fill only min price 0.11 means only copy orders with price above 0.11.",
    "minPricePlaceholder": "Min Price (leave empty for no limit)",
    "maxPricePlaceholder": "Max Price (leave empty for no limit)",
    "supportSell": "Support Sell",
    "supportSellTooltip": "Whether to copy Leader's sell orders. Enabled: copy both Leader's buy and sell orders; Disabled: only copy Leader's buy orders, ignore sell orders.",
    "pushFilteredOrders": "Push Filtered Orders",
    "pushFilteredOrdersTooltip": "When enabled, filtered orders will be pushed to Telegram",
    "create": "Create Template",
    "createSuccess": "Template created successfully",
    "createFailed": "Failed to create template",
    "invalidNumber": "Please enter a valid number"
  },
  "templateEdit": {
    "title": "Edit Copy Trading Template",
    "back": "Back",
    "save": "Save Changes",
    "saveSuccess": "Template updated successfully",
    "saveFailed": "Failed to update template",
    "fetchFailed": "Failed to get template details",
    "templateName": "Template Name",
    "templateNamePlaceholder": "Please enter template name",
    "templateNameRequired": "Please enter template name",
    "templateNameTooltip": "Unique identifier name for the template, used to distinguish different copy trading configuration templates. Template name must be unique and cannot duplicate other templates.",
    "copyMode": "Copy Amount Mode",
    "copyModeTooltip": "Select the calculation method for copy amount. Ratio mode: copy amount changes proportionally with Leader order size; Fixed amount mode: copy amount remains fixed regardless of Leader order size.",
    "ratioMode": "Ratio Mode",
    "fixedAmountMode": "Fixed Amount Mode",
    "copyRatio": "Copy Ratio",
    "copyRatioTooltip": "Copy ratio represents the percentage of copy amount relative to Leader order amount. For example: 100% means 1:1 copy, 50% means half position copy, 200% means double copy",
    "copyRatioPlaceholder": "For example: 100 means 100% (1:1 copy), default 100%",
    "fixedAmount": "Fixed Copy Amount (USDC)",
    "fixedAmountPlaceholder": "Fixed amount, does not change with Leader order size, must be >= 1",
    "fixedAmountRequired": "Please enter fixed copy amount",
    "fixedAmountError": "Fixed amount must be >= 1, please re-enter",
    "fixedAmountTooltip": "In fixed amount mode, the fixed amount for each copy, does not change with Leader order size. Must be >= 1 USDC. For example: set to 10, then regardless of how much Leader buys, copy amount is always 10 USDC.",
    "maxOrderSize": "Max Order Size (USDC)",
    "maxOrderSizeTooltip": "In ratio mode, limits the maximum amount cap for single copy order, used to prevent excessive copy amount and control risk. For example: set to 1000, even if calculated copy amount exceeds 1000, it will be limited to 1000 USDC.",
    "maxOrderSizePlaceholder": "Only effective in ratio mode (optional)",
    "minOrderSize": "Min Order Size (USDC)",
    "minOrderSizeTooltip": "In ratio mode, limits the minimum amount floor for single copy order, used to filter out orders with too small amounts, avoiding frequent small trades. If filled, must be >= 1 USDC. For example: set to 10, if calculated copy amount is less than 10, skip this order.",
    "minOrderSizePlaceholder": "Only effective in ratio mode, must be >= 1 (optional)",
    "minOrderSizeError": "Minimum amount must be >= 1",
    "maxDailyOrders": "Max Daily Copy Orders",
    "maxDailyOrdersTooltip": "Limits the maximum number of copy orders per day, used for risk control and preventing overtrading. For example: set to 50, when daily copy orders reach 50, stop copying, reset next day.",
    "maxDailyOrdersPlaceholder": "Default 100 (optional)",
    "priceTolerance": "Price Tolerance (%)",
    "priceToleranceTooltip": "Allowed adjustment range for copy price based on Leader price, used to adjust price within Leader price ± tolerance range to improve fill rate. For example: set to 5%, Leader price is 0.5, then copy price can be in 0.475-0.525 range.",
    "priceTolerancePlaceholder": "Default 5% (optional)",
    "minOrderDepth": "Min Order Depth (USDC)",
    "minOrderDepthTooltip": "Check total order amount (bids + asks) in orderbook to ensure sufficient liquidity. Leave empty to disable",
    "minOrderDepthPlaceholder": "For example: 100 (optional, leave empty to disable)",
    "maxSpread": "Max Spread (Absolute Price)",
    "maxSpreadTooltip": "Maximum spread (absolute price). Avoid copying in markets with excessive spreads. Leave empty to disable",
    "maxSpreadPlaceholder": "For example: 0.05 (5 cents, optional, leave empty to disable)",
    "minOrderbookDepth": "Min Orderbook Depth (USDC)",
    "minOrderbookDepthTooltip": "Minimum orderbook depth (USDC amount), NULL means this filter is not enabled. Check depth of first N levels",
    "minOrderbookDepthPlaceholder": "For example: 50 (optional, leave empty to disable)",
    "priceRangeFilter": "Price Range Filter",
    "priceRange": "Price Range",
    "priceRangeTooltip": "Only copy orders where Leader's trade price is within the specified range. Leave empty to disable. Examples: Fill 0.11 and 0.89 means only copy orders with price between 0.11 and 0.89; Fill only max price 0.89 means only copy orders with price below 0.89; Fill only min price 0.11 means only copy orders with price above 0.11.",
    "minPricePlaceholder": "Min Price (leave empty for no limit)",
    "maxPricePlaceholder": "Max Price (leave empty for no limit)",
    "positionLimitFilter": "Max Position Limit",
    "maxPositionValue": "Max Position Value (USDC)",
    "maxPositionValueTooltip": "Limit the maximum position value for a single market. If the current position value + copy order amount exceeds this limit, the order will not be placed. Leave empty to disable",
    "maxPositionValuePlaceholder": "For example: 100 (optional, leave empty to disable)",
    "supportSell": "Support Sell",
    "supportSellTooltip": "Whether to copy Leader's sell orders. Enabled: copy both Leader's buy and sell orders; Disabled: only copy Leader's buy orders, ignore sell orders.",
    "pushFilteredOrders": "Push Filtered Orders",
    "pushFilteredOrdersTooltip": "When enabled, filtered orders will be pushed to Telegram",
    "invalidNumber": "Please enter a valid number"
  },
  "copyTradingAdd": {
    "title": "Add Copy Trading Config",
    "back": "Back",
    "selectWallet": "Select Wallet",
    "selectWalletPlaceholder": "Please select wallet",
    "walletRequired": "Please select wallet",
    "selectLeader": "Select Leader",
    "selectLeaderPlaceholder": "Please select Leader",
    "leaderRequired": "Please select Leader",
    "enabled": "Enabled Status",
    "selectTemplate": "Select Template",
    "selectTemplateFromModal": "Fill Config from Template",
    "templateFilled": "Template content filled, you can modify",
    "basicConfig": "Basic Config",
    "copyMode": "Copy Amount Mode",
    "copyModeTooltip": "Select the calculation method for copy amount. Ratio mode: copy amount changes proportionally with Leader order size; Fixed amount mode: copy amount remains fixed regardless of Leader order size.",
    "ratioMode": "Ratio Mode",
    "fixedAmountMode": "Fixed Amount Mode",
    "ratio": "Ratio",
    "fixed": "Fixed",
    "copyRatio": "Copy Ratio",
    "copyRatioTooltip": "Copy ratio represents the percentage of copy amount relative to Leader order amount. For example: 100% means 1:1 copy, 50% means half position copy, 200% means double copy",
    "copyRatioPlaceholder": "For example: 100 means 100% (1:1 copy), default 100%",
    "fixedAmount": "Fixed Copy Amount (USDC)",
    "fixedAmountPlaceholder": "Fixed amount, does not change with Leader order size, must be >= 1",
    "fixedAmountRequired": "Please enter fixed copy amount",
    "fixedAmountMin": "Fixed amount must be >= 1",
    "maxOrderSize": "Max Order Size (USDC)",
    "maxOrderSizeTooltip": "In ratio mode, limits the maximum amount cap for single copy order",
    "maxOrderSizePlaceholder": "Only effective in ratio mode (optional)",
    "minOrderSize": "Min Order Size (USDC)",
    "minOrderSizeTooltip": "In ratio mode, limits the minimum amount floor for single copy order, must be >= 1",
    "minOrderSizePlaceholder": "Only effective in ratio mode, must be >= 1 (optional)",
    "minOrderSizeMin": "Minimum amount must be >= 1",
    "maxDailyLoss": "Max Daily Loss Limit (USDC)",
    "maxDailyLossTooltip": "Limits the maximum daily loss amount, used for risk control",
    "maxDailyLossPlaceholder": "Default 10000 USDC (optional)",
    "maxDailyOrders": "Max Daily Copy Orders",
    "maxDailyOrdersTooltip": "Limits the maximum number of copy orders per day",
    "maxDailyOrdersPlaceholder": "Default 100 (optional)",
    "priceTolerance": "Price Tolerance (%)",
    "priceToleranceTooltip": "Allowed adjustment range for copy price based on Leader price",
    "priceTolerancePlaceholder": "Default 5% (optional)",
    "delaySeconds": "Copy Delay (seconds)",
    "delaySecondsTooltip": "Copy delay time, 0 means copy immediately",
    "delaySecondsPlaceholder": "Default 0 (copy immediately)",
    "filterConditions": "Filter Conditions (Optional)",
    "minOrderDepth": "Min Order Depth (USDC)",
    "minOrderDepthTooltip": "Check total order amount (bids + asks) in orderbook to ensure sufficient liquidity. Leave empty to disable",
    "minOrderDepthPlaceholder": "For example: 100 (optional, leave empty to disable)",
    "maxSpread": "Max Spread (Absolute Price)",
    "maxSpreadTooltip": "Maximum spread (absolute price). Avoid copying in markets with excessive spreads. Leave empty to disable",
    "maxSpreadPlaceholder": "For example: 0.05 (5 cents, optional, leave empty to disable)",
    "minOrderbookDepth": "Min Orderbook Depth (USDC)",
    "minOrderbookDepthTooltip": "Minimum orderbook depth (USDC amount), NULL means this filter is not enabled. Check depth of first N levels",
    "minOrderbookDepthPlaceholder": "For example: 50 (optional, leave empty to disable)",
    "priceRangeFilter": "Price Range Filter",
    "priceRange": "Price Range",
    "priceRangeTooltip": "Only copy orders where Leader's trade price is within the specified range. Leave empty to disable. Examples: Fill 0.11 and 0.89 means only copy orders with price between 0.11 and 0.89; Fill only max price 0.89 means only copy orders with price below 0.89; Fill only min price 0.11 means only copy orders with price above 0.11.",
    "minPricePlaceholder": "Min Price (leave empty for no limit)",
    "maxPricePlaceholder": "Max Price (leave empty for no limit)",
    "positionLimitFilter": "Max Position Limit",
    "maxPositionValue": "Max Position Value (USDC)",
    "maxPositionValueTooltip": "Limit the maximum position value for a single market. If the current position value + copy order amount exceeds this limit, the order will not be placed. Leave empty to disable",
    "maxPositionValuePlaceholder": "For example: 100 (optional, leave empty to disable)",
    "keywordFilter": "Keyword Filter",
    "keywordFilterMode": "Filter Mode",
    "keywordFilterModeTooltip": "Select keyword filter mode. Whitelist: only copy markets containing keywords; Blacklist: do not copy markets containing keywords; Disabled: no keyword filtering. Keyword matching is case-insensitive.",
    "disabled": "Disabled",
    "whitelist": "Whitelist",
    "blacklist": "Blacklist",
    "keywords": "Keywords",
    "keywordPlaceholder": "Enter keyword, press Enter to add",
    "keywordExists": "Keyword already exists",
    "whitelistTooltip": "💡 Whitelist mode: only copy markets whose titles contain any of the above keywords (case-insensitive)",
    "blacklistTooltip": "💡 Blacklist mode: do not copy markets whose titles contain any of the above keywords (case-insensitive)",
    "marketEndDateFilter": "Market End Date Limit",
    "maxMarketEndDate": "Max Market End Date",
    "maxMarketEndDateTooltip": "Only copy orders with market end time less than the set time. For example: 24 hours means only copy markets with less than 24 hours remaining until settlement",
    "maxMarketEndDatePlaceholder": "Enter time value (optional)",
    "timeUnit": "Unit",
    "hour": "Hours",
    "day": "Days",
    "maxMarketEndDateNote": "💡 Note: Leave blank to disable this filter",
    "configName": "Configuration Name",
    "configNameRequired": "Please enter configuration name",
    "configNamePlaceholder": "e.g., Copy Trading Config 1",
    "configNameTooltip": "Set a name for the copy trading configuration for easy identification and management",
    "advancedSettings": "Advanced Settings",
    "pushFailedOrders": "Push Failed Orders",
    "pushFailedOrdersTooltip": "When enabled, failed orders will be pushed to Telegram",
    "pushFilteredOrders": "Push Filtered Orders",
    "pushFilteredOrdersTooltip": "When enabled, filtered orders will be pushed to Telegram",
    "autoRedeem": "Auto Redeem",
    "autoRedeemTooltip": "When enabled, the system will automatically redeem redeemable positions. Requires Builder API Key configuration to take effect",
    "builderApiKeyNotConfigured": "Builder API Key Not Configured",
    "builderApiKeyNotConfiguredDesc": "Auto redeem feature requires Builder API Key configuration to take effect.",
    "goToConfigure": "Go to Configure",
    "supportSell": "Support Sell",
    "supportSellTooltip": "Whether to copy Leader's sell orders",
    "create": "Create Copy Trading Config",
    "createSuccess": "Copy trading config created successfully",
    "createFailed": "Failed to create copy trading config",
    "invalidNumber": "Please enter a valid number",
    "fetchLeaderFailed": "Failed to get Leader list",
    "fetchTemplateFailed": "Failed to get template list",
    "templateName": "Template Name",
    "noAccounts": "No accounts",
    "importAccount": "Import Account",
    "noLeaders": "No Leaders",
    "addLeader": "Add Leader",
    "leaderAssetInfo": "Leader Asset Info",
    "loadingAssetInfo": "Loading asset info...",
    "totalAsset": "Total Assets",
    "availableBalance": "Available Balance",
    "positionAsset": "Position Assets",
    "fetchAssetInfoFailed": "Failed to fetch asset info"
  },
  "copyTradingEdit": {
    "title": "Edit Copy Trading Config",
    "back": "Back",
    "wallet": "Wallet",
    "leader": "Leader",
    "selectWallet": "Wallet",
    "selectLeader": "Leader",
    "basicConfig": "Basic Config",
    "copyMode": "Copy Amount Mode",
    "copyModeTooltip": "Select the calculation method for copy amount",
    "ratioMode": "Ratio Mode",
    "fixedAmountMode": "Fixed Amount Mode",
    "copyRatio": "Copy Ratio",
    "copyRatioTooltip": "Copy ratio represents the percentage of copy amount relative to Leader order amount",
    "copyRatioPlaceholder": "For example: 100 means 100% (1:1 copy)",
    "fixedAmount": "Fixed Copy Amount (USDC)",
    "fixedAmountPlaceholder": "Fixed amount, does not change with Leader order size, must be >= 1",
    "fixedAmountRequired": "Please enter fixed copy amount",
    "fixedAmountMin": "Fixed amount must be >= 1",
    "maxOrderSize": "Max Order Size (USDC)",
    "maxOrderSizeTooltip": "In ratio mode, limits the maximum amount cap for single copy order",
    "maxOrderSizePlaceholder": "Only effective in ratio mode (optional)",
    "minOrderSize": "Min Order Size (USDC)",
    "minOrderSizeTooltip": "In ratio mode, limits the minimum amount floor for single copy order, must be >= 1",
    "minOrderSizePlaceholder": "Only effective in ratio mode, must be >= 1 (optional)",
    "minOrderSizeMin": "Minimum amount must be >= 1",
    "maxDailyLoss": "Max Daily Loss Limit (USDC)",
    "maxDailyLossTooltip": "Limits the maximum daily loss amount, used for risk control",
    "maxDailyLossPlaceholder": "Default 10000 USDC (optional)",
    "maxDailyOrders": "Max Daily Copy Orders",
    "maxDailyOrdersTooltip": "Limits the maximum number of copy orders per day",
    "maxDailyOrdersPlaceholder": "Default 100 (optional)",
    "priceTolerance": "Price Tolerance (%)",
    "priceToleranceTooltip": "Allowed adjustment range for copy price based on Leader price",
    "priceTolerancePlaceholder": "Default 5% (optional)",
    "delaySeconds": "Copy Delay (seconds)",
    "delaySecondsTooltip": "Copy delay time, 0 means copy immediately",
    "delaySecondsPlaceholder": "Default 0 (copy immediately)",
    "filterConditions": "Filter Conditions (Optional)",
    "minOrderDepth": "Min Order Depth (USDC)",
    "minOrderDepthTooltip": "Check total order amount (bids + asks) in orderbook to ensure sufficient liquidity. Leave empty to disable",
    "minOrderDepthPlaceholder": "For example: 100 (optional, leave empty to disable)",
    "maxSpread": "Max Spread (Absolute Price)",
    "maxSpreadTooltip": "Maximum spread (absolute price). Avoid copying in markets with excessive spreads. Leave empty to disable",
    "maxSpreadPlaceholder": "For example: 0.05 (5 cents, optional, leave empty to disable)",
    "minOrderbookDepth": "Min Orderbook Depth (USDC)",
    "minOrderbookDepthTooltip": "Minimum orderbook depth (USDC amount), NULL means this filter is not enabled",
    "minOrderbookDepthPlaceholder": "For example: 50 (optional, leave empty to disable)",
    "priceRangeFilter": "Price Range Filter",
    "priceRange": "Price Range",
    "priceRangeTooltip": "Only copy orders where Leader's trade price is within the specified range. Leave empty to disable. Examples: Fill 0.11 and 0.89 means only copy orders with price between 0.11 and 0.89; Fill only max price 0.89 means only copy orders with price below 0.89; Fill only min price 0.11 means only copy orders with price above 0.11.",
    "minPricePlaceholder": "Min Price (leave empty for no limit)",
    "maxPricePlaceholder": "Max Price (leave empty for no limit)",
    "positionLimitFilter": "Max Position Limit",
    "maxPositionValue": "Max Position Value (USDC)",
    "maxPositionValueTooltip": "Limit the maximum position value for a single market. If the current position value + copy order amount exceeds this limit, the order will not be placed. Leave empty to disable",
    "maxPositionValuePlaceholder": "For example: 100 (optional, leave empty to disable)",
    "keywordFilter": "Keyword Filter",
    "keywordFilterMode": "Filter Mode",
    "keywordFilterModeTooltip": "Select keyword filter mode. Whitelist: only copy markets containing keywords; Blacklist: do not copy markets containing keywords; Disabled: no keyword filtering. Keyword matching is case-insensitive.",
    "disabled": "Disabled",
    "whitelist": "Whitelist",
    "blacklist": "Blacklist",
    "keywords": "Keywords",
    "keywordPlaceholder": "Enter keyword, press Enter to add",
    "keywordExists": "Keyword already exists",
    "whitelistTooltip": "💡 Whitelist mode: only copy markets whose titles contain any of the above keywords (case-insensitive)",
    "blacklistTooltip": "💡 Blacklist mode: do not copy markets whose titles contain any of the above keywords (case-insensitive)",
    "marketEndDateFilter": "Market End Date Limit",
    "maxMarketEndDate": "Max Market End Date",
    "maxMarketEndDateTooltip": "Only copy orders with market end time less than the set time. For example: 24 hours means only copy markets with less than 24 hours remaining until settlement",
    "maxMarketEndDatePlaceholder": "Enter time value (optional)",
    "timeUnit": "Unit",
    "hour": "Hours",
    "day": "Days",
    "maxMarketEndDateNote": "💡 Note: Leave blank to disable this filter",
    "configName": "Configuration Name",
    "configNameRequired": "Please enter configuration name",
    "configNamePlaceholder": "e.g., Copy Trading Config 1",
    "configNameTooltip": "Set a name for the copy trading configuration for easy identification and management",
    "advancedSettings": "Advanced Settings",
    "pushFailedOrders": "Push Failed Orders",
    "pushFailedOrdersTooltip": "When enabled, failed orders will be pushed to Telegram",
    "pushFilteredOrders": "Push Filtered Orders",
    "pushFilteredOrdersTooltip": "When enabled, filtered orders will be pushed to Telegram",
    "autoRedeem": "Auto Redeem",
    "autoRedeemTooltip": "When enabled, the system will automatically redeem redeemable positions. Requires Builder API Key configuration to take effect",
    "builderApiKeyNotConfigured": "Builder API Key Not Configured",
    "builderApiKeyNotConfiguredDesc": "Auto redeem feature requires Builder API Key configuration to take effect.",
    "goToConfigure": "Go to Configure",
    "supportSell": "Support Sell",
    "supportSellTooltip": "Whether to copy Leader's sell orders",
    "save": "Save",
    "saveSuccess": "Copy trading config updated successfully",
    "saveFailed": "Failed to update copy trading config",
    "fetchFailed": "Failed to get copy trading config",
    "invalidNumber": "Please enter a valid number"
  },
  "filteredOrdersList": {
    "title": "Filtered Orders List",
    "fetchFailed": "Failed to fetch filtered orders list",
    "market": "Market",
    "outcome": "Outcome",
    "price": "Price",
    "size": "Size",
    "side": "Order Side",
    "calculatedQuantity": "Calculated Quantity",
    "filterType": "Filter Type",
    "filterReason": "Filter Reason",
    "createdAt": "Time",
    "filterByType": "Filter by Type",
    "filterTypes": {
      "orderDepth": "Insufficient Order Depth",
      "spread": "Spread Too Large",
      "orderbookDepth": "Insufficient Orderbook Depth",
      "priceValidity": "Invalid Price",
      "marketStatus": "Market Not Tradable",
      "orderbookError": "Orderbook Fetch Failed",
      "orderbookEmpty": "Orderbook Empty",
      "priceRange": "Price Range Mismatch",
      "maxPositionValue": "Exceeds Max Position Value",
      "marketEndDate": "Market End Date Exceeds Limit",
      "keywordFilter": "Keyword Filter",
      "unknown": "Unknown Reason"
    },
    "orderDetails": "Order Details",
    "noData": "No filtered orders",
    "noFilteredOrders": "No filtered orders"
  },
  "copyTradingList": {
    "title": "Copy Trading Config Management",
    "addCopyTrading": "Add Copy Trading",
    "configName": "Config Name",
    "configNameNotProvided": "Not Provided",
    "wallet": "Wallet",
    "account": "Account",
    "template": "Template",
    "leader": "Leader",
    "copyMode": "Copy Mode",
    "ratioMode": "Ratio",
    "fixedAmountMode": "Fixed",
    "enabled": "Enabled",
    "disabled": "Disabled",
    "totalPnl": "Total P&L",
    "statistics": "Statistics",
    "orders": "Orders",
    "matchedOrders": "Matched Orders",
    "ordersButton": "Orders",
    "viewStatistics": "View Statistics",
    "buyOrders": "Buy Orders",
    "sellOrders": "Sell Orders",
    "filteredOrders": "Filtered Orders",
    "filterWallet": "Filter Wallet",
    "filterTemplate": "Filter Template",
    "filterLeader": "Filter Leader",
    "fetchFailed": "Failed to get copy trading list",
    "startSuccess": "Copy trading started successfully",
    "stopSuccess": "Copy trading stopped successfully",
    "updateStatusFailed": "Failed to update copy trading status",
    "deleteSuccess": "Copy trading deleted successfully",
    "deleteFailed": "Failed to delete copy trading",
    "deleteConfirm": "Are you sure you want to delete this copy trading relationship?"
  },
  "notificationSettings": {
    "title": "Notification Settings",
    "addConfig": "Add Configuration",
    "editConfig": "Edit Configuration",
    "configName": "Configuration Name",
    "configNamePlaceholder": "e.g., My Telegram Bot",
    "configNameRequired": "Please enter configuration name",
    "type": "Notification Type",
    "typeRequired": "Please select notification type",
    "enabled": "Enabled Status",
    "status": "Status",
    "enabledStatus": "Enabled",
    "disabledStatus": "Disabled",
    "chatIds": "Chat IDs",
    "chatIdsPlaceholder": "Chat IDs (click button above to auto-fetch, or enter manually, separate multiple with commas)",
    "chatIdsRequired": "Please enter at least one Chat ID",
    "chatIdsExtra": "Multiple Chat IDs separated by commas, e.g., 123456789,987654321. Click button above to auto-fetch (need to send message to bot first)",
    "chatIdsCount": " recipients",
    "chatIdsNotConfigured": "Not Configured",
    "edit": "Edit",
    "test": "Test",
    "delete": "Delete",
    "deleteConfirm": "Are you sure you want to delete this configuration?",
    "enableSuccess": "Enabled",
    "disableSuccess": "Disabled",
    "updateStatusFailed": "Failed to update",
    "deleteSuccess": "Deleted successfully",
    "deleteFailed": "Failed to delete",
    "createSuccess": "Created successfully",
    "createFailed": "Failed to create",
    "updateSuccess": "Updated successfully",
    "updateFailed": "Failed to update",
    "fetchFailed": "Failed to get configuration list",
    "testSuccess": "Test message sent successfully, please check Telegram",
    "testFailed": "Failed to send test message",
    "getChatIdsSuccess": "Successfully fetched {count} Chat ID(s)",
    "getChatIdsFailed": "Failed to get Chat IDs",
    "getChatIdsNoToken": "Please enter Bot Token first",
    "getChatIdsNoMessage": "Chat ID not found, please send a message to the bot first (e.g., /start), then retry",
    "getChatIdsButton": "Get Chat ID"
  },
  "telegramConfig": {
    "title": "Telegram Configuration Guide",
    "step1": "Create a Telegram bot via <strong>@BotFather</strong> and get Bot Token",
    "step2": "After entering Bot Token, click 'Get Chat ID' button to auto-fetch (need to send message to bot first)",
    "step3": "Or manually get Chat ID via <strong>@userinfobot</strong>",
    "step4": "Support multiple Chat IDs (separated by commas), all configured users will receive notifications",
    "step5": "Telegram messages will be sent automatically when orders succeed or fail",
    "botToken": "Bot Token",
    "botTokenPlaceholder": "Bot Token (from @BotFather)",
    "botTokenRequired": "Please enter Bot Token"
  },
  "discordConfig": {
    "title": "Discord Configuration Guide",
    "step1": "Create a Webhook in Discord server",
    "step2": "Copy Webhook URL and enter in configuration",
    "step3": "Discord messages will be sent automatically when orders succeed or fail",
    "webhookUrl": "Webhook URL",
    "webhookUrlPlaceholder": "Webhook URL (from Discord server settings)",
    "webhookUrlRequired": "Please enter Webhook URL"
  },
  "slackConfig": {
    "title": "Slack Configuration Guide",
    "step1": "Create an Incoming Webhook in Slack workspace",
    "step2": "Copy Webhook URL and enter in configuration",
    "step3": "Slack messages will be sent automatically when orders succeed or fail",
    "webhookUrl": "Webhook URL",
    "webhookUrlPlaceholder": "Webhook URL (from Slack App settings)",
    "webhookUrlRequired": "Please enter Webhook URL"
  },
  "announcements": {
    "title": "Announcements",
    "noAnnouncements": "No announcements",
    "noDetail": "Please select an announcement to view details",
    "viewMore": "View more announcements",
    "author": "Author",
    "createdAt": "Published at",
    "noTitle": "No title",
    "expand": "Expand all",
    "collapse": "Collapse",
    "refresh": "Refresh",
    "list": "List"
  },
  "copyTradingOrders": {
    "title": "Order List",
    "buyOrders": "Buy Orders",
    "sellOrders": "Sell Orders",
    "matchedOrders": "Matched Orders",
    "filteredOrders": "Filtered Orders",
    "statistics": "Copy Trading Statistics",
    "orderId": "Order ID",
    "leaderTradeId": "Leader Trade ID",
    "market": "Market",
    "marketId": "Market ID",
    "side": "Side",
    "buyQuantity": "Buy Quantity",
    "buyPrice": "Buy Price",
    "buyAmount": "Buy Amount",
    "sellQuantity": "Sell Quantity",
    "sellPrice": "Sell Price",
    "sellAmount": "Sell Amount",
    "matchedQuantity": "Matched",
    "remainingQuantity": "Remaining",
    "sellStatus": "Sell Status",
    "status": "Status",
    "statusFilled": "Filled",
    "statusPartiallySold": "Partially Sold",
    "statusFullySold": "Fully Sold",
    "realizedPnl": "Realized PnL",
    "createdAt": "Created At",
    "matchedAt": "Matched At",
    "sellOrderId": "Sell Order ID",
    "buyOrderId": "Buy Order ID",
    "priceInfo": "Price Info",
    "buy": "Buy",
    "sell": "Sell",
    "buyInfo": "Buy Info",
    "sellInfo": "Sell Info",
    "matchInfo": "Match Info",
    "matched": "Matched",
    "remaining": "Remaining",
    "quantity": "Quantity",
    "price": "Price",
    "amount": "Amount",
    "filterMarketId": "Filter Market ID",
    "filterMarketTitle": "Filter Market Title",
    "filterSide": "Filter Side",
    "filterStatus": "Filter Status",
    "filterSellOrderId": "Filter Sell Order ID",
    "filterBuyOrderId": "Filter Buy Order ID",
    "noBuyOrders": "No buy orders",
    "noSellOrders": "No sell orders",
    "noMatchedOrders": "No matched orders",
    "groupByMarket": "Group by Market",
    "expandAll": "Expand All",
    "collapseAll": "Collapse All",
    "allFullySold": "All Fully Sold",
    "notSold": "Not Sold",
    "partiallySold": "Partially Sold",
    "orderCount": "Order Count",
    "totalAmount": "Total Amount",
    "statusBreakdown": "Status",
    "allFullyMatched": "All Fully Sold",
    "partiallyMatched": "Partially Sold",
    "totalPnl": "Total PnL",
    "markets": "markets",
    "fetchBuyOrdersFailed": "Failed to fetch buy orders",
    "fetchSellOrdersFailed": "Failed to fetch sell orders",
    "fetchMatchedOrdersFailed": "Failed to fetch matched orders",
    "fetchStatisticsFailed": "Failed to fetch statistics",
    "noStatistics": "No statistics available",
    "totalBuyOrders": "Total Buy Orders",
    "totalSellOrders": "Total Sell Orders",
    "totalMatchedOrders": "Total Matched Orders",
    "totalBuyAmount": "Total Buy Amount",
    "totalSellAmount": "Total Sell Amount",
    "totalRealizedPnl": "Total Realized PnL",
    "totalUnrealizedPnl": "Total Unrealized PnL",
    "winRate": "Win Rate",
    "averagePnl": "Average PnL",
    "maxPnl": "Max PnL",
    "minPnl": "Min PnL"
  },
  "rpcNodeSettings": {
    "title": "Polygon RPC Node Configuration",
    "fetchFailed": "Failed to fetch node list",
    "checkHealthSuccess": "Health check completed",
    "checkHealthFailed": "Health check failed",
    "deleteSuccess": "Deleted successfully",
    "deleteFailed": "Failed to delete",
    "adjustPrioritySuccess": "Priority adjusted successfully",
    "adjustPriorityFailed": "Failed to adjust priority",
    "priority": "Priority",
    "providerType": "Provider",
    "name": "Name",
    "status": "Status",
    "statusHealthy": "Available",
    "statusUnhealthy": "Unavailable",
    "statusUnknown": "Unknown",
    "responseTime": "Response Time",
    "enabled": "Enabled",
    "actions": "Actions",
    "check": "Check",
    "enableSuccess": "Enabled successfully",
    "disableSuccess": "Disabled successfully",
    "updateFailed": "Update failed",
    "checkSuccess": "Check completed",
    "checkFailed": "Check failed",
    "deleteConfirm": "Are you sure you want to delete this node?",
    "deleteConfirmOk": "Confirm",
    "deleteConfirmCancel": "Cancel",
    "delete": "Delete",
    "batchCheck": "Batch Check",
    "addNode": "Add Node",
    "addNodeTitle": "Add RPC Node",
    "validateAndAdd": "Validate and Add",
    "providerTypeLabel": "Provider Type",
    "providerTypeRequired": "Please select provider type",
    "nodeNameLabel": "Node Name",
    "nodeNameRequired": "Please enter node name",
    "nodeNamePlaceholder": "e.g.: My Alchemy Node",
    "apiKeyLabel": "API Key",
    "getApiKey": "Get API Key",
    "apiKeyRequired": "Please enter API Key",
    "apiKeyPlaceholder": "Enter your API Key",
    "httpUrlLabel": "HTTP RPC URL",
    "httpUrlRequired": "Please enter HTTP RPC URL",
    "httpUrlInvalid": "Please enter a valid URL",
    "httpUrlPlaceholder": "https://polygon-rpc.com",
    "wsUrlLabel": "WebSocket URL (Optional)",
    "wsUrlInvalid": "Please enter a valid URL",
    "wsUrlPlaceholder": "wss://polygon-rpc.com",
    "validateFailed": "Node validation failed:",
    "addSuccess": "Added successfully",
    "addFailed": "Failed to add",
    "validateError": "Validation failed",
    "operationFailed": "Operation failed",
    "customNode": "Custom Node",
    "providerAlchemy": "Alchemy",
    "providerInfura": "Infura",
    "providerQuickNode": "QuickNode",
    "providerChainstack": "Chainstack",
    "providerGetBlock": "GetBlock"
  },
  "backtest": {
    "title": "Backtest",
    "taskName": "Task Name",
    "leader": "Leader",
    "initialBalance": "Initial Balance",
    "backtestDays": "Backtest Days",
    "status": "Status",
    "progress": "Progress",
    "startTime": "Start Time",
    "endTime": "End Time",
    "finalBalance": "Final Balance",
    "profitAmount": "Profit Amount",
    "profitRate": "Profit Rate",
    "totalTrades": "Total Trades",
    "buyTrades": "Buy Trades",
    "sellTrades": "Sell Trades",
    "winTrades": "Win Trades",
    "lossTrades": "Loss Trades",
    "winRate": "Win Rate",
    "maxProfit": "Max Profit",
    "maxLoss": "Max Loss",
    "maxDrawdown": "Max Drawdown",
    "avgHoldingTime": "Avg Holding Time",
    "statusPending": "Pending",
    "statusRunning": "Running",
    "statusCompleted": "Completed",
    "statusStopped": "Stopped",
    "statusFailed": "Failed",
    "createTask": "Create Backtest Task",
    "taskList": "Backtest Task List",
    "taskDetail": "Backtest Task Detail",
    "tradeRecords": "Trade Records",
    "config": "Configuration",
    "statistics": "Statistics",
    "chart": "Balance Chart",
    "createSuccess": "Created successfully",
    "createFailed": "Failed to create",
    "deleteSuccess": "Deleted successfully",
    "deleteFailed": "Failed to delete",
    "stop": "Stop",
    "stopSuccess": "Stopped successfully",
    "stopFailed": "Failed to stop",
    "retry": "Retry",
    "retrySuccess": "Retry successfully",
    "retryFailed": "Failed to retry",
    "retryConfirm": "Are you sure you want to retry this backtest task? It will continue from the breakpoint and preserve processed trades.",
    "deleteConfirm": "Are you sure you want to delete this backtest task?",
    "stopConfirm": "Are you sure you want to stop this backtest task?",
    "createCopyTrading": "Create Copy Trading",
    "createCopyTradingSuccess": "Copy trading config created successfully",
    "noTasks": "No backtest tasks",
    "noTrades": "No trade records",
    "fetchTasksFailed": "Failed to fetch task list",
    "fetchTaskDetailFailed": "Failed to fetch task detail",
    "fetchTradesFailed": "Failed to fetch trade records",
    "balanceChart": "Balance Change",
    "pnlChart": "PnL Change",
    "executionTime": "Execution Time",
    "runningDuration": "Running Duration",
    "estimatedRemaining": "Estimated Remaining",
    "leaderAddress": "Leader Address",
    "leaderName": "Leader Name",
    "copyMode": "Copy Mode",
    "copyModeRatio": "Ratio",
    "copyModeFixed": "Fixed Amount",
    "copyRatio": "Copy Ratio",
    "fixedAmount": "Fixed Amount",
    "maxOrderSize": "Max Order Size",
    "minOrderSize": "Min Order Size",
    "maxDailyLoss": "Max Daily Loss",
    "maxDailyOrders": "Max Daily Orders",
    "priceTolerance": "Price Tolerance",
    "delaySeconds": "Delay Seconds",
    "supportSell": "Copy Sell",
    "minOrderDepth": "Min Order Depth",
    "maxSpread": "Max Spread",
    "minPrice": "Min Price",
    "maxPrice": "Max Price",
    "maxPositionValue": "Max Position Value",
    "keywordFilterMode": "Keyword Filter Mode",
    "keywordFilterModeDisabled": "Disabled",
    "keywordFilterModeWhitelist": "Whitelist",
    "keywordFilterModeBlacklist": "Blacklist",
    "keywords": "Keywords",
    "maxMarketEndDate": "Market End Date Limit",
    "tradeTime": "Trade Time",
    "marketId": "Market ID",
    "marketTitle": "Market Title",
    "side": "Side",
    "sideBuy": "Buy",
    "sideSell": "Sell",
    "sideSettlement": "Settlement",
    "outcome": "Outcome",
    "quantity": "Quantity",
    "price": "Price",
    "amount": "Amount",
    "fee": "Fee",
    "profitLoss": "Profit/Loss",
    "balanceAfter": "Balance After",
    "leaderTradeId": "Leader Trade ID",
    "loading": "Loading...",
    "refreshing": "Refreshing...",
    "starting": "Starting...",
    "stopping": "Stopping...",
    "errorOccurred": "Error occurred",
    "retry": "Retry",
    "taskNameRequired": "Please enter task name",
    "leaderRequired": "Please select Leader",
    "initialBalanceRequired": "Please enter initial balance",
    "initialBalanceInvalid": "Initial balance must be greater than 0",
    "backtestDaysRequired": "Please enter backtest days",
    "backtestDaysInvalid": "Backtest days must be between 1-15",
    "copyRatioRequired": "Please enter copy ratio",
    "copyRatioInvalid": "Copy ratio must be between 0.01-10000",
    "copyRatioPlaceholder": "For example: 100 means 100% (1:1 copy), default 100%",
    "copyRatioTooltip": "Copy ratio represents the percentage of copy amount relative to Leader order amount. For example: 100% means 1:1 copy, 50% means half position copy, 200% means double copy",
    "fixedAmountRequired": "Please enter fixed amount",
    "fixedAmountInvalid": "Fixed amount must be greater than 0",
    "priceFilters": "Price Filters",
    "keywordsPlaceholder": "Please enter keywords, press Enter to add",
    "maxPositionValuePlaceholder": "Leave empty to disable max position limit",
    "delaySecondsHint": "Delay execution to simulate real copy trading delay",
    "supportSellHint": "Whether to follow Leader sell orders",
    "sortBy": "Sort By",
    "sortOrder": "Sort Order",
    "createdAt": "Created At",
    "rerun": "Re-run",
    "rerunConfirm": "Create a new backtest task with the same config?",
    "rerunTaskNamePlaceholder": "New task name (leave empty for \"Original name (copy)\")",
    "rerunSuccess": "New backtest task created",
    "rerunFailed": "Re-run failed"
  }
}