{ "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", "later": "Later", "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", "orders": "orders" }, "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", "walletType": "Wallet Type", "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", "walletType": "Wallet Type", "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", "noData": "No account data" }, "accountImport": { "title": "Import Account", "back": "Back", "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.)", "loadingProxyOptions": "Loading proxy addresses and asset information...", "selectProxyOption": "Please select account type", "proxyOptionRequired": "Please select a proxy address", "proxyOption": { "magic": { "description": "Email/Social Login Account (Magic)", "title": "Magic Proxy Address" }, "safe": { "description": "MetaMask Browser Wallet Account (Safe)", "title": "Safe Proxy Address" }, "proxyAddress": "Proxy Address", "proxyAddressHelp": "The proxy address is the wallet address you actually use on Polymarket: Magic for email/social login accounts, Safe for browser wallet (e.g. MetaMask) accounts. Please select the one that matches how you log in to Polymarket.", "availableBalance": "Available Balance", "positionBalance": "Position Balance", "totalBalance": "Total Balance", "positionCount": "Position Count", "noAssets": "No Assets", "hasAssets": "Has Assets", "error": "Failed to fetch", "select": "Select this proxy address" } }, "accountSetup": { "title": "Account Setup Check", "completed": "Completed", "pending": "Pending", "refresh": "Refresh Status", "allCompleted": { "title": "All Setup Completed", "description": "Your account is ready to use all features." }, "incomplete": { "title": "Account Setup Incomplete", "description": "Please complete the following setup steps to ensure your account works properly." }, "step1": { "title": "Deploy Proxy Wallet", "description": "Proxy wallet is required for trading on Polymarket. Safe accounts can deploy with one click; Magic accounts will be redirected to Polymarket.", "action": "Deploy Proxy Wallet" }, "step2": { "title": "Enable Trading", "description": "API credentials are required for trading. Click the button below to let the system automatically obtain and save the API Key.", "action": "Enable Trading (One-Click)" }, "step3": { "title": "Approve Tokens", "description": "You need to authorize the proxy wallet to use your USDC tokens. Click the button below to complete token approval automatically.", "action": "Approve Tokens (One-Click)" }, "approvalDetails": { "title": "Token Approval Details", "CTF_CONTRACT": "CTF Contract", "CTF_EXCHANGE": "CTF Exchange", "NEG_RISK_EXCHANGE": "Neg Risk Exchange", "NEG_RISK_ADAPTER": "Neg Risk Adapter", "notApproved": "Not Approved", "unlimited": "Unlimited" }, "error": { "title": "Check Failed", "description": "Unable to check account setup status, please try again later." }, "actionSuccess": "Operation successful", "actionFailed": "Operation failed, please try again later", "help": "Tip: After completing the setup, click the \"Refresh Status\" button to update the check results. If all steps are completed, you can use account features normally." }, "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", "cryptoSpreadStrategy": "Crypto Spread Strategy", "cryptoTailStrategy": "Strategy Config", "cryptoTailMonitor": "Real-time Monitor", "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", "checkResult": { "connection": "Proxy connection", "connected": "OK", "failed": "Failed", "latency": "Response time", "detail": "Details", "geoblockOk": "Can trade", "geoblockBlocked": "Region restricted", "geoblockUnknown": "Check failed" }, "checkSuccessWithGeoblockWarning": "Proxy is OK, but trading region is restricted", "geoblockTitle": "Geo check", "geoblockAvailable": "Egress IP can trade ({{location}})", "geoblockBlocked": "Egress IP is restricted and orders are blocked ({{location}})" }, "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" } }, "systemUpdate": { "title": "System Update", "currentVersion": "Current Version", "ready": "Ready", "hasNewVersion": "New version available: {{version}}", "alreadyLatest": "You are on the latest version", "checkFailed": "Failed to check for updates", "confirmTitle": "Confirm Update", "confirmContent1": "Update to version {{version}}?", "confirmContent2": "The system will be temporarily unavailable during the update (about 30-60 seconds).", "confirmContent3": "The page will refresh automatically when the update completes.", "okText": "Update Now", "cancelText": "Cancel", "updateStarted": "Update started, please wait...", "updateFailedWithMessage": "Update failed: {{message}}", "updateSuccessRefresh": "Update successful! Page will refresh in 3 seconds...", "needAdmin": "Admin permission required to perform update", "startFailed": "Failed to start update", "updating": "System is updating", "updateFailedTitle": "Update Failed", "checkUpdate": "Check for Updates", "newVersionFound": "New Version Available", "publishedAt": "Published At", "releaseNotes": "Release Notes", "upgradeNow": "Upgrade to v{{version}} Now", "usageTitle": "Instructions", "usage1": "Click \"Check for Updates\" to see if a new version is available", "usage2": "Update takes about 30-60 seconds; the system will be temporarily unavailable", "usage3": "The page will refresh automatically after a successful update", "usage4": "If the update fails, the system will roll back to the current version", "versionTooltipNew": "New version available, click to go to System Update", "versionTooltipLatest": "You are on the latest version", "prerelease": "Pre-release" }, "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", "noData": "No user data" }, "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?", "profitRate": "Profit Rate", "noData": "No copy trading configuration" }, "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", "botConfig": "Bot Configuration", "templateConfig": "Template Configuration", "templates": { "title": "Message Template Configuration", "templateType": "Template Type", "templateContent": "Template Content", "isDefault": "Default Template", "isCustom": "Custom Template", "resetToDefault": "Reset to Default", "resetConfirm": "Are you sure you want to reset to default? Your custom content will be lost.", "resetSuccess": "Reset successfully", "resetFailed": "Reset failed", "saveSuccess": "Saved successfully", "saveFailed": "Save failed", "testSuccess": "Test message sent successfully, please check Telegram", "testFailed": "Failed to send test message", "variables": "Available Variables", "clickToCopy": "Click to copy", "copied": "Copied", "commonVariables": "Common Variables", "orderVariables": "Order Variables", "copyTradingVariables": "Copy Trading Variables", "redeemVariables": "Redeem Variables", "errorVariables": "Error Variables", "filterVariables": "Filter Variables", "strategyVariables": "Strategy Variables", "contentPlaceholder": "Enter template content here, use {{variable}} to insert dynamic content", "variableLabels": { "account_name": "Account Name", "wallet_address": "Wallet Address", "time": "Time", "order_id": "Order ID", "market_title": "Market Title", "market_link": "Market Link", "side": "Side", "outcome": "Outcome", "price": "Price", "quantity": "Quantity", "amount": "Amount", "available_balance": "Available Balance", "leader_name": "Leader Name", "config_name": "Copy Trading Config Name", "error_message": "Error Message", "filter_type": "Filter Type", "filter_reason": "Filter Reason", "strategy_name": "Strategy Name", "transaction_hash": "Transaction Hash", "total_value": "Total Redeem Value" }, "variableDescriptions": { "account_name": "Account name executing the order", "wallet_address": "Wallet address (masked)", "time": "Notification send time", "order_id": "Unique order identifier", "market_title": "Market/Event name", "market_link": "Polymarket market link", "side": "Order direction (Buy/Sell)", "outcome": "Market outcome (YES/NO, etc.)", "price": "Order price", "quantity": "Order quantity (shares)", "amount": "Order amount (USDC)", "available_balance": "Account available balance (USDC)", "leader_name": "Leader name/alias being copied", "config_name": "Copy trading configuration name", "error_message": "Order failure reason", "filter_type": "Type of order filter", "filter_reason": "Detailed reason for order filtering", "strategy_name": "Crypto spread strategy name", "transaction_hash": "Redeem transaction hash", "total_value": "Total redeem value (USDC)" } }, "templateTypes": { "ORDER_SUCCESS": "Order Success", "ORDER_FAILED": "Order Failed", "ORDER_FILTERED": "Order Filtered", "CRYPTO_TAIL_SUCCESS": "Crypto Spread Strategy Success", "REDEEM_SUCCESS": "Position Redeem Success", "REDEEM_NO_RETURN": "Position Settled (No Return)" }, "templateTypeDescriptions": { "ORDER_SUCCESS": "Notification sent when order is successfully created", "ORDER_FAILED": "Notification sent when order creation fails", "ORDER_FILTERED": "Notification sent when order is filtered by risk control", "CRYPTO_TAIL_SUCCESS": "Notification sent when crypto spread strategy order succeeds", "REDEEM_SUCCESS": "Notification sent when position is successfully redeemed", "REDEEM_NO_RETURN": "Notification sent when position is settled with no return" } }, "telegramConfig": { "title": "Telegram Configuration Guide", "step1": "Create a Telegram bot via @BotFather 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 @userinfobot", "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" }, "geoblock": { "title": "Trading Region Check", "checking": "Checking geographic restrictions for the trading server egress IP…", "checkingShort": "Checking server region…", "ip": "Detected IP", "location": "Region", "refresh": "Refresh", "viewDocs": "View official geo restrictions", "viewDocsShort": "Docs", "sourceServer": "Source: trading server", "menu": { "ok": "Region OK · {{location}}", "blocked": "Restricted · {{location}}" }, "available": { "title": "Trading server can place orders on Polymarket", "description": "IP: {{ip}}, region: {{location}}", "short": "Server OK · {{location}} · {{ip}}" }, "blocked": { "title": "Trading server IP is in a restricted region", "description": "Polymarket rejects orders from restricted regions. Configure a compliant network or proxy for your trading server before copy trading.", "short": "Server IP restricted ({{location}} · {{ip}}) — orders blocked" }, "unknown": { "title": "Could not complete region check", "description": "Check server network, proxy settings, or try again later. You can still read announcements, but verify your network before copy trading.", "short": "Region check failed" } }, "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", "balance": "Balance (Init→Final)", "profit": "Profit (Amount/Rate)", "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", "noData": "No backtest data", "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", "priceRange": "Price Range", "priceRangeTooltip": "Only copy Leader orders with price within the specified range. Leave empty to disable. Example: Enter 0.11 and 0.89 to only copy orders with price between 0.11 and 0.89; enter only max price 0.89 to only copy orders with price below 0.89; enter only min price 0.11 to only copy orders with price above 0.11.", "minPricePlaceholder": "Min price (leave empty to disable)", "maxPricePlaceholder": "Max price (leave empty to disable)", "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" }, "cryptoTailStrategy": { "binanceApiAlert": { "title": "Cannot connect to Binance API — strategy cannot run for now", "description": "Crypto spread strategy needs Binance market data to work. The connection failed; this may be a network issue or Binance outage. Try again later by clicking the button below.", "recheck": "Re-check" }, "list": { "title": "Crypto Spread Strategy", "walletTip": "Use a dedicated wallet for crypto spread strategy. Do not use it for manual trading or copy trading to avoid balance/position issues.", "addStrategy": "Add Strategy", "strategyName": "Strategy Name", "account": "Account", "market": "Market", "marketAndTime": "Market / Time", "timeWindow": "Time Window", "config": "Config", "priceRange": "Price Range", "amountMode": "Amount Mode", "ratio": "Ratio", "fixed": "Fixed", "totalRealizedPnl": "Total PnL", "winRate": "Win Rate", "actions": "Actions", "edit": "Edit", "enable": "Enable", "disable": "Disable", "delete": "Delete", "viewTriggers": "Orders", "viewPnlCurve": "PnL Curve", "deleteConfirm": "Delete this strategy?", "fetchFailed": "Failed to fetch list", "configGuide": "Configuration Guide" }, "form": { "walletTip": "Use a dedicated wallet to avoid balance or order issues.", "strategyName": "Strategy Name", "strategyNamePlaceholder": "Optional, leave blank to auto-generate", "selectAccount": "Select Account", "selectMarket": "Select Market", "timeWindowStart": "Window Start", "timeWindowEnd": "Window End", "minute": "min", "second": "sec", "minPrice": "Min Price", "maxPrice": "Max Price", "maxPricePlaceholder": "Default 1", "amountMode": "Amount Mode", "ratioPercent": "Ratio %", "fixedUsdc": "Fixed (USDC)", "enabled": "Enabled", "create": "Create", "update": "Update", "timeWindowStartLEEnd": "Window start must not be greater than end", "timeWindowExceed": "Time window must not exceed period length", "spreadMode": "Spread", "spreadModeTip": "Whether to place an order is based on the spread between open and close in the current period. Auto: system computes a suggested spread from the last 20 klines (updated each period); Fixed: you enter a value (e.g. 30); None: no spread check, order when price is in range.", "spreadModeNone": "None", "spreadModeFixed": "Fixed", "spreadModeAuto": "Auto", "spreadValue": "Spread value (USDC)", "spreadValuePlaceholder": "e.g. 30", "spreadDirection": "Spread Direction", "spreadDirectionTip": "Min spread: trigger when spread ≥ configured value, buy price fixed at 0.99; Max spread: trigger when spread ≤ configured value, buy price = trigger price + 0.02 (suitable for low-price buying).", "spreadDirectionMin": "Min Spread", "spreadDirectionMax": "Max Spread" }, "redeemRequiredModal": { "title": "Configure Auto Redeem First", "description": "Crypto spread strategy requires auto redeem. Please configure Builder API Key and enable auto redeem in System Settings.", "goToSettings": "Go to Settings", "cancel": "Cancel" }, "triggerRecords": { "title": "Trigger Records", "timeRange": "Time Range", "startDate": "Start Date", "endDate": "End Date", "successTab": "Success", "failTab": "Failed", "triggerTime": "Time", "market": "Market", "direction": "Direction", "up": "Up", "down": "Down", "triggerPrice": "Trigger Price", "amount": "Amount", "orderId": "Order ID", "status": "Status", "success": "Success", "fail": "Fail", "failReason": "Failure Reason", "realizedPnl": "PnL", "resolved": "Settled", "emptySuccess": "No success records", "emptyFail": "No failed records", "totalCount": "{count} record(s)" }, "pnlCurve": { "title": "PnL Curve", "totalPnl": "Total PnL", "settledCount": "Settled", "winRate": "Win Rate", "maxDrawdown": "Max Drawdown", "timeRange": "Time Range", "today": "Today", "last7Days": "Last 7 Days", "last30Days": "Last 30 Days", "all": "All", "customRange": "Custom", "empty": "No settled orders yet, cannot show PnL curve" } }, "cryptoTailMonitor": { "title": "Crypto Spread Strategy Monitor", "selectStrategy": "Strategy", "selectStrategyPlaceholder": "Select a strategy to monitor", "direction": "Direction", "directionUp": "Up", "directionDown": "Down", "noData": "Select a strategy to start monitoring", "priceRange": "Price Range", "timeWindow": "Time Window", "stat": { "openPrice": "Open Price", "currentPrice": "Current Price", "spread": "Spread", "remainingTime": "Remaining", "configuredSpread": "Configured Spread", "configuredSpreadMin": "Min Spread", "configuredSpreadMax": "Max Spread", "status": "Status", "minSpreadLine": "Min Spread", "periodSpreadMinMax": "Period Spread", "periodSpreadMin": "Period Min Spread", "periodSpreadMax": "Period Max Spread", "minSpread": "Min", "maxSpread": "Max" }, "status": { "triggered": "Triggered", "periodEnded": "Period Ended", "inCondition": "In Condition", "waiting": "Waiting" }, "chart": { "title": "Price Chart", "btcTitle": "BTC Price Chart", "marketTitle": "Market Price Chart", "priceChart": "Price Chart", "price": "Price", "openPrice": "Open", "spread": "Spread", "minSpreadLine": "Min Spread Line", "maxSpreadLine": "Max Spread Line", "marketUp": "Up", "marketDown": "Down", "time": "Time", "latestPrice": "Latest", "timeWindowStart": "Window Start", "timeWindowEnd": "Window End" }, "strategyInfo": { "title": "Strategy Info", "market": "Market", "interval": "Interval", "account": "Account", "spreadMode": "Spread Mode", "spreadDirection": "Spread Direction" }, "periodSwitch": { "mode": "Period Switch Mode", "auto": "Auto", "manual": "Manual", "autoDesc": "Automatically switch to the latest period when it ends", "manualDesc": "Keep complete data when period ends", "switchToLatest": "Switch to Latest Period", "periodEnded": "Current period has ended", "newPeriodAvailable": "New period has started" }, "manualOrder": { "title": "Manual Order", "buttonUp": "Buy Up", "buttonDown": "Buy Down", "confirmTitle": "Manual Order Confirmation", "marketTitle": "Market Title", "direction": "Direction", "directionUp": "Up", "directionDown": "Down", "orderPrice": "Order Price", "orderSize": "Order Size", "totalAmount": "Total Amount", "account": "Account", "cancel": "Cancel", "confirm": "Confirm Order", "orderUnit": "USDC", "sizeUnit": "shares", "statusNotOrdered": "Not Ordered", "statusOrdered": "This period has been ordered", "statusOrderedAuto": "This period has been auto-ordered", "statusOrderedManual": "This period has been manually ordered", "errorInsufficientBalance": "Insufficient account balance, available: {balance} USDC", "errorPriceOutOfRange": "Price must be between 0 and 1", "errorMinSize": "Size cannot be less than 1 share", "errorExceedsBalance": "Total amount exceeds available balance", "errorPriceRequired": "Please enter order price", "errorSizeRequired": "Please enter order size", "success": "Manual order successful", "failed": "Manual order failed: {{reason}}", "errorSigning": "Signing failed: {reason}", "errorNetwork": "Network error, please try again later", "priceNotLoaded": "Price data not loaded", "insufficientBalance": "Insufficient balance, available amount less than 1 USDC", "fetchBalanceFailed": "Failed to fetch account balance", "availableBalance": "Available Balance", "fetchLatestPrice": "Latest Price", "priceUpdated": "Price updated", "maxSize": "Max", "invalidPriceOrBalance": "Invalid price or balance", "insufficientBalanceForMax": "Insufficient balance for max size", "maxSizeUpdated": "Updated to max size", "periodChanged": "Period has changed, popup closed" } }, "clobMigration": { "title": "CLOB 2.0 Migration Notice", "description": "Polymarket CLOB has been upgraded to V2. Please go to the Accounts page to complete the USDC migration to ensure trading functions properly.", "goToAccounts": "Go to Accounts", "dontRemind": "Don't remind again", "accountGuide": "CLOB V2 requires pUSD for trading. Click the USDC.e → pUSD button in the account actions to complete the migration.", "accountGuideButton": "USDC.e → pUSD", "dismissGuide": "Got it" } }