export default {
  common: {
    appName: "Antdv Next Admin",
    add: "Add",
    edit: "Edit",
    delete: "Delete",
    view: "View",
    search: "Search",
    reset: "Reset",
    submit: "Submit",
    cancel: "Cancel",
    confirm: "Confirm",
    save: "Save",
    export: "Export",
    import: "Import",
    refresh: "Refresh",
    operate: "Operate",
    more: "More",
    back: "Back",
    expand: "Expand",
    collapse: "Collapse",
    ok: "OK",
    close: "Close",
    yes: "Yes",
    no: "No",
    loading: "Loading...",
    noData: "No Data",
    success: "Success",
    error: "Error",
    warning: "Warning",
    info: "Info",
    copySuccess: "Copied successfully",
    copyFailed: "Copy failed",
    actions: "Actions",
    status: "Status",
    createTime: "Create Time",
    updateTime: "Update Time",
    menu: "Menu",
    navigate: "Navigate",
    select: "Select",
    clear: "Clear",
    component: "Component",
    basicUsage: "Basic Usage",
    advancedUsage: "Advanced Usage",
    preview: "Preview",
    jsonContent: "JSON Content",
    jsonPlaceholder: "Enter valid JSON...",
    jsonParseError: "Invalid JSON format",
    invalidArray: "Invalid array format",
    formEdit: "Form Edit",
    rawEdit: "Raw Edit",
    addField: "Add Field",
    fieldName: "Field Name",
    fieldExists: "Field already exists",
    pleaseInput: "Please input",
    fieldOrder: "Field Order",
    moveUp: "Move Up",
    moveDown: "Move Down",
    enabled: "Enabled",
    disabled: "Disabled",
    inputTags: "Input tags and press Enter",
    addSuccess: "Added successfully",
    pleaseInputFieldName: "Please input field name",
    inputFieldName: "Input field name",
    selectFieldType: "Select field type",
    typeString: "String",
    typeNumber: "Number",
    typeBoolean: "Boolean",
    typeTags: "Tags",
    typeArray: "Array",
    typeObject: "Object",
    searchLabel: "Search {label}",
  },

  codeEditor: {
    format: "Format",
    minify: "Minify",
    copy: "Copy",
    formatSuccess: "Formatted successfully",
    minifySuccess: "Minified successfully",
    copySuccess: "Copied to clipboard",
    copyFailed: "Failed to copy",
    jsonError: "Invalid JSON format",
  },

  menu: {
    dashboard: "Dashboard",
    organization: "Organization",
    system: "System",
    user: "User Management",
    role: "Role Management",
    permission: "Permission",
    menu: "Menu Management",
    dict: "Dictionary",
    log: "System Log",
    asset: "Asset Management",
    assetDevice: "Asset",
    assetLicense: "License",
    assetAccessory: "Accessory",
    assetConsumable: "Consumable",
    assetDepreciation: "Depreciation",
    assetOffering: "Offering",
    base: "Basic Data",
    baseCategory: "Category",
    baseLocation: "Location",
    baseManufacturer: "Manufacturer",
    baseModel: "Model",
    baseSupplier: "Supplier",
    biz: "Business",
    bizFailure: "Failure",
    bizStocktake: "Stocktake",
    bizTransaction: "Transaction",
    bizAllocation: "Allocation",
    bizRequest: "Request",
    dept: "Department",
    config: "System Config",
    file: "File Management",
    examples: "Examples Hub",
    examplesQuickStart: "Quick Start",
    examplesFormInput: "Forms & Input",
    examplesContent: "Content Editors",
    examplesInteraction: "Basic Interaction",
    examplesBusinessScaffold: "Business Scaffolds",
    examplesSecurityEngineering: "Security & Engineering",
    examplesIntegration: "Integration & Navigation",
    examplesExceptionPages: "Exception Pages",
    table: "Table Example",
    icon: "Icon Example",
    form: "Form Example",
    jsonInput: "JSON Input",
    i18nInput: "I18n Input",
    advancedFilter: "Advanced Filter Builder",
    editor: "Rich Text Editor",
    milkdown: "Markdown Editor",
    codeEditor: "Code Editor",
    modal: "Modal Example",
    spin: "Spin Example",
    watermark: "Watermark",
    splitter: "Splitter",
    tour: "Tour Guide",
    qrcode: "QR Code",
    segmented: "Segmented",
    colorPicker: "Color Picker",
    requestAuth: "Request/Auth Flow",
    rbacFlow: "RBAC Flow",
    proTableAdvanced: "ProTable Advanced",
    complexForm: "Complex Form",
    uploadSystem: "Upload System",
    importExport: "Import/Export Flow",
    masterDetail: "Master Detail",
    virtualTable: "Virtual Scroll Table",
    stateCache: "State & Cache",
    observability: "Observability",
    testing: "Testing",
    exception: "Exception",
    exception403: "403",
    exception404: "404",
    exception500: "500",
    profile: "Profile",
    about: "About",
  },

  layout: {
    logout: "Logout",
    logoutConfirm: "Are you sure you want to logout?",
    profile: "Profile",
    documentation: "Documentation",
    settings: "Settings",
    theme: "Theme",
    themeLight: "Light Theme",
    themeDark: "Dark Theme",
    themeAuto: "Follow System",
    language: "Language",
    fullscreen: "Fullscreen",
    exitFullscreen: "Exit Fullscreen",
    notifications: "Notifications",
    markAllRead: "Mark All Read",
    clearAll: "Clear All",
    noNotifications: "No Notifications",
    notificationsEmptyHint:
      "After clearing, new notifications will appear here",
    viewDetails: "View details",
    viewAllNotifications: "View all notifications",
    searchPlaceholder: "Search menu...",
    noSearchResults: "No matching menu found",
    recentMenus: "Recent Visits",
    aiCollabEnable: "Enable AI Collaboration",
    aiCollabDisable: "Disable AI Collaboration",
    aiAssistantTitle: "AI Collaboration",
    aiAssistantSubtitle: "Assist actions with current page context",
    aiCurrentPage: "Current Page",
    aiQuickActions: "Quick Actions",
    aiInputPlaceholder:
      "Enter your question or command (Shift+Enter for new line)",
    aiEnterHint: "Press Enter to send, Shift+Enter for new line",
    aiEmptyTitle: "Start AI Collaboration",
    aiEmptyDescription:
      "Ask AI to explain pages, summarize data, and suggest next actions",
    aiActionExplain: "Explain current page",
    aiActionSummary: "Summarize current data",
    aiActionRisk: "Identify potential risks",
    aiActionNextStep: "Suggest next steps",
    aiDemoReply:
      'Request received. I am generating suggestions based on the "{page}" page context.',
    languages: {
      zhCN: "Simplified Chinese",
      enUS: "English",
      jaJP: "Japanese",
      koKR: "Korean",
    },
    tabs: {
      refresh: "Refresh",
      close: "Close",
      pin: "Pin",
      unpin: "Unpin",
      favorite: "Add to Favorites",
      unfavorite: "Remove from Favorites",
      closeOthers: "Close Others",
      closeAll: "Close All",
      closeLeft: "Close Left",
      closeRight: "Close Right",
      moreActions: "More Tab Actions",
    },
  },

  settings: {
    title: "Preferences",
    themeColor: "Theme Color",
    sidebarTheme: "Sidebar Theme",
    light: "Light",
    dark: "Dark",
    layoutMode: "Layout Mode",
    vertical: "Vertical",
    horizontal: "Horizontal",
    pageAnimation: "Page Animation",
    fade: "Fade",
    slideLeft: "Slide Left",
    slideRight: "Slide Right",
    slideUp: "Slide Up",
    slideDown: "Slide Down",
    zoom: "Zoom",
    zoomBig: "Zoom Big",
    none: "None",
    grayMode: "Gray Mode",
    grayModeHint: "Enable grayscale mode for the entire app",
    rememberTabState: "Remember Tab State",
    rememberTabStateHint:
      "Automatically restore previously opened tabs after refresh",
    aiCollab: "AI Chat Split View",
    aiCollabHint: "Show AI chat entry icon in the top navigation bar",
    aiCollabHintMobile: "AI chat split view is not available on mobile",
    reset: "Reset Settings",
    confirmReset: "Are you sure you want to reset all preferences?",
    colors: {
      blue: "Daybreak Blue",
      green: "Polar Green",
      purple: "Golden Purple",
      red: "Dust Red",
      orange: "Sunset Orange",
      cyan: "Cyan",
    },
  },

  login: {
    title: "User Login",
    username: "Username",
    password: "Password",
    remember: "Remember me",
    login: "Login",
    forgotPassword: "Forgot password",
    noAccount: "Don't have an account?",
    register: "Register now",
    usernamePlaceholder: "Please enter username",
    passwordPlaceholder: "Please enter password",
    usernameRequired: "Please enter username",
    passwordRequired: "Please enter password",
    loginSuccess: "Login successful",
    loginFailed: "Login failed",
    slideToVerify: "Slide to verify",
    verifySuccess: "Verified",
  },

  dashboard: {
    welcome: "Welcome Back",
    subtitle: "Monitor your business metrics and system status in real time",
    systemStable: "System Stable",
    todayFocus: "Today Focus",
    compareYesterday: "vs yesterday {value}",
    goodMorning: "Good morning",
    goodAfternoon: "Good afternoon",
    goodEvening: "Good evening",
    goodNight: "Good night",
    totalUsers: "Total Users",
    totalOrders: "Total Orders",
    totalRevenue: "Total Revenue",
    conversionRate: "Conversion Rate",
    newUsers: "New Users",
    returningUsers: "Returning Users",
    enterpriseUsers: "Enterprise Users",
    salesTrend: "Sales Trend",
    userDistribution: "User Distribution",
    recentActivities: "Recent Activities",
    quickActions: "Quick Actions",
    viewMore: "View More",
    minutesAgo: "{value} minutes ago",
    hoursAgo: "{value} hours ago",
    activities: {
      permissionUpdated: "Admin updated system menu permission settings",
      userCreated: "Created user Sunny and assigned the operation role",
      orderTaskDone: "Today's order statistics task has completed",
      riskPolicyReleased:
        "Risk control strategy version has been released to production",
    },
    activityTags: {
      system: "System",
      user: "User",
      task: "Task",
      release: "Release",
    },
    months: {
      jan: "Jan",
      feb: "Feb",
      mar: "Mar",
      apr: "Apr",
      may: "May",
      jun: "Jun",
      jul: "Jul",
      aug: "Aug",
    },
  },

  user: {
    title: "User Management",
    username: "Username",
    email: "Email",
    realName: "Real Name",
    phone: "Phone",
    gender: "Gender",
    male: "Male",
    female: "Female",
    avatar: "Avatar",
    role: "Role",
    status: "Status",
    active: "Active",
    inactive: "Inactive",
    createUser: "Create User",
    editUser: "Edit User",
    deleteUser: "Delete User",
    confirmDelete: "Are you sure you want to delete this user?",
    usernameRequired: "Please enter username",
    usernameLength: "Username length must be between 3 and 20 characters",
    emailRequired: "Please enter email",
    selectRole: "Please select at least one role",
    bio: "Bio",
    updateSuccess: "User updated successfully",
    createSuccess: "User created successfully",
    resetPassword: "Reset Password",
    confirmResetPassword:
      "Are you sure you want to reset this user's password?",
    exportSuccess: "Export successful",
    exportFailed: "Export failed",
    importSuccess: "Successfully imported {count} records",
    importFailed: "Import failed, please check file format",
    importEmpty: "File is empty or format is incorrect",
    importFormatError:
      'CSV format is incorrect, must include "Username", "Name", "Email" columns',
    age: "Age",
    tags: "Tags",
    address: "Address",
    department: "Department",
    position: "Position",
    info: "User Info",
    settings: "Settings",
    theme: "Theme",
    language: "Language",
  },

  role: {
    title: "Role Management",
    name: "Role Name",
    code: "Role Code",
    description: "Description",
    permissions: "Permissions",
    createRole: "Create Role",
    editRole: "Edit Role",
    deleteRole: "Delete Role",
    confirmDelete: "Are you sure you want to delete this role?",
    assignPermissions: "Assign Permissions",
    codeRequired: "Please enter role code",
    codePattern:
      "Role code only supports letters, numbers, underscores and hyphens",
    selectPermissions: "Please select permissions",
    updateSuccess: "Role updated successfully",
    createSuccess: "Role created successfully",
  },

  permission: {
    title: "Menu Management",
    name: "Menu Name",
    code: "Permission Code",
    type: "Type",
    menu: "Menu",
    button: "Button",
    api: "API",
    resource: "Resource",
    action: "Action",
    createPermission: "Create Menu",
    editPermission: "Edit Menu",
    deletePermission: "Delete Menu",
    confirmDelete:
      "Are you sure you want to delete this menu and its children?",
    expandAll: "Expand All",
    collapseAll: "Collapse All",
    parentMenu: "Parent Menu",
    createChildMenu: "Create Child Menu",
    visible: "Visible",
    show: "Show",
    hide: "Hide",
    routePath: "Route Path",
    componentPath: "Component Path",
    sort: "Sort",
    addChild: "Add Child",
    codeRequired: "Please enter permission code",
    codePattern:
      "Permission code only supports letters, numbers, underscores and hyphens",
    menuRouteRequired: "Route path is required for menu type",
    icon: "Icon",
    iconPlaceholder: "e.g. UserOutlined",
    visibleStatus: "Visibility",
    updateSuccess: "Menu updated successfully",
    createSuccess: "Menu created successfully",
  },

  dict: {
    title: "Dictionary",
    dictType: "Dictionary Type",
    dictData: "Dictionary Data",
    typeName: "Type Name",
    typeCode: "Type Code",
    description: "Description",
    dictLabel: "Label",
    dictValue: "Value",
    sort: "Sort",
    remark: "Remark",
    enabled: "Enabled",
    disabled: "Disabled",
    createType: "Create Type",
    editType: "Edit Type",
    deleteType: "Delete Type",
    createData: "Create Data",
    editData: "Edit Data",
    deleteData: "Delete Data",
    confirmDeleteType:
      'Are you sure you want to delete dictionary type "{name}"?',
    confirmDeleteData:
      'Are you sure you want to delete dictionary data "{label}"?',
    typeNamePlaceholder: "Please enter type name",
    typeCodePlaceholder: "Please enter type code",
    descriptionPlaceholder: "Please enter description",
    labelPlaceholder: "Please enter label",
    valuePlaceholder: "Please enter value",
    remarkPlaceholder: "Please enter remark",
    selectTypeHint: "Please select a dictionary type from the left",
    requiredFields: "Please fill in required fields",
    deleteSuccess: "Deleted successfully",
    deleteFailed: "Delete failed",
    updateSuccess: "Updated successfully",
    createSuccess: "Created successfully",
    operateFailed: "Operation failed",
    loadTypeFailed: "Failed to load dictionary types",
    loadDataFailed: "Failed to load dictionary data",
    dictDataTitle: "Dictionary Data - {name}",
    confirmDelete: "Confirm Delete",
  },

  table: {
    title: "Table Example",
    total: "Total {total} items",
    page: "Page {page}",
    pageSize: "{size} items per page",
    goTo: "Go to",
  },

  form: {
    title: "Form Example",
    basicInfo: "Basic Information",
    advancedInfo: "Advanced Information",
    submit: "Submit",
    reset: "Reset",
    validateSuccess: "Validation passed",
    validateFailed: "Validation failed",
  },

  exampleTable: {
    userList: "User List",
    subTitle: "ProTable Example",
    createUser: "Create User",
    editUser: "Edit User",
    deleteSuccess: "Deleted successfully",
    updateSuccess: "Updated successfully",
    createSuccess: "Created successfully",
  },

  notificationCenter: {
    kicker: "Notification Hub",
    title: "Notification Center",
    subtitle:
      "Track system updates, messages, and task outcomes in one place with fast filtering and detail tracing.",
    searchPlaceholder: "Search notifications by title or content",
    listTitle: "Notification List",
    listSubtitle: "{count} notifications matched",
    emptyFiltered: "No matching notifications",
    metrics: {
      total: "Total Notifications",
      unread: "Unread",
      today: "Today",
    },
    filters: {
      allStatus: "All Status",
      unread: "Unread",
      read: "Read",
      allTypes: "All Types",
      system: "System Update",
      message: "Message",
      security: "Security Alert",
      task: "Task Done",
      error: "Error Alert",
    },
    status: {
      read: "Read",
      unread: "Unread",
    },
    meta: {
      type: "Type",
      receivedAt: "Received At",
    },
    actions: {
      markAsRead: "Mark as read",
      openRelated: "Open related page",
      delete: "Delete notification",
    },
    placeholder: {
      title: "Select a notification to view details",
      desc: "Choose an item from the list on the left to see full content and related actions here.",
    },
  },

  exampleCaptcha: {
    title: "Captcha Component Example",
    description:
      "Common frontend captcha interaction components with customizable styles and callbacks.",
    slider: "Slider Captcha",
    rotate: "Rotate Captcha",
    puzzle: "Puzzle Captcha",
    point: "Point Captcha",
    success: "Verification passed!",
    fail: "Verification failed, please retry",
  },

  exampleSpin: {
    title: "Spin Example",
    description:
      "Demonstrates various usages of the Spin component including basic loading, sizes, custom indicators, progress, delay and fullscreen.",
    basic: "Basic & Sizes",
    tip: "Custom Tip",
    nested: "Card Loading",
    delay: "Delay",
    customIndicator: "Custom Indicator",
    percent: "Progress",
    customStyle: "Custom Style",
    fullscreen: "Fullscreen",
    showFullscreen: "Show Fullscreen",
    loadingState: "Loading state:",
  },

  exampleEditor: {
    title: "Rich Text Editor Example",
    description:
      "A rich text editor based on Tiptap, supporting image upload, link insertion, formatting and more.",
    basicUsage: "Basic Usage",
    placeholder: "Enter content...",
    disabledState: "Disabled State",
    customHeight: "Custom Height",
    contentPreview: "Content Preview",
    htmlOutput: "HTML Output",
    noContent: "No content",
    save: "Save Content",
    clear: "Clear Content",
    loadDemo: "Load Demo",
    savedMessage: "Content saved",
    clearedMessage: "Content cleared",
    demoLoadedMessage: "Demo content loaded",
  },

  exampleForm: {
    description: "Advanced ProForm example demonstrating various form controls",
    age: "Age",
    ageRange: "Age must be between 1 and 150",
    interests: "Interests",
    birthDate: "Birth Date",
    score: "Score",
    progress: "Progress",
    bioPlaceholder: "Please enter bio",
    submitSuccess: "Submitted successfully!",
    roles: {
      admin: "Administrator",
      user: "Regular User",
      guest: "Guest",
    },
    interestOptions: {
      reading: "Reading",
      sports: "Sports",
      music: "Music",
      travel: "Travel",
    },
  },

  exampleIcon: {
    title: "Icon Showcase",
    subtitle: "Unified demo for Icon component and IconPicker",
    capabilities:
      "Supports: local SVG, antdv-next icons, Iconify (offline sets + online search)",
    renderTitle: "Three Render Modes",
    renderSubtitle: "Click any sample to apply it to IconPicker below",
    pickerTitle: "IconPicker Demo",
    pickerSubtitle:
      "Type 2+ chars to trigger online search; offline icon sets are available by category",
    modelLabel: "Icon Value",
    previewLabel: "Live Preview",
    copy: "Copy Value",
    copySuccess: "Icon value copied",
    copyEmpty: "Please choose an icon first",
    copyFailed: "Copy failed, please copy manually",
    reset: "Reset Default",
    sourceLabel: "Source",
    sourceSvg: "Local SVG Symbol",
    sourceAntdv: "antdv-next component icon",
    sourceIconify: "Iconify icon",
    sourceOnline: "Iconify online result",
    sourceUnknown: "Unknown",
    guidesTitle: "Integration Guide",
    guidesSubtitle:
      "Two common integration paths: SVG Symbol and Iconify (online + offline)",
    svgGuideTitle: "How to add and use SVG",
    iconifyGuideTitle: "How to use Iconify",
    guideStepSvg1:
      'Inject <symbol id="..."> definitions at app root (or layout root).',
    guideStepSvg2:
      "Use Icon component with svg:icon-id, e.g. svg:icon-demo-orbit.",
    guideStepSvg3:
      "For IconPicker local SVG detection, place files under src/assets/icons and pass svgIcons.",
    guideStepIconify1:
      "Pass iconify names directly: ri:home-line / mdi:account / ion:apps-outline.",
    guideStepIconify2:
      "IconPicker includes offline sets (ri / mdi / ion), available without network.",
    guideStepIconify3:
      "In All/Online category, type keywords (at least 2 chars) to search Iconify online.",
    modeSvg: "SVG Sprite",
    modeAntdv: "antdv-next",
    modeIconify: "Iconify",
    sampleHint: "Click to apply",
  },

  exampleWatermark: {
    title: "Watermark Example",
    description:
      "Global watermark feature - configure and preview watermark effects in real time",
    enableGlobal: "Enable Global Watermark",
    content: "Watermark Text",
    fontSize: "Font Size",
    rotate: "Rotation",
    opacity: "Opacity",
    gapX: "Horizontal Gap",
    gapY: "Vertical Gap",
    preview: "Local Preview",
    previewText: "This area is for previewing the watermark effect",
  },

  exampleSplitter: {
    title: "Splitter Example",
    description:
      "Splitter component creates resizable split panel layouts with horizontal/vertical splitting, nested layouts, and panel configuration.",
    basicTab: "Basic Split",
    nestedTab: "Nested Layout",
    configTab: "Panel Config",
    businessTab: "Business Example",
    horizontalSplit: "Horizontal Split (Left-Right)",
    verticalSplit: "Vertical Split (Top-Bottom)",
    leftPanel: "Left Panel",
    rightPanel: "Right Panel",
    topPanel: "Top Panel",
    bottomPanel: "Bottom Panel",
    threeColumnLayout: "Three-Column Nested Layout",
    sidebarPanel: "Sidebar",
    mainContent: "Main Content",
    footerPanel: "Footer Area",
    asidePanel: "Right Sidebar",
    minSize: "Min Size",
    maxSize: "Max Size",
    defaultSize: "Default Size",
    resizable: "Resizable",
    configurablePanel: "Configurable Panel",
    autoPanel: "Auto Panel",
    codeEditorLayout: "Code Editor Layout Example",
  },

  exampleTour: {
    title: "Tour Guide Example",
    description:
      "Tour component creates step-by-step guides to help users understand product features and workflows.",
    startBasicTour: "Start Basic Tour",
    startCustomTour: "Start Custom Tour",
    searchButton: "Search",
    createButton: "Create",
    settingsButton: "Settings",
    exportButton: "Export",
    tourConfig: "Tour Configuration",
    showMask: "Show Mask",
    showArrow: "Show Arrow",
    scrollIntoView: "Scroll Into View",
    indicatorType: "Indicator Type",
    step1Title: "Search Feature",
    step1Desc:
      "Click this button to search data in the system, supporting fuzzy matching and advanced filtering.",
    step2Title: "Create Action",
    step2Desc:
      "Click this button to create new data records, supporting multiple data types.",
    step3Title: "System Settings",
    step3Desc:
      "Click this button to access system settings and configure system parameters.",
    step4Title: "Export Data",
    step4Desc:
      "Click this button to export current data to Excel, CSV, or other formats.",
    customStep1Title: "Right Placement",
    customStep1Desc: "The tour panel is displayed on the right of the target.",
    customStep2Title: "Bottom Placement",
    customStep2Desc: "The tour panel is displayed at the bottom of the target.",
    customStep3Title: "Left Placement",
    customStep3Desc: "The tour panel is displayed on the left of the target.",
    customStep4Title: "Top Placement",
    customStep4Desc:
      "The tour panel is displayed on top of the target with a custom indicator.",
  },

  exampleQRCode: {
    title: "QR Code Example",
    description:
      "QRCode component generates QR codes with custom styles, logos, status display, and download functionality.",
    basicTab: "Basic",
    styleTab: "Style Config",
    logoTab: "With Logo",
    statusTab: "Status",
    downloadTab: "Download",
    content: "QR Code Content",
    size: "Size",
    bgColor: "Background Color",
    fgColor: "Foreground Color",
    errorLevel: "Error Level",
    logoHint:
      "Use errorLevel='H' to ensure QR codes with logos can be scanned correctly",
    statusActive: "Active",
    statusExpired: "Expired",
    statusLoading: "Loading",
    downloadContent: "QR Code Content",
    fileName: "File Name",
    downloadButton: "Download QR Code",
    downloadSuccess: "Download successful",
  },

  exampleSegmented: {
    title: "Segmented Example",
    description:
      "Segmented component switches between multiple options, commonly used for view switching and filtering.",
    basicTab: "Basic",
    iconTab: "Icon Options",
    blockTab: "Block Style",
    disabledTab: "Disabled",
    businessTab: "Business",
    basicUsage: "Basic Usage",
    currentValue: "Current Value",
    sizes: "Different Sizes",
    iconOptions: "Icon Only Options",
    mixOptions: "Text + Icon Mix",
    blockStyle: "Block Style (100% width)",
    allDisabled: "All Disabled",
    partialDisabled: "Partial Disabled",
    viewSwitch: "View Switch",
    filterSwitch: "Filter Condition",
    filterResult: "Filter Result",
    listItemTitle: "Data Item",
    listItemDesc: "This is the description of the data item",
    cardItemTitle: "Card",
  },

  exampleColorPicker: {
    title: "Color Picker Example",
    description:
      "ColorPicker component for color selection with multiple formats, presets, and alpha support.",
    basicTab: "Basic",
    presetTab: "Presets",
    formatTab: "Formats",
    alphaTab: "Alpha",
    disabledTab: "Disabled",
    businessTab: "Business",
    basicUsage: "Basic Usage",
    sizes: "Different Sizes",
    presetColors: "Preset Colors",
    currentColor: "Current Color",
    formatSupport: "Format Support",
    withAlpha: "With Alpha",
    withoutAlpha: "Without Alpha",
    disabledState: "Disabled State",
    disabledHint: "Cannot select color when disabled",
    themeColor: "Theme Color Selection",
    tagColors: "Tag Color Config",
    addTag: "Add Tag",
    tagName: "Tag Name",
    tagColor: "Tag Color",
    tagNameRequired: "Please enter tag name",
    addTagSuccess: "Tag added successfully",
  },

  exampleModal: {
    title: "ProModal Demo",
    description:
      "An enhanced wrapper around antdv-next Modal with drag, fullscreen, edge resize and viewport constraints.",
    openDefault: "Open Default Modal",
    openWide: "Open Wide Modal",
    width: "Modal Width",
    dataCount: "Data Size",
    draggable: "Drag Title",
    resizable: "Edge Resize",
    fullscreenable: "Fullscreen Button",
    mask: "Mask",
    maskClosable: "Click Mask to Close",
    keyboard: "ESC to Close",
    modalTitle: "Draggable / Resizable ProModal",
    hint: "Top-right actions provide fullscreen and close. Drag title to move. Drag edges/corners to resize.",
    contentTitle: "Feature Demonstration",
    contentDescription:
      "The following long list is used to demonstrate scrolling and viewport boundary behavior.",
    formKeyword: "Keyword",
    formKeywordPlaceholder: "Please enter keyword",
    formRemark: "Remark",
    formRemarkPlaceholder: "Please enter remark",
    rowText: "Demo data row #{index}",
    confirmSuccess: "Confirmed successfully",
  },

  exampleException: {
    "403title": "403",
    "403description": "Sorry, you do not have permission to access this page",
    "404title": "404",
    "404description": "Sorry, the page you visited does not exist",
    "500title": "500",
    "500description": "Sorry, the server is reporting an error",
  },

  editor: {
    insertLink: "Insert Link",
    linkUrl: "Link URL",
    linkText: "Link Text",
    linkTextPlaceholder: "Link text",
    defaultPlaceholder: "Enter content...",
    imageOnly: "Only image files are allowed",
    imageSizeLimit: "Image size cannot exceed 5MB",
    imageInsertSuccess: "Image inserted successfully",
    imageUploadFailed: "Image upload failed",
    enterLinkUrl: "Please enter link URL",
  },

  iconPicker: {
    selectIcon: "Select icon",
    searchPlaceholder: "Search icon name...",
    onlineSearchFailed: "Online search failed",
    onlineSearchFailedDetail: "Online search failed: {message}",
  },

  captcha: {
    clickInOrder: "Click in order: ",
    refresh: "Refresh",
  },

  about: {
    description:
      "A modern admin framework built on Vue 3 + TypeScript + Ant Design Vue. Production-ready, feature-rich, and easy to extend.",
    projectInfo: "Project Info",
    projectName: "Project Name",
    version: "Version",
    license: "License",
    author: "Author",
    email: "Email",
    documentation: "Documentation",
    techStack: "Tech Stack",
    features: "Core Features",
    feature1: "Vue 3 Composition API",
    feature1Desc:
      "Better logic reuse, code organization, and reactive performance",
    feature2: "Full TypeScript Strict Mode",
    feature2Desc: "Complete type inference to catch errors at development time",
    feature3: "Complete RBAC Permission System",
    feature3Desc:
      "Page, button, field, and API level access control out of the box",
    feature4: "Dynamic Routes & Menu Generation",
    feature4Desc: "Auto-generate routes and sidebar menus based on user roles",
    feature5: "i18n Multi-language Support",
    feature5Desc: "Built-in Chinese & English with easy locale extension",
    feature6: "Light / Dark Theme Switching",
    feature6Desc: "6 preset theme colors with auto system preference detection",
    feature7: "ProTable / ProForm Components",
    feature7Desc:
      "Config-driven tables and forms covering common business scenarios",
    feature8: "Mock Data Development Mode",
    feature8Desc:
      "Built-in mock system for parallel frontend and backend development",
  },

  proForm: {
    enterPlaceholder: "Please enter {label}",
    selectPlaceholder: "Please select {label}",
    uploadFile: "Upload File",
  },

  proUpload: {
    uploadFile: "Upload File",
    uploadImage: "Upload Image",
    dragHint: "Click or drag file to this area to upload",
    fileSizeExceed: "File size must not exceed {size}MB",
    fileTypeNotAllowed: "File type not allowed",
  },

  proStepForm: {
    prev: "Previous",
    next: "Next",
  },

  proTable: {
    total: "Total {total} items",
    density: "Table Density",
    checkAll: "Select All",
    indexColumn: "Index Column",
    fixLeft: "Pin Left",
    fixRight: "Pin Right",
    densityLarge: "Spacious",
    densityMiddle: "Default",
    densitySmall: "Compact",
    loadDataFailed: "Failed to load data",
  },

  profile: {
    title: "Profile",
    basicInfo: "Basic Information",
    security: "Security",
    username: "Username",
    email: "Email",
    phone: "Phone",
    role: "Role",
    joinDate: "Join Date",
    changePassword: "Change Password",
    currentPassword: "Current Password",
    oldPassword: "Old Password",
    newPassword: "New Password",
    confirmPassword: "Confirm Password",
    enterCurrentPassword: "Please enter current password",
    enterNewPassword: "Please enter new password",
    enterConfirmPassword: "Please enter new password again",
    passwordMismatch: "Passwords do not match",
    passwordMinLength: "Password must be at least 6 characters",
    passwordChangeSuccess: "Password changed successfully",
    passwordChangeFailed: "Failed to change password",
    passwordTip:
      "Tip: Password should be at least 6 characters, recommend including letters, numbers and special characters",
    updateSuccess: "Update successful",
    updateFailed: "Update failed",
  },

  error: {
    404: "Page Not Found",
    403: "Access Forbidden",
    500: "Server Error",
    backHome: "Back to Home",
    pageNotFound: "Sorry, the page you visited does not exist",
    noPermission: "Sorry, you do not have permission to access this page",
    serverError: "Sorry, the server is reporting an error",
  },

  validation: {
    required: "This field is required",
    email: "Please enter a valid email address",
    phone: "Please enter a valid phone number",
    idCard: "Please enter a valid ID card number",
    url: "Please enter a valid URL",
    minLength: "Minimum length is {min} characters",
    maxLength: "Maximum length is {max} characters",
    lengthRange: "Length must be between {min} and {max}",
    numberRange: "Value must be between {min} and {max}",
    min: "Minimum value is {min}",
    max: "Maximum value is {max}",
    pattern: "Invalid format",
    usernamePattern:
      "Username can only contain letters, numbers and underscores",
    passwordPattern:
      "Password must be at least 8 characters and include letters and numbers",
    confirmPassword: "The two passwords do not match",
  },

  dept: {
    title: "Department Management",
    organizationStructure: "Organization",
    searchDept: "Search department",
    deptName: "Department Name",
    parentDept: "Parent Department",
    leader: "Leader",
    phone: "Phone",
    email: "Email",
    sort: "Sort",
    remark: "Remark",
    status: "Status",
    enabled: "Enabled",
    disabled: "Disabled",
    createDept: "Create Department",
    editDept: "Edit Department",
    deleteDept: "Delete Department",
    addChildDept: "Add Child Department",
    childDepts: "Child Departments",
    noneTopLevel: "None (Top Level)",
    noneTopLevelDept: "None (Top Level Department)",
    selectDeptNode: "Please select a department node on the left",
    confirmDelete: "Confirm Delete",
    confirmDeleteContent:
      'Are you sure you want to delete department "{name}"?',
    hasChildrenWarning:
      "This department has child departments, please delete them first",
    deleteSuccess: "Deleted successfully",
    deleteFailed: "Delete failed",
    updateSuccess: "Updated successfully",
    createSuccess: "Created successfully",
    operateFailed: "Operation failed",
    pleaseEnterDeptName: "Please enter department name",
    pleaseEnterLeader: "Please enter leader",
    pleaseEnterPhone: "Please enter phone",
    pleaseEnterEmail: "Please enter email",
    pleaseEnterRemark: "Please enter remark",
    loadDataFailed: "Failed to load department data",
    createTime: "Create Time",
    updateTime: "Update Time",
  },

  config: {
    title: "System Config",
    configGroups: "Config Groups",
    configName: "Config Name",
    configKey: "Config Key",
    configValue: "Config Value",
    valueType: "Value Type",
    group: "Group",
    sort: "Sort",
    description: "Description",
    builtIn: "Source",
    createConfig: "Create Config",
    editConfig: "Edit Config",
    deleteConfig: "Delete Config",
    confirmDelete: "Confirm Delete",
    confirmDeleteContent: 'Are you sure you want to delete config "{name}"?',
    deleteSuccess: "Deleted successfully",
    deleteFailed: "Delete failed",
    updateSuccess: "Updated successfully",
    createSuccess: "Created successfully",
    operateFailed: "Operation failed",
    requiredFields: "Please fill in required fields",
    loadConfigFailed: "Failed to load config",
    valueTypes: {
      string: "String",
      number: "Number",
      boolean: "Boolean",
      json: "JSON",
    },
    groups: {
      basic: "Basic Config",
      security: "Security Config",
      upload: "Upload Config",
      notification: "Notification Config",
    },
    builtInTypes: {
      builtIn: "Built-in",
      custom: "Custom",
    },
    placeholders: {
      configName: "Please enter config name",
      configKey: "e.g. site.name",
      configValue: "Please enter config value",
      jsonFormat: "JSON format",
      description: "Please enter description",
    },
  },

  file: {
    title: "File Management",
    fileName: "File Name",
    ext: "Extension",
    size: "File Size",
    storage: "Storage Type",
    uploader: "Uploader",
    uploadTime: "Upload Time",
    action: "Action",
    delete: "Delete",
    confirmDelete: "Confirm Delete",
    confirmDeleteContent: 'Are you sure you want to delete file "{name}"?',
    deleteSuccess: "Deleted successfully",
    deleteFailed: "Delete failed",
    loadFailed: "Failed to load file list",
    storageType: {
      local: "Local",
      oss: "OSS",
      cos: "COS",
    },
    extType: {
      imageJpg: "Image(jpg)",
      imagePng: "Image(png)",
      pdf: "PDF",
      word: "Word",
      excel: "Excel",
      zip: "Archive",
      video: "Video",
      text: "Text",
      ppt: "PPT",
      svg: "SVG",
    },
  },

  log: {
    title: "System Log",
    operationLog: "Operation Log",
    loginLog: "Login Log",
    clearLog: "Clear Log",
    confirmClear: "Confirm Clear",
    confirmClearOperation:
      "Are you sure you want to clear all operation logs? This action cannot be undone.",
    confirmClearLogin:
      "Are you sure you want to clear all login logs? This action cannot be undone.",
    clearSuccess: "Cleared successfully",
    clearFailed: "Clear failed",
    operationUser: "Operator",
    operationModule: "Module",
    operationType: "Operation Type",
    operationDescription: "Description",
    requestMethod: "Method",
    ipAddress: "IP Address",
    duration: "Duration",
    operationTime: "Operation Time",
    username: "Username",
    browser: "Browser",
    os: "OS",
    message: "Message",
    loginTime: "Login Time",
    success: "Success",
    fail: "Failed",
    actionTypes: {
      login: "Login",
      logout: "Logout",
      create: "Create",
      update: "Update",
      delete: "Delete",
      export: "Export",
      import: "Import",
      other: "Other",
    },
    modules: {
      userManagement: "User Management",
      roleManagement: "Role Management",
      menuManagement: "Menu Management",
      dictionary: "Dictionary",
      systemLogin: "System Login",
      profile: "Profile",
      dashboard: "Dashboard",
    },
    loadOperationLogFailed: "Failed to load operation logs",
    loadLoginLogFailed: "Failed to load login logs",
  },

  "menu.external": "External Pages",
  "menu.externalIframe": "IFrame",
  "menu.externalLink": "External Links",
  "menu.externalTypescript": "TypeScript",
  "menu.externalAntdvNext": "Antdv Next",
  "menu.externalVite": "Vite",
  "menu.externalVue": "Vue.js",
  "external.link.openedTitle": "Opened in a new tab",
  "external.link.openedSubTitle":
    "If the browser blocked the popup, click the button below to open again.",
  "external.link.openVite": "Open Vite",
  "external.link.openVue": "Open Vue",

  examples: {
    scaffold: {
      stateCache: {
        title: "State & Cache Example",
        description:
          "Demonstrates Pinia persistence (survives refresh) and keep-alive local caching (survives tab switching).",
        piniaSection: "1. Pinia Persisted State",
        keywordLabel: "Keyword",
        keywordPlaceholder: "Persists after page refresh",
        counterLabel: "Counter",
        notesLabel: "Notes",
        notesPlaceholder: "Supports multiline, auto-persisted",
        resetButton: "Reset State",
        pinTabButton: "Pin Current Tab",
        lastPersistTime: "Last persist time: ",
        keepAliveSection: "2. keep-alive Local Cache",
        panelA: "Panel A",
        panelB: "Panel B",
        panelADesc: "Panel A (will not be destroyed when switching)",
        panelAInputPlaceholder:
          "Input content, switch to B and back - still retained",
        localCountLabel: "Local count: ",
        panelBDesc: "Panel B (also cached by keep-alive)",
        panelBTextPlaceholder:
          "Input content, switch tabs and return - still retained",
        pinTabSuccess: "Tab pin status toggled",
      },
      uploadSystem: {
        title: "Upload System Example",
        description:
          "Drag & drop upload + progress + retry on failure + image preview, ready for business integration.",
        uploading: "Uploading",
        success: "Success",
        failed: "Failed",
        dragText: "Click or drag files to this area to upload",
        dragHint:
          "Supports images and documents. Upload process randomly simulates failures to verify retry logic.",
        retryButton: "Retry Failed",
        clearButton: "Clear List",
        failureRate: "Failure rate: ",
        previewTitle: "File Preview",
        uploadFailedError: "Upload failed due to network fluctuation",
        uploadSuccessMsg: "Upload success: {name}",
        uploadFailedMsg: "Upload failed: {name}",
        retryMsg: "Retrying {count} failed files",
        previewNotSupported: "This file type does not support preview",
      },
      importExport: {
        title: "Import/Export Flow Example",
        description:
          "Demonstrates template download, CSV import validation, error receipt export, and current data export.",
        downloadTemplate: "Download Template",
        importCsv: "Import CSV",
        exportCurrent: "Export Current Data",
        exportErrorReceipt: "Export Error Receipt",
        totalRows: "Total Rows",
        successRows: "Successful Rows",
        updatedRows: "Updated Rows",
        failedRows: "Failed Rows",
        importHint:
          "Header must be code,name,category,price,stock; rows are upserted by code.",
        colCode: "Code",
        colName: "Name",
        colCategory: "Category",
        colPrice: "Price",
        colStock: "Stock",
        errorRowNo: "Row No.",
        errorReason: "Error Reason",
        errorRaw: "Raw Data",
        emptyFile: "File is empty or has no valid rows",
        invalidHeader: "Invalid header, please use the template",
        errorRequired: "Required fields missing (code/name/category)",
        errorPrice: "Price must be a number greater than or equal to 0",
        errorStock: "Stock must be an integer greater than or equal to 0",
        importDone: "Import finished: {success} success, {failed} failed",
        parseFailed: "CSV parse failed, please check file format",
      },
      testing: {
        title: "Testing Example",
        description:
          "Provides recommended templates for unit tests and e2e tests, ready to copy for new modules.",
        alertMessage:
          "Vitest / Playwright dependencies are not installed yet. This page provides structure and examples.",
        unitTestTitle: "Unit Test Template (Vitest)",
        e2eTestTitle: "End-to-End Test Template (Playwright)",
        implementationTitle: "Implementation Sequence",
        step1Title: "Add unit tests first",
        step1Description:
          "Cover core functions, store computation logic, and edge cases.",
        step2Title: "Then add e2e tests",
        step2Description:
          "Cover critical user paths like login, search, and list operations.",
        step3Title: "Integrate with CI",
        step3Description:
          "Chain type-check + unit + e2e into pipeline, execute automatically before merge.",
      },
      proTableAdvanced: {
        title: "ProTable Advanced Example",
        description:
          "Server-side pagination simulation + batch operations + inline editing + export",
        selectedCount: "{count} items selected",
        batchDisable: "Batch Disable",
        batchDelete: "Batch Delete",
        export: "Export Current Data",
        statusActive: "Active",
        statusInactive: "Inactive",
        username: "Username",
        realName: "Real Name",
        email: "Email",
        gender: "Gender",
        status: "Status",
        createdAt: "Created At",
        editSimulation: "Simulate edit: {username}",
        deleteConfirm: "Confirm to delete this row?",
        deleteSuccess: "Delete successful",
        statusChangeSuccess: "{status} {username}",
        batchSetStatusSuccess: "Batch set status for {count} items",
        batchDeleteTitle: "Batch Delete Confirmation",
        batchDeleteContent: "Confirm to delete the selected {count} rows?",
        batchDeleteSuccess: "Batch delete completed",
        exportSuccess: "CSV exported successfully",
      },
      complexForm: {
        title: "Complex Form Example",
        description:
          "Step form + dynamic policy rules + async validation + draft save + server-side field error mapping.",
        step1Title: "Basic Info",
        step2Title: "Policy Configuration",
        step3Title: "Publish Settings",
        projectNameLabel: "Project Name",
        projectNamePlaceholder: "Enter project name",
        projectNameRequired: "Please enter project name",
        projectNameExists: "Project name already exists, please change",
        ownerLabel: "Owner",
        ownerPlaceholder: "Enter owner",
        ownerRequired: "Please enter owner",
        sceneLabel: "Scene",
        scenePlaceholder: "Select scene",
        sceneRequired: "Please select scene",
        sceneGrowth: "User Growth",
        sceneRisk: "Risk Control",
        sceneStability: "Stability Monitoring",
        descriptionLabel: "Description",
        descriptionPlaceholder: "Enter additional description",
        addRuleButton: "Add Policy Rule",
        currentRulesCount: "Current {count} rules",
        metricPlaceholder: "Metric name, e.g., error_rate",
        deleteButton: "Delete",
        ruleListEmpty: "Please add at least one policy rule",
        ruleListIncomplete: "Policy rules have unfilled items, please complete",
        publishTypeLabel: "Publish Type",
        publishTypeRequired: "Please select publish type",
        publishImmediate: "Immediate",
        publishSchedule: "Scheduled",
        publishTimeLabel: "Publish Time",
        publishTimeRequired: "Scheduled publish must select publish time",
        notifyUsersLabel: "Notify Users",
        notifyUsersPlaceholder: "Enter username and press Enter",
        prevButton: "Previous",
        nextButton: "Next",
        submitButton: "Submit",
        saveDraftButton: "Save Draft",
        resetButton: "Reset",
        draftSaved: "Draft saved",
        serverValidationError:
          'Server validation failed: project name cannot contain "fail"',
        submitFailed: "Submit failed, server field error mapped",
        submitSuccess: "Submit successful",
      },
      advancedFilter: {
        title: "Advanced Filter Builder Example",
        description:
          "Build filter rules with visual conditions (AND/OR), and save reusable filter schemes.",
        tips: "Supports string, enum, number, and date fields for most list filtering scenarios.",
        addCondition: "Add Condition",
        saveScheme: "Save Scheme",
        matchedCount: "{count} matched",
        emptyConditions: "No filter conditions",
        inputValue: "Enter value",
        selectValue: "Select value",
        secondValue: "Second value",
        savedSchemes: "Saved schemes:",
        noSchemes: "None",
        schemeNamePlaceholder: "Enter scheme name (max 30 chars)",
        schemeNameRequired: "Please enter scheme name",
        saveSuccess: "Filter scheme saved",
        score: "Score",
        statusActive: "Active",
        statusInactive: "Inactive",
        statusPending: "Pending",
        adminRole: "Admin",
        operatorRole: "Operator",
        auditorRole: "Auditor",
        opContains: "Contains",
        opEquals: "Equals",
        opNotEquals: "Not equals",
        opIn: "In",
        opGt: "Greater than",
        opGte: "Greater or equal",
        opLt: "Less than",
        opLte: "Less or equal",
        opBetween: "Between",
        opBefore: "Before",
        opAfter: "After",
      },
      virtualTable: {
        title: "Virtual Scroll Table Example",
        description:
          "Demonstrates smooth rendering of large data sets using native a-table virtual scroll.",
        tipsNativeVirtual:
          "Built with antdv-next native a-table + virtual, no extra virtual list library required.",
        datasetSize: "Dataset size",
        regenerate: "Regenerate Data",
        regenerateSuccess: "{count} rows generated",
        searchPlaceholder: "Search username / email / department",
        allStatus: "All Status",
        totalRows: "Total {count}",
        filteredRows: "Filtered {count}",
        renderedRowsTip:
          "Only visible rows are rendered for smoother scrolling",
        statusActive: "Active",
        statusInactive: "Inactive",
        statusPending: "Pending",
        colId: "ID",
        colUsername: "Username",
        colEmail: "Email",
        colDepartment: "Department",
        colStatus: "Status",
        colUpdatedAt: "Updated At",
      },
      masterDetail: {
        title: "Master-Detail Example",
        description:
          "Simulates ticket master-slave page: select from list on left, view details and operation history in Drawer on right.",
        drawerTitle: "Ticket Details",
        ticketNumber: "Ticket No.",
        titleLabel: "Title",
        ownerLabel: "Owner",
        priorityLabel: "Priority",
        createdAtLabel: "Created At",
        descTab: "Description",
        logsTab: "Operation Logs",
        statusOpen: "Open",
        statusProcessing: "Processing",
        statusClosed: "Closed",
        ticketTitle: "Order Risk Alert #{index}",
        ownerZhang: "Zhang",
        ownerLi: "Li",
        ticketDescription:
          "This is the detailed description of ticket {index}, including background information, impact scope, and recommended actions.",
        actionCreate: "Create Ticket",
        operatorSystem: "System",
        actionAssign: "Assign Owner",
        operatorDispatch: "Dispatch Center",
        colTicketNumber: "Ticket No.",
        colTitle: "Title",
        colOwner: "Owner",
        colPriority: "Priority",
        colStatus: "Status",
        colCreatedAt: "Created At",
      },
      rbac: {
        title: "RBAC Full-Chain Example",
        description:
          "Covers 4 dimensions: page permission, button permission, field permission, and API permission. Switch between admin / user to observe differences.",
        currentSession: "Current Session",
        accountInfo: "Account: {username} | Role: {role}",
        switchToAdmin: "Switch to admin",
        switchToUser: "Switch to user",
        permissionTotal: "...total {count} items",
        section1Title: "1. Page Permission Check",
        checkUserManage: "User management page access (system.user.view)",
        checkMenuManage: "Menu management page access (system.permission.view)",
        checkAdminRole: "Admin role access (admin)",
        passed: "Passed",
        denied: "Denied",
        section2Title: "2. Button Permission",
        createUserButton: "Create User",
        editUserButton: "Edit User",
        deleteUserButton: "Delete User",
        buttonPermissionHint:
          "Hint: Button rendering is controlled by PermissionButton",
        section3Title: "3. Field Permission (Masking)",
        phoneLabel: "Phone:",
        emailLabel: "Email:",
        realNameLabel: "Real Name:",
        section4Title: "4. API Permission Fallback",
        callViewApi: "Call View API",
        callExportApi: "Call Export API",
        callDeleteApi: "Call Delete API",
        viewUserAction: "View user list",
        exportUserAction: "Export users",
        deleteUserAction: "Delete user",
        switchSuccess: "Switched to {username}",
        switchFailed: "Switch failed",
        missingPermission: "403: Missing permission {permission}",
        apiSuccess: "{action} successful",
        apiFailed: "{action} failed: {error}",
        noPermission: "No permission",
      },
      observability: {
        title: "Observability & Exception Example",
        description:
          "Unified handling of loading, empty, and error states with error classification, logging, and one-click retry.",
        simulateSuccess: "Simulate Success",
        simulateEmpty: "Simulate Empty",
        simulateNetwork: "Simulate Network Error",
        simulateAuth: "Simulate Auth Error",
        simulateBusiness: "Simulate Business Error",
        requestStateTitle: "Request State View",
        emptyData: "No data to display",
        requestFailed: "Request Failed",
        retryButton: "Retry",
        clickToStart: "Click button above to start simulation",
        errorLogTitle: "Error Classification & Event Log",
        networkError: "Network Error",
        authError: "Auth Error",
        businessError: "Business Error",
        noEvents: "No events yet",
        errorNetwork:
          "NetworkError: Request timeout, please check network connection",
        errorAuth: "AuthError: token expired, need to re-login",
        errorBusiness:
          "BusinessError: rule configuration conflict, cannot calculate",
        eventStart: "Start simulating scenario: {scenario}",
        eventEmpty: "Request successful but returned empty data",
        eventSuccess: "Request successful and returned data",
        unknownError: "Unknown error",
        eventError: "Request failed ({type}): {message}",
      },
      requestAuth: {
        title: "Request & Auth Loop Example",
        description:
          "Demonstrates queued refresh mechanism when concurrent requests trigger 401, and fallback to re-login after refresh failure.",
        refreshFailedAlert: "Refresh failed, entered re-login state",
        refreshFailedDesc:
          'Subsequent requests will continue to fail. Click "Reset Session" to make new requests.',
        accessToken: "Access Token",
        refreshToken: "Refresh Token",
        refreshStatus: "Refresh Status",
        empty: "Empty",
        refreshing: "Refreshing",
        idle: "Idle",
        singleRequest: "Single Request",
        concurrentRequest: "5 Concurrent Requests",
        expireToken: "Expire Token",
        simulateRefreshFail: "Simulate Refresh Failure",
        resetSession: "Reset Session",
        logTitle: "Event Log (Last 80 entries)",
        clearLog: "Clear Log",
        noLogs: "No logs yet",
        tokenExpired: "[{apiName}] token expired",
        apiSuccess: "[{apiName}] request successful",
        refreshTokenInvalid: "refresh token invalid",
        logRefreshStart:
          "Trigger token refresh (only first 401 request executes)",
        logRefreshSuccess:
          "Token refresh successful, releasing queued requests",
        logRefreshFailed:
          "Token refresh failed: {message}, entering re-login state",
        logQueueWait: "Refresh in progress detected, request queued",
        logNon401Error: "[{apiName}] non-401 error: {message}",
        log401Detected: "[{apiName}] 401 detected, preparing to refresh token",
        logTokenExpired: "Manually marked access token as expired",
        logSessionReset: "Session reset, ready for new requests",
        singleRequestFailed: "Single request failed",
        logConcurrentStart:
          "Starting 5 concurrent requests, observe refresh queue behavior",
        concurrentPartialFail: "Concurrent requests completed, {count} failed",
        concurrentAllSuccess: "All concurrent requests successful",
        logRefreshWillFail: "Next refresh will be forced to fail",
        refreshFailTriggered: "Refresh failure scenario triggered",
      },
    },
    jsonInput: {
      title: "JSON Input Example",
      description:
        "A powerful JSON input component that supports both form and raw JSON editing modes. It can handle nested objects, arrays, and various data types.",
      basicUsage: "Basic Usage",
      userConfig: "User Configuration",
      clickToEdit: "Click to edit JSON",
      editUserConfig: "Edit User Configuration",
      displayValue: "Display Value (using displayKey)",
      productName: "Product Name",
      price: "Price",
      stock: "Stock",
      productDescription: "Description",
      selectProduct: "Select Product",
      advancedUsage: "Advanced Usage",
      withI18nKeys: "Key Internationalization Support",
      i18nKeysHint: "Use label-map prop to provide i18n labels for keys",
      withDisabledFields: "With Disabled Fields",
      apiKey: "API Key",
      endpoint: "Endpoint",
      timeout: "Timeout (seconds)",
      systemConfig: "System Configuration",
      nestedObject: "Nested Object Support",
      userInfo: "User Info",
      name: "Name",
      settings: "Settings",
      theme: "Theme",
      language: "Language",
      nestedData: "Nested Data Structure",
      emptyObject: "Empty Object (Create New)",
      createNew: "Create New Configuration",
    },
    i18nInput: {
      description:
        "Internationalized input component supporting multi-language content editing. Built on top of JsonInput, it automatically generates form fields based on system-supported languages.",
      productName: "Product Name (Multi-language)",
      productDescription: "Product Description (Multi-language)",
      editProductName: "Edit Product Name",
      editProductDesc: "Edit Product Description",
      clickToEdit: "Click to edit multi-language content",
      stringFormat: "String Format Value",
      stringFormatHint:
        "Supports JSON in string format, component will automatically parse and serialize",
      currentLocale: "Specify Display Locale",
      currentLocaleHint:
        "Use the locale prop to specify which language value to display in the input",
      emptyValue: "Empty Value (Auto-initialize)",
      dataPreview: "Data Preview",
      valueType: "Value Type Toggle",
      showAsString: "Show as String",
      showAsObject: "Show as Object",
      stringValue: "String Format",
      objectValue: "Object Format",
    },
    codeEditor: {
      title: "Code Editor Example",
      description:
        "Code editor component based on CodeMirror 6, supporting 14+ language syntax highlighting, JSON formatting, theme switching and more.",
      jsonEditor: "JSON Editor",
      jsEditor: "JavaScript Editor",
      multiLanguage: "Multi-language Switching",
      readonlyMode: "Read-only Preview Mode",
      darkTheme: "Theme Switching",
      themePreview: "Theme Preview",
      themeAuto: "Follow System",
      themeLight: "Light",
      themeDark: "Dark",
      autoHeight: "Auto Height",
      format: "Format",
      minify: "Minify",
      copy: "Copy",
      language: "Language",
      theme: "Theme",
      outputPreview: "Output Preview",
    },
  },
};
