export default {
  about: {
    title: 'About',
    name: 'Application',
    version: 'Version',
    author: 'Author',
    description: 'An AI-powered code editor inspired by VS Code, with built-in agent panel for intelligent code editing assistance.',
    repo: 'Repository',
  },
  toolbar: {
    showSidebar: 'Show Sidebar',
    hideSidebar: 'Hide Sidebar',
    file: 'File',
    edit: 'Edit',
    newFile: 'New File',
    newFileShort: 'Ctrl+N',
    newFolder: 'New Folder',
    openFolder: 'Open Folder',
    openFile: 'Open File',
    browseServer: 'Browse Server',
    save: 'Save',
    saveShort: 'Ctrl+S',
    cut: 'Cut',
    cutShort: 'Ctrl+X',
    copy: 'Copy',
    copyShort: 'Ctrl+C',
    paste: 'Paste',
    pasteShort: 'Ctrl+V',
    undo: 'Undo',
    undoShort: 'Ctrl+Z',
    redo: 'Redo',
    redoShort: 'Ctrl+Y',
    find: 'Find',
    findShort: 'Ctrl+F',
    replace: 'Replace',
    replaceShort: 'Ctrl+H',
    help: 'Help',
    appName: 'VibeEditor',
  },
  rightToolbar: {
    agent: 'AI Agent',
    mcp: 'MCP Servers',
  },
  activityBar: {
    explorer: 'Explorer (Ctrl+Shift+E)',
    search: 'Search (Ctrl+Shift+F)',
    sourceControl: 'Source Control (Ctrl+Shift+G)',
    debug: 'Run and Debug (Ctrl+Shift+D)',
    extensions: 'Extensions (Ctrl+Shift+X)',
    manage: 'Manage (Ctrl+,)',
  },
  sidebar: {
    noContent: 'No content',
    empty: 'Empty',
    explorer: 'EXPLORER',
    search: 'SEARCH',
    language: 'LANGUAGE',
    appearance: 'APPEARANCE',
    comingSoon: 'COMING SOON',
    manage: 'MANAGE',
  },
  settings: {
    language: 'Language',
    theme: 'Theme',
  },
  placeholder: {
    title: 'VibeEditor',
    hint: 'Open a folder or file to get started',
    openFolder: 'Open Folder',
    openFile: 'Open File',
  },
  openDialog: {
    selectFolder: 'Select Folder',
    selectFile: 'Select File',
    loading: 'Loading...',
    noDirectories: 'No subdirectories',
    empty: 'Empty',
    selected: 'Selected',
    selectedFile: 'Selected file',
    cancel: 'Cancel',
    open: 'Open',
    thisComputer: 'This PC',
    newFolder: 'New Folder',
    goParent: 'Parent Dir',
    folderName: 'Folder name',
    newFolderTitle: 'New Folder',
    create: 'Create',
    newFolderError: 'Failed to create folder',
    invalidFolderName: 'Folder name contains invalid characters',
    emptyFolderName: 'Folder name cannot be empty',
  },
  workspaceDialog: {
    title: 'Open Workspace',
    pathLabel: 'Path',
    newWindow: 'Open in New Window',
    newTab: 'Open in New Tab',
    currentWindow: 'Open in Current Window',
    currentTab: 'Open in Current Tab',
    cancel: 'Cancel',
  },
  dragOverlay: {
    title: 'Drop folder to open',
    subtitle: 'Release anywhere in VibeEditor',
  },
  undoNotification: {
    deleted: 'Deleted',
    undo: 'Undo',
  },
  statusBar: {
    ln: 'Ln',
    col: 'Col',
  },
  fileTree: {
    noFiles: 'No files open',
    loading: 'Loading...',
    deleteFile: 'Delete file',
    renamePrompt: 'Rename',
    newFilePrompt: 'New file name',
    newFolderPrompt: 'New folder name',
  },
  contextMenu: {
    open: 'Open',
    newFile: 'New File',
    newFolder: 'New Folder',
    cut: 'Cut',
    copy: 'Copy',
    copyRelativePath: 'Copy Relative Path',
    copyAbsolutePath: 'Copy Absolute Path',
    paste: 'Paste',
    rename: 'Rename',
    delete: 'Delete',
    refresh: 'Refresh',
  },
  saveDialog: {
    title: 'Save File As',
    save: 'Save',
    cancel: 'Cancel',
    noDirectories: 'No directories',
    filenamePlaceholder: 'filename.ext',
    goUp: '..',
  },
  searchPanel: {
    placeholder: 'Search files...',
    searching: 'Searching...',
    noResults: 'No results found',
    result: 'result',
    results: 'results',
    file: 'file',
    files: 'files',
    more: ' more',
  },
  agent: {
    guideTitle: 'No AI model service yet',
    guideDesc1: 'An AI model is needed to provide code editing suggestions.',
    guideDesc2: 'Supports DeepSeek, OpenAI and other compatible API services.',
    addProvider: 'Add Model Service',
    emptyChat: 'Ask the agent to help with editing',
    reasoning: 'Reasoning',
    response: 'Response',
    filesModified: ' files modified: ',
    undo: 'Undo',
    thinking: 'Thinking...',
    askAgent: 'Ask the agent...',
    send: 'Send',
    stop: 'Stop',
    providerSettings: 'Provider Settings',
    newSession: 'New Session',
    defaultSessionName: 'New Session',
    noSessionPrompt: 'Click + to start a new session',
    noWorkspaceTitle: 'No Workspace Open',
    noWorkspaceDesc: 'Open a folder to start chatting with the AI agent and edit files.',
  },
  settingsDialog: {
    title: 'LLM Provider Settings',
    noProvider: 'No LLM provider added yet',
    noProviderDesc: 'Add an AI provider to use smart code editing features',
    addDeepSeek: 'Add DeepSeek (Recommended)',
    chooseOther: 'Choose other provider',
    name: 'Name',
    namePlaceholder: 'e.g.: My DeepSeek',
    apiKey: 'API Key',
    apiKeyPlaceholder: 'sk-...',
    apiUrl: 'API URL',
    modifyApiUrl: 'Modify API URL',
    apiUrlPlaceholder: 'https://api.openai.com/v1',
    model: 'Model',
    fetchingModels: 'Fetching model list...',
    autoFetch: 'Auto-fetch after entering API Key',
    clickFetch: 'Click to fetch model list',
    save: 'Save',
    cancel: 'Cancel',
    selectProvider: 'Select provider type',
    justApiKey: 'Only need API Key',
    custom: 'Custom',
    customHint: 'OpenAI compatible API format',
    addProvider: '+ Add Provider',
    noModels: 'This URL returned no models',
    fetchFailed: 'Failed to fetch model list',
  },
  providerSelect: {
    modelService: 'Model Service',
    notSelected: 'Not selected',
  },
  modeSelector: {
    build: 'build',
    plan: 'plan',
  },
  viewer: {
    zoomIn: 'Zoom In',
    zoomOut: 'Zoom Out',
    reset: 'Reset',
    fitToScreen: 'Fit to Screen',
    fitToWidth: 'Fit to width',
    prevSlide: 'Previous slide',
    nextSlide: 'Next slide',
    toggleThumbnails: 'Toggle thumbnails',
    slide: 'Slide ',
    unsupportedFormat: 'Unsupported format',
    unableToPreview: 'Unable to preview this file.',
    legacyDoc: ' is a legacy Word (.doc) file and cannot be previewed.',
    onlyDocx: 'Only .docx files are supported.',
    legacyXls: ' is a legacy Excel (.xls) file and cannot be previewed.',
    onlyXlsx: 'Only .xlsx files are supported.',
    legacyPpt: ' is a legacy PowerPoint (.ppt) file and cannot be previewed.',
    onlyPptx: 'Only .pptx files are supported.',
    failedToLoadPdf: 'Failed to load PDF',
    failedToLoadImage: 'Failed to load image',
    failedToRenderDoc: 'Failed to render document',
    failedToRenderPptx: 'Failed to render presentation',
    failedToDecode: 'Failed to decode file',
    px: ' px',
  },
  fs: {
    localFolder: 'Local Folder',
    serverFiles: 'Server Files',
    dropFolder: 'Drop a folder to open it.',
    browserUnsupported: 'This browser cannot open dropped folders. Use Open Folder instead.',
    enterFilename: 'Enter filename:',
    folderName: 'Folder name:',
    saveDocument: 'Cannot save document previews',
    dropNotSupported: 'Drag & drop is not supported in server mode. Use "Open File" or "Open Folder" instead.',
    singleFileWorkspaceFailed: 'Failed to create single-file workspace',
  },
  errors: {
    fileNotFound: 'File not found:',
    dirNotFound: 'Directory not found:',
    invalidPath: 'Invalid path:',
    pathNotFound: 'Path not found:',
    sourceNotFound: 'Source not found:',
    invalidTarget: 'Invalid target:',
    apiError: 'Agent API error',
    streamNotAvailable: 'Stream not available',
    llmApiError: 'LLM API error',
    renameError: 'Invalid target:',
  },
  agentTool: {
    readError: 'Error reading',
    emptyDir: '(empty)',
    complete: 'complete',
    noMatches: 'No matches found for',
    searchResults: 'Search results for',
  },
  providerPreset: {
    deepseek: 'DeepSeek',
    openai: 'OpenAI',
    siliconflow: 'SiliconFlow',
    fetchFailed: 'Cannot fetch model list from this URL',
  },
  theme: {
    label: 'Theme',
    dark: 'Dark',
    light: 'Light Modern',
    blue: 'Tomorrow Night Blue',
  },
  mcp: {
    title: 'MCP SERVERS',
    placeholder: 'MCP Server management and configuration will appear here.',
    addServer: 'Add MCP Server',
    editServer: 'Edit MCP Server',
    noServers: 'No MCP servers configured',
    noServersDesc: 'Add MCP servers to extend the agent\'s capabilities with external tools.',
    testing: 'Testing connection...',
    testSuccess: 'Connected, {n} tools found',
    testFailed: 'Connection failed',
    save: 'Save',
    cancel: 'Cancel',
    delete: 'Delete',
    deleteConfirm: 'Remove this MCP server?',
    name: 'Name',
    description: 'Description (optional)',
    type: 'Type',
    command: 'Command',
    args: 'Arguments (optional, comma separated)',
    env: 'Environment Variables (optional, KEY=VALUE per line)',
    cwd: 'Working Directory (optional)',
    url: 'URL',
    headers: 'Headers (optional, KEY=VALUE per line)',
    sessionId: 'Session ID (optional)',
    tools: '{n} tools | {n} tool',
    enabled: 'Enabled',
    disabled: 'Disabled',
    edit: 'Edit',
    testAndSave: 'Test & Save',
  },
};
