export default {
  common: {
    appName: 'NewLife',
    aiDisclaimer: 'Content generated by AI may contain errors. Please verify.',
    copy: 'Copy',
    regenerate: 'Regenerate',
    like: 'Like',
    dislike: 'Dislike',
    edit: 'Edit',
    share: 'Share',
    close: 'Close',
    cancel: 'Cancel',
    confirm: 'Confirm',
    save: 'Save',
    delete: 'Delete',
    send: 'Send',
    stop: 'Stop generating',
    loading: 'Loading...',
    version: 'NewLife v2.4.0',
    checkUpdate: 'Check for updates',
    user: 'User',
  },
  menu: {
    settings: 'User Settings',
    systemSettings: 'System Settings',
    admin: 'Admin Panel',
    logout: 'Sign Out',
  },
  sidebar: {
    newChat: 'New Chat',
    collapse: 'Collapse sidebar',
    aiCreation: 'AI Creation',
    devTools: 'Developer Tools',
    cloudDrive: 'Cloud Drive',
    more: 'More',
    history: 'History',
    today: 'Today',
    yesterday: 'Yesterday',
    past7days: 'Past 7 Days',
    past30days: 'Past 30 Days',
    earlier: 'Earlier',
    pin: 'Pin',
    pinned: 'Pinned',
    unpin: 'Unpin',
    rename: 'Rename',
    delete: 'Delete',
    searchPlaceholder: 'Search chats...',
    noResults: 'No matching chats found',
    messageResults: 'Message matches',
    empty: 'No chats yet, start a new one',
  },
  welcome: {
    greeting: 'How can I help you?',
    subtitle: 'Pick a skill to start, or type your question directly',
    quick: 'Quick',
    imageGen: 'Image Gen',
    coding: 'Coding',
    writing: 'Writing',
    research: 'Research',
    videoGen: 'Video Gen',
    useFeature: 'Use {{feature}}',
  },
  chat: {
    placeholder: 'Send a message...',
    thinkingDeep: 'Deep Thinking...',
    thinkingInProgress: 'Thinking...',
    thinkingProcess: 'Thinking Process',
    backToBottom: 'Back to bottom',
    attachment: 'Attachment',
    inputTokens: 'Input Tokens',
    outputTokens: 'Output Tokens',
    analyzingLogs: 'Analyzing logs...',
    attach: 'Attach',
    voiceInput: 'Voice input',
    stopGen: 'Stop generating',
    charLimit: '{{current}}/{{max}} characters, exceeds limit',
    dropToUpload: 'Drop files to upload',
  },
  mermaid: {
    title: 'Mermaid Diagram',
    enlarge: 'Enlarge',
    downloadSvg: 'Download SVG',
    copySource: 'Copy source',
    zoomIn: 'Zoom in',
    zoomOut: 'Zoom out',
    resetZoom: 'Reset zoom',
    close: 'Close',
  },
  preset: {
    title: 'Presets',
  },
  thinking: {
    auto: 'Auto',
    autoDesc: 'Model decides whether to think',
    think: 'Deep Thinking',
    thinkDesc: 'Enable reasoning for complex analysis, logical deduction, and long-form tasks. Response may take longer.',
    fast: 'Fast',
    fastDesc: 'Quick response, thinking disabled, ideal for simple Q&A',
    // legacy keys
    balanced: 'Auto',
    balancedDesc: 'Model decides whether to think',
    deep: 'Deep Thinking',
    deepDesc: 'Enable reasoning for complex analysis, logical deduction, and long-form tasks. Response may take longer.',
    modeEnabled: 'mode enabled',
  },

  settings: {
    title: 'Settings',
    general: 'General',
    account: 'Account & Security',
    chatPrefs: 'Chat Preferences',
    mcpAdvanced: 'Advanced / MCP',
    dataManagement: 'Data Management',
    language: 'Language',
    languageDesc: 'Choose the display language',
    theme: 'Theme',
    themeLight: 'Light',
    themeDark: 'Dark',
    themeSystem: 'System',
    fontSize: 'Font Size',
    fontSizeStandard: 'Standard',
    sendShortcut: 'Send Shortcut',
    defaultModel: 'Default Model',
    defaultModelDesc: 'Default model used for new conversations',
    defaultThinkingMode: 'Default Thinking Mode',
    contextRounds: 'Context Rounds',
    systemPrompt: 'System Prompt',
    systemPromptDesc: 'Global system prompt applied to all conversations.',
    systemPromptPlaceholder: 'Enter system prompt...',
    enableMcp: 'Enable MCP Toolset',
    enableMcpDesc: 'Allow AI to invoke local tools, access files and perform complex tasks.',
    showToolCalls: 'Show Tool Call Details',
    showToolCallsDesc: 'Show input/output parameters of tool calls for debugging agent applications.',
    speedSlow: 'Slow',
    speedMax: 'Max',
    thinkingCollapsed: 'Collapse Thinking by Default',
    thinkingCollapsedDesc: 'When enabled, the AI thinking process is collapsed by default. Click to expand. While collapsed, the header shows the current thinking step in real time.',
    contentWidth: 'Content Width',
    contentWidthNarrow: 'Compact (800px)',
    contentWidthStandard: 'Standard (960px)',
    contentWidthWide: 'Wide (1200px)',
    installedPlugins: 'Installed Plugins',
    noPlugins: 'No MCP plugins installed',
    managePlugins: 'Manage Plugins',
    permissions: 'Permissions',
    autoApproveRead: 'Auto-approve read operations',
    confirmDangerous: 'Confirm before dangerous commands',
    accountNote: 'Account & Security (provided by NewLife.Cube)',
    allowTraining: 'Allow for model improvement',
    allowTrainingDesc: 'Allow your conversation data to be used for improving AI model quality. Data will be anonymized.',
    exportData: 'Export Chat Data',
    exportDataDesc: 'Export all conversations as a JSON file for backup and migration.',
    exportBtn: 'Export Data',
    importData: 'Import Chat Data',
    importDataDesc: 'Restore conversations from a previously exported JSON file.',
    importBtn: 'Import Data',
    clearData: 'Clear All Data',
    clearDataDesc: 'Permanently delete all conversations, messages, feedback and share links. This cannot be undone.',
    clearBtn: 'Clear Data',
    groupBasic: 'Basic',
    groupAI: 'AI Interaction',
    groupAdvanced: 'Advanced',
    mcpGlobalSettings: 'Global Settings',
  },
  learning: {
    title: 'Learning & Memory',
    loadError: 'Failed to load, please try again',
    enableLearning: 'Enable Personal Learning',
    enableLearningDesc: 'When enabled, AI will remember your preferences and personalize responses',
    memoriesDesc: 'Preferences and habits AI has learned from your conversations',
    active: 'Active',
    inactive: 'Inactive',
    noMemories: 'No memory data yet',
    confidence: 'Confidence',
    deactivate: 'Deactivate',
    activate: 'Activate',
    loadMore: 'Load more ({{loaded}} / {{total}} shown)',
  },
  systemSettings: {
    title: 'System Settings',
    saveSuccess: 'System settings saved',
    tabs: {
      siteConfig: 'Site Config',
      dialogDefault: 'Dialog Defaults',
      upload: 'Upload & Share',
      gateway: 'Gateway',
      providers: 'Providers',
      tools: 'Tools',
      features: 'Features',
      learning: 'Learning',
    },
    siteConfig: {
      name: 'System Name',
      nameDesc: 'Application name shown in title and navigation',
      siteTitle: 'Site Title',
      siteTitleDesc: 'Browser tab title',
      logoUrl: 'Logo URL',
      logoUrlDesc: 'Custom logo image URL',
      welcomeMessage: 'Welcome Message',
      welcomeMessageDesc: 'Heading text on the welcome page. Leave empty to use the frontend default.',
      autoGenerateTitle: 'Auto-generate Chat Title',
      autoGenerateTitleDesc: 'Automatically generate a concise title from the first message',
    },
    dialogDefault: {
      defaultModel: 'Default Model',
      defaultModelDesc: 'Default AI model used when creating a new conversation',
      defaultThinkingMode: 'Default Thinking Mode',
      defaultThinkingModeDesc: 'Default reasoning mode for conversations',
      thinkingCollapsed: 'Collapse Thinking by Default',
      thinkingCollapsedDesc: 'When enabled, the AI thinking process is collapsed by default. Click to expand. While collapsed, the header shows the current thinking step in real time.',
      thinkingAuto: 'Auto',
      thinkingThink: 'Deep Think',
      thinkingFast: 'Fast',
      defaultContextRounds: 'Default Context Rounds',
      defaultContextRoundsDesc: 'Number of history message rounds to carry (0 = all)',
    },
    upload: {
      maxAttachmentSize: 'Max Attachment Size (MB)',
      maxAttachmentSizeDesc: 'Upload size limit per file',
      maxAttachmentCount: 'Max Attachment Count',
      maxAttachmentCountDesc: 'Maximum number of attachments per message',
      allowedExtensions: 'Allowed Extensions',
      allowedExtensionsDesc: 'Comma-separated file extension whitelist, leave empty to allow all',
      defaultImageSize: 'Default Image Size',
      defaultImageSizeDesc: 'Default output size for image generation',
      shareExpireDays: 'Share Link Expiry (days)',
      shareExpireDaysDesc: 'Default expiry days for share links, 0 = never expire',
    },
    gateway: {
      enableGateway: 'Enable Gateway',
      enableGatewayDesc: 'Enable model gateway routing and load balancing',
      gatewayRateLimit: 'Gateway Rate Limit (req/min)',
      gatewayRateLimitDesc: 'Maximum requests per user per minute',
      upstreamRetryCount: 'Upstream Retry Count',
      upstreamRetryCountDesc: 'Retry attempts when upstream AI fails',
      enableGatewayRecording: 'Enable Gateway Recording',
      enableGatewayRecordingDesc: 'Record complete requests and responses through the gateway',
    },
    tools: {
      enableFunctionCalling: 'Enable Function Calling',
      enableFunctionCallingDesc: 'Allow AI to invoke tool functions',
      enableMcp: 'Enable MCP Tools',
      enableMcpDesc: 'Allow use of MCP protocol tools',
      enableSuggestedQuestionCache: 'Enable Suggested Question Cache',
      enableSuggestedQuestionCacheDesc: 'Cache AI-generated follow-up suggestions',
      streamingSpeed: 'Streaming Speed',
      streamingSpeedDesc: 'Controls the character render rate for streaming output',
      toolAdvertiseThreshold: 'Tool Activation Threshold',
      toolAdvertiseThresholdDesc: 'Minimum score threshold to trigger tool recommendations',
      toolResultMaxChars: 'Tool Result Max Chars',
      toolResultMaxCharsDesc: 'Maximum length limit for tool call return content',
    },
    features: {
      enableUsageStats: 'Enable Usage Stats',
      enableUsageStatsDesc: 'Collect user usage data for analysis and optimization',
      backgroundGeneration: 'Background Generation',
      backgroundGenerationDesc: 'Continue generating after user leaves the page',
      maxMessagesPerMinute: 'Max Messages Per Minute',
      maxMessagesPerMinuteDesc: 'Max messages per user per minute (0 = unlimited)',
    },
    learning: {
      enableAutoLearning: 'Enable Auto Learning',
      enableAutoLearningDesc: 'Automatically extract knowledge from conversations into memory',
      learningModel: 'Learning Model',
      learningModelDesc: 'AI model used for knowledge extraction, leave empty to use default',
      minLearningContentLength: 'Min Learning Content Length',
      minLearningContentLengthDesc: 'Minimum character count to trigger learning',
    },
  },
  personalization: {
    title: 'Personalization',
    nickname: 'AI Nickname',
    nicknameDesc: 'Tell AI how to address you',
    nicknamePlaceholder: 'e.g. Tom, Stone...',
    userBackground: 'About Me',
    userBackgroundDesc: 'Describe your background to help AI understand your needs',
    userBackgroundPlaceholder: 'e.g. I am a .NET developer, mainly working on backend...',
    responseStyle: 'Response Style',
    responseStyleDesc: 'Choose AI response tendency, affecting detail level and creativity',
    styleBalanced: 'Balanced',
    styleBalancedDesc: 'Default style, balancing accuracy and richness',
    stylePrecise: 'Precise',
    stylePreciseDesc: 'Concise and rigorous, straight to the point',
    styleVivid: 'Vivid',
    styleVividDesc: 'Richer expression with examples and analogies',
    styleCreative: 'Creative',
    styleCreativeDesc: 'Imaginative, exploring multiple possibilities',
    customInstructions: 'Custom Instructions',
    customInstructionsDesc: 'Global system prompt applied to all conversations.',
    customInstructionsPlaceholder: 'Enter custom instructions...',
  },
  feedback: {
    title: 'Feedback',
    description: 'Please select reasons for dissatisfaction (multiple)',
    reason: {
      inaccurate: 'Inaccurate',
      incomplete: 'Incomplete',
      formatting: 'Poor formatting',
      harmful: 'Harmful content',
      other: 'Other',
    },
  },
  account: {
    role: 'Role',
    department: 'Department',
    username: 'Username',
    email: 'Email',
    mobile: 'Mobile',
    remark: 'Note',
  },
  about: {
    version: 'Version',
    terms: 'Terms of Service',
    privacy: 'Privacy Policy',
  },
  legal: {
    termsIntro: 'Welcome to our product. Please read the following terms carefully before use. By using this product you agree to these terms.',
    termsUseTitle: 'Usage Policy',
    termsUseBody: 'You must use this product lawfully and must not engage in any activity that violates laws, infringes on others\' rights, or harms public interests. You are solely responsible for the content you submit.',
    termsDataTitle: 'Data & Content',
    termsDataBody: 'Your conversations are stored in a local database to provide the service. We will not use your data for model training or share it with third parties without your explicit consent.',
    termsLimitTitle: 'Disclaimer',
    termsLimitBody: 'AI-generated content is for reference only and does not constitute professional advice (legal, medical, financial, etc.). We are not liable for any loss caused by AI output.',
    termsUpdate: 'These terms may be updated from time to time. Continued use constitutes acceptance of the latest version.',
    privacyIntro: 'We value your privacy. This policy explains how we collect, use, and protect your personal information.',
    privacyCollectTitle: 'Information Collection',
    privacyCollectBody: 'We only collect information necessary to provide the service, including login account, conversation content, and usage preferences. We do not actively collect sensitive personal information.',
    privacyUseTitle: 'Information Use',
    privacyUseBody: 'Collected information is used solely to provide and improve the service, generate personalized responses, and ensure account security. We do not sell your information to third parties.',
    privacySecurityTitle: 'Data Security',
    privacySecurityBody: 'We use industry-standard encryption and access controls to protect your data. You may export or delete your data at any time.',
    privacyUpdate: 'This privacy policy may be updated periodically. We will notify you within the app for significant changes.',
  },
  share: {
    title: 'Share Conversation',
    description: 'Generate a public link. Anyone with this link can view the conversation.',
    createLink: 'Create Share Link',
    createFailed: 'Failed to create share link. Please try again.',
    linkHint: 'Anyone with this link can view the conversation.',
    copyUrl: 'Copy Link',
    copyWithTitle: 'Copy with Title',
    revokeLink: 'Revoke Share',
    revokeConfirm: 'Are you sure you want to revoke this share link? Others will no longer be able to access it.',
    revokeFailed: 'Failed to revoke share link. Please try again.',
    revokeSuccess: 'Share link revoked',
  },
  sharePage: {
    title: 'Shared Conversation',
    notFound: 'Link Expired',
    notFoundDesc: 'This share link does not exist or has expired.',
    sharedAt: 'Shared at',
    expiresAt: 'Expires at',
    readOnlyNotice: 'This is a read-only shared conversation. You cannot send messages or perform actions.',
    you: 'User',
    assistant: 'Assistant',
  },
  usage: {
    title: 'Usage Statistics',
    conversations: 'Conversations',
    messages: 'Messages',
    totalTokens: 'Total Tokens',
    inputTokens: 'Input Tokens',
    outputTokens: 'Output Tokens',
    lastActive: 'Last Active',
    tokenBreakdown: 'Token Breakdown',
    modelDistribution: 'Model Usage Distribution',
    dailyUsage: 'Daily Usage',
    date: 'Date',
    calls: 'Calls',
    empty: 'No usage data yet',
  },
  imageEdit: {
    title: 'Image Edit',
    hint: 'Paint red areas on the image to mark regions for redrawing',
    brushSize: 'Brush Size',
    clearMask: 'Clear Mask',
    promptPlaceholder: 'Describe the edit you want...',
    submit: 'Start Edit',
    editImage: 'Edit Image',
    model: 'Model',
  },
  appKey: {
    title: 'API Keys',
    desc: 'Create and manage API keys to access AI services via OpenAI-compatible endpoints.',
    create: 'Create New Key',
    namePlaceholder: 'Enter key name, e.g. "My App"',
    createSuccess: 'Key created successfully!',
    secretOnce: 'Copy and securely save this key now. It won\'t be shown again after closing.',
    copied: 'Copied',
    empty: 'No API keys yet. Click the button above to create one.',
    disabled: 'Disabled',
    calls: 'Calls',
    created: 'Created',
    models: 'Models',
    allModels: 'All models',
    modelsPlaceholder: 'Restrict models, comma separated (empty = all)',
    modelsHint: 'Available: {{models}}',
  },
  providers: {
    title: 'Providers & Models',
    noProviders: 'No providers configured',
    noModels: 'No models found. Click refresh to discover models.',
    models: 'models',
    configureKey: 'API Key',
    refreshModels: 'Refresh',
    refreshSuccess: 'Models refreshed',
    apiKeyDialog: {
      title: 'Configure API Key',
      current: 'Current key',
      placeholder: 'Enter new key to update',
      saved: 'API key saved',
    },
    modelEdit: {
      title: 'Edit Model',
      enable: 'Enable',
      contextLength: 'Context Length (tokens)',
      features: 'Capabilities',
      thinking: 'Deep Thinking',
      functionCalling: 'Tool Calling',
      vision: 'Vision',
      audio: 'Audio',
      imageGeneration: 'Image Generation',
      videoGeneration: 'Video Generation',
      saved: 'Model saved',
    },
    modelTable: {
      name: 'Model',
      features: 'Capabilities',
      enable: 'Status',
    },
  },
} as const
