{
  "title": "Platform Adapter Management",
  "subtitle": "Manage bot platform adapters to connect to different chat platforms",
  "adapters": "Platform Adapters",
  "addAdapter": "Add Adapter",
  "emptyText": "No platform adapters yet, click Add Adapter to create one",
  "viewWebhook": "View Webhook URL",
  "webhookCopied": "Webhook URL copied to clipboard",
  "webhookCopyFailed": "Copy failed, please copy manually",
  "webhookDialog": {
    "title": "Webhook Callback URL",
    "description": "The callback address is as follows, please ensure that the network environment can be accessed. You can also view the callback address information in the logs.",
    "close": "Close"
  },
  "details": {
    "adapterType": "Adapter Type",
    "token": "Token",
    "description": "Description"
  },
  "logs": {
    "title": "Platform Logs",
    "expand": "Expand",
    "collapse": "Collapse"
  },
  "dialog": {
    "add": "Add",
    "edit": "Edit",
    "adapter": "Platform Adapter",
    "refresh": "Refresh",
    "cancel": "Cancel",
    "save": "Save",
    "addPlatform": "Add Platform Adapter",
    "connectTitle": "Connect {name}",
    "viewTutorial": "View Tutorial",
    "noTemplates": "No platform templates available",
    "idConflict": {
      "title": "ID Conflict Warning",
      "message": "Detected duplicate ID \"{id}\". Please use a new ID.",
      "confirm": "OK"
    },
    "securityWarning": {
      "title": "Security Warning",
      "aiocqhttpTokenMissing": "To enhance connection security, it is strongly recommended to set ws_reverse_token. Not setting a token may lead to security risks.",
      "learnMore": "Learn More"
    },
    "invalidPlatformId": "Platform ID cannot contain ':' or '!'."
  },
  "createDialog": {
    "step1Title": "Choose Platform Category",
    "step1Hint": "Where do you want to connect the bot? e.g. QQ, WeCom, Feishu, Discord, Telegram.",
    "platformTypeLabel": "Platform Category",
    "configFileTitle": "Config File",
    "optional": "Optional",
    "configHint": "How do you want to configure the bot? The config file includes model, persona, knowledge base, plugins, and more.",
    "configDefaultHint": "Uses the default config file \"default\" by default. You can configure it later.",
    "useExistingConfig": "Use existing config file",
    "selectConfigLabel": "Select config file",
    "createNewConfig": "Create new config file",
    "newConfigNameLabel": "New config name",
    "newConfigTitle": "Use new config file",
    "newConfigLoadFailed": "Failed to load default config template",
    "addRouteRule": "Add route rule",
    "viewMode": "View",
    "editMode": "Edit",
    "noRouteRules": "No route rules for this platform. The default config file will be used.",
    "sessionIdPlaceholder": "Session ID or *",
    "routeSource": {
      "selectPlaceholder": "Select session source",
      "noData": "No unified message source for this bot is available yet. It will appear here after this bot receives at least one message from the corresponding messaging platform.",
      "switchToKnown": "Switch to existing source selection",
      "switchToManual": "Switch to manual input"
    },
    "allSessions": "All sessions",
    "configMissing": "Config file not found",
    "routeHint": "When delivering messages, the first matching config file from top to bottom is used based on session source. Use * to match all. Use /sid to get the session ID. If none match, the default config file is used.",
    "warningContinue": "Ignore warning and continue",
    "warningEditAgain": "Edit again",
    "configDrawerTitle": "Config File Management",
    "configDrawerIdLabel": "ID",
    "configTableHeaders": {
      "configId": "Config ID linked to this instance",
      "scope": "Scope in this instance"
    },
    "routeTableHeaders": {
      "source": "Message Source (Type: Session ID)",
      "config": "Config File",
      "actions": "Actions"
    },
    "messageTypeOptions": {
      "all": "All messages",
      "group": "Group messages (GroupMessage)",
      "friend": "Direct messages (FriendMessage)"
    },
    "messageTypeLabels": {
      "all": "All messages",
      "group": "Group messages",
      "friend": "Direct messages"
    }
  },
  "messages": {
    "updateSuccess": "Update successful!",
    "addSuccess": "Add successful!",
    "deleteSuccess": "Delete successful!",
    "statusUpdateSuccess": "Status update successful!",
    "deleteConfirm": "Are you sure you want to delete platform adapter",
    "configNotFoundOpenConfig": "Target config file not found. Opened the config page for review.",
    "updateMissingPlatformId": "Update failed: missing platform ID.",
    "platformUpdateFailed": "Platform update failed.",
    "addSuccessWithConfig": "Platform added. Config file updated.",
    "configIdMissing": "Unable to get config file ID.",
    "routingUpdateFailed": "Failed to update routing table: {message}",
    "createConfigFailed": "Failed to create config file: {message}",
    "platformIdMissing": "Unable to get platform ID.",
    "routingSaveFailed": "Failed to save routing table: {message}"
  },
  "status": {
    "enabled": "Enabled",
    "disabled": "Disabled",
    "connecting": "Connecting",
    "connected": "Connected",
    "disconnected": "Disconnected",
    "error": "Error"
  },
  "runtimeStatus": {
    "running": "Running",
    "error": "Error",
    "pending": "Pending",
    "stopped": "Stopped",
    "unknown": "Unknown",
    "errors": "error(s)"
  },
  "platformQr": {
    "title": "QR Login",
    "show": "Show QR",
    "status": "QR Status",
    "waiting": "Waiting for QR",
    "close": "Close"
  },
  "registrationAction": {
    "lark": {
      "title": "One-click QR Setup",
      "show": "One-click QR Setup",
      "scanTitle": "Scan with Feishu on your phone",
      "feishu": "Feishu China",
      "lark": "Lark Global"
    },
    "weixinOc": {
      "title": "Personal WeChat QR Login",
      "scanTitle": "Scan with WeChat on your phone",
      "created": "Login Complete",
      "status": {
        "idle": "Not Started",
        "starting": "Getting QR Code",
        "pending": "Waiting for Scan",
        "created": "Login Complete - remember to click the save button!",
        "denied": "Canceled",
        "expired": "Expired",
        "error": "Login Failed"
      }
    },
    "dingtalk": {
      "title": "DingTalk QR Setup",
      "scanTitle": "Scan with DingTalk on your phone",
      "created": "Setup Complete"
    },
    "qqOfficial": {
      "title": "QQ Official Bot QR Binding",
      "scanTitle": "Scan with QQ on your phone",
      "created": "Binding Complete",
      "status": {
        "idle": "Not Started",
        "starting": "Getting QR Code",
        "pending": "Waiting for Scan",
        "created": "Binding Complete - remember to click the save button!",
        "denied": "Canceled",
        "expired": "Expired",
        "error": "Binding Failed"
      }
    },
    "start": "Start Setup",
    "created": "Setup Complete",
    "startFailed": "Failed to start QR setup",
    "pollFailed": "Failed to poll QR setup status",
    "mode": {
      "title": "Choose setup method",
      "scan": "One-click QR setup",
      "manual": "Manual setup",
      "larkManual": "Manual setup (supports self-hosted Feishu)"
    },
    "scanTitle": "Scan with Feishu on your phone",
    "status": {
      "idle": "Not Started",
      "starting": "Starting",
      "pending": "Waiting for Scan",
      "slow_down": "Polling Slowed",
      "created": "Setup Complete - remember to click the save button!",
      "denied": "Canceled",
      "expired": "Expired",
      "error": "Setup Failed"
    }
  },
  "errorDialog": {
    "title": "Error Details",
    "platformId": "Platform ID",
    "errorCount": "Error Count",
    "lastError": "Last Error",
    "occurredAt": "Occurred At",
    "traceback": "Traceback",
    "close": "Close"
  }
}
