{
  "title": "System Administration",
  "description": "Manage users, roles, and public models",
  "tabs": {
    "users": "Users",
    "public_models": "Public Models",
    "public_retrievers": "Public Retrievers",
    "public_skills": "Public Skills",
    "public_teams": "Public Agents",
    "public_bots": "Public Bots",
    "public_ghosts": "Public Ghosts",
    "public_shells": "Public Shells",
    "templates": "Templates",
    "api_keys": "API Keys",
    "system_config": "System Config",
    "im_channels": "IM Channels",
    "monitor": "Subscription Monitor",
    "device_monitor": "Device Monitor"
  },
  "stats": {
    "total_users": "Total Users",
    "active_users": "Active Users",
    "admin_count": "Administrators",
    "total_tasks": "Total Tasks",
    "total_public_models": "Public Models"
  },
  "common": {
    "cancel": "Cancel",
    "create": "Create",
    "save": "Save",
    "delete": "Delete",
    "reset": "Reset",
    "loading": "Loading...",
    "done": "Done"
  },
  "users": {
    "title": "User Management",
    "description": "Create, edit, and manage user accounts",
    "loading": "Loading users...",
    "no_users": "No users found",
    "no_email": "No email",
    "show_inactive": "Show inactive",
    "search_placeholder": "Search username...",
    "create_user": "Create User",
    "edit_user": "Edit User",
    "delete_user": "Delete User",
    "reset_password": "Reset Password",
    "toggle_status": "Toggle Status",
    "change_role": "Change Role",
    "columns": {
      "id": "ID",
      "username": "Username",
      "email": "Email",
      "role": "Role",
      "auth_source": "Auth Source",
      "status": "Status",
      "created_at": "Created At",
      "actions": "Actions"
    },
    "roles": {
      "admin": "Admin",
      "user": "User"
    },
    "auth_sources": {
      "password": "Password",
      "oidc": "OIDC",
      "unknown": "Unknown"
    },
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "form": {
      "username": "Username",
      "username_placeholder": "Enter username",
      "password": "Password",
      "password_placeholder": "Enter password (min 6 characters)",
      "new_password": "New Password",
      "new_password_placeholder": "Enter new password (min 6 characters)",
      "email": "Email",
      "email_placeholder": "Enter email (optional)",
      "role": "Role",
      "role_select": "Select role",
      "auth_source": "Authentication Method",
      "auth_source_select": "Select authentication method"
    },
    "confirm": {
      "delete_title": "Delete User",
      "delete_message": "Are you sure you want to delete user \"{{name}}\"? This action will delete the account.",
      "reset_password_title": "Reset Password",
      "reset_password_message": "Enter new password for user \"{{name}}\"",
      "toggle_status_title": "Toggle Status",
      "toggle_enable_message": "Are you sure you want to enable user \"{{name}}\"?",
      "toggle_disable_message": "Are you sure you want to disable user \"{{name}}\"?",
      "change_role_title": "Change Role",
      "change_role_message": "Change role for user \"{{name}}\" to {{role}}?"
    },
    "success": {
      "created": "User created successfully",
      "updated": "User updated successfully",
      "deleted": "User deleted successfully",
      "password_reset": "Password reset successfully",
      "status_toggled": "User status updated",
      "role_changed": "User role updated"
    },
    "errors": {
      "load_failed": "Failed to load users",
      "create_failed": "Failed to create user",
      "update_failed": "Failed to update user",
      "delete_failed": "Failed to delete user",
      "reset_password_failed": "Failed to reset password",
      "toggle_status_failed": "Failed to toggle user status",
      "change_role_failed": "Failed to change user role",
      "username_required": "Username is required",
      "password_required": "Password is required for password authentication",
      "password_min_length": "Password must be at least 6 characters",
      "cannot_delete_self": "Cannot delete your own account",
      "cannot_disable_self": "Cannot disable your own account",
      "cannot_demote_self": "Cannot demote yourself when you are the only admin"
    }
  },
  "public_models": {
    "title": "Public Model Management",
    "description": "Manage public AI models available to all users",
    "loading": "Loading models...",
    "no_models": "No public models found",
    "create_model": "Create Model",
    "edit_model": "Edit Model",
    "delete_model": "Delete Model",
    "model_id": "Model ID",
    "namespace_label": "Namespace",
    "status": {
      "active": "Active",
      "inactive": "Inactive",
      "advanced": "Advanced",
      "standard": "Standard"
    },
    "columns": {
      "id": "ID",
      "name": "Name",
      "namespace": "Namespace",
      "status": "Status",
      "created_at": "Created At",
      "actions": "Actions"
    },
    "form": {
      "name": "Model Name",
      "name_placeholder": "Enter model name",
      "namespace": "Namespace",
      "namespace_placeholder": "default",
      "config": "Model Configuration",
      "config_placeholder": "Enter model configuration as JSON",
      "is_advanced": "Advanced Model"
    },
    "confirm": {
      "delete_title": "Delete Model",
      "delete_message": "Are you sure you want to delete public model \"{{name}}\"? This action cannot be undone."
    },
    "success": {
      "created": "Public model created successfully",
      "updated": "Public model updated successfully",
      "deleted": "Public model deleted successfully"
    },
    "errors": {
      "load_failed": "Failed to load public models",
      "create_failed": "Failed to create public model",
      "update_failed": "Failed to update public model",
      "delete_failed": "Failed to delete public model",
      "name_required": "Model name is required",
      "config_required": "Model configuration is required",
      "config_invalid_json": "Model configuration must be valid JSON"
    }
  },
  "public_skills": {
    "title": "Public Skill Management",
    "description": "Manage system-level public skills visible to all users",
    "loading": "Loading skills...",
    "no_skills": "No public skills found",
    "upload_skill": "Upload Skill",
    "update_skill": "Update Skill",
    "download_skill": "Download Skill",
    "delete_skill": "Delete Skill",
    "view_content": "View Content",
    "skill_content": "Skill Content",
    "view_content_description": "Full content of the SKILL.md file",
    "no_content": "Unable to load content",
    "columns": {
      "name": "Name",
      "description": "Description",
      "version": "Version",
      "author": "Author",
      "tags": "Tags",
      "created_at": "Created At",
      "actions": "Actions"
    },
    "confirm": {
      "delete_title": "Delete Skill",
      "delete_message": "Are you sure you want to delete public skill \"{{name}}\"? This action cannot be undone."
    },
    "success": {
      "uploaded": "Public skill uploaded successfully",
      "updated": "Public skill updated successfully",
      "deleted": "Public skill deleted successfully",
      "metadata_updated": "Metadata updated successfully"
    },
    "errors": {
      "load_failed": "Failed to load public skills",
      "upload_failed": "Failed to upload public skill",
      "update_failed": "Failed to update public skill",
      "delete_failed": "Failed to delete public skill",
      "download_failed": "Failed to download public skill",
      "view_content_failed": "Failed to get skill content",
      "metadata_update_failed": "Failed to update metadata"
    },
    "hidden": "Hidden",
    "edit_metadata": "Edit Metadata",
    "edit_metadata_title": "Edit Skill Metadata",
    "edit_metadata_description": "Edit metadata for \"{{name}}\"",
    "fields": {
      "description": "Description",
      "version": "Version",
      "author": "Author",
      "tags": "Tags",
      "visible": "Visible"
    },
    "placeholders": {
      "description": "Enter skill description",
      "version": "Enter version number",
      "author": "Enter author name",
      "tags": "tag1, tag2, tag3"
    },
    "hints": {
      "tags": "Separate multiple tags with commas",
      "visible": "When disabled, this skill will not appear in user skill lists, but agents already bound to it can still use it"
    }
  },
  "public_retrievers": {
    "title": "Public Retriever Management",
    "description": "Manage system-level public retrievers available to all users",
    "loading": "Loading retrievers...",
    "no_retrievers": "No public retrievers found",
    "create_retriever": "Create Retriever",
    "edit_retriever": "Edit Retriever",
    "delete_retriever": "Delete Retriever",
    "form": {
      "name": "Name",
      "name_placeholder": "Enter retriever name",
      "display_name": "Display Name",
      "display_name_placeholder": "Enter display name (optional)",
      "storage_type": "Storage Type",
      "storage_type_placeholder": "Select storage type",
      "url": "Connection URL",
      "url_placeholder": "e.g., http://localhost:9200",
      "username": "Username",
      "username_placeholder": "Enter username (optional)",
      "api_key": "API Key",
      "api_key_placeholder": "Enter API key (optional)",
      "index_strategy": "Index Strategy",
      "index_strategy_placeholder": "Select index strategy",
      "per_user": "Per User Index",
      "fixed": "Fixed Index",
      "fixed_name": "Fixed Index Name",
      "fixed_name_placeholder": "Enter fixed index name",
      "prefix": "Index Prefix",
      "prefix_placeholder": "Default: kb_",
      "description": "Description",
      "description_placeholder": "Enter description (optional)"
    },
    "confirm": {
      "delete_title": "Delete Retriever",
      "delete_message": "Are you sure you want to delete public retriever \"{{name}}\"? This action cannot be undone."
    },
    "success": {
      "created": "Public retriever created successfully",
      "updated": "Public retriever updated successfully",
      "deleted": "Public retriever deleted successfully"
    },
    "errors": {
      "load_failed": "Failed to load public retrievers",
      "create_failed": "Failed to create public retriever",
      "update_failed": "Failed to update public retriever",
      "delete_failed": "Failed to delete public retriever",
      "name_required": "Retriever name is required",
      "url_required": "Connection URL is required"
    }
  },
  "access_denied": {
    "title": "Access Denied",
    "message": "You do not have permission to access this page. Only administrators can view this content.",
    "go_home": "Go to Home"
  },
  "system_config": {
    "title": "Slogan & Tips Management",
    "description": "Configure the chat page welcome slogans and tips",
    "loading": "Loading configuration...",
    "dialog_description": "Enter the content in both Chinese and English, and select the applicable mode",
    "mode": "Applicable Mode",
    "mode_chat": "Chat Mode",
    "mode_code": "Code Mode",
    "mode_both": "Both",
    "slogan_title": "Slogan Configuration",
    "add_slogan": "Add Slogan",
    "edit_slogan": "Edit Slogan",
    "no_slogans": "No slogans configured yet",
    "slogan_zh": "Chinese Slogan",
    "slogan_en": "English Slogan",
    "slogan_zh_placeholder": "Enter Chinese slogan",
    "slogan_en_placeholder": "Enter English slogan",
    "delete_slogan_title": "Delete Slogan",
    "delete_slogan_message": "Are you sure you want to delete this slogan? This action cannot be undone.",
    "tips_title": "Tips Configuration",
    "add_tip": "Add Tip",
    "edit_tip": "Edit Tip",
    "no_tips": "No tips configured yet",
    "tip_zh": "Chinese Tip",
    "tip_en": "English Tip",
    "tip_zh_placeholder": "Enter Chinese tip text",
    "tip_en_placeholder": "Enter English tip text",
    "delete_tip_title": "Delete Tip",
    "delete_tip_message": "Are you sure you want to delete this tip? This action cannot be undone.",
    "quick_access_title": "Homepage Recommended Agents",
    "quick_access_description": "Select the built-in agents shown in the homepage QuickCard. The right-side order is the display order.",
    "quick_access_available": "Available Agents",
    "quick_access_selected": "Homepage Agents",
    "quick_access_name": "Name",
    "quick_access_version": "Homepage Agents Version",
    "version": "Version",
    "success": {
      "updated": "Configuration updated successfully"
    },
    "errors": {
      "load_failed": "Failed to load configuration",
      "save_failed": "Failed to save configuration",
      "slogan_required": "Both Chinese and English slogan are required",
      "tip_required": "Both Chinese and English tip text are required"
    }
  },
  "api_keys": {
    "title": "API Key Management",
    "description": "Manage service keys, personal API keys, and outbound token issuance",
    "service_keys": "Service Keys",
    "personal_keys": "Personal Keys",
    "outbound_tokens": "Outbound Issuance"
  },
  "service_keys": {
    "title": "Service Key Management",
    "description": "Manage trusted keys for service-to-service calls",
    "no_keys": "No service keys found",
    "create": "Create Service Key",
    "name": "Key Name",
    "name_placeholder": "Enter key name",
    "description_label": "Description",
    "description_placeholder": "Enter key description (optional)",
    "key": "Key",
    "created_by": "Created By",
    "created_at": "Created At",
    "last_used": "Last Used",
    "expires_at": "Expires At",
    "never_expires": "Never expires",
    "create_success": "Service key created successfully",
    "delete_success": "Service key deleted successfully",
    "enabled_success": "Service key enabled",
    "disabled_success": "Service key disabled",
    "warning_save_key": "Please save this key securely. It will only be shown once!",
    "delete_confirm_title": "Confirm Deletion",
    "delete_confirm_message": "Are you sure you want to delete service key \"{{name}}\"? Related services will no longer be able to use this key.",
    "status_disabled": "Disabled",
    "enable": "Enable",
    "disable": "Disable",
    "errors": {
      "load_failed": "Failed to load service keys",
      "create_failed": "Failed to create service key",
      "delete_failed": "Failed to delete service key",
      "toggle_failed": "Failed to toggle service key status",
      "name_required": "Key name is required"
    }
  },
  "personal_keys": {
    "title": "Personal Key Management",
    "description": "View and manage all users' personal API keys",
    "no_keys": "No personal keys found",
    "search_placeholder": "Search username or key name...",
    "name": "Key Name",
    "owner": "Owner",
    "created_at": "Created At",
    "last_used": "Last Used",
    "expires_at": "Expires At",
    "never_expires": "Never expires",
    "delete_success": "Personal key deleted successfully",
    "enabled_success": "Personal key enabled",
    "disabled_success": "Personal key disabled",
    "delete_confirm_title": "Confirm Deletion",
    "delete_confirm_message": "Are you sure you want to delete user \"{{owner}}\"'s key \"{{name}}\"? The user will no longer be able to use this key for API calls.",
    "status_disabled": "Disabled",
    "enable": "Enable",
    "disable": "Disable",
    "errors": {
      "load_failed": "Failed to load personal keys",
      "delete_failed": "Failed to delete personal key",
      "toggle_failed": "Failed to toggle personal key status"
    }
  },
  "outbound_tokens": {
    "title": "Outbound Token Issuance",
    "description": "Manage signing keys and token issuers used when skills call external services.",
    "summary": "Callers request issuance with issuer_id. The outbound token audience is determined by the issuer configuration.",
    "empty_hint": "Create a TokenIssuer first. If you do not have a SigningKey yet, generate one inside the create flow.",
    "common": {
      "name": "Name",
      "description": "Description",
      "description_placeholder": "Enter a description (optional)",
      "enabled": "Status",
      "status_active": "Active",
      "status_disabled": "Disabled",
      "created_at": "Created At",
      "delete_confirm_title": "Confirm Deletion"
    },
    "actions": {
      "view_pem": "View PEM",
      "copy_pem": "Copy PEM",
      "edit": "Edit",
      "enable": "Enable",
      "disable": "Disable"
    },
    "issuers": {
      "create": "Create TokenIssuer",
      "create_dialog_title": "Create TokenIssuer",
      "edit_dialog_title": "Edit TokenIssuer",
      "dialog_description": "Outbound integrations are configured around TokenIssuer. issuer_id comes from the resource id and audience/signing key are applied internally during issuance.",
      "no_issuers": "No TokenIssuer found",
      "name_placeholder": "For example vip-sql-platform",
      "audience": "Audience",
      "audience_placeholder": "For example vip_sql_platform",
      "jwt_issuer": "JWT Issuer",
      "signing_key": "SigningKey",
      "current_signing_key": "Current Signing Key",
      "signing_key_hint": "This issuer always signs with this key",
      "signing_key_placeholder": "Select an active SigningKey",
      "no_signing_keys_title": "No available SigningKey",
      "no_signing_keys_description": "Create a SigningKey first, then continue creating or editing this TokenIssuer.",
      "default_ttl": "Default TTL",
      "max_ttl": "Max TTL",
      "create_success": "TokenIssuer created successfully",
      "update_success": "TokenIssuer updated successfully",
      "delete_success": "TokenIssuer deleted successfully",
      "enabled_success": "TokenIssuer enabled",
      "disabled_success": "TokenIssuer disabled",
      "delete_confirm_message": "Are you sure you want to delete TokenIssuer \"{{name}}\"? This issuer_id will no longer be able to issue outbound tokens.",
      "errors": {
        "create_failed": "Failed to create TokenIssuer",
        "update_failed": "Failed to update TokenIssuer",
        "delete_failed": "Failed to delete TokenIssuer",
        "toggle_failed": "Failed to toggle TokenIssuer status",
        "requires_active_signing_key": "TokenIssuer can only bind to an active SigningKey. Enable the target SigningKey first."
      }
    },
    "signing_keys": {
      "section_title": "Low-Level SigningKey Management",
      "section_description": "Use this section to maintain the underlying signing keys. For normal setup, prefer creating and binding keys from the TokenIssuer flow.",
      "create": "Create SigningKey",
      "inline_create": "Generate SigningKey",
      "cancel_inline_create": "Collapse",
      "inline_create_title": "Create SigningKey Inline",
      "name_placeholder": "For example vip-signing-key",
      "description_placeholder": "Enter the key usage description (optional)",
      "loading": "Loading SigningKey...",
      "kid": "KID",
      "algorithm": "Algorithm",
      "usage_count": "Issuer Usage",
      "no_keys": "No SigningKey found",
      "create_success": "SigningKey created successfully",
      "delete_success": "SigningKey deleted successfully",
      "enabled_success": "SigningKey enabled",
      "disabled_success": "SigningKey disabled",
      "delete_confirm_message": "Are you sure you want to delete SigningKey \"{{name}}\"? The deletion will fail if any TokenIssuer still references it.",
      "errors": {
        "load_failed": "Failed to load SigningKey",
        "create_failed": "Failed to create SigningKey",
        "delete_failed": "Failed to delete SigningKey",
        "toggle_failed": "Failed to toggle SigningKey status",
        "disable_blocked_by_active_issuers": "This SigningKey is still referenced by {{count}} active TokenIssuer entries: {{names}}. Disable those issuers before disabling the key.",
        "delete_blocked_by_issuers": "This SigningKey is still referenced by {{count}} TokenIssuer entries: {{names}}. Remove those bindings before deleting the key.",
        "disable_blocked_by_issuer": "This SigningKey is still referenced by an active TokenIssuer. Disable the related TokenIssuer first.",
        "delete_blocked_by_issuer": "This SigningKey is still referenced by a TokenIssuer. Remove the related binding before deleting it."
      }
    },
    "pem_dialog": {
      "issuer_title": "TokenIssuer Public Key",
      "key_title": "SigningKey Public Key",
      "description": "This is the PEM public key for {{name}} with kid {{kid}}. Share this public key with the external service for local JWT verification."
    },
    "errors": {
      "load_failed": "Failed to load outbound token configuration",
      "copy_failed": "Failed to copy PEM",
      "issuer_name_required": "TokenIssuer name is required",
      "signing_key_required": "Please select a SigningKey",
      "signing_key_name_required": "SigningKey name is required",
      "audience_required": "Audience is required",
      "invalid_ttl": "TTL configuration is invalid"
    }
  },
  "monitor": {
    "title": "Subscription Execution Monitor",
    "description": "View subscription execution statistics and errors for all users",
    "time_range": {
      "1h": "Last 1 hour",
      "6h": "Last 6 hours",
      "24h": "Last 24 hours",
      "3d": "Last 3 days",
      "7d": "Last 7 days"
    },
    "stats": {
      "total_executions": "Total Executions",
      "completed": "Completed",
      "failed": "Failed",
      "retrying": "Retrying",
      "cancelled": "Cancelled",
      "running": "Running",
      "pending": "Pending",
      "active_subscriptions": "Active Subscriptions",
      "total_subscriptions": "Total Subscriptions",
      "enabled_subscriptions": "Enabled subscriptions",
      "all_subscriptions": "All subscriptions"
    },
    "error_list": {
      "title": "Abnormal Executions",
      "all_status": "All Status",
      "failed": "Failed",
      "cancelled": "Cancelled",
      "running": "Running",
      "no_errors": "No abnormal executions found",
      "columns": {
        "execution_id": "Execution ID",
        "subscription_id": "Subscription ID",
        "user_id": "User ID",
        "status": "Status",
        "trigger_type": "Trigger Type",
        "error_message": "Error Message",
        "created_at": "Created At"
      },
      "pagination": "Showing {{start}}-{{end}} of {{total}}"
    },
    "errors": {
      "load_stats_failed": "Failed to load statistics",
      "load_errors_failed": "Failed to load error records"
    }
  },
  "public_teams": {
    "title": "Public Agent Management",
    "description": "Manage system-level public agents available to all users",
    "create_description": "Create a new public agent. All referenced bots must be public bots.",
    "edit_description": "Edit the public agent's basic information and resource configuration.",
    "loading": "Loading agents...",
    "no_teams": "No public agents found",
    "create_team": "Create Agent",
    "edit_team": "Edit Agent",
    "delete_team": "Delete Agent",
    "member_count": "{{count}} Bot(s)",
    "tabs": {
      "basic": "Basic",
      "advanced": "Advanced"
    },
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "columns": {
      "id": "ID",
      "name": "Name",
      "namespace": "Namespace",
      "status": "Status",
      "created_at": "Created At",
      "actions": "Actions"
    },
    "form": {
      "name": "Agent Name",
      "name_placeholder": "Enter agent name",
      "namespace": "Namespace",
      "namespace_placeholder": "default",
      "config": "Agent Configuration",
      "config_placeholder": "Enter agent configuration as JSON",
      "config_hint": "The configuration must include spec.members referencing public bots"
    },
    "confirm": {
      "delete_title": "Delete Agent",
      "delete_message": "Are you sure you want to delete public agent \"{{name}}\"? This action cannot be undone."
    },
    "success": {
      "created": "Public agent created successfully",
      "updated": "Public agent updated successfully",
      "deleted": "Public agent deleted successfully"
    },
    "errors": {
      "load_failed": "Failed to load public agents",
      "create_failed": "Failed to create public agent",
      "update_failed": "Failed to update public agent",
      "delete_failed": "Failed to delete public agent",
      "name_required": "Agent name is required",
      "config_required": "Agent configuration is required",
      "config_invalid_json": "Agent configuration must be valid JSON"
    }
  },
  "public_bots": {
    "title": "Public Bot Management",
    "description": "Manage system-level public bots available to all users",
    "create_description": "Create a new public bot. All referenced resources (Ghost, Shell, Model) must be public.",
    "edit_description": "Edit the public bot's basic information and resource configuration.",
    "loading": "Loading bots...",
    "no_bots": "No public bots found",
    "create_bot": "Create Bot",
    "edit_bot": "Edit Bot",
    "delete_bot": "Delete Bot",
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "columns": {
      "id": "ID",
      "name": "Name",
      "namespace": "Namespace",
      "status": "Status",
      "created_at": "Created At",
      "actions": "Actions"
    },
    "form": {
      "name": "Bot Name",
      "name_placeholder": "Enter bot name",
      "namespace": "Namespace",
      "namespace_placeholder": "default",
      "ghost": "Ghost",
      "ghost_placeholder": "Select a Ghost (optional)",
      "ghost_none": "None",
      "shell": "Shell",
      "shell_placeholder": "Select a Shell (optional)",
      "shell_none": "None",
      "model": "Model",
      "model_placeholder": "Select a Model (optional)",
      "model_none": "None",
      "config": "Bot Configuration",
      "config_placeholder": "Enter bot configuration as JSON",
      "config_hint": "The configuration must reference public Ghost, Shell, and Model resources"
    },
    "confirm": {
      "delete_title": "Delete Bot",
      "delete_message": "Are you sure you want to delete public bot \"{{name}}\"? This action cannot be undone."
    },
    "success": {
      "created": "Public bot created successfully",
      "updated": "Public bot updated successfully",
      "deleted": "Public bot deleted successfully"
    },
    "errors": {
      "load_failed": "Failed to load public bots",
      "create_failed": "Failed to create public bot",
      "update_failed": "Failed to update public bot",
      "delete_failed": "Failed to delete public bot",
      "name_required": "Bot name is required",
      "config_required": "Bot configuration is required",
      "config_invalid_json": "Bot configuration must be valid JSON"
    }
  },
  "public_ghosts": {
    "title": "Public Ghost Management",
    "description": "Manage system-level public ghosts (system prompts) available to all users",
    "create_description": "Create a new public ghost. Ghosts define system prompts and tool configurations for bots.",
    "loading": "Loading ghosts...",
    "no_ghosts": "No public ghosts found",
    "create_ghost": "Create Ghost",
    "edit_ghost": "Edit Ghost",
    "delete_ghost": "Delete Ghost",
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "columns": {
      "id": "ID",
      "name": "Name",
      "namespace": "Namespace",
      "status": "Status",
      "created_at": "Created At",
      "actions": "Actions"
    },
    "form": {
      "name": "Ghost Name",
      "name_placeholder": "Enter ghost name",
      "namespace": "Namespace",
      "namespace_placeholder": "default",
      "config": "Ghost Configuration",
      "config_placeholder": "Enter ghost configuration as JSON",
      "config_hint": "The configuration should include spec.systemPrompt and optionally spec.mcpServers, spec.skills"
    },
    "confirm": {
      "delete_title": "Delete Ghost",
      "delete_message": "Are you sure you want to delete public ghost \"{{name}}\"? This action cannot be undone.",
      "delete_in_use_message": "This ghost is referenced by public bots and cannot be deleted."
    },
    "success": {
      "created": "Public ghost created successfully",
      "updated": "Public ghost updated successfully",
      "deleted": "Public ghost deleted successfully"
    },
    "errors": {
      "load_failed": "Failed to load public ghosts",
      "create_failed": "Failed to create public ghost",
      "update_failed": "Failed to update public ghost",
      "delete_failed": "Failed to delete public ghost",
      "name_required": "Ghost name is required",
      "config_required": "Ghost configuration is required",
      "config_invalid_json": "Ghost configuration must be valid JSON"
    }
  },
  "public_shells": {
    "title": "Public Shell Management",
    "description": "Manage system-level public shells (execution environments) available to all users",
    "create_description": "Create a new public shell. Shells define the execution environment for bots.",
    "loading": "Loading shells...",
    "no_shells": "No public shells found",
    "create_shell": "Create Shell",
    "edit_shell": "Edit Shell",
    "delete_shell": "Delete Shell",
    "status": {
      "active": "Active",
      "inactive": "Inactive"
    },
    "columns": {
      "id": "ID",
      "name": "Name",
      "namespace": "Namespace",
      "shell_type": "Shell Type",
      "status": "Status",
      "created_at": "Created At",
      "actions": "Actions"
    },
    "form": {
      "name": "Shell Name",
      "name_placeholder": "Enter shell name",
      "namespace": "Namespace",
      "namespace_placeholder": "default",
      "config": "Shell Configuration",
      "config_placeholder": "Enter shell configuration as JSON",
      "config_hint": "The configuration should include spec.shellType (ClaudeCode, Agno, Dify, Chat)"
    },
    "confirm": {
      "delete_title": "Delete Shell",
      "delete_message": "Are you sure you want to delete public shell \"{{name}}\"? This action cannot be undone.",
      "delete_in_use_message": "This shell is referenced by public bots and cannot be deleted."
    },
    "success": {
      "created": "Public shell created successfully",
      "updated": "Public shell updated successfully",
      "deleted": "Public shell deleted successfully"
    },
    "errors": {
      "load_failed": "Failed to load public shells",
      "create_failed": "Failed to create public shell",
      "update_failed": "Failed to update public shell",
      "delete_failed": "Failed to delete public shell",
      "name_required": "Shell name is required",
      "config_required": "Shell configuration is required",
      "config_invalid_json": "Shell configuration must be valid JSON"
    }
  },
  "setup_wizard": {
    "title": "Welcome to Wegent",
    "subtitle": "Let's set up some essential resources for your system",
    "step_indicator": "Step {{current}} of {{total}}",
    "step_models": "Configure Public Models",
    "step_skills": "Configure Public Skills",
    "next": "Next",
    "previous": "Previous",
    "skip": "Skip",
    "finish": "Finish",
    "skip_confirm_title": "Skip Setup?",
    "skip_confirm_message": "You can configure public models and skills later in the administration panel. Are you sure you want to skip the setup wizard?",
    "skip_confirm_yes": "Yes, skip",
    "skip_confirm_no": "Continue setup",
    "model_step": {
      "title": "Configure Public Models",
      "description": "Set up AI models that will be available to all users. You can add multiple models.",
      "no_models": "No public models configured yet",
      "add_model": "Add Model",
      "model_added": "Model added successfully",
      "model_updated": "Model updated successfully",
      "model_deleted": "Model deleted successfully",
      "add_first_model": "Add your first public model"
    },
    "skill_step": {
      "title": "Configure Public Skills",
      "description": "Upload skill packages (.zip) that will be available to all users. Skills provide on-demand capabilities to AI agents.",
      "no_skills": "No public skills configured yet",
      "add_skill": "Add Skill",
      "add_skill_description": "Upload a ZIP package or import from a Git repository",
      "upload_tab": "Upload",
      "git_import_tab": "Git Import",
      "upload_skill": "Upload Skill",
      "skill_uploaded": "Skill uploaded successfully",
      "skill_deleted": "Skill deleted successfully",
      "drag_drop_hint": "Drag and drop a .zip file here, or click to browse",
      "file_requirements": "Skill package must be a .zip file containing SKILL.md",
      "skill_name": "Skill Name",
      "skill_name_placeholder": "Enter skill name",
      "skill_name_hint": "A unique identifier for this skill (e.g., mermaid-diagram)",
      "zip_package": "ZIP Package",
      "max_file_size": "Maximum file size: 10MB",
      "uploading": "Uploading...",
      "requirements": "Requirements",
      "requirement_zip": "File must be a ZIP archive",
      "requirement_folder": "Must contain a folder with the skill name",
      "requirement_skill_md": "Must include SKILL.md with metadata",
      "requirement_size": "Maximum file size: 10MB",
      "git_url_label": "Git Repository URL",
      "git_url_placeholder": "https://github.com/owner/repo",
      "git_url_hint": "Supports GitHub, GitLab, Gitee, and Gitea repositories",
      "git_scan_button": "Scan",
      "git_scanning": "Scanning...",
      "git_invalid_url": "Please enter a valid Git repository URL",
      "git_no_skills_found": "No skills found in repository",
      "git_no_skills_hint": "Make sure the repository contains skill directories with SKILL.md files",
      "git_repo_not_found": "Repository not found or not accessible",
      "git_download_failed": "Failed to download repository",
      "git_skills_found": "Found {{count}} skill(s)",
      "git_select_all": "Select All",
      "git_deselect_all": "Deselect All",
      "git_import_selected": "Import Selected",
      "git_conflict_title": "Skill Name Conflict",
      "git_conflict_description": "The following skills already exist. Select which ones to overwrite:",
      "git_import_confirm": "Confirm Import",
      "git_import_result_title": "Import Complete",
      "git_import_success": "Successfully imported {{count}} skill(s)",
      "git_import_skipped": "Skipped {{count}} skill(s) (already exist)",
      "git_import_failed": "{{count}} skill(s) failed to import",
      "git_import_failed_details": "Failure details"
    },
    "success": {
      "completed": "Setup completed successfully! You can now start using Wegent.",
      "skipped": "Setup skipped. You can configure resources anytime from the admin panel."
    },
    "errors": {
      "load_status_failed": "Failed to check setup status",
      "complete_failed": "Failed to complete setup"
    }
  },
  "im_channels": {
    "title": "IM Channel Management",
    "description": "Manage IM platform integrations (DingTalk, Feishu)",
    "create_description": "Create a new IM channel integration. Configure platform credentials and default agent.",
    "loading": "Loading channels...",
    "no_channels": "No IM channels configured",
    "no_default_team": "No default agent",
    "default_team": "Default Agent",
    "create_channel": "Create Channel",
    "edit_channel": "Edit Channel",
    "delete_channel": "Delete Channel",
    "restart_channel": "Restart Connection",
    "types": {
      "dingtalk": "DingTalk",
      "feishu": "Feishu",
      "telegram": "Telegram",
      "not_supported": "Not supported"
    },
    "status": {
      "enabled": "Enabled",
      "disabled": "Disabled"
    },
    "connection": {
      "connected": "Connected",
      "disconnected": "Disconnected"
    },
    "form": {
      "name": "Channel Name",
      "name_placeholder": "Enter channel name",
      "channel_type": "Channel Type",
      "client_id": "Client ID",
      "client_id_placeholder": "Enter the platform Client ID",
      "client_secret": "Client Secret",
      "client_secret_placeholder": "Enter the platform Client Secret",
      "client_secret_edit_placeholder": "Enter new Client Secret (leave empty to keep existing)",
      "card_template_id": "AI Card Template ID",
      "card_template_id_placeholder": "Enter DingTalk AI Card Template ID (optional)",
      "card_template_id_help": "When configured, subscription notifications will be sent as AI Cards",
      "bot_token": "Bot Token",
      "bot_token_placeholder": "Enter Telegram Bot Token",
      "bot_token_edit_placeholder": "Enter new Bot Token (leave empty to keep existing)",
      "leave_empty_to_keep": "Leave empty to keep existing",
      "default_team": "Default Agent",
      "default_team_placeholder": "Select default agent",
      "no_default_team": "No default agent",
      "default_model": "Default Model",
      "default_model_placeholder": "Select default model",
      "no_default_model": "Use agent's default model",
      "team_no_model_warning": "The selected agent has no model configured. You must select a default model.",
      "is_enabled": "Enable Channel",
      "user_mapping_mode": "User Mapping Mode",
      "user_mapping_mode_description": "Choose how to map IM users to system users",
      "user_mapping_modes": {
        "select_user": "Specific User",
        "staff_id": "Match by Staff ID",
        "email": "Match by Email"
      },
      "target_user": "Target User",
      "target_user_description": "All IM messages will be processed as this user",
      "select_user_placeholder": "Select a user"
    },
    "confirm": {
      "delete_title": "Delete Channel",
      "delete_message": "Are you sure you want to delete IM channel \"{{name}}\"? This action cannot be undone."
    },
    "success": {
      "created": "IM channel created successfully",
      "updated": "IM channel updated successfully",
      "deleted": "IM channel deleted successfully",
      "enabled": "IM channel enabled",
      "disabled": "IM channel disabled",
      "restarted": "IM channel restarted"
    },
    "errors": {
      "load_failed": "Failed to load IM channels",
      "create_failed": "Failed to create IM channel",
      "update_failed": "Failed to update IM channel",
      "delete_failed": "Failed to delete IM channel",
      "toggle_failed": "Failed to toggle IM channel status",
      "restart_failed": "Failed to restart IM channel",
      "name_required": "Channel name is required",
      "config_required": "Client ID and Client Secret are required",
      "bot_token_required": "Bot Token is required",
      "team_required": "A default agent must be selected",
      "model_required_for_team": "The selected agent has no model configured. You must select a default model.",
      "target_user_required": "A target user must be selected when using Specific User mode"
    }
  },
  "device_monitor": {
    "title": "Device Monitor",
    "description": "View online status and running state of all registered devices",
    "loading": "Loading devices...",
    "no_devices": "No devices found",
    "search_placeholder": "Search device name, ID, or username...",
    "filters": {
      "all_status": "All Status",
      "all_device_type": "All Types",
      "all_bind_shell": "All Shells"
    },
    "version_filter": {
      "placeholder": "Filter by version, e.g. 1.6.5",
      "operators": {
        "gt": ">",
        "gte": ">=",
        "eq": "=",
        "lt": "<",
        "lte": "<="
      }
    },
    "status": {
      "online": "Online",
      "offline": "Offline",
      "busy": "Busy"
    },
    "device_type": {
      "local": "Local Device",
      "cloud": "Cloud Device"
    },
    "bind_shell": {
      "claudecode": "Claude Code",
      "openclaw": "OpenClaw"
    },
    "stats": {
      "total": "Total Devices",
      "user_count": "Users",
      "online": "Online",
      "offline": "Offline Cloud Devices",
      "busy": "Busy",
      "local": "Local Devices",
      "cloud": "Cloud Devices"
    },
    "columns": {
      "name": "Device Name",
      "device_id": "Device ID",
      "device_type": "Device Type",
      "bind_shell": "Shell",
      "status": "Status",
      "user": "Owner",
      "version": "Version",
      "ip": "IP Address",
      "created_at": "Created At"
    },
    "errors": {
      "load_failed": "Failed to load device list",
      "load_stats_failed": "Failed to load statistics",
      "upgrade_failed": "Failed to send upgrade command",
      "restart_failed": "Failed to send restart command",
      "migrate_failed": "Failed to send migrate command"
    },
    "actions": {
      "upgrade": "Upgrade",
      "upgrade_unsupported": "Version below {{version}}, online upgrade not supported",
      "restart": "Restart",
      "migrate": "Migrate",
      "upgrade_sent": "Upgrade command sent",
      "restart_sent": "Restart command sent",
      "migrate_sent": "Migrate command sent"
    }
  },
  "templates": {
    "title": "Template Management",
    "description": "Manage system-level templates. Users can quickly create Inbox automation workflows from templates.",
    "loading": "Loading templates...",
    "no_templates": "No templates found",
    "create_template": "Create Template",
    "edit_template": "Edit Template",
    "delete_template": "Delete Template",
    "create_description": "Create a new system template. Users can instantiate it to create a complete Inbox automation workflow.",
    "edit_description": "Edit the template's basic information and resource configuration.",
    "tabs": {
      "basic": "Basic Info",
      "resources": "Resources"
    },
    "categories": {
      "inbox": "Inbox Automation"
    },
    "form": {
      "name": "Template Name",
      "name_placeholder": "Enter unique template identifier (e.g., daily-standup)",
      "name_hint": "Unique identifier for the template. Cannot be changed after creation. Only lowercase letters, numbers, and hyphens allowed.",
      "display_name": "Display Name",
      "display_name_placeholder": "Enter display name",
      "description": "Description",
      "description_placeholder": "Enter template description (optional)",
      "category": "Category",
      "icon": "Icon",
      "icon_placeholder": "Enter an emoji icon (e.g., 📋)",
      "icon_hint": "Use an emoji as the template icon",
      "tags": "Tags",
      "tags_placeholder": "Enter tags separated by commas (e.g., standup, summary)",
      "tags_hint": "Separate multiple tags with commas",
      "resources": "Resource Configuration (JSON)",
      "resources_placeholder": "Enter resource configuration as JSON",
      "resources_hint": "Defines resources created when the template is instantiated. Supports ghost, bot, team, subscription, and queue fields."
    },
    "confirm": {
      "delete_title": "Delete Template",
      "delete_message": "Are you sure you want to delete template \"{{name}}\"? This action cannot be undone. Resources already created from this template will not be affected."
    },
    "success": {
      "created": "Template created successfully",
      "updated": "Template updated successfully",
      "deleted": "Template deleted successfully"
    },
    "errors": {
      "load_failed": "Failed to load templates",
      "create_failed": "Failed to create template",
      "update_failed": "Failed to update template",
      "delete_failed": "Failed to delete template",
      "name_required": "Template name is required",
      "display_name_required": "Display name is required",
      "resources_invalid_json": "Resource configuration must be valid JSON"
    }
  }
}
