export default {
  translation: {

    common: {
      back: 'Back',
      operationFailed: 'Operation failed',
      noResults: 'No results.',
      selectPlaceholder: 'select value',
      selectAll: 'Select All',
      delete: 'Delete',
      deleteModalTitle: 'Are you sure to delete this item?',
      ok: 'Yes',
      cancel: 'No',
      no: 'No',
      total: 'Total',
      rename: 'Rename',
      name: 'Name',
      save: 'Save',
      namePlaceholder: 'Please input name',
      next: 'Next',
      create: 'Create',
      edit: 'Edit',
      update: 'Update',
      configure: 'Configure',
      upload: 'Upload',
      english: 'English',
      portugueseBr: 'Portuguese (Brazil)',
      chinese: 'Simplified Chinese',
      traditionalChinese: 'Traditional Chinese',
      language: 'Language',
      languageMessage: 'Please input your language!',
      loading: 'Loading...',
      close: 'Close',
      languagePlaceholder: 'select your language',
      copy: 'Copy',
      copied: 'Copied',
      comingSoon: 'Coming soon',
      download: 'Download',
      preview: 'Preview',
      move: 'Move',
      warn: 'Warn',
      action: 'Action',
      s: 'S',
      pleaseSelect: 'Please select',
      pleaseInput: 'Please input',
      submit: 'Submit',
      clear: 'Clear',
      embedIntoSite: 'Embed into webpage',
      previousPage: 'Previous',
      nextPage: 'Next',
      add: 'Add',
      remove: 'Remove',
      search: 'Search',
      noDataFound: 'No data found.',
      noData: 'No data',
      promptPlaceholder: `Please input or use / to quickly insert variables.`,
      all: 'All',
      refresh: 'Refresh',
      submitting: 'Submitting...',
      description: 'Description',
      confirm: 'Confirm',
      enabled: 'Enabled',
      clearFilter: 'Clear Filter',
      confirmFilter: 'Confirm Filter',
      private: 'Private',
      moreActions: 'More Actions',
      disable: 'Disable',
      enable: 'Enable',
      onlyMe: 'Only Me',
      team: 'Team',
      public: 'Public',
      unknown: 'Unknown',
      noDescription: 'No description',
      viewAll: 'View All',
      viewDetails: 'View Details',
      mcp: {
        namePlaceholder: 'My MCP Server',
        nameRequired:
          'It must be 1–64 characters long and can only contain letters, numbers, hyphens, and underscores.',
        urlPlaceholder: 'https://api.example.com/v1/mcp',
        tokenPlaceholder: 'e.g. eyJhbGciOiJIUzI1Ni...',
      },
    },

    knowledgeSettings: {
      submitData: 'Submit data:',
      basicInfoUpdateSuccess: 'Basic information updated successfully',
      parseConfigUpdateSuccess: 'Parse configuration updated successfully',
      updateFailed: '{{type}} update failed',
      basicInfo: 'Basic Information',
      parseConfig: 'Parse Configuration',
      knowledgeBase: 'Knowledge Base',
      knowledgeBaseDetail: 'Knowledge Base Detail',
      settings: 'Settings',
      overview: 'Overview',
      fileLogs: 'File Logs',
      knowledgeBaseSettings: 'Knowledge Base Settings',
      settingsTabs: 'Settings Tabs',
      backToKnowledgeDetail: 'Back to Knowledge Base Detail',
    },

    form: {
      fieldRequired: '{{field}} is required',
      minValueExceeded: '{{field}} cannot be less than {{min}}',
      maxValueExceeded: '{{field}} cannot be greater than {{max}}',
      configurationError: 'Form configuration error',
      chipListPlaceholder: 'Type and press Enter to add',
      maxChipsExceeded: '{{field}} can have at most {{max}} tags',
      noChips: 'No tags',
      formConfigError: 'Form configuration error',
    },

    knowledge: {
      basicInfo: 'Basic Information',
      uploadAvatar: 'Upload Avatar',
      nameRequired: 'Knowledge base name cannot be empty',
      knowledgeBaseName: 'Knowledge Base Name',
      descriptionPlaceholder: 'Please enter knowledge base description...',
      permissionSettings: 'Permission Settings',
      onlyMe: 'Only Me',
      teamMembers: 'Team Members',
      retrievalTest: 'Retrieval Test',
      configSettings: 'Configuration Settings',
      knowledgeBaseActions: 'Knowledge Base Actions',
      filter: 'Filter',
      runStatus: {
        unstart: 'Not Started',
        running: 'Running',
        cancel: 'Cancelled',
        done: 'Done',
        fail: 'Failed',
        unknown: 'Unknown',
        parsing: 'Parsing'
      },
      runStatusFilter: 'Run Status',
      fileName: 'File Name',
      actions: 'Actions',
      fileType: 'File Type',
      fileTypeFilter: 'File Type',
      searchFiles: 'Search Files',
      uploadFile: 'Upload File',
      fileCount: 'File Count',
      chunkCount: 'Chunk Count',
      tokenCount: 'Token Count',
      size: 'Size',
      createTime: 'Create Time',
      updateTime: 'Update Time',
      language: 'Language',
      permission: 'Permission',
      embeddingModel: 'Embedding Model',
      parser: 'Parser',
      type: 'Type',
      status: 'Status',
      parseStatus: 'Parse Status',
      uploadTime: 'Upload Time',
      documentCount: 'Document Count',
      lastUpdate: 'Last Update',
      creator: 'Creator',
      testPrompt: 'Test Prompt',
      testResultOverview: 'Test Result Overview',
      matchedChunks: 'Matched Chunks',
      relatedDocuments: 'Related Documents',
      returnedChunks: 'Returned Chunks',
      documentFilter: 'Document Filter',
      selectDocuments: 'Select Documents',
      noContent: 'No content',
      keywords: 'Keywords',
      relatedDocumentStats: 'Related Document Statistics',
      selectParserMethod: 'Select Parser Method',
      unknown: 'Unknown',
      description: 'Description',
      pageRank: 'Page Rank',
      edge: 'Edge',
      missingIds: 'missing IDs',
      nodeNotExists: 'node not exists',
      noGraphData: 'No graph data available',
      legend: 'Legend',
      graphStats: 'Graph Statistics',
      reparse: 'Reparse',
      cancelRun: 'Cancel Run',
      renameFile: 'Rename File',
      viewDetails: 'View Details',
      viewFileDetails: 'View File Details',
      matchedChunksCount: 'Matched Chunks Count',
      matchedChunksTitle: 'Matched Chunks Title',
      totalMatchedChunks: 'Total Matched Chunks',
      similarity: 'Similarity',
      vectorSimilarity: 'Vector Similarity',
      termSimilarity: 'Term Similarity',
      nodeCount: 'Node Count',
      edgeCount: 'Edge Count',
      noMatchingKnowledgeBases: 'No matching knowledge bases',
      noKnowledgeBases: 'No knowledge bases',
      tryAdjustingFilters: 'Try adjusting your filters',
      createFirstKnowledgeBase: 'Create your first knowledge base',
      createKnowledgeBase: 'Create Knowledge Base',
      noDescription: 'No description',
      config: {
        basicConfig: 'Basic Configuration',
        pageRankAndAutoExtract: 'PageRank and Auto Extract',
        raptorStrategy: 'RAPTOR Strategy',
        knowledgeGraph: 'Knowledge Graph',
        chunkMethod: 'Chunk Method',
        selectChunkMethod: 'Select chunk method',
        pageRank: 'Page Rank',
        enterPageRank: 'Enter page rank',
        autoKeywords: 'Auto Keywords Extraction',
        enterKeywordCount: 'Enter keyword count',
        autoQuestions: 'Auto Questions Extraction',
        enterQuestionCount: 'Enter question count',
        pdfParser: 'PDF Parser',
        plainText: 'Naive',
        minerU: 'MinerU',
        experimental: 'Experimental',
        tocEnhance: 'TOC Enhance',
        delimiter: 'Delimiter',
        enterDelimiter: 'Enter delimiter',
        embeddingModel: 'Embedding Model',
        pageRankConfigTodo: 'PageRank Configuration - To be implemented',
        entityTypeConfigTodo: 'Entity Type Configuration - To be implemented',
        maxTokenConfigTodo: 'Max Token Configuration (Max: 16384) - To be implemented',
        delimiterConfigTodo: 'Delimiter Configuration - To be implemented',
        chunkTokenSize: 'Suggested chunk token size',
        htmlForExcel: 'Table to HTML',
        tags: 'Tags',
        useRaptorStrategy: 'Use Retrieval-Augmented RAPTOR Strategy',
        prompt: 'Prompt',
        raptorPromptDefault: 'Please summarize the following paragraphs. Be careful with numbers and do not make up information. Paragraphs:\n{cluster_content}\nThe above is the content you need to summarize.',
        maxTokens: 'Max tokens',
        threshold: 'Threshold',
        maxClusterCount: 'Max cluster count',
        randomSeed: 'Random seed',
        extractKnowledgeGraph: 'Extract knowledge graph',
        entityTypes: '*Entity types',
        method: 'Method',
        entityNormalization: 'Entity normalization',
        communityReportGeneration: 'Community report generation',
        parser: {
          general: 'General Parser',
          qa: 'Q&A Parser',
          resume: 'Resume Parser',
          manual: 'Manual Parser',
          table: 'Table Parser',
          paper: 'Paper Parser',
          book: 'Book Parser',
          laws: 'Laws Parser',
          presentation: 'Presentation Parser',
          one: 'One Parser',
          tag: 'Tag Parser'
        }
      }
    },

    login: {
      login: 'Sign in',
      signUp: 'Sign up',
      loginDescription: 'We’re so excited to see you again!',
      registerDescription: 'Glad to have you on board!',
      emailLabel: 'Email',
      emailPlaceholder: 'Please input email',
      passwordLabel: 'Password',
      passwordPlaceholder: 'Please input password',
      rememberMe: 'Remember me',
      signInTip: 'Don’t have an account?',
      signUpTip: 'Already have an account?',
      nicknameLabel: 'Nickname',
      nicknamePlaceholder: 'Please input nickname',
      register: 'Create an account',
      continue: 'Continue',
      title: 'Start building your smart assistants.',
      description:
        'Sign up for free to explore top RAG technology. Create knowledge bases and AIs to empower your business.',
      review: 'from 500+ reviews',
    },
    header: {
      knowledgeBase: 'Knowledge Bases',
      chat: 'Chat',
      register: 'Register',
      signin: 'Sign in',
      home: 'Home',
      setting: 'Settings',
      logout: 'Log out',
      fileManager: 'File Management',
      agents: 'Agents',
      models: 'Models',
      mcp: 'MCP',
      search: 'Search',
      welcome: 'Welcome to',
    },
    knowledgeHooks: {
      fetchKnowledgeListFailed: 'Failed to fetch knowledge base list',
      fetchKnowledgeDetailFailed: 'Failed to fetch knowledge base details',
      fetchKnowledgeGraphFailed: 'Failed to fetch knowledge graph',
      createKnowledgeFailed: 'Failed to create knowledge base',
      updateKnowledgeBasicInfoFailed: 'Failed to update knowledge base basic information',
      updateKnowledgeModelConfigFailed: 'Failed to update knowledge base model configuration',
      deleteKnowledgeFailed: 'Failed to delete knowledge base',
      batchDeleteKnowledgeFailed: 'Failed to batch delete knowledge bases',
      batchDeleteFailedKnowledgeBases: 'Failed to delete knowledge bases',
    },
    knowledgeTesting: {
      retrievalTestComplete: 'Retrieval test completed',
      retrievalTestFailed: 'Retrieval test failed',
      paginationRequestFailed: 'Pagination request failed',
      knowledgeBase: 'Knowledge Base',
      knowledgeBaseDetail: 'Knowledge Base Detail',
      testing: 'Testing',
      knowledgeBaseTesting: 'Knowledge Base Testing',
      testConfiguration: 'Test Configuration',
      testQuestion: 'Test Question',
      pleaseEnterTestQuestion: 'Please enter test question',
      testQuestionPlaceholder: 'Please enter the question you want to test...',
      similarityThreshold: 'Similarity Threshold',
      vectorSimilarityWeight: 'Vector Similarity Weight',
      rerankModel: 'Rerank Model (Optional)',
      noRerank: 'No reranking',
      pleaseEnterResultCount: 'Please enter result count',
      minValue1: 'Minimum value is 1',
      maxValue2048: 'Maximum value is 2048',
      useWithRerankModel: 'Use with Rerank model',
      crossLanguageSearch: 'Cross-language Search',
      useKnowledgeGraph: 'Use Knowledge Graph',
      startTest: 'Start Test',
      languages: {
        english: 'English',
        chinese: 'Chinese',
        japanese: 'Japanese',
        korean: 'Korean',
        french: 'French',
        german: 'German',
        spanish: 'Spanish',
        italian: 'Italian',
        portuguese: 'Portuguese',
        russian: 'Russian',
        arabic: 'Arabic',
        hindi: 'Hindi',
        thai: 'Thai',
        vietnamese: 'Vietnamese',
        indonesian: 'Indonesian',
        malay: 'Malay',
        filipino: 'Filipino',
        turkish: 'Turkish',
        polish: 'Polish',
        dutch: 'Dutch',
        swedish: 'Swedish',
        danish: 'Danish',
        norwegian: 'Norwegian',
        finnish: 'Finnish',
        hebrew: 'Hebrew',
        czech: 'Czech',
        slovak: 'Slovak',
        hungarian: 'Hungarian',
        romanian: 'Romanian',
        bulgarian: 'Bulgarian',
        croatian: 'Croatian',
        serbian: 'Serbian',
        slovenian: 'Slovenian',
        estonian: 'Estonian',
        latvian: 'Latvian',
        lithuanian: 'Lithuanian',
        maltese: 'Maltese',
        irish: 'Irish',
        welsh: 'Welsh',
        basque: 'Basque',
        catalan: 'Catalan',
        galician: 'Galician',
        icelandic: 'Icelandic',
        macedonian: 'Macedonian',
        albanian: 'Albanian',
        belarusian: 'Belarusian',
        ukrainian: 'Ukrainian',
        kazakh: 'Kazakh',
        kyrgyz: 'Kyrgyz',
        uzbek: 'Uzbek',
        tajik: 'Tajik',
        mongolian: 'Mongolian',
        georgian: 'Georgian',
        armenian: 'Armenian',
        azerbaijani: 'Azerbaijani',
        persian: 'Persian',
        urdu: 'Urdu',
        bengali: 'Bengali',
        tamil: 'Tamil',
        telugu: 'Telugu',
        malayalam: 'Malayalam',
        kannada: 'Kannada',
        gujarati: 'Gujarati',
        punjabi: 'Punjabi',
        odia: 'Odia',
        assamese: 'Assamese',
        nepali: 'Nepali',
        sinhala: 'Sinhala',
        burmese: 'Burmese',
        khmer: 'Khmer',
        lao: 'Lao',
        swahili: 'Swahili',
        amharic: 'Amharic',
        yoruba: 'Yoruba',
        igbo: 'Igbo',
        hausa: 'Hausa',
        zulu: 'Zulu',
        xhosa: 'Xhosa',
        afrikaans: 'Afrikaans',
      }
    },
    knowledgeList: {
      welcome: 'Welcome back',
      description: 'Which knowledge bases will you use today?',
      createKnowledgeBase: 'Create Knowledge Base',
      name: 'Name',
      namePlaceholder: 'Please input name!',
      doc: 'Docs',
      searchKnowledgePlaceholder: 'Search',
      noMoreData: `That's all. Nothing more.`,
      confirmDeleteKnowledge: 'Are you sure to delete knowledge base',
      teamFilter: 'Team Filter',
      loadError: 'Failed to load knowledge base list',
      paginationInfo: 'Total {{total}} knowledge bases, page {{current}} of {{totalPages}}',
    },
    knowledgeDetails: {
      fileSize: 'File Size',
      fileType: 'File Type',
      uploadedBy: 'Uploaded by',
      notGenerated: 'Not generated',
      generatedOn: 'Generated on',
      subbarFiles: 'Files',
      generateKnowledgeGraph:
        'This will extract entities and relationships from all your documents in this dataset. The process may take a while to complete.',
      generateRaptor:
        'This will extract entities and relationships from all your documents in this dataset. The process may take a while to complete.',
      generate: 'Generate',
      raptor: 'Raptor',
      processingType: 'Processing Type',
      dataPipeline: 'Data Pipeline',
      ingestionPipeline: 'Ingestion Pipeline',
      operations: 'Operations',
      taskId: 'Task ID',
      duration: 'Duration',
      details: 'Details',
      status: 'Status',
      task: 'Task',
      startDate: 'Start Date',
      source: 'Source',
      fileName: 'File Name',
      datasetLogs: 'Dataset Logs',
      fileLogs: 'File Logs',
      overview: 'Overview',
      success: 'Success',
      failed: 'Failed',
      completed: 'Completed',
      datasetLog: 'Dataset Log',
      created: 'Created',
      learnMore: 'Learn More',
      general: 'General',
      chunkMethodTab: 'Chunk Method',
      testResults: 'Test Results',
      testSetting: 'Test Setting',
      retrievalTesting: 'Retrieval Testing',
      retrievalTestingDescription:
        'Conduct a retrieval test to check if RAGFlow can recover the intended content for the LLM.',
      Parse: 'Parse',
      file: 'File',
      dataset: 'Dataset',
      testing: 'Retrieval testing',
      files: 'files',
      configuration: 'Configuration',
      knowledgeGraph: 'Knowledge Graph',
      name: 'Name',
      namePlaceholder: 'Please input name!',
      // 新增的字段
      deleteFileFailed: 'Delete file failed',
      uploadFiles: 'Upload files:',
      uploadFileFailed: 'Upload file failed',
      reparseFailed: 'Reparse failed',
      renameFailed: 'Rename failed',
      changeStatusFailed: 'Change status failed',
      viewDetails: 'View Details',
      viewProcessDetails: 'View Process Details',
      knowledgeBase: 'Knowledge Base',
      knowledgeBaseDetail: 'Knowledge Base Detail',
      documents: 'Documents',
      graph: 'Graph',
      deleteFiles: 'Delete files:',
      newSelectionModel: 'New selection model:',
      uploadFilesToKnowledge: 'Upload files to knowledge base',
      confirmDelete: 'Confirm Delete',
      confirmDeleteMessage: 'Are you sure you want to delete the selected {{count}} files? This action cannot be undone.',
      documentProcessDetails: 'Document Process Details',
      basicInfo: 'Basic Information',
      parserId: 'Parser ID',
      notSpecified: 'Not specified',
      processStatus: 'Process Status',
      startTime: 'Start Time',
      notStarted: 'Not started',
      processingTime: 'Processing Time',
      notCompleted: 'Not completed',
      progress: 'Progress',
      processDetails: 'Process Details',
      seconds: 'seconds',
      doc: 'Docs',
      datasetDescription:
        'Please wait for your files to finish parsing before starting an AI-powered chat.',
      addFile: 'Add file',
      searchFiles: 'Search your files',
      localFiles: 'Local files',
      emptyFiles: 'Create empty file',
      webCrawl: 'Web Crawl',
      chunkNumber: 'Chunk Number',
      uploadDate: 'Upload Date',
      chunkMethod: 'Chunking method',
      enabled: 'Enable',
      disabled: 'Disable',
      action: 'Action',
      parsingStatus: 'Parsing Status',
      parsingStatusTip:
        'Document parsing time varies based on several factors. Enabling features like Knowledge Graph, RAPTOR, Auto Question Extraction, or Auto Keyword Extraction will significantly increase processing time. If the progress bar stalls, please consult these two FAQs: https://ragflow.io/docs/dev/faq#why-does-my-document-parsing-stall-at-under-one-percent.',
      processBeginAt: 'Begin at',
      processDuration: 'Duration',
      progressMsg: 'Progress',
      noTestResultsForRuned:
        'No relevant results found. Try adjusting your query or parameters.',
      noTestResultsForNotRuned:
        'No test has been run yet. Results will appear here.',
      testingDescription:
        'Conduct a retrieval test to check if RAGFlow can recover the intended content for the LLM. If you have adjusted the default settings, such as keyword similarity weight or similarity threshold, to achieve the optimal results, be aware that these changes will not be automatically saved. You must apply them to your chat assistant settings or the Retrieval agent component settings.',
      similarityThreshold: 'Similarity threshold',
      similarityThresholdTip:
        'RAGFlow employs either a combination of weighted keyword similarity and weighted vector cosine similarity, or a combination of weighted keyword similarity and weighted reranking score during retrieval. This parameter sets the threshold for similarities between the user query and chunks. Any chunk with a similarity score below this threshold will be excluded from the results. By default, the threshold is set to 0.2. This means that only chunks with hybrid similarity score of 20 or higher will be retrieved.',
      vectorSimilarityWeight: 'Vector similarity weight',
      vectorSimilarityWeightTip:
        'This sets the weight of keyword similarity in the combined similarity score, either used with vector cosine similarity or with reranking score. The total of the two weights must equal 1.0.',
      keywordSimilarityWeight: 'Keyword similarity weight',
      keywordSimilarityWeightTip:
        'This sets the weight of keyword similarity in the combined similarity score, either used with vector cosine similarity or with reranking score. The total of the two weights must equal 1.0.',
      testText: 'Test text',
      testTextPlaceholder: 'Input your question here!',
      testingLabel: 'Testing',
      similarity: 'Hybrid similarity',
      termSimilarity: 'Term similarity',
      vectorSimilarity: 'Vector similarity',
      hits: 'Hits',
      view: 'View',
      filesSelected: 'Files selected',
      upload: 'Upload',
      run: 'Parse',
      runningStatus0: 'PENDING',
      runningStatus1: 'PARSING',
      runningStatus2: 'CANCELED',
      runningStatus3: 'SUCCESS',
      runningStatus4: 'FAIL',
      pageRanges: 'Page Ranges',
      pageRangesTip:
        'Range of pages to be parsed; pages outside this range will not be processed.',
      fromPlaceholder: 'from',
      fromMessage: 'Missing start page number',
      toPlaceholder: 'to',
      toMessage: 'Missing end page number (excluded)',
      layoutRecognize: 'PDF parser',
      layoutRecognizeTip:
        'Use a visual model for PDF layout analysis to effectively locate document titles, text blocks, images, and tables. If the naive option is chosen, only the plain text in the PDF will be retrieved. Please note that this option currently works ONLY for PDF documents.',
      taskPageSize: 'Task page size',
      taskPageSizeMessage: 'Please input your task page size!',
      taskPageSizeTip: `During layout recognition, a PDF file is split into chunks and processed in parallel to increase processing speed. This parameter sets the size of each chunk. A larger chunk size reduces the likelihood of splitting continuous text between pages.`,
      addPage: 'Add page',
      greaterThan: 'The current value must be greater than to!',
      greaterThanPrevious:
        'The current value must be greater than the previous to!',
      selectFiles: 'Select files',
      changeSpecificCategory: 'Change specific category',
      uploadTitle: 'Drag and drop your file here to upload',
      uploadDescription:
        'Supports single or batch file upload. For a locally deployed RAGFlow: the total file size limit per upload is 1GB, with a batch upload limit of 32 files. There is no cap on the total number of files per account. For demo.ragflow.io, the total file size limit per upload is 10MB, with each file not exceeding 10MB and a maximum of 128 files per account.',
      chunk: 'Chunk',
      bulk: 'Bulk',
      cancel: 'Cancel',
      close: 'Close',
      rerankModel: 'Rerank model',
      rerankPlaceholder: 'Please select',
      rerankTip: `Optional. If left empty, RAGFlow will use a combination of weighted keyword similarity and weighted vector cosine similarity; if a rerank model is selected, a weighted reranking score will replace the weighted vector cosine similarity. Please be aware that using a rerank model will significantly increase the system's response time. If you wish to use a rerank model, ensure you use a SaaS reranker; if you prefer a locally deployed rerank model, ensure you start RAGFlow with docker-compose-gpu.yml.`,
      topK: 'Top-K',
      topKTip: `Used together with the Rerank model, this setting defines the number of text chunks to be sent to the specified reranking model.`,
      delimiter: `Delimiter for text`,
      delimiterTip:
        'A delimiter or separator can consist of one or multiple special characters. If it is multiple characters, ensure they are enclosed in backticks( ``). For example, if you configure your delimiters like this: \\n`##`;, then your texts will be separated at line breaks, double hash symbols (##), and semicolons.',
      html4excel: 'Excel to HTML',
      html4excelTip: `Use with the General chunking method. When disabled, spreadsheets (XLSX or XLS(Excel 97-2003)) in the knowledge base will be parsed into key-value pairs. When enabled, they will be parsed into HTML tables, splitting every 12 rows if the original table has more than 12 rows. See https://ragflow.io/docs/dev/enable_excel2html for details.`,
      autoKeywords: 'Auto-keyword',
      autoKeywordsTip: `Automatically extract N keywords for each chunk to increase their ranking for queries containing those keywords. Be aware that extra tokens will be consumed by the chat model specified in 'System model settings'. You can check or update the added keywords for a chunk from the chunk list. For details, see https://ragflow.io/docs/dev/autokeyword_autoquestion.`,
      autoQuestions: 'Auto-question',
      autoQuestionsTip: `Automatically extract N questions for each chunk to increase their ranking for queries containing those questions. You can check or update the added questions for a chunk from the chunk list. This feature will not disrupt the chunking process if an error occurs, except that it may add an empty result to the original chunk. Be aware that extra tokens will be consumed by the LLM specified in 'System model settings'. For details, see https://ragflow.io/docs/dev/autokeyword_autoquestion.`,
      redo: 'Do you want to clear the existing {{chunkNum}} chunks?',
      setMetaData: 'Set Meta Data',
      pleaseInputJson: 'Please enter JSON',
      documentMetaTips: `<p>The meta data is in Json format(it's not searchable). It will be added into prompt for LLM if any chunks of this document are included in the prompt.</p>
<p>Examples:</p>
<b>The meta data is:</b><br>
<code>
  {
      "Author": "Alex Dowson",
      "Date": "2024-11-12"
  }
</code><br>
<b>The prompt will be:</b><br>
<p>Document: the_name_of_document</p>
<p>Author: Alex Dowson</p>
<p>Date: 2024-11-12</p>
<p>Relevant fragments as following:</p>
<ul>
<li>  Here is the chunk content....</li>
<li>  Here is the chunk content....</li>
</ul>
`,
      metaData: 'Meta data',
      deleteDocumentConfirmContent:
        'The document is associated with the knowledge graph. After deletion, the related node and relationship information will be deleted, but the graph will not be updated immediately. The update graph action is performed during the process of parsing the new document that carries the knowledge graph extraction task.',
      plainText: 'Naive',
      reRankModelWaring: 'Re-rank model is very time consuming.',
    },
    knowledgeConfiguration: {
      basicInfo: 'Basic Information',
      configSettings: 'Configuration Settings',
      createSuccess: 'Knowledge base created successfully, please configure parsing settings',
      configComplete: 'Knowledge base configuration completed',
      createFailed: 'Failed to create knowledge base',
      configFailed: 'Failed to configure knowledge base',
      skipConfigSuccess: 'Knowledge base created successfully, you can configure parsing parameters later in the settings page',
      createSuccessConfig: 'Knowledge base created successfully, now you can configure parsing settings',
      configLaterTip: 'You can configure these settings now, or modify them later in the knowledge base details page',
      skipConfig: 'Skip Configuration',
      creating: 'Creating...',
      configuring: 'Configuring...',
      createAndNext: 'Create and Next',
      completeCreate: 'Complete Creation',
      deleteGenerateModalContent: `
        <p>Deleting the generated <strong class='text-text-primary'>{{type}}</strong>  results 
        will remove all derived entities and relationships from this dataset. 
        Your original files will remain intact.<p>
        <br/>
        Do you want to continue?
      `,
      extractRaptor: 'Extract Raptor',
      extractKnowledgeGraph: 'Extract Knowledge Graph',
      filterPlaceholder: 'please input filter',
      fileFilterTip: '',
      fileFilter: 'File Filter',
      setDefaultTip: '',
      setDefault: 'Set as Default',
      eidtLinkDataPipeline: 'Edit Data Pipeline',
      linkPipelineSetTip: 'Manage data pipeline linkage with this dataset',
      default: 'Default',
      buildMode: 'Build Mode',
      dataPipeline: 'Data Pipeline',
      linkDataPipeline: 'Link Data Pipeline',
      enableAutoGenerate: 'Enable Auto Generate',
      teamPlaceholder: 'Please select a team.',
      dataFlowPlaceholder: 'Please select a pipeline.',
      buildItFromScratch: 'Build it from scratch',
      dataFlow: 'Pipeline',
      parseType: 'Ingestion pipeline',
      manualSetup: 'Manual Setup',
      builtIn: 'Built-in',
      titleDescription:
        'Update your knowledge base configuration here, particularly the chunking method.',
      name: 'Knowledge base name',
      photo: 'Knowledge base photo',
      photoTip: 'You can upload a file with 4 MB',
      description: 'Description',
      language: 'Document language',
      languageMessage: 'Please input your language!',
      languagePlaceholder: 'Please input your language!',
      permissions: 'Permissions',
      embeddingModel: 'Embedding model',
      chunkTokenNumber: 'Recommended chunk size',
      chunkTokenNumberMessage: 'Chunk token number for text is required',
      embeddingModelTip:
        'The default embedding model for the knowledge base. It cannot be changed once the knowledge base has chunks. To switch to a different default embedding model, you must delete all existing chunks in the knowledge base.',
      permissionsTip:
        "If it is set to 'Team', all your team members will be able to manage the knowledge base.",
      chunkTokenNumberTip:
        'It kind of sets the token threshold for a creating a chunk. A segment with fewer tokens than this threshold will be combined with the following segments until the token count exceeds the threshold, at which point a chunk is created. No new chunk is created unless a delimiter is encountered, even if the threshold is exceeded.',
      chunkMethod: 'Chunking method',
      chunkMethodTip: 'View the tips on the right.',
      upload: 'Upload',
      english: 'English',
      chinese: 'Chinese',
      portugueseBr: 'Portuguese (Brazil)',
      embeddingModelPlaceholder: 'Please select a embedding model.',
      chunkMethodPlaceholder: 'Please select a chunking method.',
      save: 'Save',
      me: 'Only me',
      team: 'Team',
      cancel: 'Cancel',
      methodTitle: 'Chunking method description',
      methodExamples: 'Examples',
      methodExamplesDescription:
        'The following screenshots are provided for clarification.',
      dialogueExamplesTitle: 'view',
      methodEmpty:
        'This will display a visual explanation of the knowledge base categories',
      book: `<p>Supported file formats are <b>DOCX</b>, <b>PDF</b>, <b>TXT</b>.</p><p>
      For each book in PDF, please set the <i>page ranges</i> to remove unwanted information and reduce analysis time.</p>`,
      laws: `<p>Supported file formats are <b>DOCX</b>, <b>PDF</b>, <b>TXT</b>.</p><p>
      Legal documents typically follow a rigorous writing format. We use text feature to identify split point.
      </p><p>
      The chunk has a granularity consistent with 'ARTICLE', ensuring all upper level text is included in the chunk.
      </p>`,
      manual: `<p>Only <b>PDF</b> is supported.</p><p>
      We assume that the manual has a hierarchical section structure, using the lowest section titles as basic unit for chunking documents. Therefore, figures and tables in the same section will not be separated, which may result in larger chunk sizes.
      </p>`,
      naive: `<p>Supported file formats are <b>MD, MDX, DOCX, XLSX, XLS (Excel 97-2003), PPT, PDF, TXT, JPEG, JPG, PNG, TIF, GIF, CSV, JSON, EML, HTML</b>.</p>
      <p>This method chunks files using a 'naive' method: </p>
      <p>
      <li>Use vision detection model to split the texts into smaller segments.</li>
      <li>Then, combine adjacent segments until the token count exceeds the threshold specified by 'Chunk token number for text', at which point a chunk is created.</li></p>`,
      paper: `<p>Only <b>PDF</b> file is supported.</p><p>
      Papers will be split by section, such as <i>abstract, 1.1, 1.2</i>. </p><p>
      This approach enables the LLM to summarize the paper more effectively and to provide more comprehensive, understandable responses.
      However, it also increases the context for AI conversations and adds to the computational cost for the LLM. So during a conversation, consider reducing the value of ‘<b>topN</b>’.</p>`,
      presentation: `<p>Supported file formats are <b>PDF</b>, <b>PPTX</b>.</p><p>
      Every page in the slides is treated as a chunk, with its thumbnail image stored.</p><p>
      <i>This chunking method is automatically applied to all uploaded PPT files, so you do not need to specify it manually.</i></p>`,
      qa: `
      <p>
      This chunking method supports <b>XLSX</b> and <b>CSV/TXT</b> file formats.
    </p>
    <li>
      If a file is in <b>XLSX</b> or <b>XLS (Excel 97-2003)</b> format, it should contain two columns without headers: one for questions and the other for answers, with the question column preceding the answer column. Multiple sheets are
      acceptable, provided the columns are properly structured.
    </li>
    <li>
      If a file is in <b>CSV/TXT</b> format, it must be UTF-8 encoded with TAB as the delimiter to separate questions and answers.
    </li>
    <p>
      <i>
        Lines of texts that fail to follow the above rules will be ignored, and
        each Q&A pair will be considered a distinct chunk.
      </i>
    </p>
      `,
      resume: `<p>Supported file formats are <b>DOCX</b>, <b>PDF</b>, <b>TXT</b>.
      </p><p>
      Résumés of various forms are parsed and organized into structured data to facilitate candidate search for recruiters.
      </p>
      `,
      table: `<p>Supported file formats are <b>XLSX</b> and <b>CSV/TXT</b>.</p><p>
      Here are some prerequisites and tips:
      <ul>
    <li>For CSV or TXT file, the delimiter between columns must be <em><b>TAB</b></em>.</li>
    <li>The first row must be column headers.</li>
    <li>Column headers must be meaningful terms to aid your LLM's understanding.
    It is good practice to juxtapose synonyms separated by a slash <i>'/'</i> and to enumerate values using brackets, for example: <i>'Gender/Sex (male, female)'</i>.<p>
    Here are some examples of headers:<ol>
        <li>supplier/vendor<b>'TAB'</b>Color (Yellow, Blue, Brown)<b>'TAB'</b>Sex/Gender (male, female)<b>'TAB'</b>size (M, L, XL, XXL)</li>
        </ol>
        </p>
    </li>
    <li>Every row in table will be treated as a chunk.</li>
    </ul>`,
      picture: `
    <p>Image files are supported, with video support coming soon.</p><p>
    This method employs an OCR model to extract texts from images.
    </p><p>
    If the text extracted by the OCR model is deemed insufficient, a specified visual LLM will be used to provide a description of the image.
    </p>`,
      one: `
    <p>Supported file formats are <b>DOCX, XLSX, XLS (Excel 97-2003), PDF, TXT</b>.
    </p><p>
    This method treats each document in its entirety as a chunk.
    </p><p>
    Applicable when you require the LLM to summarize the entire document, provided it can handle that amount of context length.
    </p>`,
      knowledgeGraph: `<p>Supported file formats are <b>DOCX, EXCEL, PPT, IMAGE, PDF, TXT, MD, JSON, EML</b>

<p>This approach chunks files using the 'naive'/'General' method. It splits a document into segments and then combines adjacent segments until the token count exceeds the threshold specified by 'Chunk token number for text', at which point a chunk is created.</p>
<p>The chunks are then fed to the LLM to extract entities and relationships for a knowledge graph and a mind map.</p>
<p>Ensure that you set the <b>Entity types</b>.</p>`,
      tag: `<p>A knowledge base using the 'Tag' chunking method functions as a tag set. Other knowledge bases use it to tag their chunks, and queries to these knowledge bases are also tagged using this tag set.</p>
<p>A tag set will <b>NOT</b> be directly involved in a Retrieval-Augmented Generation (RAG) process.</p>
<p>Each chunk in this knowledge base is an independent description-tag pair.</p>
<p>Supported file formats include <b>XLSX</b> and <b>CSV/TXT</b>:</p>
<p>If a file is in <b>XLSX</b> format, it should contain two columns without headers: one for tag descriptions and the other for tag names, with the Description column preceding the Tag column. Multiple sheets are acceptable, provided the columns are properly structured.</p>
<p>If a file is in <b>CSV/TXT</b> format, it must be UTF-8 encoded with TAB as the delimiter to separate descriptions and tags.</p>
<p>In a Tag column, <b>comma</b> is used to separate tags.</p>
<i>Lines of texts that fail to follow the above rules will be ignored.</i>
`,
      useRaptor: 'RAPTOR',
      useRaptorTip:
        'Enable RAPTOR for multi-hop question-answering tasks. See https://ragflow.io/docs/dev/enable_raptor for details.',
      prompt: 'Prompt',
      promptTip:
        'Use the system prompt to describe the task for the LLM, specify how it should respond, and outline other miscellaneous requirements. The system prompt is often used in conjunction with keys (variables), which serve as various data inputs for the LLM. Use a forward slash `/` or the (x) button to show the keys to use.',
      promptMessage: 'Prompt is required',
      promptText: `Please summarize the following paragraphs. Be careful with the numbers, do not make things up. Paragraphs as following:
      {cluster_content}
The above is the content you need to summarize.`,
      maxToken: 'Max token',
      maxTokenTip: 'The maximum number of tokens per generated summary chunk.',
      maxTokenMessage: 'Max token is required',
      threshold: 'Threshold',
      thresholdTip:
        'In RAPTOR, chunks are clustered by their semantic similarity. The Threshold parameter sets the minimum similarity required for chunks to be grouped together. A higher Threshold means fewer chunks in each cluster, while a lower one means more.',
      thresholdMessage: 'Threshold is required',
      maxCluster: 'Max cluster',
      maxClusterTip: 'The maximum number of clusters to create.',
      maxClusterMessage: 'Max cluster is required',
      randomSeed: 'Random seed',
      randomSeedMessage: 'Random seed is required',
      entityTypes: 'Entity types',
      vietnamese: 'Vietnamese',
      pageRank: 'Page rank',
      pageRankTip: `You can assign a higher PageRank score to specific knowledge bases during retrieval. The corresponding score is added to the hybrid similarity scores of retrieved chunks from these knowledge bases, increasing their ranking. See https://ragflow.io/docs/dev/set_page_rank for details.`,
      tagName: 'Tag',
      frequency: 'Frequency',
      searchTags: 'Search tags',
      tagCloud: 'Cloud',
      tagTable: 'Table',
      tagSet: 'Tag sets',
      tagSetTip: `
     <p> Select one or multiple tag knowledge bases to auto-tag chunks in your knowledge base. See https://ragflow.io/docs/dev/use_tag_sets for details.</p>
<p>The user query will also be auto-tagged.</p>
This auto-tagging feature enhances retrieval by adding another layer of domain-specific knowledge to the existing dataset.
<p>Difference between auto-tag and auto-keyword:</p>
<ul>
  <li>A tag knowledge base is a user-defined close set, whereas keywords extracted by the LLM can be regarded as an open set.</li>
  <li>You must upload tag sets in specified formats before running the auto-tag feature.</li>
  <li>The auto-keyword feature is dependent on the LLM and consumes a significant number of tokens.</li>
</ul>
      `,
      topnTags: 'Top-N Tags',
      tags: 'Tags',
      addTag: 'Add tag',
      useGraphRag: 'Knowledge graph',
      useGraphRagTip:
        'Construct a knowledge graph over file chunks of the current knowledge base to enhance multi-hop question-answering involving nested logic. See https://ragflow.io/docs/dev/construct_knowledge_graph for details.',
      graphRagMethod: 'Method',
      graphRagMethodTip: `Light: (Default) Use prompts provided by github.com/HKUDS/LightRAG to extract entities and relationships. This option consumes fewer tokens, less memory, and fewer computational resources.</br>
        General: Use prompts provided by github.com/microsoft/graphrag to extract entities and relationships`,
      resolution: 'Entity resolution',
      resolutionTip: `An entity deduplication switch. When enabled, the LLM will combine similar entities - e.g., '2025' and 'the year of 2025', or 'IT' and 'Information Technology' - to construct a more accurate graph`,
      community: 'Community reports',
      communityTip:
        'In a knowledge graph, a community is a cluster of entities linked by relationships. You can have the LLM generate an abstract for each community, known as a community report. See here for more information: https://www.microsoft.com/en-us/research/blog/graphrag-improving-global-search-via-dynamic-community-selection/',
      theDocumentBeingParsedCannotBeDeleted:
        'The document being parsed cannot be deleted',
    },
    chunk: {
      chunk: 'Chunk',
      bulk: 'Bulk',
      selectAll: 'Select All',
      enabledSelected: 'Enable selected',
      disabledSelected: 'Disable selected',
      deleteSelected: 'Delete selected',
      search: 'Search',
      all: 'All',
      enabled: 'Enabled',
      disabled: 'Disabled',
      keyword: 'Keyword',
      function: 'Function',
      chunkMessage: 'Please input value!',
      full: 'Full text',
      ellipse: 'Ellipse',
      graph: 'Knowledge graph',
      mind: 'Mind map',
      question: 'Question',
      questionTip: `If there are given questions, the embedding of the chunk will be based on them.`,
      chunkResult: 'Chunk Result',
      chunkResultTip: `View the chunked segments used for embedding and retrieval.`,
      enable: 'Enable',
      disable: 'Disable',
      delete: 'Delete',
    },
    setting: {
      profile: 'Profile',
      avatarTip: 'This will be displayed on your profile.',
      profileDescription: 'Update your photo and personal details here.',
      accountSecurity: 'Account Security',
      passwordUpdateTip: 'Regularly updating your password helps protect your account security',
      modelSettings: 'Model Settings',
      modelSettingsDescription: 'Manage your LLM model factories and personal model configurations',
      setDefaultModel: 'Set Default Model',
      myLlmModels: 'My LLM Models',
      noModelsConfigured: 'You have not configured any LLM models yet. Please configure them in the model factories below.',
      llmModelFactories: 'LLM Model Factories',
      confirmDelete: 'Confirm Delete',
      confirmDeleteModel: 'Are you sure you want to delete model {{modelName}}?',
      confirmDeleteFactory: 'Are you sure you want to delete model factory {{factoryName}}?',
      edit: 'Edit',
      delete: 'Delete',
      docEngine: 'Doc Engine',
      objectStorage: 'Object Storage',
      redis: 'Redis',
      database: 'Database',
      elasticsearch: 'Elasticsearch',
      taskExecutor: 'Task Executor',
      systemStatus: 'System Status',
      systemStatusDescription: 'View the running status and performance metrics of system components',
      noSystemStatusData: 'No system status data available',
      // Password change dialog
      currentPasswordRequired: 'Please enter current password',
      newPasswordRequired: 'Please enter new password',
      passwordMinLength: 'Password must be at least 6 characters',
      confirmPasswordRequired: 'Please confirm new password',
      passwordMismatch: 'Passwords do not match',
      newPasswordSameAsCurrent: 'New password cannot be the same as current password',
      passwordChangeSuccess: 'Password changed successfully',
      currentPasswordIncorrect: 'Current password is incorrect',
      passwordChangeError: 'Failed to change password, please try again later',
      passwordSecurityTip: 'For your account security, please set a strong password. Password should be at least 6 characters long and include letters, numbers, and special characters.',
      currentPassword: 'Current Password',
      newPassword: 'New Password',
      confirmNewPassword: 'Confirm New Password',
      cancel: 'Cancel',
      changing: 'Changing...',
      confirmChange: 'Confirm Change',
      // Profile form
      personalProfile: 'Personal Profile',
      pleaseSelectImageFile: 'Please select an image file',
      imageSizeLimit: 'Image size cannot exceed 2MB',
      usernameRequired: 'Username cannot be empty',
      profileUpdateSuccess: 'Profile updated successfully',
      updateFailed: 'Update failed, please try again',
      avatar: 'Avatar',
      uploadAvatar: 'Upload Avatar',
      avatarFormatTip: 'Supports JPG, PNG formats, file size not exceeding 2MB',
      username: 'Username',
      email: 'Email',
      emailNotEditable: 'Email address cannot be modified',
      language: 'Language',
      timezone: 'Timezone',
      save: 'Save',
      // LLM Factory Card
      apiKeyRequired: 'API Key is required',
      baseUrlOptional: 'Optional, custom API endpoint',
      minimaxGroupId: 'Minimax specific Group ID',
      addModel: 'Add Model',
      nameRequired: 'Name is required',
      urlRequired: 'URL is required',
      urlFormatInvalid: 'Invalid URL format',
      serverTypeRequired: 'Please select server type',
      testConnection: 'Test Connection',
      testing: 'Testing...',
      connectionSuccess: 'Connection successful! Found {count} tools',
      availableTools: 'Available Tools',
      connectionFailed: 'Connection failed',
      testFailed: 'Test failed',
      testConnectionError: 'Error occurred while testing connection',
      saving: 'Saving...',
      authTokenOptional: 'Optional: Token for authentication',
      fillUrlFirst: 'Please fill in URL first',
      maxTokens: 'Max Tokens',
      maxTokensMessage: 'Max Tokens is required',
      maxTokensTip: `This sets the maximum length of the model's output, measured in the number of tokens (words or pieces of words). Defaults to 512. If disabled, you lift the maximum token limit, allowing the model to determine the number of tokens in its responses.`,
      maxTokensInvalidMessage: 'Please enter a valid number for Max Tokens.',
      password: 'Password',
      passwordDescription:
        'Please enter your current password to change your password.',
      model: 'Model providers',
      modelDescription: 'Configure model parameters and API KEY here.',
      team: 'Team',
      system: 'System',
      logout: 'Log out',
      api: 'API',
      usernameMessage: 'Please input your username!',
      photo: 'Your photo',
      photoDescription: 'This will be displayed on your profile.',
      colorSchema: 'Color schema',
      colorSchemaMessage: 'Please select your color schema!',
      colorSchemaPlaceholder: 'select your color schema',
      bright: 'Bright',
      dark: 'Dark',
      timezoneMessage: 'Please input your timezone!',
      timezonePlaceholder: 'select your timezone',
      emailDescription: 'Once registered, E-mail cannot be changed.',
      currentPasswordMessage: 'Please input your password!',
      changePassword: 'Change Password',
      newPasswordMessage: 'Please input your password!',
      newPasswordDescription:
        'Your new password must be more than 8 characters.',
      confirmPassword: 'Confirm new password',
      confirmPasswordMessage: 'Please confirm your password!',
      confirmPasswordNonMatchMessage:
        'The new password that you entered do not match!',
      addedModels: 'Added models',
      modelsToBeAdded: 'Models to be added',
      addTheModel: 'Add Model',
      apiKey: 'API-Key',
      apiKeyMessage:
        'Please enter the API key (for locally deployed model,ignore this).',
      apiKeyTip:
        'The API key can be obtained by registering the corresponding LLM supplier.',
      showMoreModels: 'View Models',
      hideModels: 'Hide Models',
      baseUrlTip:
        'If your API key is from OpenAI, just ignore it. Any other intermediate providers will give this base url with the API key.',
      tongyiBaseUrlTip:
        'For Chinese users, no need to fill in or use https://dashscope.aliyuncs.com/compatible-mode/v1. For international users, use https://dashscope-intl.aliyuncs.com/compatible-mode/v1',
      tongyiBaseUrlPlaceholder: '(International users only, please see tip)',
      // Dialog translations
      addLlm: 'Add LLM',
      editLlm: 'Edit LLM',
      configureLlm: 'Configure LLM',
      howToIntegrate: 'How to integrate',
      // Model configuration translations
      modelType: 'Model Type',
      modelName: 'Model Name',
      modelNameHelperText: 'Please enter model name',
      modelNamePlaceholder: 'Please enter model name',
      ollamaModelNamePlaceholder: 'e.g.: llama2, mistral',
      baseUrl: 'Base URL',
      baseUrlHelperText: 'Base URL',
      baseUrlValidationMessage: 'Base URL must be a valid URL',
      azureOpenAIEndpointHelperText: 'Azure OpenAI service endpoint URL',
      azureAPIVersionHelperText: 'Azure OpenAI API version',
      apiVersionRequired: 'API Version is required',
      apiKeyHelperText: 'Enter API key (ignore if using locally deployed model)',
      apiKeyOptional: 'API Key (optional)',
      apiKeyOptionalPlaceholder: 'Enter API Key if authentication is required',
      apiKeyPlaceholder: 'Please enter API KEY',
      secretKeyPlaceholder: 'Please enter SECRET KEY',
      accessKeyPlaceholder: 'Please enter ACCESS KEY',
      maxTokensPlaceholder: 'Sets the maximum length of model output in tokens (word segments)',
      maxTokensHelperText: 'Sets the maximum length of model output in tokens (word segments)',
      maxTokensSupportedHelperText: 'Maximum tokens supported by the model',
      maxTokensMinMessage: 'Max tokens must be greater than 0',
      maxTokensMaxMessage: 'Max tokens cannot exceed 100000',
      // Baidu YiYan
      baiduYiYanAPIKey: 'YiYan API KEY',
      baiduYiYanSecretKey: 'YiYan Secret KEY',
      // Fish Audio
      fishAudioRefIdPlaceholder: 'Please enter Reference ID',
      // Google Cloud
      googleProjectIdPlaceholder: 'Please enter Project ID',
      googleCloudRegion: 'Google Cloud Region',
      googleCloudRegionPlaceholder: 'Please enter Google Cloud region',
      googleCloudRegionHelperText: 'Google Cloud region',
      googleServiceAccountKeyPlaceholder: 'Please enter Google Cloud Service Account Key',
      // Tencent Cloud
      tencentSecretId: 'Tencent Cloud Secret ID',
      tencentSecretKey: 'Tencent Cloud Secret KEY',
      secretIdPlaceholder: 'Please enter Secret ID',
      tencentSecretIdHelperText: 'Tencent Cloud Secret ID',
      tencentSecretKeyHelperText: 'Tencent Cloud Secret KEY',
      // Tencent HunYuan
      hunyuanSecretId: 'HunYuan Secret ID',
      hunyuanSecretKey: 'HunYuan Secret KEY',
      hunyuanSecretIdHelperText: 'HunYuan Secret ID',
      hunyuanSecretKeyHelperText: 'HunYuan Secret KEY',
      // XunFei Spark
      xunfeiSparkAPIPassword: 'XunFei Spark API Password',
      apiPasswordPlaceholder: 'Please enter API Password',
      xunfeiSparkAPIPasswordHelperText: 'XunFei Spark API Password',
      // VolcEngine
      modelEndpointId: 'Model EndpointID',
      endpointIdPlaceholder: 'Please enter EndpointID',
      modelEndpointIdHelperText: 'Model EndpointID',
      volcEngineARKAPIKey: 'VolcEngine ARK_API_KEY',
      arkApiKeyPlaceholder: 'Please enter ARK_API_KEY',
      modelARKAPIKeyHelperText: 'Model ARK_API_KEY',

      accessKey: 'ACCESS KEY',
      secretKey: 'SECRET KEY',
      awsRegion: 'AWS Region',
      maxTokensValidation: 'Please enter a valid number',
      maxTokensMin: 'Max tokens must be greater than 0',
      documentationLink: 'View documentation',
      confirm: 'Confirm',
      required: 'This field is required',
      baseUrlPlaceholder: 'Enter base URL',
      systemModelName: 'System Model Name',
      systemModelNamePlaceholder: 'Enter system model name',
      submitFailed: 'Submit failed',
      modify: 'Modify',
      systemModelSettings: 'Set default models',
      chatModel: 'Chat model',
      chatModelTip:
        'The default chat model for each newly created knowledge base.',
      embeddingModel: 'Embedding model',
      embeddingModelTip:
        'The default embedding model for each newly created knowledge base. If you cannot find an embedding model from the dropdown, check if you are using RAGFlow slim edition (which does not include embedding models) or check https://ragflow.io/docs/dev/supported_models to see if your model provider supports this model.',
      img2txtModel: 'Img2txt model',
      img2txtModelTip:
        'The default img2txt model for each newly created knowledge base. It describes a picture or video. If you cannot find a model from the dropdown, check https://ragflow.io/docs/dev/supported_models to see if your model provider supports this model.',
      sequence2txtModel: 'Speech2txt model',
      sequence2txtModelTip:
        'The default ASR model for each newly created knowledgebase. Use this model to translate voices to corresponding text.',
      rerankModel: 'Rerank model',
      rerankModelTip: `The default rerank model for reranking chunks. If you cannot find a model from the dropdown, check https://ragflow.io/docs/dev/supported_models to see if your model provider supports this model.`,
      ttsModel: 'TTS Model',
      ttsModelTip:
        'The default text-to-speech model. If you cannot find a model from the dropdown, check https://ragflow.io/docs/dev/supported_models to see if your model provider supports this model.',
      workspace: 'Workspace',
      upgrade: 'Upgrade',
      addLlmTitle: 'Add LLM',
      editLlmTitle: 'Edit {{name}} Model',
      editModel: 'Edit Model',
      modelID: 'Model ID',
      modelUid: 'Model UID',
      modelNameMessage: 'Please input your model name!',
      modelTypeMessage: 'Please input your model type!',
      addLlmBaseUrl: 'Base url',
      baseUrlNameMessage: 'Please input your base url!',
      vision: 'Does it support Vision?',
      ollamaLink: 'How to integrate {{name}}',
      FishAudioLink: 'How to use FishAudio',
      TencentCloudLink: 'How to use TencentCloud ASR',
      volcModelNameMessage: 'Please input your model name!',
      addEndpointID: 'EndpointID of the model',
      endpointIDMessage: 'Please input your EndpointID of the model',
      addArkApiKey: 'VOLC ARK_API_KEY',
      ArkApiKeyMessage: 'Please input your ARK_API_KEY',
      bedrockModelNameMessage: 'Please input your model name!',
      addBedrockEngineAK: 'ACCESS KEY',
      bedrockAKMessage: 'Please input your ACCESS KEY',
      addBedrockSK: 'SECRET KEY',
      bedrockSKMessage: 'Please input your SECRET KEY',
      bedrockRegion: 'AWS Region',
      bedrockRegionMessage: 'Please select!',
      'us-east-2': 'US East (Ohio)',
      'us-east-1': 'US East (N. Virginia)',
      'us-west-1': 'US West (N. California)',
      'us-west-2': 'US West (Oregon)',
      'af-south-1': 'Africa (Cape Town)',
      'ap-east-1': 'Asia Pacific (Hong Kong)',
      'ap-south-2': 'Asia Pacific (Hyderabad)',
      'ap-southeast-3': 'Asia Pacific (Jakarta)',
      'ap-southeast-5': 'Asia Pacific (Malaysia)',
      'ap-southeast-4': 'Asia Pacific (Melbourne)',
      'ap-south-1': 'Asia Pacific (Mumbai)',
      'ap-northeast-3': 'Asia Pacific (Osaka)',
      'ap-northeast-2': 'Asia Pacific (Seoul)',
      'ap-southeast-1': 'Asia Pacific (Singapore)',
      'ap-southeast-2': 'Asia Pacific (Sydney)',
      'ap-east-2': 'Asia Pacific (Taipei)',
      'ap-southeast-7': 'Asia Pacific (Thailand)',
      'ap-northeast-1': 'Asia Pacific (Tokyo)',
      'ca-central-1': 'Canada (Central)',
      'ca-west-1': 'Canada West (Calgary)',
      'eu-central-1': 'Europe (Frankfurt)',
      'eu-west-1': 'Europe (Ireland)',
      'eu-west-2': 'Europe (London)',
      'eu-south-1': 'Europe (Milan)',
      'eu-west-3': 'Europe (Paris)',
      'eu-south-2': 'Europe (Spain)',
      'eu-north-1': 'Europe (Stockholm)',
      'eu-central-2': 'Europe (Zurich)',
      'il-central-1': 'Israel (Tel Aviv)',
      'mx-central-1': 'Mexico (Central)',
      'me-south-1': 'Middle East (Bahrain)',
      'me-central-1': 'Middle East (UAE)',
      'sa-east-1': 'South America (São Paulo)',
      'us-gov-east-1': 'AWS GovCloud (US-East)',
      'us-gov-west-1': 'AWS GovCloud (US-West)',
      addHunyuanSID: 'Hunyuan Secret ID',
      HunyuanSIDMessage: 'Please input your Secret ID',
      addHunyuanSK: 'Hunyuan Secret Key',
      HunyuanSKMessage: 'Please input your Secret Key',
      addTencentCloudSID: 'TencentCloud Secret ID',
      TencentCloudSIDMessage: 'Please input your Secret ID',
      addTencentCloudSK: 'TencentCloud Secret Key',
      TencentCloudSKMessage: 'Please input your Secret Key',
      SparkModelNameMessage: 'Please select Spark model',
      addSparkAPIPassword: 'Spark APIPassword',
      SparkAPIPasswordMessage: 'please input your APIPassword',
      addSparkAPPID: 'Spark APP ID',
      SparkAPPIDMessage: 'please input your APP ID',
      addSparkAPISecret: 'Spark APISecret',
      SparkAPISecretMessage: 'please input your APISecret',
      addSparkAPIKey: 'Spark APIKey',
      SparkAPIKeyMessage: 'please input your APIKey',
      yiyanModelNameMessage: 'Please input model name',
      addyiyanAK: 'yiyan API KEY',
      yiyanAKMessage: 'Please input your API KEY',
      addyiyanSK: 'yiyan Secret KEY',
      yiyanSKMessage: 'Please input your Secret KEY',
      FishAudioModelNameMessage:
        'Please give your speech synthesis model a name',
      addFishAudioAK: 'Fish Audio API KEY',
      addFishAudioAKMessage: 'Please input your API KEY',
      addFishAudioRefID: 'FishAudio Reference ID',
      addFishAudioRefIDMessage:
        'Please input the Reference ID (leave blank to use the default model).',
      GoogleModelIDMessage: 'Please input your model ID!',
      addGoogleProjectID: 'Project ID',
      GoogleProjectIDMessage: 'Please input your Project ID',
      addGoogleServiceAccountKey:
        'Service Account Key(Leave blank if you use Application Default Credentials)',
      GoogleServiceAccountKeyMessage:
        'Please input Google Cloud Service Account Key in base64 format',
      addGoogleRegion: 'Google Cloud Region',
      GoogleRegionMessage: 'Please input Google Cloud Region',
      modelProvidersWarn: `Please add both embedding model and LLM in <b>Settings > Model providers</b> first. Then, set them in 'Set default models'.`,
      apiVersion: 'API-Version',
      apiVersionMessage: 'Please input API version',
      add: 'Add',
      updateDate: 'Update Date',
      role: 'Role',
      invite: 'Invite',
      agree: 'Accept',
      refuse: 'Decline',
      teamMembers: 'Team Members',
      joinedTeams: 'Joined Teams',
      sureDelete: 'Are you sure to remove this member?',
      quit: 'Quit',
      sureQuit: 'Are you sure you want to quit the team you joined?',
      inviting: 'Inviting...',
      emailPlaceholder: 'Please enter the email address of the user to invite',
      publicKey: 'Public key',
      secretKeyMessage: 'Please enter the secret key',
      publicKeyMessage: 'Please enter the public key',
      hostMessage: 'Please enter the host',
      configuration: 'Configuration',
      langfuseDescription:
        'Traces, evals, prompt management and metrics to debug and improve your LLM application.',
      viewLangfuseSDocumentation: "View Langfuse's documentation",
      view: 'View',
      modelsToBeAddedTooltip:
        'If your model provider is not listed but claims to be "OpenAI-compatible", select the OpenAI-API-compatible card to add the relevant model(s). ',
      mcp: 'MCP',
    },
    agent: {
      agentList: 'Agent List',
      noMatchingAgents: 'No matching agents',
      noAgents: 'No agents',
      tryAdjustingFilters: 'Try adjusting your filters',
      createFirstAgent: 'Create your first agent',
      createAgent: 'Create agent',
      updatedAt: 'Updated At',
      creator: 'Creator',
      nodes: 'Nodes',
      edges: 'Edges',
      editAgent: 'Edit Agent',
      deleteAgent: 'Delete Agent',

      searchAgent: 'Search Agent',

      forms: {
        title: 'Title',
        avatar: 'Avatar',
        description: 'Description',
        permissionSettings: 'Permission Settings',
      },

      // create agent
      useTemplate: 'Use Template',
      createAgentSuccess: 'Agent created successfully',
      createAgentFailed: 'Agent creation failed',

      // agent detail
      lastAutoSavedAt: 'Last Auto Saved At {{date}}',
      versions: 'Versions',

    },
    message: {
      registered: 'Registered!',
      logout: 'logout',
      logged: 'logged!',
      pleaseSelectChunk: 'Please select chunk!',
      registerDisabled: 'User registration is disabled',
      modified: 'Modified',
      created: 'Created',
      deleted: 'Deleted',
      renamed: 'Renamed',
      operated: 'Operated',
      updated: 'Updated',
      uploaded: 'Uploaded',
      200: 'The server successfully returns the requested data.',
      201: 'Create or modify data successfully.',
      202: 'A request has been queued in the background (asynchronous task).',
      204: 'Data deleted successfully.',
      400: 'There was an error in the request issued, and the server did not create or modify data.',
      401: 'Please sign in again.',
      403: 'The user is authorized, but access is prohibited.',
      404: 'The request was made for a record that does not exist, and the server did not perform the operation.',
      406: 'The requested format is not available.',
      410: 'The requested resource has been permanently deleted and will not be available again.',
      413: 'The total size of the files uploaded at once is too large.',
      422: 'When creating an object, a validation error occurred.',
      500: 'A server error occurred, please check the server.',
      502: 'Gateway error.',
      503: 'The service is unavailable and the server is temporarily overloaded or undergoing maintenance.',
      504: 'Gateway timeout.',
      requestError: 'Request error',
      networkAnomalyDescription:
        'There is an abnormality in your network and you cannot connect to the server.',
      networkAnomaly: 'network anomaly',
      hint: 'hint',
    },
    fileManager: {
      files: 'Files',
      name: 'Name',
      uploadDate: 'Upload Date',
      knowledgeBase: 'Dataset',
      size: 'Size',
      action: 'Action',
      addToKnowledge: 'Link to Knowledge Base',
      pleaseSelect: 'Please select',
      newFolder: 'New Folder',
      file: 'File',
      uploadFile: 'Upload File',
      parseOnCreation: 'Parse on creation',
      directory: 'Directory',
      uploadTitle: 'Drag and drop your file here to upload',
      uploadDescription:
        'Supports single or batch file upload. For a locally deployed RAGFlow: the total file size limit per upload is 1GB, with a batch upload limit of 32 files. There is no cap on the total number of files per account. For demo.ragflow.io, the total file size limit per upload is 10MB, with each file not exceeding 10MB and a maximum of 128 files per account.',
      local: 'Local uploads',
      s3: 'S3 uploads',
      preview: 'Preview',
      fileError: 'File error',
      uploadLimit:
        'Each file must not exceed 10MB, and the total number of files must not exceed 128.',
      destinationFolder: 'Destination folder',
      pleaseUploadAtLeastOneFile: 'Please upload at least one file',
    },
    mcp: {
      export: 'Export',
      import: 'Import',
      url: 'URL',
      serverType: 'Server Type',
      addMCP: 'Add MCP',
      editMCP: 'Edit MCP',
      toolsAvailable: 'tools available',
      mcpServers: 'MCP Servers',
      customizeTheListOfMcpServers: 'Customize the list of MCP servers',
      searchPlaceholder: 'Search MCP servers...',
      deleteSelected: 'Delete',
      exportSelected: 'Export',
      type: 'Type',
      updateTime: 'Update Time',
      totalItems: 'Total {{count}} items',
      importTitle: 'Import MCP Servers',
      importDescription: 'Paste your MCP servers JSON configuration below. The format should match the Mock.json structure.',
      jsonConfiguration: 'JSON Configuration',
      deleteSuccess: 'Delete successful',
      deleteFailed: 'Delete failed',
      batchDeleteSuccess: 'Batch delete successful',
      batchDeleteFailed: 'Batch delete failed',
      exportSuccess: 'Export successful',
      exportFailed: 'Export failed',
      serverIdRequired: 'Server ID cannot be empty',
      mcpServerUpdateSuccess: 'MCP server updated successfully',
      mcpServerCreateSuccess: 'MCP server created successfully',
      operationFailed: 'Operation failed',
      testSuccess: 'Test successful',
      jsonFormatError: 'JSON format error',
    },
    search: {
      searchApps: 'Search Apps',
      createSearch: 'Create Search',
      searchGreeting: 'How can I help you today ？',
      profile: 'Hide Profile',
      locale: 'Locale',
      embedCode: 'Embed code',
      id: 'ID',
      copySuccess: 'Copy Success',
      welcomeBack: 'Welcome back',
      searchSettings: 'Search Settings',
      name: 'Name',
      avatar: 'Avatar',
      description: 'Description',
      datasets: 'Datasets',
      rerankModel: 'Rerank Model',
      AISummary: 'AI Summary',
      enableWebSearch: 'Enable Web Search',
      enableRelatedSearch: 'Enable Related Search',
      showQueryMindmap: 'Show Query Mindmap',
      embedApp: 'Embed App',
      relatedSearch: 'Related Search',
      descriptionValue: 'You are an intelligent assistant.',
      okText: 'Save',
      cancelText: 'Cancel',
      chooseDataset: 'Please select a dataset first',
    },
    language: {
      english: 'English',
      chinese: 'Chinese',
      spanish: 'Spanish',
      french: 'French',
      german: 'German',
      japanese: 'Japanese',
      korean: 'Korean',
      vietnamese: 'Vietnamese',
    },
    pagination: {
      total: 'Total {{total}}',
      page: '{{page}} /Page',
    },
    datasetOverview: {
      downloadTip: 'Files being downloaded from data sources. ',
      processingTip: 'Files being processed by data flows.',
      totalFiles: 'Total Files',
      downloading: 'Downloading',
      processing: 'Processing',
    },
    chunkPage: {
      missingParams: 'Missing required parameters: Knowledge Base ID or Document ID',
      knowledgeBase: 'Knowledge Base',
      knowledgeBaseDetail: 'Knowledge Base Detail',
      documentDetail: 'Document Detail',
      documentChunkResult: 'Document Chunk Parsing Result',
      viewDocument: 'View Document',
      allChunkData: 'all chunk data',
      totalChunkCount: 'Total Chunk Count',
      viewFile: 'View File',
      searchChunkPlaceholder: 'Search chunk content...',
      chunkList: 'Chunk List',
      chunkContent: 'Chunk Content',
      chunkIndex: 'Chunk Index',
      chunkScore: 'Chunk Score',
      chunkKeywords: 'Chunk Keywords',
      chunkQuestions: 'Chunk Questions',
      noChunksFound: 'No chunk data found',
      loadingChunks: 'Loading chunk data...',
      chunkDetails: 'Chunk Details',
      documentPreview: 'Document Preview',
      previewNotAvailable: 'Preview not available',
      fileNotFound: 'File not found',
      unsupportedFileType: 'Unsupported file type',
      loadingPreview: 'Loading preview...',
      downloadFile: 'Download File',
      openInNewTab: 'Open in new tab',
      loadingChunkData: 'Loading chunk data...',
      noChunkData: 'No chunk data',
      noChunkDataDescription: 'No chunk data description',
      selectAll: 'Select All',
      selected: 'Selected',
      items: 'items',
      enable: 'Enable',
      disable: 'Disable',
      clearSelection: 'Clear Selection',
      page: 'Page',
      pageOf: 'of',
      pages: 'pages',
      total: 'Total',
      chunks: 'chunks',
      containsImage: 'Contains Image',
      enabled: 'Enabled',
      disabled: 'Disabled',
      contentPreview: 'Content Preview',
      noContent: 'No content',
      relatedImage: 'Related Image',
      chunkRelatedImage: 'Chunk Related Image',
      keywordInfo: 'Keyword Info',
      important: 'Important',
      question: 'Question',
      tag: 'Tag',
      deleting: 'Deleting',
      confirmDeleteChunks: 'Confirm delete selected chunks',
      fetchDataFailed: 'Failed to fetch data',
      fileFormatNotSupported: 'File format not supported',
      getDocumentFileFailed: 'Failed to get document file',
      fileTypeNotSupportedPreview: 'File type not supported for preview',
      filePreview: 'File Preview',
      loadingFile: 'Loading file...',
      editChunk: 'Edit Chunk',
      content: 'Content',
      saving: 'Saving...',
    },
    fileUpload: {
      uploadFiles: 'Upload Files',
      fileSizeExceeded: 'File size exceeded',
      unsupportedFileType: 'Unsupported file type',
      maxFilesExceeded: 'Maximum number of files exceeded',
      duplicateFile: 'Duplicate file',
      uploadFailed: 'Upload failed',
      dropFilesHere: 'Drop files here',
      dragOrClickToUpload: 'Drag files here or click to upload',
      supportedFormats: 'Supported formats: .pdf, .docx, .txt, .md, .png, .jpg, .jpeg, .mp4, .wav',
      fileLimits: 'File limits',
      selectedFiles: 'Selected files',
      uploading: 'Uploading...',
    },
    dialog: {
      confirm: 'Confirm',
      cancel: 'Cancel',
      delete: 'Delete',
      save: 'Save',
      close: 'Close',
      warning: 'Warning',
      error: 'Error',
      success: 'Success',
      info: 'Info',
      processing: 'Processing',
      confirmDelete: 'Confirm Delete',
      confirmDeleteMessage: 'This operation cannot be undone. Are you sure you want to delete?',
      operationSuccess: 'Operation successful',
      operationFailed: 'Operation failed',
      pleaseConfirm: 'Please confirm',
      areYouSure: 'Are you sure?',
    },
  },
};
