{
  "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 *",
    "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)"
  },
  "errorDialog": {
    "title": "Error Details",
    "platformId": "Platform ID",
    "errorCount": "Error Count",
    "lastError": "Last Error",
    "occurredAt": "Occurred At",
    "traceback": "Traceback",
    "close": "Close"
  }
} 
