{
  "nav": {
    "landing": "Home",
    "home": "Skill Center",
    "search": "Search",
    "skillDetail": "Skill Detail",
    "explore": "Explore Skills",
    "dashboard": "Dashboard",
    "mySkills": "My Skills",
    "publish": "Publish",
    "login": "Login"
  },
  "landing": {
    "hero": {
      "title": "Discover & Share AI Skills",
      "subtitle": "Build powerful AI agents with community-driven skills",
      "searchPlaceholder": "Search skills...",
      "exploreSkills": "Explore Skills",
      "publishSkill": "Publish Skill"
    },
    "features": {
      "secure": {
        "title": "Secure & Private",
        "description": "Enterprise-grade security for your AI workflows"
      },
      "community": {
        "title": "Community Driven",
        "description": "Share and discover skills from developers worldwide"
      },
      "integration": {
        "title": "Easy Integration",
        "description": "Seamlessly integrate with your existing tools"
      },
      "versionControl": {
        "title": "Version Control",
        "description": "Structured version management and release workflows that keep skill packages traceable and reliable."
      },
      "cli": {
        "title": "CLI Tooling",
        "description": "Powerful command-line workflows for publishing, installing, and managing skill packages."
      },
      "governance": {
        "title": "Review Governance",
        "description": "Built-in review flows and permission controls to keep enterprise skill quality high."
      }
    },
    "stats": {
      "skills": "Catalogs",
      "downloads": "Downloads",
      "teams": "Teams"
    },
    "whySkillHub": {
      "title": "Why SkillHub",
      "subtitle": "A private Agent skill platform designed for enterprise teams"
    },
    "badge": "Enterprise Skill Registry",
    "tagline": "Publish, Discover, Manage",
    "taglineHighlight": " Agent Skills",
    "description": "Self-hosted private skill registry, providing secure and efficient skill sharing and collaboration for teams",
    "publishSkill": "Publish Skill",
    "statsSkills": "Skills",
    "statsDownloads": "Downloads",
    "statsTeams": "Teams",
    "whyTitle": "Why Choose",
    "whyDescription": "Enterprise-grade skill management platform with complete publishing, discovery, and governance capabilities",
    "featuresList": {
      "privateDeploy": {
        "title": "Private Deployment",
        "description": "Fully self-hosted with data sovereignty. One-click deploy to your infrastructure, running securely behind your firewall."
      },
      "versionControl": {
        "title": "Version Control",
        "description": "Semantic versioning, custom tags (beta, stable), automatic latest version tracking."
      },
      "smartSearch": {
        "title": "Smart Search",
        "description": "Full-text search with multi-dimensional filtering by namespace, downloads, ratings, and time."
      },
      "teamwork": {
        "title": "Team Collaboration",
        "description": "Namespace management, role-based access control (Owner/Admin/Member), publishing policy configuration."
      },
      "governance": {
        "title": "Review & Governance",
        "description": "Team-level review, platform-level approval, full audit trail, meeting compliance requirements."
      },
      "cliFirst": {
        "title": "CLI First",
        "description": "Native REST API, compatible with existing ClawHub CLI tools, no client-side changes needed."
      }
    },
    "ctaTitle": "Ready to Get Started?",
    "ctaDescription": "Start your local development environment with a single command and experience the complete skill management workflow",
    "ctaButton": "Try Now",
    "footerLicense": "© 2026 SkillHub. Apache License 2.0.",
    "footerDocs": "Docs",
    "footerGithub": "GitHub",
    "footerCommunity": "Community",
    "quickStart": {
      "title": "Quick Start",
      "subtitle": "快速开始",
      "description": "Choose how you want to work, then copy the setup instruction and continue",
      "tip": "💡 Tip: Visit the skill detail page for one-click install commands with environment variables",
      "tabs": {
        "agent": "I am Agent",
        "human": "I am Human",
        "cli": "CLI"
      },
      "cli": {
        "description": "Install the SkillHub CLI locally to run skillhub install for skills.",
        "command": "npm i -g @astron-team/skillhub"
      },
      "agent": {
        "description": "Send a prompt to your Agent to set up the SkillHub Registry",
        "command": "Read https://www.example.com/registry/skill.md and follow the instructions to setup SkillHub Skills Registry",
        "commandTemplate": "Read {{url}} and follow the instructions to setup SkillHub Skills Registry"
      },
      "human": {
        "description": "Use the CLI tool to install Skills",
        "command": "npx clawhub search <keyword>"
      },
      "steps": {
        "configureEnv": {
          "title": "1. Configure Environment Variables",
          "description": "Configure ClawHub CLI to connect to SkillHub"
        },
        "installSkills": {
          "title": "2. Install Skills",
          "description": "Search and install the skills you need",
          "code": "# Search skills\nclawhub search <keyword>\n\n# Install skill\nclawhub install <skill>"
        },
        "publishSkills": {
          "title": "3. Publish Skills",
          "description": "Share your skills with the team",
          "code": "# Publish skill\nclawhub publish\n\n# Or use web interface\n# Click \"Publish Skill\""
        }
      }
    }
  },
  "home": {
    "subtitle": "Skill Registry",
    "description": "Efficient skill management, distribution, and collaboration platform for developers",
    "browseSkills": "Browse Skills",
    "publishSkill": "Publish Skill",
    "popularTitle": "Popular Downloads",
    "popularDescription": "Most popular skills in the community",
    "latestTitle": "Latest Releases",
    "latestDescription": "Freshly published skills",
    "viewAll": "View All →",
    "quickStart": {
      "title": "Quick Start",
      "subtitle": "快速开始",
      "description": "Get started with SkillHub in just a few simple steps",
      "tip": "💡 Tip: Visit the skill detail page for one-click install commands with environment variables",
      "steps": {
        "configureEnv": {
          "title": "1. Configure Environment Variables",
          "description": "Configure ClawHub CLI to connect to SkillHub"
        },
        "installSkills": {
          "title": "2. Install Skills",
          "description": "Search and install the skills you need",
          "code": "# Search skills\nclawhub search <keyword>\n\n# Install skill\nclawhub install <skill>"
        },
        "publishSkills": {
          "title": "3. Publish Skills",
          "description": "Share your skills with the team",
          "code": "# Publish skill\nclawhub publish\n\n# Or use web interface\n# Click \"Publish Skill\""
        }
      }
    }
  },
  "search": {
    "title": "Search Skills",
    "placeholder": "Search skills...",
    "filters": {
      "label": "Filter:"
    },
    "sort": {
      "label": "Sort:",
      "relevance": "Relevance",
      "downloads": "Downloads",
      "stars": "Stars",
      "newest": "Newest"
    },
    "noResults": "No results found",
    "noResultsFor": "No skills found matching \"{{q}}\"",
    "filterStarred": "Starred only",
    "noStarredResults": "No starred skills found",
    "noStarredResultsFor": "No starred skills match \"{{q}}\"",
    "noStarredSkills": "You have not starred any skills yet",
    "namespaceFilter": "@{{namespace}}",
    "enterKeyword": "Please enter a search keyword",
    "results": "{{count}} skills found",
    "resultCount": "Found <1>{{count}}</1> results",
    "loadingMore": "Updating search results..."
  },
  "searchBar": {
    "placeholder": "Search skills...",
    "button": "Search",
    "clear": "Clear search"
  },
  "login": {
    "title": "Login to SkillHub",
    "subtitle": "Choose a method to continue",
    "tabPassword": "Password",
    "tabOAuth": "Enterprise SSO",
    "username": "Username",
    "password": "Password",
    "usernamePlaceholder": "Enter username",
    "passwordPlaceholder": "Enter password",
    "usernameRequired": "Username is required",
    "passwordRequired": "Password is required",
    "showPassword": "Show password",
    "hidePassword": "Hide password",
    "submitting": "Logging in...",
    "submit": "Login",
    "forgotPassword": "Forgot password?",
    "noAccount": "Don't have an account?",
    "register": "Sign up now",
    "oauthHint": "After authentication with your external identity provider, you will be redirected back to this site.",
    "passwordCompatHint": "This deployment has the password compatibility layer enabled. The form will route to {{name}} instead of the fixed local account endpoint.",
    "enterpriseSsoTitle": "Enterprise SSO",
    "enterpriseSsoHint": "This deployment has the compatibility layer enabled. If your browser already has a {{name}} session, you can try establishing a SkillHub session directly.",
    "enterpriseSsoAutoHint": "This deployment has automatic {{name}} probing enabled. If it does not succeed, you can continue with the standard login methods.",
    "enterpriseSsoAction": "Try {{name}}",
    "enterpriseSsoSubmitting": "Trying {{name}}...",
    "failure": {
      "linkRequired": "This external identity must be linked to an existing account before it can sign in.",
      "casInvalidState": "This CAS login request has expired or was already used. Start the login again.",
      "casReplayDetected": "This CAS login request was already used. The replay was rejected; start the login again.",
      "casTicketMissing": "The CAS server did not return a service ticket. Start the login again.",
      "casValidationFailed": "CAS could not verify this login. Start the login again or contact your administrator.",
      "casUnavailable": "CAS login is temporarily unavailable. Try again later or contact your administrator.",
      "internalError": "Login could not be completed because of an internal error. Try again later."
    },
    "agreementPrefix": "By logging in, you agree to our",
    "terms": "Terms of Service",
    "and": "and",
    "privacy": "Privacy Policy"
  },
  "register": {
    "title": "Create Account",
    "subtitle": "Register locally or sign in directly with OAuth.",
    "tabLocal": "Local Account",
    "tabOAuth": "OAuth",
    "username": "Username",
    "email": "Email",
    "password": "Password",
    "usernamePlaceholder": "3-64 characters: letters, numbers, or underscores",
    "emailPlaceholder": "Enter your email",
    "emailRequired": "Email is required",
    "passwordPlaceholder": "At least 8 characters with 3 character types",
    "submitting": "Registering...",
    "submit": "Register & Login",
    "hasAccount": "Already have an account?",
    "login": "Back to login",
    "oauthHint": "Sign in directly with your existing OAuth account, no local password needed.",
    "usernameRequired": "Username is required",
    "usernameInvalid": "Only letters, numbers, or underscores allowed (3-64 characters)",
    "usernameExists": "Username already exists",
    "passwordRequired": "Password is required",
    "passwordTooShort": "Password must be at least 8 characters",
    "passwordTooWeak": "Password must contain at least 3 character types (uppercase, lowercase, numbers, special)",
    "emailInvalid": "Invalid email format",
    "emailExists": "Email already exists"
  },
  "resetPassword": {
    "title": "Reset Password",
    "subtitle": "Enter your email, verification code, and new password.",
    "email": "Email",
    "emailPlaceholder": "Enter email",
    "emailRequired": "Please enter your email",
    "emailInvalid": "Please enter a valid email address",
    "code": "Verification Code",
    "codePlaceholder": "Enter 6-digit verification code",
    "sendCode": "Send Verification Code",
    "sendingCode": "Sending...",
    "codeSentMessage": "If the account is eligible, a verification code has been sent.",
    "codeRequired": "Please enter the verification code",
    "newPassword": "New Password",
    "newPasswordPlaceholder": "Enter new password",
    "newPasswordRequired": "Please enter a new password",
    "confirmPassword": "Confirm Password",
    "confirmPasswordPlaceholder": "Re-enter new password",
    "passwordMismatch": "The two passwords do not match",
    "submit": "Reset Password",
    "submitting": "Resetting...",
    "successMessage": "Password reset successful. Please sign in with your new password.",
    "genericError": "Failed to reset password",
    "backToLogin": "Back to login"
  },
  "device": {
    "title": "Device Authorization",
    "subtitle": "Enter the 8-digit user code shown on your device",
    "codeLabel": "User Code",
    "codeHint": "Format: XXXX-XXXX (paste supported)",
    "incompleteCode": "Please enter the complete 8-digit user code",
    "success": "Device authorized successfully!",
    "defaultError": "Authorization failed, please check the user code",
    "submitting": "Authorizing...",
    "submit": "Authorize Device",
    "notice": "After authorization, the device will have access to your account"
  },
  "cliAuth": {
    "validating": "Validating...",
    "pleaseWait": "Please wait",
    "creatingToken": "Creating token...",
    "almostThere": "Almost there",
    "success": "Authorization successful",
    "redirecting": "Redirecting to CLI...",
    "fallbackInstructions": "If the browser doesn't redirect automatically, please copy the token below:",
    "error": "Authorization failed",
    "notAuthenticated": "You are not logged in",
    "invalidRedirectUri": "Invalid redirect URI",
    "missingState": "Missing security parameter",
    "windowsUrlBug": "Known Windows issue: the browser opened an incomplete URL. Please copy the full URL from the CLI output (the line starting with 'Opening browser:') and paste it into your browser address bar.",
    "tokenCreationFailed": "Token creation failed",
    "loginRequired": "Please log in first to authorize CLI access",
    "goToLogin": "Go to Login"
  },
  "dashboard": {
    "title": "Dashboard",
    "subtitle": "View your account, skills, and access credentials in one place",
    "backToDashboard": "Back to Dashboard",
    "userInfo": "Account Information",
    "userInfoDesc": "Basic account details and platform roles",
    "loginVia": "Logged in via {{provider}}",
    "platformRoles": "Platform Roles",
    "starsAndRatings": "Stars & Ratings",
    "viewStars": "View My Stars",
    "subscriptions": "Subscriptions",
    "viewSubscriptions": "View My Subscriptions",
    "mySkillsTitle": "My Skills",
    "openMySkills": "View My Skills",
    "mySkillsPreviewDescription": "Showing your 5 most recent skills. Open a skill or go to My Skills to view all.",
    "mySkillsPreviewEmpty": "You have not published any skills yet",
    "credentials": "Credentials",
    "openTokens": "View API Tokens",
    "governanceTitle": "Review & Governance",
    "viewGovernance": "Open Governance Center",
    "viewPromotions": "View Promotions",
    "reportsTitle": "Report Management",
    "viewReports": "View skill reports",
    "previewMore": "...",
    "previewMoreLabel": "View All",
    "userId": "User ID"
  },
  "mySkills": {
    "title": "My Skills",
    "subtitle": "Manage your published skills",
    "searchPlaceholder": "Search by name, slug, or description",
    "namespaceFilterLabel": "Filter by namespace",
    "namespaceFilterAll": "All namespaces",
    "clearSearch": "Clear filters",
    "emptySearchTitle": "No matching skills",
    "emptySearchDescription": "Try adjusting your keyword or switching namespace.",
    "filters": {
      "ALL": "All",
      "PENDING_REVIEW": "Pending Review",
      "PUBLISHED": "Published",
      "REJECTED": "Rejected",
      "ARCHIVED": "Archived",
      "HIDDEN": "Hidden"
    },
    "publishNew": "Publish New Skill",
    "update": "Update",
    "archive": "Archive",
    "unarchive": "Restore",
    "statusArchived": "Archived",
    "statusPendingReview": "Pending Review",
    "statusPublished": "Published",
    "statusRejected": "Rejected",
    "statusHidden": "Hidden",
    "statusScanning": "Scanning",
    "statusScanFailed": "Scan Failed",
    "archiveConfirmTitle": "Archive skill",
    "archiveConfirmDescription": "After archiving, regular users will no longer be able to view or download \"{{skill}}\". Continue?",
    "unarchiveConfirmTitle": "Restore skill",
    "unarchiveConfirmDescription": "\"{{skill}}\" will become visible again and can publish new versions after being restored.",
    "archiveSuccessTitle": "Skill archived",
    "archiveSuccessDescription": "\"{{skill}}\" has been archived.",
    "archiveErrorTitle": "Failed to archive skill",
    "unarchiveSuccessTitle": "Skill restored",
    "unarchiveSuccessDescription": "\"{{skill}}\" has been restored and can publish new versions again.",
    "unarchiveErrorTitle": "Failed to restore skill",
    "withdrawReview": "Withdraw Review",
    "withdrawConfirmTitle": "Withdraw upload",
    "withdrawConfirmDescription": "After withdrawal, \"{{skill}}\" will no longer be reviewed and the pending version will be deleted.",
    "withdrawSuccessTitle": "Upload withdrawn",
    "withdrawSuccessDescription": "The pending version for \"{{skill}}\" has been withdrawn.",
    "withdrawErrorTitle": "Failed to withdraw upload",
    "promoteToGlobal": "Promote to Global",
    "promotionConfirmTitle": "Submit promotion request",
    "promotionConfirmDescription": "Submit v{{version}} of \"{{skill}}\" for promotion into the global namespace?",
    "promotionSuccessTitle": "Promotion request submitted",
    "promotionSuccessDescription": "v{{version}} of \"{{skill}}\" is now in the global promotion review queue.",
    "promotionDuplicateTitle": "Promotion already pending",
    "promotionDuplicateDescription": "This version already has a pending promotion request.",
    "promotionAlreadyPromotedTitle": "Skill already promoted",
    "promotionAlreadyPromotedDescription": "This skill has already been promoted to the global namespace.",
    "promotionErrorTitle": "Failed to submit promotion request",
    "emptyTitle": "No skills yet",
    "emptyDescription": "Start publishing your first skill",
    "emptyFilteredTitle": "No skills match this filter",
    "emptyFilteredDescription": {
      "PENDING_REVIEW": "There are no skills waiting for review right now.",
      "PUBLISHED": "There are no published skills right now.",
      "REJECTED": "There are no rejected skills right now.",
      "ARCHIVED": "There are no archived skills right now.",
      "HIDDEN": "There are no hidden skills right now."
    },
    "publishSkill": "Publish Skill"
  },
  "myNamespaces": {
    "title": "My Namespaces",
    "subtitle": "Manage your namespaces and teams",
    "create": "Create Namespace",
    "creating": "Creating...",
    "createSubmit": "Create Now",
    "createDialogTitle": "Create Team Namespace",
    "createDialogDescription": "You will become the OWNER after creation and can continue managing members, reviews, and skill publishing.",
    "createSlugLabel": "Namespace slug",
    "createSlugPlaceholder": "e.g. team-ml",
    "createSlugHint": "Use 2-64 lowercase letters, numbers, or hyphens, without leading or trailing hyphens.",
    "createSlugRequired": "Namespace slug is required",
    "createSlugLength": "Namespace slug must be between {{min}} and {{max}} characters",
    "createSlugPattern": "Namespace slug can only contain lowercase letters, numbers, or hyphens",
    "createSlugDoubleHyphen": "Namespace slug cannot contain consecutive hyphens",
    "createSlugReserved": "\"{{slug}}\" is reserved. Please choose another slug.",
    "createDisplayNameLabel": "Display name",
    "createDisplayNamePlaceholder": "e.g. Machine Learning Team",
    "createDisplayNameRequired": "Display name is required",
    "createDisplayNameLength": "Display name must be at most {{max}} characters",
    "createDescriptionLabel": "Description",
    "createDescriptionPlaceholder": "Briefly describe what this namespace is for, who uses it, or how it is governed",
    "createDescriptionHint": "Optional, up to 512 characters.",
    "createDescriptionLength": "Description must be at most {{max}} characters",
    "createSuccessTitle": "Namespace created",
    "createSuccessDescription": "\"{{name}}\" is ready. You can now manage members or publish skills.",
    "createErrorTitle": "Failed to create namespace",
    "typeGlobal": "Global",
    "typeTeam": "Team",
    "roleLabel": "Current role",
    "roleUnknown": "Unknown",
    "manageMembers": "Manage Members",
    "reviewTasks": "Review Tasks",
    "freeze": "Freeze",
    "unfreeze": "Unfreeze",
    "archive": "Archive",
    "restore": "Restore",
    "delete": "Delete",
    "activeHint": "This namespace is fully active and can continue managing members, reviews, and skill publishing.",
    "frozenHint": "This namespace is frozen. Members can still view it, but it is read-only and cannot publish or change membership.",
    "archivedHint": "This namespace is archived. Public entry points are hidden, but you can still view and restore it from the dashboard.",
    "immutableHint": "This is a built-in system namespace and always remains read-only.",
    "freezeConfirmTitle": "Freeze namespace",
    "freezeConfirmDescription": "\"{{name}}\" will become read-only after freezing. Continue?",
    "unfreezeConfirmTitle": "Unfreeze namespace",
    "unfreezeConfirmDescription": "\"{{name}}\" will regain normal management and publishing after unfreezing.",
    "archiveConfirmTitle": "Archive namespace",
    "archiveConfirmDescription": "\"{{name}}\" will be hidden from public entry points and only remain recoverable from the dashboard.",
    "restoreConfirmTitle": "Restore namespace",
    "restoreConfirmDescription": "\"{{name}}\" will return to an active operating state.",
    "deleteConfirmTitle": "Delete namespace",
    "deleteConfirmDescription": "\"{{name}}\" will be permanently deleted. This cannot be undone.",
    "freezeSuccessTitle": "Namespace frozen",
    "freezeSuccessDescription": "\"{{name}}\" is now read-only.",
    "freezeErrorTitle": "Failed to freeze namespace",
    "unfreezeSuccessTitle": "Namespace unfrozen",
    "unfreezeSuccessDescription": "\"{{name}}\" is active again.",
    "unfreezeErrorTitle": "Failed to unfreeze namespace",
    "archiveSuccessTitle": "Namespace archived",
    "archiveSuccessDescription": "\"{{name}}\" is now hidden from public entry points.",
    "archiveErrorTitle": "Failed to archive namespace",
    "restoreSuccessTitle": "Namespace restored",
    "restoreSuccessDescription": "\"{{name}}\" can operate normally again.",
    "restoreErrorTitle": "Failed to restore namespace",
    "deleteSuccessTitle": "Namespace deleted",
    "deleteSuccessDescription": "\"{{name}}\" has been permanently deleted.",
    "deleteErrorTitle": "Failed to delete namespace",
    "emptyTitle": "No namespaces yet",
    "emptyDescription": "Create a namespace to organize your skills"
  },
  "tokens": {
    "pageTitle": "Token Management",
    "pageSubtitle": "Manage access credentials for CLI and API"
  },
  "reviews": {
    "title": "Review Center",
    "subtitle": "Manage platform review tasks",
    "typeSkill": "Skill Reviews",
    "typeProfile": "Profile Reviews",
    "tabPending": "Pending",
    "tabApproved": "Approved",
    "tabRejected": "Rejected",
    "empty": "No review tasks",
    "colSkill": "Skill",
    "colVersion": "Version",
    "colSubmitter": "Submitted By",
    "colSubmitTime": "Submitted At",
    "colReviewer": "Reviewed By",
    "colReviewTime": "Reviewed At",
    "sortLabel": "Time Order",
    "sortNewest": "Newest first",
    "sortOldest": "Oldest first",
    "pageSummary": "Total {{total}} records, page {{page}}",
    "prevPage": "Previous",
    "nextPage": "Next"
  },
  "profileReview": {
    "queueTitle": "Profile Review Queue",
    "queueSubtitle": "Process display-name change requests with status filters, pagination, and review actions.",
    "empty": "No profile review tasks",
    "colUser": "User",
    "colCurrentName": "Current Name",
    "colRequestedName": "Requested Name",
    "colSubmittedAt": "Submitted At",
    "colMachineResult": "Machine Review",
    "colActions": "Actions",
    "colReviewInfo": "Review Info",
    "approve": "Approve",
    "reject": "Reject",
    "approveSuccess": "Profile change approved",
    "approveFailed": "Failed to approve",
    "rejectSuccess": "Profile change rejected",
    "rejectFailed": "Failed to reject",
    "confirmApproveTitle": "Confirm Approval",
    "confirmApproveDesc": "Approve changing \"{{from}}\" to \"{{to}}\"?",
    "confirmRejectTitle": "Reject Change",
    "confirmRejectDesc": "Please provide a reason for rejection.",
    "rejectPlaceholder": "Rejection reason...",
    "userId": "User ID",
    "reviewer": "Reviewer",
    "comment": "Comment",
    "totalItems": "{{total}} profile review records in total",
    "sortLabel": "Time Order",
    "sortNewest": "Newest first",
    "sortOldest": "Oldest first",
    "pageSummary": "Total {{total}} records, page {{page}}",
    "prevPage": "Previous",
    "nextPage": "Next",
    "tabPending": "Pending",
    "tabApproved": "Approved",
    "tabRejected": "Rejected"
  },
  "stars": {
    "title": "My Stars",
    "subtitle": "View your starred skills",
    "empty": "No starred skills yet"
  },
  "subscriptions": {
    "title": "My Subscriptions",
    "subtitle": "Skills you subscribed to for updates",
    "empty": "You haven't subscribed to any skills yet."
  },
  "promotions": {
    "title": "Promotion Review",
    "subtitle": "Review team skill promotion requests to global namespace",
    "tabPending": "Pending",
    "tabApproved": "Approved",
    "tabRejected": "Rejected",
    "commentPlaceholder": "Review comment (optional)",
    "approve": "Approve",
    "reject": "Reject",
    "empty": "No promotion requests",
    "historyTableLabel": "Promotion history",
    "colSkill": "Skill",
    "colVersion": "Version",
    "colSubmitter": "Submitter",
    "colReviewer": "Reviewer",
    "colReviewedAt": "Reviewed At",
    "colReviewComment": "Review Comment",
    "sortReviewedTimeAsc": "Sort by reviewed time ascending",
    "sortReviewedTimeDesc": "Sort by reviewed time descending",
    "emptyValue": "-",
    "versionTag": "v{{version}}",
    "submitterTag": "Submitter {{user}}",
    "fileCountTag": "{{count}} files",
    "packageSizeTag": "{{size}}",
    "downloadCountTag": "{{value}} downloads",
    "starCountTag": "{{value}} stars"
  },
  "adminUsers": {
    "title": "User Management",
    "subtitle": "Manage platform users and permissions",
    "searchLabel": "Search users",
    "searchPlaceholder": "Search username or email...",
    "searchHint": "Enter a username or email, then press Enter or click Search.",
    "searchAction": "Search",
    "clearSearch": "Clear",
    "filterLabel": "Status filter",
    "filterAll": "All",
    "filterActive": "Active",
    "filterPending": "Pending",
    "filterDisabled": "Disabled",
    "empty": "No user data",
    "colUsername": "Username",
    "colUserId": "User ID",
    "copyUserId": "Copy user ID for {{username}}",
    "colEmail": "Email",
    "colStatus": "Status",
    "colRole": "Role",
    "colCreatedAt": "Created At",
    "colActions": "Actions",
    "statusActive": "Active",
    "statusPending": "Pending",
    "statusDisabled": "Disabled",
    "changeRole": "Change Role",
    "approveUser": "Approve",
    "disable": "Disable",
    "enable": "Enable",
    "resetPassword": "Reset Password",
    "totalRecords": "Total {{total}} records, page {{page}}",
    "prevPage": "Previous",
    "nextPage": "Next",
    "changeRoleTitle": "Change User Role",
    "changeRoleDesc": "Assign a new role to user {{username}}",
    "roleLabel": "Role",
    "selectRole": "Select role",
    "roleUser": "User",
    "roleReviewer": "Reviewer",
    "roleUserAdmin": "User Admin",
    "roleAuditor": "Auditor",
    "roleSuperAdmin": "Super Admin",
    "confirmAction": "Confirm Action",
    "confirmDisable": "Are you sure you want to disable user {{username}}?",
    "confirmEnable": "Are you sure you want to enable user {{username}}?",
    "confirmResetPassword": "Send password reset verification code to user {{username}}?"
  },
  "adminLabels": {
    "title": "Label Management",
    "subtitle": "Manage label definitions, visibility, translations, and filter ordering.",
    "createAction": "Create Label",
    "editAction": "Edit",
    "deleteAction": "Delete",
    "saveAction": "Save Changes",
    "cancelAction": "Cancel",
    "moveUp": "Move Up",
    "moveDown": "Move Down",
    "empty": "No labels have been defined yet.",
    "summaryDefinitionsTitle": "Definitions",
    "summaryVisibleTitle": "Visible Filters",
    "summaryPrivilegedTitle": "Privileged Labels",
    "colLabel": "Label",
    "colType": "Type",
    "colVisibility": "Visibility",
    "colSortOrder": "Sort Order",
    "colTranslations": "Translations",
    "colCreatedAt": "Created At",
    "colActions": "Actions",
    "typeRecommended": "Recommended",
    "typePrivileged": "Privileged",
    "visibilityVisible": "Visible in filters",
    "visibilityHidden": "Hidden from filters",
    "createDialogTitle": "Create Label",
    "createDialogDescription": "Define a new label and the translations that should appear in search and detail screens.",
    "editDialogTitle": "Edit Label",
    "editDialogDescription": "Update display rules and translations for this label definition.",
    "deleteDialogTitle": "Delete Label",
    "deleteDialogDescription": "Delete label \"{{slug}}\" and remove it from all attached skills.",
    "formSlug": "Slug",
    "formType": "Type",
    "formVisibility": "Visibility",
    "formSortOrder": "Sort Order",
    "formTranslations": "Translations",
    "formTranslationsHint": "Provide at least one locale and display name pair.",
    "translationLocalePlaceholder": "Locale, e.g. en or zh-CN",
    "translationDisplayNamePlaceholder": "Display name",
    "addTranslation": "Add Translation",
    "removeTranslation": "Remove",
    "validationSlugTitle": "Slug required",
    "validationSlugDescription": "Enter a stable slug before saving this label.",
    "validationSlugPatternDescription": "Use lowercase letters, numbers, and single hyphens only. The slug must start and end with a letter or number.",
    "validationTranslationsTitle": "Translations required",
    "validationTranslationsDescription": "At least one complete locale and display name pair is required.",
    "validationDuplicateLocaleDescription": "Each translation locale can only appear once.",
    "createSuccessTitle": "Label created",
    "createSuccessDescription": "The label definition is now available.",
    "createErrorTitle": "Failed to create label",
    "updateSuccessTitle": "Label updated",
    "updateSuccessDescription": "The label definition was updated.",
    "updateErrorTitle": "Failed to update label",
    "deleteSuccessTitle": "Label deleted",
    "deleteSuccessDescription": "The label definition was removed.",
    "deleteErrorTitle": "Failed to delete label",
    "sortSuccessTitle": "Sort order updated",
    "sortSuccessDescription": "Label ordering has been saved.",
    "sortErrorTitle": "Failed to update sort order",
    "fallbackErrorDescription": "The label action could not be completed."
  },
  "auditLog": {
    "title": "Audit Log",
    "subtitle": "View system operation records",
    "filterAll": "All",
    "filterCliPublish": "CLI Publish",
    "filterCompatPublish": "Compat Publish",
    "filterReviewSubmit": "Review Submitted",
    "filterReviewApprove": "Review Approved",
    "filterReviewReject": "Review Rejected",
    "filterPromotionSubmit": "Promotion Submitted",
    "filterPromotionApprove": "Promotion Approved",
    "filterPromotionReject": "Promotion Rejected",
    "filterReportSkill": "Skill Reported",
    "filterResolveSkillReport": "Report Resolved",
    "filterDismissSkillReport": "Report Dismissed",
    "filterHideSkill": "Skill Hidden",
    "filterArchiveSkill": "Skill Archived",
    "filterUnhideSkill": "Skill Unhidden",
    "filterUnarchiveSkill": "Skill Restored",
    "filterYankVersion": "Version Yanked",
    "filterRebuildSearchIndex": "Search Index Rebuilt",
    "quickFilterSearchRebuild": "Search index rebuilds only",
    "clearFilters": "Clear filters",
    "userIdPlaceholder": "User ID...",
    "requestIdPlaceholder": "Request ID...",
    "ipPlaceholder": "IP address...",
    "resourceTypePlaceholder": "Resource type...",
    "resourceIdPlaceholder": "Resource ID...",
    "empty": "No audit logs",
    "colTime": "Time",
    "colAction": "Action",
    "colUserId": "User ID",
    "colUsername": "Username",
    "colIp": "IP Address",
    "colDetail": "Details",
    "totalRecords": "Total {{total}} records, page {{page}}",
    "prevPage": "Previous",
    "nextPage": "Next"
  },
  "profile": {
    "title": "Profile Settings",
    "subtitle": "Manage your display name and personal information.",
    "displayName": "Display Name",
    "email": "Email",
    "resetPassword": "Reset Password",
    "edit": "Edit",
    "save": "Save",
    "saving": "Saving...",
    "cancel": "Cancel",
    "successTitle": "Profile Updated",
    "successDescription": "Your display name has been updated.",
    "pendingReviewTitle": "Submitted for Review",
    "pendingReviewDescription": "Your display name change is pending review and will take effect once approved.",
    "defaultError": "Failed to update profile. Please try again.",
    "validation": {
      "length": "Display name must be 2-32 characters.",
      "pattern": "Display name can only contain Chinese, English, digits, spaces, underscores, and hyphens."
    },
    "pendingReview": "Your display name change to \"{{name}}\" is pending review.",
    "rejected": "Your display name change was rejected.",
    "rejectedReason": "Reason: {{reason}}",
    "reviewHint": "Some changes require admin review before taking effect.",
    "partiallyAppliedTitle": "Partially Applied",
    "partiallyAppliedDescription": "Some changes were applied immediately. Others are pending admin review.",
    "noChanges": "No changes to save.",
    "userId": "User ID"
  },
  "security": {
    "title": "Security Settings",
    "subtitle": "Update your password when local account login is enabled.",
    "currentPassword": "Current Password",
    "newPassword": "New Password",
    "currentPasswordRequired": "Please enter your current password",
    "newPasswordRequired": "Please enter your new password",
    "invalidCurrentPassword": "Current password is incorrect",
    "success": "Password changed successfully",
    "successTitle": "Password changed successfully",
    "successDescription": "Please sign in again with your new password.",
    "defaultError": "Failed to change password",
    "unavailableTitle": "Password changes are unavailable for this account.",
    "unavailableDescription": "This account signs in through an external identity provider or has no local password credential.",
    "submitting": "Submitting...",
    "submit": "Update Password",
    "identityLinks": {
      "title": "Login Methods",
      "subtitle": "Add or remove ways to sign in. Security-sensitive changes require you to verify your current account again.",
      "linkedTitle": "Linked login methods",
      "availableTitle": "Available login methods",
      "localPassword": "Local password",
      "localPasswordDescription": "Sign in with your SkillHub username and password.",
      "externalLogin": "External identity provider",
      "active": "Active",
      "providerUnavailable": "This identity provider is currently unavailable.",
      "remove": "Remove",
      "add": "Add",
      "availableDescription": "Connect this identity provider to your current account.",
      "noLinkedMethods": "No usable login method is currently linked.",
      "noAvailableMethods": "There are no additional login methods available.",
      "finalMethodHint": "You cannot remove the final usable login method.",
      "loading": "Loading login methods...",
      "loadingIntent": "Loading security verification...",
      "dialogTitle": "Verify account control",
      "linkDialogDescription": "Verify your current account before linking {{name}}.",
      "unlinkDialogDescription": "Verify your current account before removing {{name}}.",
      "reauthenticationDescription": "For your security, verify one of the login methods already linked to this account.",
      "verifyPassword": "Verify password",
      "verifyWithProvider": "Verify in your browser",
      "verifyWithCredentials": "Verify with provider credentials",
      "verifyCredentials": "Verify credentials",
      "username": "Username",
      "password": "Password",
      "passwordRequired": "Enter your current password.",
      "credentialsRequired": "Enter both username and password.",
      "reauthenticated": "Current account verified. Now authenticate the login method you want to link.",
      "continueWithProvider": "Continue with {{name}}",
      "linkProvider": "Link {{name}}",
      "unlinkConfirmation": "Removing {{name}} prevents future sign-ins through this identity. Existing platform data is not deleted.",
      "confirmRemove": "Remove login method",
      "cancel": "Cancel",
      "noReauthenticationMethod": "None of the linked login methods currently supports fresh verification. Cancel this request and contact an administrator.",
      "intentUnavailable": "This security request has expired or was cancelled. Start again from the login methods list.",
      "linkSuccess": "The login method was linked successfully.",
      "browserFailed": "Browser verification failed or was cancelled. No login method was changed.",
      "reauthenticationFailed": "Could not verify the current account.",
      "linkFailed": "Could not link this login method.",
      "unlinkFailed": "Could not remove this login method.",
      "defaultError": "Could not update login methods. Please try again."
    }
  },
  "accounts": {
    "title": "Merge accounts",
    "description": "Move eligible login methods and current data from another account into this account after independently verifying both accounts.",
    "loading": "Loading account merge capabilities...",
    "loadingIntent": "Loading the protected merge request...",
    "errorTitle": "Account merge could not be loaded",
    "unavailableTitle": "Account merging is temporarily unavailable",
    "unavailableDescription": "The previous flow could not independently verify control of both accounts, so it has been disabled during a security redesign.",
    "unavailableOperatorAction": "Do not ask an administrator to complete a merge in the database. Keep using the accounts separately until the secure flow is available.",
    "warningTitle": "This operation is permanent",
    "warningDescription": "The secondary account will no longer be usable, its API tokens will be revoked, and a completed merge cannot be undone automatically.",
    "primaryBrowserSuccess": "This account was freshly verified. Continue now to create the protected merge request.",
    "secondaryBrowserSuccess": "The other account was independently verified. Review the migration plan before confirming.",
    "working": "Working...",
    "completedTitle": "Accounts merged",
    "completedDescription": "Eligible data was moved to this account. The secondary account and its existing sessions and API tokens can no longer be used.",
    "done": "Done",
    "intentUnavailableTitle": "Merge request unavailable",
    "startOver": "Start over",
    "cancel": "Cancel merge",
    "confirm": "Permanently merge accounts",
    "confirmAcknowledgement": "I reviewed the migration plan and understand that this merge is permanent and revokes the secondary account's API tokens and sessions.",
    "primary": {
      "title": "1. Verify this account",
      "description": "Your current session is not enough. Use one login method already linked to this account for fresh verification.",
      "continue": "Create protected merge request",
      "noMethods": "This account has no login method that supports fresh verification. Link a supported login method before merging."
    },
    "secondary": {
      "title": "2. Independently verify the other account",
      "description": "Sign in to the account you want to merge. Do not enter an email address, user ID, or provider subject as a substitute for authentication.",
      "verifyLocal": "Verify other local account"
    },
    "authentication": {
      "username": "Username",
      "password": "Password",
      "localPassword": "Local password",
      "currentPassword": "Current password",
      "verifyAndContinue": "Verify and continue",
      "browserMethods": "Verify in a browser",
      "credentialMethods": "Verify with provider credentials"
    },
    "preview": {
      "title": "3. Review the migration plan",
      "description": "The server recalculates this plan from current data. Any later change makes an earlier preview stale.",
      "readyTitle": "The merge can be confirmed",
      "readyDescription": "No blocking permission or ownership conflict was found. Review every item before confirming.",
      "blockedTitle": "Resolve conflicts before merging",
      "blockedDescription": "No data was moved. Resolve the listed conflicts, then refresh the preview.",
      "identityProviders": "Identity providers to move",
      "localCredential": "Local credential action",
      "localCredentialActions": {
        "NONE": "No local credential change",
        "MOVE_SECONDARY": "Move the secondary local credential",
        "KEEP_PRIMARY_DELETE_SECONDARY": "Keep this account's credential and invalidate the secondary credential"
      },
      "skills": "Skills changing owner",
      "tokens": "API tokens to revoke",
      "namespaces": "Namespace membership changes",
      "tokensToRevoke": "Secondary API tokens that will be revoked",
      "social": "Stars, ratings, and subscriptions",
      "socialSummary": "{{stars}} stars, {{ratings}} ratings, and {{subscriptions}} subscriptions move; {{duplicates}} duplicate records are discarded.",
      "discardedRatings": "Secondary ratings that will be discarded",
      "discardedRating": "Skill #{{skillId}}: discard score {{score}} and retain this account's rating.",
      "notifications": "Notifications and preferences",
      "notificationSummary": "{{notifications}} notifications, {{preferences}} preferences, and {{governance}} governance notifications move; {{duplicates}} duplicate preferences are discarded.",
      "blockedRoles": "Blocking platform roles",
      "conflicts": "Blocking conflicts",
      "conflictItem": "{{resource}} — {{action}}",
      "conflictActions": {
        "REMOVE_DUPLICATE_IDENTITY": "remove one conflicting login identity",
        "REMOVE_SECONDARY_PLATFORM_ROLE": "remove the secondary account's elevated platform role",
        "TRANSFER_NAMESPACE_OWNERSHIP": "transfer namespace ownership before retrying",
        "REASSIGN_OR_RENAME_SKILL": "reassign or rename the conflicting Skill",
        "COMPLETE_OR_CANCEL_IDENTITY_LINK": "complete or cancel the active identity-link request",
        "COMPLETE_OR_CANCEL_PROFILE_CHANGE": "complete or cancel the pending profile change"
      },
      "none": "None",
      "build": "Build migration preview",
      "refresh": "Refresh migration preview"
    },
    "errors": {
      "unavailable": "Secure account merging is not enabled on this deployment.",
      "intentUnavailable": "This merge request expired, was cancelled, belongs to another session, or was already consumed. Start again.",
      "authenticationFailed": "Account verification failed. Check the credentials and account status, then try again.",
      "providerAuthenticationFailed": "The identity provider did not verify the account. No merge data was changed.",
      "providerUnavailable": "This identity provider is not currently available for account verification.",
      "conflict": "The accounts have a blocking permission, identity, ownership, or workflow conflict.",
      "previewStale": "The account data changed after this preview. Build and review a new preview.",
      "accountNotEligible": "One of the accounts is not eligible for merging.",
      "passwordRequired": "Enter your current password.",
      "credentialsRequired": "Enter both username and password.",
      "default": "The account merge request could not be completed. No partial merge was applied."
    }
  },
  "namespace": {
    "notFound": "Namespace not found",
    "skillList": "Skills",
    "emptyTitle": "No skills",
    "emptyDescription": "No skills have been published in this namespace yet"
  },
  "skillDetail": {
    "back": "Back",
    "notFound": "Skill not found",
    "notFoundDesc": "This skill may have been deleted or never existed",
    "loginRequired": "Login Required",
    "loginRequiredDesc": "This skill is private. Please login to view details.",
    "accessDenied": "Access Denied",
    "accessDeniedDesc": "You don't have permission to view this skill",
    "tabReadme": "README",
    "tabOverview": "Overview",
    "tabFiles": "Files",
    "tabVersions": "Versions",
    "noReadme": "No README",
    "readmeUnavailable": "README is temporarily unavailable. Please try again later or re-upload this skill version.",
    "documentationSource": "Source: {{path}}",
    "documentationUnavailableTitle": "Documentation is unavailable",
    "documentationUnavailable": "The documentation file could not be loaded. You can still inspect the package contents in the file list.",
    "packageLinkMissingTitle": "File not found",
    "packageLinkMissingDescription": "This link points to a file that is not included in the current skill version.",
    "authorLabel": "By {{name}}",
    "expandOverview": "Expand full overview",
    "collapseOverview": "Collapse content",
    "noDocumentationTitle": "No package documentation",
    "noDocumentationDescription": "This skill version does not include a readable overview file.",
    "noDocumentationHint": "Many skills only ship executable files. You can continue with the file list and version details below.",
    "summaryLabel": "Summary",
    "noFiles": "No files",
    "noVersions": "No versions",
    "fileCount": "{{count}} files",
    "version": "Version",
    "downloads": "Downloads",
    "rating": "Rating",
    "ratingNone": "None",
    "namespaceLabel": "Namespace",
    "loginToRate": "Login to star and rate",
    "install": "Install",
    "installMethodClawhub": "ClawHub CLI",
    "installMethodSkillhub": "SkillHub CLI",
    "download": "Download",
    "labelsSectionTitle": "Labels",
    "labelsSectionDescription": "Attach or remove recommended labels that help users filter and discover this skill.",
    "labelsSectionDescriptionSuperAdmin": "Manage all labels on this skill, including privileged labels that stay hidden from public filters.",
    "currentLabelsTitle": "Current labels",
    "availableLabelsTitle": "Available labels",
    "noLabelsAssigned": "No labels are attached to this skill yet.",
    "loadingAvailableLabels": "Loading available labels...",
    "noAvailableLabels": "No more labels can be attached right now.",
    "addLabel": "Add {{label}}",
    "removeLabel": "Remove",
    "labelRestrictedHint": "Super admin only",
    "labelAttachSuccessTitle": "Label attached",
    "labelAttachSuccessDescription": "The skill labels were updated.",
    "labelAttachErrorTitle": "Failed to attach label",
    "labelDetachSuccessTitle": "Label removed",
    "labelDetachSuccessDescription": "The skill labels were updated.",
    "labelDetachErrorTitle": "Failed to remove label",
    "labelActionFallbackError": "The label action could not be completed.",
    "lifecycle": "Lifecycle",
    "lifecycleHint": "You can archive this skill. Archived skills are hidden from regular users and cannot be downloaded.",
    "archivedPublishHint": "This skill is archived. Restore it before publishing a new version.",
    "archivedInstallHint": "This skill is archived and not available for public download.",
    "statusActive": "Active",
    "statusArchived": "Archived",
    "statusHidden": "Hidden",
    "versionStatusDraft": "Draft",
    "versionStatusScanning": "Scanning",
    "versionStatusScanFailed": "Scan Failed",
    "versionStatusUploaded": "Uploaded",
    "versionStatusPendingReview": "Pending Review",
    "versionStatusPublished": "Published",
    "versionStatusRejected": "Rejected",
    "versionStatusYanked": "Yanked",
    "pendingPreviewBadge": "Pending Preview",
    "rejectedBadge": "Review Rejected",
    "pendingPreviewTitle": "You are previewing a pending version",
    "pendingPreviewDescription": "This version is only visible to you. Before review approval, you can inspect the README, files, and version information, but you cannot star, rate, report, or download it.",
    "pendingPreviewInteractionHint": "Stars, ratings, and reports are disabled while this version is pending review.",
    "rejectedPreviewDescription": "This version was rejected and is currently visible only to you. Update it based on the feedback below and publish again.",
    "rejectedPreviewInteractionHint": "Rejected preview versions cannot be starred, rated, or reported.",
    "rejectedFeedbackTitle": "Review Rejected",
    "rejectedFeedbackLabel": "Reviewer feedback",
    "rejectedFeedbackFallback": "No rejection feedback was provided.",
    "governance": "Governance",
    "processing": "Processing...",
    "archiveSkill": "Archive Skill",
    "unarchiveSkill": "Restore Skill",
    "deleteSkill": "Delete Skill",
    "deleteSkillContinue": "Continue",
    "deleteSkillFinal": "Delete Permanently",
    "withdrawReview": "Withdraw Review",
    "hideSkill": "Hide Skill",
    "unhideSkill": "Unhide Skill",
    "archiveConfirmTitle": "Archive skill",
    "archiveConfirmDescription": "After archiving, regular users will no longer be able to view or download \"{{skill}}\". Continue?",
    "unarchiveConfirmTitle": "Restore skill",
    "unarchiveConfirmDescription": "\"{{skill}}\" will become visible again and can publish new versions after being restored.",
    "deleteSkillConfirmTitle": "Permanently delete skill",
    "deleteSkillConfirmDescription": "This removes every version, file, and download bundle for \"{{skill}}\" and cannot be undone.",
    "deleteSkillInputTitle": "Type the skill slug to confirm",
    "deleteSkillInputDescription": "Enter the skill slug \"{{slug}}\" to continue.",
    "deleteSkillInputPlaceholder": "Enter skill slug",
    "deleteSkillWarning": "This is a physical hard delete. Historical versions and bundles will be removed permanently.",
    "archiveSuccessTitle": "Skill archived",
    "archiveSuccessDescription": "\"{{skill}}\" has been archived.",
    "archiveErrorTitle": "Failed to archive skill",
    "unarchiveSuccessTitle": "Skill restored",
    "unarchiveSuccessDescription": "\"{{skill}}\" has been restored.",
    "unarchiveErrorTitle": "Failed to restore skill",
    "deleteSkillSuccessTitle": "Skill deleted",
    "deleteSkillSuccessDescription": "\"{{skill}}\" has been permanently deleted.",
    "deleteSkillErrorTitle": "Failed to delete skill",
    "withdrawReviewConfirmTitle": "Withdraw review",
    "withdrawReviewConfirmDescription": "After withdrawal, version {{version}} will leave the review queue and return to draft so it can be submitted again later.",
    "withdrawReviewSuccessTitle": "Review withdrawn",
    "withdrawReviewSuccessDescription": "Version {{version}} has been withdrawn from review.",
    "withdrawReviewErrorTitle": "Failed to withdraw review",
    "confirmPublish": "Confirm Publish",
    "confirmPublishDialogTitle": "Confirm publish",
    "confirmPublishDialogDescription": "Publish version {{version}} as a private skill? It will be available for you to download and install, but not visible on the marketplace.",
    "confirmPublishSuccessTitle": "Version published",
    "confirmPublishSuccessDescription": "Version {{version}} has been published as a private skill.",
    "confirmPublishErrorTitle": "Failed to confirm publish",
    "submitReview": "Submit for Review",
    "submitReviewDialogTitle": "Submit for review",
    "submitReviewDialogDescription": "Submit version {{version}} for public review? Once approved, it will be visible on the marketplace.",
    "submitReviewSuccessTitle": "Submitted for review",
    "submitReviewSuccessDescription": "Version {{version}} has been submitted for review.",
    "submitReviewErrorTitle": "Failed to submit for review",
    "deleteVersion": "Delete Version",
    "deleteVersionConfirmTitle": "Delete version",
    "deleteVersionConfirmDescription": "Version {{version}} cannot be recovered after deletion. Continue?",
    "deleteVersionSuccessTitle": "Version deleted",
    "deleteVersionSuccessDescription": "Version {{version}} has been deleted.",
    "deleteVersionErrorTitle": "Failed to delete version",
    "currentVersion": "Current",
    "currentPublicVersion": "Current Public Version",
    "pendingReviewSectionTitle": "Pending Review Version",
    "pendingReviewSectionDescription": "v{{pendingVersion}} is currently under review. The public and installable version remains v{{publishedVersion}}.",
    "pendingReviewVersionLabel": "Pending version",
    "pendingReviewStatusLabel": "Review status",
    "pendingReviewStatusValue": "In review",
    "lifecyclePublicVersionLabel": "Current public version",
    "lifecycleNoPublishedVersion": "No published version",
    "lifecyclePendingVersionLabel": "Pending review version",
    "lifecyclePendingVersionValue": "v{{version}} is in review",
    "lifecycleNoPendingVersion": "No pending review version",
    "lifecycleContainerStateLabel": "Skill container state",
    "compareVersions": "Compare",
    "compareDialogTitle": "Version comparison",
    "compareDialogDescription": "Compare v{{source}} with v{{target}}.",
    "compareSourceLabel": "Selected version",
    "compareTargetLabel": "Compared with",
    "versionCompareUnavailableTitle": "Not enough versions to compare",
    "versionCompareUnavailableDescription": "Publish at least two versions before using version comparison.",
    "metadataChanges": "Metadata changes",
    "noMetadataChanges": "No metadata changes",
    "readmeChange": "README change",
    "readmeChanged": "README content changed",
    "readmeUnchanged": "README content unchanged",
    "fileChanges": "File changes",
    "filesAdded": "Added",
    "filesRemoved": "Removed",
    "filesChanged": "Changed",
    "expandDiff": "Show diff",
    "collapseDiff": "Hide diff",
    "binaryFileNotice": "Binary file — cannot display diff",
    "largeFileWarning": "This file is large. Rendering may be slow.",
    "diffLoadError": "Failed to load file content",
    "diffRetry": "Retry",
    "diffViewUnified": "Unified",
    "diffViewSplit": "Split",
    "rereleaseVersion": "Re-release",
    "rereleaseDialogTitle": "Re-release from version",
    "rereleaseDialogDescription": "Create a new published version based on v{{version}}.",
    "rereleaseSourceVersion": "Source version",
    "rereleaseTargetVersion": "New version",
    "rereleaseSuccessTitle": "Version re-released",
    "rereleaseSuccessDescription": "Created v{{target}} from v{{source}}.",
    "rereleaseErrorTitle": "Failed to re-release version",
    "rereleaseWarningTitle": "Pre-publish warning",
    "rereleaseWarningDescription": "We found the following risk reminders. If you understand them and still want to proceed, you can continue re-releasing.",
    "rereleaseWarningConfirm": "Continue re-releasing",
    "yankVersion": "Yank Current Version",
    "promoteToGlobal": "Promote to Global",
    "promotionSectionTitle": "Promote to Global",
    "promotionSectionDescription": "Submit the currently published version v{{version}} for review into the global namespace.",
    "promotionConfirmTitle": "Submit promotion request",
    "promotionConfirmDescription": "Submit v{{version}} of \"{{skill}}\" for promotion into the global namespace?",
    "promotionSuccessTitle": "Promotion request submitted",
    "promotionSuccessDescription": "v{{version}} of \"{{skill}}\" is now in the global promotion review queue.",
    "promotionDuplicateTitle": "Promotion already pending",
    "promotionDuplicateDescription": "This version already has a pending promotion request.",
    "promotionAlreadyPromotedTitle": "Skill already promoted",
    "promotionAlreadyPromotedDescription": "This skill has already been promoted to the global namespace.",
    "promotionErrorTitle": "Failed to submit promotion request",
    "reportSkill": "Report Skill",
    "reportedSkill": "Reported",
    "reportDialogTitle": "Report skill",
    "reportDialogDescription": "Provide a reason so administrators can review and act on it quickly.",
    "reportReasonPlaceholder": "Reason, for example policy violation, misleading content, or infringement",
    "reportDetailsPlaceholder": "Additional details (optional)",
    "submitReport": "Submit Report",
    "reportReasonRequired": "Please provide a report reason",
    "reportSuccessTitle": "Report submitted",
    "reportSuccessDescription": "Administrators will review this report soon.",
    "downloadErrorTitle": "Download failed",
    "reportErrorTitle": "Report failed",
    "share": {
      "button": "Share",
      "copied": "Copied",
      "defaultDescription": "A useful skill"
    }
  },
  "skillCompare": {
    "pageTitle": "Version Compare",
    "filesChanged": "{{count}} files changed",
    "searchFiles": "Search files",
    "errorLoadingCompare": "Failed to load version comparison",
    "loadDiff": "Load diff",
    "loading": "Loading...",
    "totalFiles": "Files",
    "addedLines": "Added lines",
    "removedLines": "Removed lines",
    "baseVersion": "Base version",
    "headVersion": "Head version",
    "fileList": "File list",
    "binaryFile": "Binary file — cannot display diff",
    "truncatedFile": "Diff output is truncated",
    "notEnoughPublishedVersions": "Publish at least two versions before comparing.",
    "noFilesFound": "No matching files found.",
    "changeTypeAdded": "Added",
    "changeTypeModified": "Modified",
    "changeTypeRemoved": "Removed"
  },
  "reports": {
    "title": "Skill Reports",
    "subtitle": "Handle user-submitted skill reports",
    "tabPending": "Pending",
    "tabResolved": "Resolved",
    "tabDismissed": "Dismissed",
    "empty": "No reports",
    "reporter": "Reporter",
    "handledBy": "Handled by",
    "resolve": "Resolve",
    "resolveAndHide": "Resolve & hide",
    "resolveAndArchive": "Resolve & archive",
    "dismiss": "Dismiss",
    "resolveConfirmTitle": "Resolve report",
    "resolveConfirmDescription": "Mark the report for \"{{skill}}\" as handled?",
    "resolveAndHideConfirmDescription": "Resolve the report for \"{{skill}}\" and hide the skill from public access?",
    "resolveAndArchiveConfirmDescription": "Resolve the report for \"{{skill}}\" and archive the skill?",
    "dismissConfirmTitle": "Dismiss report",
    "dismissConfirmDescription": "Dismiss the report for \"{{skill}}\"?",
    "resolveSuccessTitle": "Report resolved",
    "resolveSuccessDescription": "The report for \"{{skill}}\" has been marked as handled.",
    "resolveAndHideSuccessTitle": "Report resolved and skill hidden",
    "resolveAndHideSuccessDescription": "\"{{skill}}\" has been hidden after the report was resolved.",
    "resolveAndArchiveSuccessTitle": "Report resolved and skill archived",
    "resolveAndArchiveSuccessDescription": "\"{{skill}}\" has been archived after the report was resolved.",
    "dismissSuccessTitle": "Report dismissed",
    "dismissSuccessDescription": "The report for \"{{skill}}\" has been dismissed.",
    "resolveErrorTitle": "Failed to resolve report",
    "resolveAndHideErrorTitle": "Failed to resolve report and hide skill",
    "resolveAndArchiveErrorTitle": "Failed to resolve report and archive skill",
    "dismissErrorTitle": "Failed to dismiss report"
  },
  "governance": {
    "title": "Governance Center",
    "subtitle": "Track reviews, promotions, reports, and audit activity in one place.",
    "pendingReviews": "Pending reviews",
    "pendingPromotions": "Pending promotions",
    "pendingReports": "Pending reports",
    "unreadNotifications": "Unread notifications",
    "inboxTitle": "Governance inbox",
    "inboxSubtitle": "Unified queue for operational work that still needs action.",
    "tabAll": "All",
    "tabReview": "Reviews",
    "tabPromotion": "Promotions",
    "tabReport": "Reports",
    "emptyInbox": "No governance work items right now.",
    "openItem": "Open",
    "notificationsTitle": "Notifications",
    "notificationsSubtitle": "Recent governance updates that need your attention.",
    "emptyNotifications": "No notifications yet.",
    "markRead": "Mark as read",
    "activityTitle": "Governance activity",
    "activitySubtitle": "Recent audit events for review, promotion, report, and lifecycle actions.",
    "emptyActivity": "No recent governance activity.",
    "unknownActor": "Unknown actor",
    "searchMaintenanceTitle": "Search Index Maintenance",
    "searchMaintenanceDescription": "Rebuild the full skill search index. This action is available only to super administrators and is intended for full backfills after search rule changes.",
    "searchMaintenanceHint": "This may take a while. Avoid triggering it repeatedly.",
    "searchRebuildAction": "Rebuild full search index",
    "searchRebuildRunning": "Rebuilding...",
    "searchRebuildConfirmTitle": "Rebuild the full search index?",
    "searchRebuildConfirmDescription": "The system will rebuild search documents for all skills using the current indexing rules. This operation may take some time.",
    "searchRebuildSuccessTitle": "Search index rebuild started",
    "searchRebuildSuccessDescription": "The system is rebuilding the full search index using the current rules.",
    "searchRebuildErrorTitle": "Search index rebuild failed"
  },
  "members": {
    "title": "Member Management",
    "addMember": "Add Member",
    "addingMember": "Adding...",
    "addDialogTitle": "Add Namespace Member",
    "addDialogDescription": "Search platform users or enter a user ID directly. Added users can collaborate in this namespace immediately.",
    "searchLabel": "Search users",
    "searchPlaceholder": "Search by username, email, or user ID",
    "searchHint": "Enter at least 2 characters to search. Results will include the user ID you can add directly.",
    "searchAction": "Search",
    "searchTooShort": "Search keywords must be at least 2 characters",
    "searchResultsTitle": "Candidate users",
    "searchEmpty": "No active users are available to add",
    "selectCandidate": "Use this user",
    "manualUserIdLabel": "Enter user ID manually",
    "manualUserIdPlaceholder": "For example: user-123 or usr_abcd",
    "manualUserIdHint": "If you already know the user ID, you can add it directly here.",
    "userIdRequired": "User ID is required",
    "roleLabel": "Member role",
    "roleOwner": "OWNER",
    "roleAdmin": "ADMIN",
    "roleMember": "MEMBER",
    "saveRole": "Save role",
    "savingRole": "Saving...",
    "changeRole": "Change role",
    "colUserId": "User ID",
    "colUsername": "Username",
    "colEmail": "Email",
    "colRole": "Role",
    "colJoinedAt": "Joined At",
    "colActions": "Actions",
    "remove": "Remove",
    "empty": "No members",
    "namespaceNotFound": "Namespace not found",
    "globalReadOnly": "This is a built-in system namespace. Membership can only be viewed and cannot be changed.",
    "frozenReadOnly": "This namespace is frozen. You can still view members, but cannot add, remove, or change roles.",
    "archivedReadOnly": "This namespace is archived. You can still view members, but cannot change membership until it is restored.",
    "memberReadOnly": "You are a regular member in this namespace. You can view the membership list, but only the OWNER or ADMIN can make changes.",
    "addSuccessTitle": "Member added",
    "addSuccessDescription": "User {{userId}} has been added to this namespace.",
    "addErrorTitle": "Failed to add member",
    "updateRoleSuccessTitle": "Member role updated",
    "updateRoleSuccessDescription": "User {{userId}} is now {{role}}.",
    "updateRoleErrorTitle": "Failed to update member role",
    "removeConfirmTitle": "Remove member",
    "removeConfirmDescription": "After removal, user {{userId}} will lose access to this namespace.",
    "removeSuccessTitle": "Member removed",
    "removeSuccessDescription": "User {{userId}} has been removed from this namespace.",
    "removeErrorTitle": "Failed to remove member",
    "searchEmptyMemberHint": "If the user is already in this namespace, they won't appear here — check the member list to confirm.",
    "transferOwnership": "Transfer Ownership",
    "transferDialogTitle": "Transfer Namespace Ownership",
    "transferDialogDescription": "Transfer ownership to another member. You will become an ADMIN.",
    "transferWarning": "This action cannot be undone. After transfer, you will no longer be the owner.",
    "transferNewOwnerLabel": "New owner",
    "transferSelectPlaceholder": "Select a member",
    "transferNoCandidates": "No other members available to transfer ownership to.",
    "transferConfirmSlugPrompt": "Type the namespace slug to confirm",
    "transferConfirmSlugHint": "Type {{slug}} to confirm",
    "transferConfirmAction": "Transfer Ownership",
    "transferring": "Transferring...",
    "transferSuccessTitle": "Ownership transferred",
    "transferSuccessDescription": "{{userId}} is now the owner of this namespace.",
    "transferErrorTitle": "Failed to transfer ownership",
    "batchImport": "Batch Import",
    "batchDialogTitle": "Batch Import Members",
    "batchDialogDescription": "Upload a CSV file to add multiple members at once. Each row should contain a user ID and role.",
    "batchStepUpload": "Upload CSV",
    "batchStepPreview": "Preview",
    "batchStepResults": "Results",
    "batchDownloadTemplate": "Download CSV template",
    "batchDropHint": "Drag a CSV file here, or click to select",
    "batchFormatHint": "Only .csv format supported",
    "batchParseError": "Failed to parse CSV file",
    "batchEmptyFile": "CSV file is empty or contains no valid rows",
    "batchPreviewTitle": "Preview ({{count}} rows)",
    "batchColUserId": "User ID",
    "batchColRole": "Role",
    "batchColStatus": "Status",
    "batchValidationMissingUserId": "Missing user ID",
    "batchValidationInvalidRole": "Invalid role (must be MEMBER or ADMIN)",
    "batchValidationDuplicate": "Duplicate user ID",
    "batchValidationValid": "Ready",
    "batchValidRows": "{{valid}} valid, {{invalid}} invalid",
    "batchSubmitting": "Importing...",
    "batchSubmit": "Import {{count}} members",
    "batchResultTitle": "Import Results",
    "batchResultSummary": "{{success}} succeeded, {{failure}} failed out of {{total}} total",
    "batchResultSuccess": "Added",
    "batchResultAlreadyMember": "Already a member",
    "batchResultUserNotFound": "User not found",
    "batchResultInvalidRole": "Invalid role",
    "batchResultUnknownError": "Unknown error",
    "batchDone": "Done",
    "batchBack": "Back"
  },
  "namespaceEdit": {
    "editButton": "Edit",
    "dialogTitle": "Edit Namespace",
    "displayNameLabel": "Display Name",
    "displayNameRequired": "Display name is required",
    "descriptionLabel": "Description",
    "saveAction": "Save",
    "saving": "Saving...",
    "saveSuccess": "Namespace updated successfully",
    "saveErrorTitle": "Failed to update namespace"
  },
  "upload": {
    "dropHint": "Drop to upload...",
    "dragHint": "Drag a ZIP file here, or click to select",
    "formatHint": "Only .zip format supported"
  },
  "layout": {
    "footerDescription": "Skill registry, providing efficient skill management and distribution for developers."
  },
  "nsReviews": {
    "title": "Namespace Reviews",
    "loadingNamespace": "Loading namespace info",
    "reviewsFor": "Review tasks for {{name}}",
    "empty": "No review records",
    "version": "Version {{version}}",
    "tabPending": "Pending",
    "tabApproved": "Approved",
    "tabRejected": "Rejected",
    "sortLabel": "Time Order",
    "sortNewest": "Newest first",
    "sortOldest": "Oldest first",
    "openReview": "Open review",
    "pageSummary": "Total {{total}} records, page {{page}}",
    "prevPage": "Previous",
    "nextPage": "Next",
    "globalReadOnly": "This is a built-in system namespace. Review history is visible, but no new review actions are allowed.",
    "frozenReadOnly": "This namespace is frozen. You can still view review history, but cannot continue processing review tasks.",
    "archivedReadOnly": "This namespace is archived. You can still view review history, but cannot continue processing review tasks until it is restored."
  },
  "namespaceStatus": {
    "active": "Active",
    "frozen": "Frozen",
    "archived": "Archived",
    "frozenHint": "This namespace is currently read-only and cannot publish, review, or change members.",
    "archivedHint": "This namespace is hidden from public entry points and only visible to dashboard members.",
    "immutableHint": "This is a built-in system namespace and does not allow governance or membership changes."
  },
  "fileTree": {
    "title": "Files"
  },
  "filePreview": {
    "loadError": "Failed to load file",
    "tooLarge": "File is too large to preview",
    "binaryFile": "Binary files cannot be previewed",
    "unsupported": "This file type is not supported for preview",
    "downloadFile": "Download File",
    "downloadHint": "Download {{name}}",
    "copy": "Copy content",
    "copySuccess": "Copied to clipboard",
    "close": "Close"
  },
  "loginButton": {
    "loading": "Loading...",
    "loginWith": "Login with {{name}}"
  },
  "ratingInput": {
    "yourRating": "Your rating: {{score}} stars"
  },
  "createToken": {
    "title": "Create API Token",
    "description": "Create a new API Token for CLI or API access",
    "nameLabel": "Token Name",
    "namePlaceholder": "e.g.: my-cli-token",
    "nameRequired": "Token name is required",
    "nameTooLong": "Token name must be at most {{max}} characters",
    "nameDuplicate": "You already have a token with this name",
    "creating": "Creating...",
    "create": "Create",
    "successTitle": "Token Created",
    "successDescription": "Copy and save this token now. It is only shown and copyable at creation time. If you need it again later, create a new token.",
    "tokenLabel": "Token",
    "nameDisplay": "Name",
    "expirationLabel": "Expiration",
    "expirationHint": "By default, tokens never expire. You can also choose an automatic expiration time.",
    "expirationNever": "Never expires",
    "expiration7d": "Expires in 7 days",
    "expiration30d": "Expires in 30 days",
    "expiration90d": "Expires in 90 days",
    "expirationCustom": "Custom date and time",
    "expiresAtRequired": "Please choose a custom expiration time",
    "expiresAtDisplay": "Expires At",
    "copyToken": "Copy Token",
    "copySuccess": "Token copied to clipboard",
    "copyFailed": "Failed to copy token. Please try again."
  },
  "starButton": {
    "starred": "Starred",
    "star": "Star"
  },
  "subscribeButton": {
    "subscribed": "Subscribed",
    "subscribe": "Subscribe"
  },
  "skillCard": {
    "starred": "Starred",
    "starredAction": "Click to unstar",
    "unstarTitle": "Remove from starred",
    "unstarDescription": "Are you sure you want to remove \"{{name}}\" from your starred skills?",
    "unstarConfirm": "Remove"
  },
  "copyButton": {
    "copied": "Copied",
    "copy": "Copy"
  },
  "pagination": {
    "prev": "Previous",
    "next": "Next",
    "pagePrefix": "Page",
    "pageSuffix": "",
    "goToPage": "Go to page {{page}}"
  },
  "user": {
    "menu": {
      "dashboard": "Dashboard",
      "mySkills": "My Skills",
      "myNamespaces": "My Namespaces",
      "governance": "Governance Center",
      "stars": "Starred",
      "subscriptions": "My Subscriptions",
      "reviews": "Review Management",
      "promotions": "Promotion Management",
      "reports": "Report Management",
      "users": "User Management",
      "labels": "Label Management",
      "auditLog": "Audit Log",
      "security": "Security Settings",
      "profile": "Profile Settings",
      "notifications": "Notification Settings",
      "accounts": "Account Merge",
      "logout": "Logout"
    }
  },
  "footer": {
    "resources": "Resources",
    "docs": "Documentation",
    "api": "API",
    "community": "Community",
    "privacy": "Privacy Policy",
    "terms": "Terms of Service",
    "copyright": "© 2026 SkillHub. All rights reserved."
  },
  "publish": {
    "title": "Publish Skill",
    "subtitle": "Upload skill package to SkillHub",
    "reviewNotice": {
      "title": "Review Notice",
      "description": "Submitted skill packages require admin review before publication."
    },
    "namespace": "Namespace",
    "selectNamespace": "Select namespace",
    "visibility": "Visibility",
    "visibilityOptions": {
      "public": "Public",
      "namespaceOnly": "Namespace Only",
      "loggedInUsersOnly": "Logged-in Users Only",
      "private": "Private"
    },
    "file": "Skill Package File",
    "removeSelectedFile": "Remove selected file",
    "publishing": "Publishing...",
    "confirm": "Confirm Publish",
    "success": "Published Successfully",
    "successDescription": "{{skill}} has been submitted for review and will be available after admin approval",
    "publishedTitle": "Published Successfully",
    "publishedDescription": "{{skill}} is now live and available for download",
    "pendingReviewTitle": "Submitted for Review",
    "pendingReviewDescription": "{{skill}} has been submitted for review and will be available after admin approval",
    "error": "Publish Failed",
    "timeoutTitle": "Publish timed out",
    "timeoutDescription": "The publish request took too long. Please check the skill list later or try again.",
    "versionExistsTitle": "Version already exists",
    "versionExistsDescription": "This skill version has already been published. Update the version in SKILL.md, rebuild the package, and upload it again.",
    "precheckFailedTitle": "Pre-publish check failed",
    "precheckFailedDescription": "The package appears to contain a secret, token, or password. Replace real credentials with placeholders and try again.",
    "warningConfirmTitle": "Pre-publish warning",
    "warningConfirmDescription": "We found the following risk reminders. If you understand them and still want to proceed, you can continue publishing.",
    "warningConfirmContinue": "Continue publishing",
    "warningConfirmCancel": "Go back and fix",
    "frontmatterFailedTitle": "SKILL.md format is invalid",
    "frontmatterFailedDescription": "Please check the YAML frontmatter at the top of SKILL.md. If a field value contains a colon, wrap it in quotes.",
    "selectRequired": "Please select namespace and file"
  },
  "toast": {
    "success": "Success",
    "error": "Error",
    "warning": "Warning",
    "info": "Info"
  },
  "dialog": {
    "confirm": "Confirm",
    "cancel": "Cancel",
    "delete": "Delete",
    "close": "Close"
  },
  "review": {
    "detail": "Review Detail",
    "id": "Review ID",
    "backToList": "Back to List",
    "namespace": "Namespace / Slug",
    "version": "Version",
    "status": "Status",
    "statusPending": "Pending",
    "statusApproved": "Approved",
    "statusRejected": "Rejected",
    "submitter": "Submitted By",
    "submitTime": "Submitted At",
    "reviewer": "Reviewed By",
    "reviewTime": "Reviewed At",
    "reviewComment": "Review Comment",
    "actions": "Review Actions",
    "commentLabel": "Comment (optional)",
    "commentPlaceholder": "Enter review comment...",
    "approve": "Approve",
    "reject": "Reject",
    "confirmReject": "Confirm Reject",
    "cancelReject": "Cancel",
    "rejectReasonRequired": "A reason is required when rejecting",
    "approveTitle": "Approve Review",
    "approveDescription": "Are you sure you want to approve this review?",
    "approveConfirm": "Approve",
    "rejectTitle": "Reject Review",
    "rejectDescription": "Are you sure you want to reject this review?",
    "rejectConfirm": "Reject",
    "approveSuccess": "Review approved",
    "approveFailed": "Approval failed",
    "rejectSuccess": "Review rejected",
    "rejectFailed": "Rejection failed",
    "approveDisabledScanning": "Security scanning is still in progress. Approval will be available once scanning finishes.",
    "notFound": "Review task not found",
    "skillDetailTitle": "Skill Detail",
    "skillDetailDescription": "The sections below are locked to the pending version attached to this review task: {{skill}}",
    "skillDetailError": "Failed to load the skill detail for this review.",
    "activeReviewVersion": "Review Version",
    "downloadSkillZip": "Download Skill ZIP",
    "noDocumentation": "This review version does not include a readable documentation file."
  },
  "token": {
    "title": "API Tokens",
    "createNew": "Create Token",
    "copyHint": "For security reasons, token plaintext can only be copied once when it is created. It cannot be viewed or copied again later. If you still need it, create a new token.",
    "empty": "No tokens created yet",
    "emptyHint": "Click the button above to create your first token",
    "name": "Name",
    "prefix": "Token Prefix",
    "createdAt": "Created At",
    "lastUsed": "Last Used",
    "expiresAt": "Expires At",
    "neverExpires": "Never expires",
    "actions": "Actions",
    "copy": "Copy",
    "copySuccess": "Token copied to clipboard",
    "copyFailed": "Failed to copy token. Please try again.",
    "copyUnavailableTitle": "Older token plaintext cannot be copied again",
    "copyUnavailableDescription": "Token plaintext is only shown once after creation. If you no longer have it, please create a new token.",
    "editExpiration": "Edit Expiration",
    "editExpirationTitle": "Edit Token Expiration",
    "editExpirationDescription": "Set a new expiration time for token \"{{name}}\".",
    "saveExpiration": "Save Expiration",
    "updatingExpiration": "Saving...",
    "updateExpirationSuccess": "Token expiration updated",
    "updateExpirationFailed": "Failed to update token expiration",
    "delete": "Delete",
    "deleteTitle": "Delete Token",
    "deleteDescription": "Are you sure you want to delete token \"{{name}}\"? This action cannot be undone.",
    "deleteSuccess": "Token deleted",
    "deleteFailed": "Delete failed",
    "loading": "Loading..."
  },
  "apiError": {
    "unauthorized": "Session expired, please log in again",
    "forbidden": "You don't have permission for this action",
    "notFound": "The requested resource was not found",
    "serverError": "Server error, please try again later",
    "networkError": "Network connection failed, please check your network",
    "invalidResponse": "The server returned an invalid response",
    "unknown": "Operation failed"
  },
  "routeGuard": {
    "forbiddenTitle": "You do not have permission to view this page",
    "forbiddenDescription": "Your account permissions changed. Returning to the previous page."
  },
  "securityAudit": {
    "title": "Security Audit",
    "dialogDescription": "Detailed security scan results for this version.",
    "findings": "Findings",
    "findingsCount": "{{count}} findings",
    "totalFindings": "{{count}} findings total",
    "scanDuration": "{{seconds}}s",
    "statusScanning": "Scanning",
    "statusScanFailed": "Scan Failed",
    "remediation": "Remediation",
    "viewDetails": "View Details",
    "verdict": {
      "SAFE": "Safe",
      "SUSPICIOUS": "Suspicious",
      "DANGEROUS": "Dangerous",
      "BLOCKED": "High Risk"
    },
    "severity": {
      "CRITICAL": "Critical",
      "HIGH": "High",
      "MEDIUM": "Medium",
      "LOW": "Low",
      "INFO": "Info"
    }
  },
  "error": {
    "auth": {
      "local": {
        "invalidCredentials": "Incorrect username or password",
        "accountDisabled": "This account has been disabled",
        "accountPending": "This account is pending activation",
        "accountMerged": "This account has been merged and can no longer be used to log in",
        "locked": "Too many failed attempts. Please try again later"
      },
      "direct": {
        "disabled": "Direct authentication compatibility is disabled",
        "providerUnsupported": "This login method is not supported"
      },
      "sessionBootstrap": {
        "disabled": "Session bootstrap is disabled",
        "providerUnsupported": "This SSO bootstrap method is not supported",
        "notAuthenticated": "No authenticated external session was found"
      }
    }
  },
  "notification": {
    "title": "Notifications",
    "empty": "No notifications",
    "markAllRead": "Mark all as read",
    "deleteRead": "Delete read notification",
    "viewAll": "View all notifications",
    "unread": "Unread",
    "all": "All",
    "publish": "Publish",
    "review": "Review",
    "promotion": "Promotion",
    "report": "Report",
    "timeAgo": "{{time}} ago",
    "preferences": {
      "title": "Notification Settings",
      "description": "Manage your notification preferences",
      "publish": "Publish Notifications",
      "publishDesc": "Notify when skill is published",
      "review": "Review Notifications",
      "reviewDesc": "Notify on review submission, approval, or rejection",
      "promotion": "Promotion Notifications",
      "promotionDesc": "Notify on promotion request, approval, or rejection",
      "report": "Report Notifications",
      "reportDesc": "Notify on report submission or resolution"
    }
  }
}
