const translation = {
  common: {
    undo: 'แก้',
    redo: 'พร้อม',
    editing: 'แก้ไข',
    autoSaved: 'บันทึกอัตโนมัติ',
    unpublished: 'ไม่ได้เผยแพร่',
    published: 'เผย แพร่',
    publish: 'ตีพิมพ์',
    update: 'อัพเดต',
    run: 'วิ่ง',
    running: 'กำลัง เรียก ใช้',
    inRunMode: 'ในโหมดเรียกใช้',
    inPreview: 'ในการแสดงตัวอย่าง',
    inPreviewMode: 'ในโหมดแสดงตัวอย่าง',
    preview: 'ดูตัวอย่าง',
    viewRunHistory: 'ดูประวัติการวิ่ง',
    runHistory: 'ประวัติการวิ่ง',
    goBackToEdit: 'กลับไปที่ตัวแก้ไข',
    conversationLog: 'บันทึกการสนทนา',
    features: 'หน้าตา',
    featuresDescription: 'ปรับปรุงประสบการณ์ผู้ใช้เว็บแอป',
    ImageUploadLegacyTip: 'ตอนนี้คุณสามารถสร้างตัวแปรชนิดไฟล์ในฟอร์มเริ่มต้นได้แล้ว เราจะไม่รองรับฟีเจอร์การอัปโหลดรูปภาพอีกต่อไปในอนาคต',
    fileUploadTip: 'ฟีเจอร์การอัปโหลดรูปภาพได้รับการอัปเกรดเป็นการอัปโหลดไฟล์',
    featuresDocLink: 'ศึกษาเพิ่มเติม',
    debugAndPreview: 'ดูตัวอย่าง',
    restart: 'เริ่มใหม่',
    currentDraft: 'ร่างปัจจุบัน',
    currentDraftUnpublished: 'ร่างปัจจุบันที่ไม่ได้เผยแพร่',
    latestPublished: 'เผยแพร่ล่าสุด',
    publishedAt: 'เผย แพร่',
    restore: 'ซ่อมแซม',
    runApp: 'เรียกใช้แอพ',
    batchRunApp: 'แอป Batch Run',
    accessAPIReference: 'การอ้างอิง API การเข้าถึง',
    embedIntoSite: 'ฝังลงในไซต์',
    addTitle: 'เพิ่มชื่อเรื่อง...',
    addDescription: 'เพิ่มคําอธิบาย...',
    noVar: 'ไม่มีตัวแปร',
    searchVar: 'ตัวแปรการค้นหา',
    variableNamePlaceholder: 'ชื่อตัวแปร',
    setVarValuePlaceholder: 'ตั้งค่าตัวแปร',
    needConnectTip: 'ขั้นตอนนี้ไม่ได้เชื่อมต่อกับสิ่งใด',
    maxTreeDepth: 'ขีดจํากัดสูงสุดของ {{depth}} โหนดต่อสาขา',
    needEndNode: 'ต้องเพิ่มบล็อก End',
    needAnswerNode: 'ต้องเพิ่มบล็อกคําตอบ',
    workflowProcess: 'กระบวนการเวิร์กโฟลว์',
    notRunning: 'ยังไม่ได้ทํางาน',
    previewPlaceholder: 'ป้อนเนื้อหาในช่องด้านล่างเพื่อเริ่มแก้ไขข้อบกพร่องของแชทบอท',
    effectVarConfirm: {
      title: 'ลบตัวแปร',
      content: 'ตัวแปรนี้ใช้ในโหนดอื่น คุณยังต้องการลบออกหรือไม่?',
    },
    insertVarTip: 'กดปุ่ม \'/\' เพื่อแทรกอย่างรวดเร็ว',
    processData: 'ประมวลผลข้อมูล',
    input: 'อินพุต',
    output: 'ผลิตภัณฑ์',
    jinjaEditorPlaceholder: 'พิมพ์ \'/\' หรือ \'{\' เพื่อแทรกตัวแปร',
    viewOnly: 'ดูเท่านั้น',
    showRunHistory: 'แสดงประวัติการวิ่ง',
    enableJinja: 'เปิดใช้งานการสนับสนุนเทมเพลต Jinja',
    learnMore: 'ศึกษาเพิ่มเติม',
    copy: 'ลอก',
    duplicate: 'สำเนา',
    addBlock: 'เพิ่มบล็อก',
    pasteHere: 'วางที่นี่',
    pointerMode: 'โหมดตัวชี้',
    handMode: 'โหมดมือ',
    model: 'แบบ',
    workflowAsTool: 'เวิร์กโฟลว์เป็นเครื่องมือ',
    configureRequired: 'กําหนดค่าที่จําเป็น',
    configure: 'กําหนดค่า',
    manageInTools: 'จัดการในเครื่องมือ',
    workflowAsToolTip: 'จําเป็นต้องมีการกําหนดค่าเครื่องมือใหม่หลังจากการอัปเดตเวิร์กโฟลว์',
    viewDetailInTracingPanel: 'ดูรายละเอียด',
    syncingData: 'ซิงค์ข้อมูลเพียงไม่กี่วินาที',
    importDSL: 'นําเข้า DSL',
    importDSLTip: 'ร่างปัจจุบันจะถูกเขียนทับ\nส่งออกเวิร์กโฟลว์เป็นข้อมูลสํารองก่อนนําเข้า',
    backupCurrentDraft: 'สํารองร่างปัจจุบัน',
    chooseDSL: 'เลือกไฟล์ DSL',
    overwriteAndImport: 'เขียนทับและนําเข้า',
    importFailure: 'นําเข้าล้มเหลว',
    importWarning: 'ความระมัดระวัง',
    importWarningDetails: 'ความแตกต่างของเวอร์ชัน DSL อาจส่งผลต่อคุณสมบัติบางอย่าง',
    importSuccess: 'นําเข้าสําเร็จ',
    parallelRun: 'วิ่งแบบขนาน',
    parallelTip: {
      click: {
        title: 'คลิก',
        desc: 'เพื่อเพิ่ม',
      },
      drag: {
        title: 'ลาก',
        desc: 'เพื่อเชื่อมต่อ',
      },
      limit: 'ความขนานถูกจํากัดไว้ที่ {{num}} สาขา',
      depthLimit: 'ขีดจํากัดเลเยอร์ซ้อนแบบขนานของ {{num}} เลเยอร์',
    },
    disconnect: 'ยก เลิก',
    jumpToNode: 'ข้ามไปยังโหนดนี้',
    addParallelNode: 'เพิ่มโหนดขนาน',
    parallel: 'ขนาน',
    branch: 'กิ่ง',
    openInExplore: 'เปิดใน Explore',
    onFailure: 'เมื่อล้มเหลว',
    addFailureBranch: 'เพิ่มสาขา Fail',
    loadMore: 'โหลดเวิร์กโฟลว์เพิ่มเติม',
    noHistory: 'ไม่มีประวัติ',
  },
  env: {
    envPanelTitle: 'ตัวแปรสภาพแวดล้อม',
    envDescription: 'ตัวแปรสภาพแวดล้อมสามารถใช้เพื่อจัดเก็บข้อมูลส่วนตัวและข้อมูลประจําตัวได้ เป็นแบบอ่านอย่างเดียวและสามารถแยกออกจากไฟล์ DSL ระหว่างการส่งออก',
    envPanelButton: 'เพิ่มตัวแปร',
    modal: {
      title: 'เพิ่มตัวแปรสภาพแวดล้อม',
      editTitle: 'แก้ไขตัวแปรสภาพแวดล้อม',
      type: 'ประเภท',
      name: 'ชื่อ',
      namePlaceholder: 'ชื่อ env',
      value: 'ค่า',
      valuePlaceholder: 'ค่า env',
      secretTip: 'ใช้เพื่อกําหนดข้อมูลหรือข้อมูลที่ละเอียดอ่อน โดยมีการตั้งค่า DSL ที่กําหนดค่าไว้เพื่อป้องกันการรั่วไหล',
    },
    export: {
      title: 'ส่งออกตัวแปรสภาพแวดล้อม Secret หรือไม่',
      checkbox: 'ส่งออกค่าข้อมูลลับ',
      ignore: 'ส่งออก DSL',
      export: 'ส่งออก DSL ด้วยค่าลับ',
    },
  },
  chatVariable: {
    panelTitle: 'ตัวแปรการสนทนา',
    panelDescription: 'ตัวแปรการสนทนาใช้เพื่อจัดเก็บข้อมูลแบบโต้ตอบที่ LLM จําเป็นต้องจดจํา รวมถึงประวัติการสนทนา ไฟล์ที่อัปโหลด การตั้งค่าของผู้ใช้ พวกเขาอ่าน-เขียน',
    docLink: 'เยี่ยมชมเอกสารของเราเพื่อเรียนรู้เพิ่มเติม',
    button: 'เพิ่มตัวแปร',
    modal: {
      title: 'เพิ่มตัวแปรการสนทนา',
      editTitle: 'แก้ไขตัวแปรการสนทนา',
      name: 'ชื่อ',
      namePlaceholder: 'ชื่อตัวแปร',
      type: 'ประเภท',
      value: 'ค่าเริ่มต้น',
      valuePlaceholder: 'ค่าเริ่มต้น เว้นว่างไว้เพื่อไม่ให้ตั้งค่า',
      description: 'คำอธิบาย',
      descriptionPlaceholder: 'อธิบายตัวแปร',
      editInJSON: 'แก้ไขใน JSON',
      oneByOne: 'เพิ่มทีละรายการ',
      editInForm: 'แก้ไขในแบบฟอร์ม',
      arrayValue: 'ค่า',
      addArrayValue: 'เพิ่มมูลค่า',
      objectKey: 'กุญแจ',
      objectType: 'ประเภท',
      objectValue: 'ค่าเริ่มต้น',
    },
    storedContent: 'เนื้อหาที่เก็บไว้',
    updatedAt: 'อัพเดทเมื่อ',
  },
  changeHistory: {
    title: 'ประวัติการเปลี่ยนแปลง',
    placeholder: 'คุณยังไม่ได้เปลี่ยนแปลงอะไรเลย',
    clearHistory: 'ล้างประวัติ',
    hint: 'คนอินเดีย',
    hintText: 'การดําเนินการแก้ไขของคุณจะถูกติดตามในประวัติการเปลี่ยนแปลง ซึ่งจะถูกจัดเก็บไว้ในอุปกรณ์ของคุณตลอดระยะเวลาของเซสชันนี้ ประวัตินี้จะถูกล้างเมื่อคุณออกจากตัวแก้ไข',
    stepBackward_one: '{{count}} ถอยหลัง',
    stepBackward_other: '{{count}} ถอยหลัง',
    stepForward_one: '{{count}} ก้าวไปข้างหน้า',
    stepForward_other: '{{count}} ก้าวไปข้างหน้า',
    sessionStart: 'เริ่มเซสชัน',
    currentState: 'สถานะปัจจุบัน',
    nodeTitleChange: 'เปลี่ยนชื่อบล็อก',
    nodeDescriptionChange: 'คําอธิบายบล็อกเปลี่ยนไป',
    nodeDragStop: 'บล็อกย้าย',
    nodeChange: 'บล็อกเปลี่ยนไป',
    nodeConnect: 'บล็อกเชื่อมต่อ',
    nodePaste: 'บล็อกวาง',
    nodeDelete: 'บล็อกลบ',
    nodeAdd: 'เพิ่มบล็อก',
    nodeResize: 'บล็อกปรับขนาด',
    noteAdd: 'เพิ่มหมายเหตุ',
    noteChange: 'เปลี่ยนหมายเหตุ',
    noteDelete: 'ลบโน้ต',
    edgeDelete: 'บล็อกตัดการเชื่อมต่อ',
  },
  errorMsg: {
    fieldRequired: '{{field}} เป็นสิ่งจําเป็น',
    rerankModelRequired: 'ก่อนเปิด Rerank Model โปรดยืนยันว่าได้กําหนดค่าโมเดลสําเร็จในการตั้งค่า',
    authRequired: 'ต้องได้รับอนุญาต',
    invalidJson: '{{field}} เป็น JSON ไม่ถูกต้อง',
    fields: {
      variable: 'ชื่อตัวแปร',
      variableValue: 'ค่าตัวแปร',
      code: 'รหัส',
      model: 'แบบ',
      rerankModel: 'จัดอันดับโมเดลใหม่',
      visionVariable: 'ตัวแปรวิสัยทัศน์',
    },
    invalidVariable: 'ตัวแปรไม่ถูกต้อง',
    noValidTool: '{{field}} ไม่ได้เลือกเครื่องมือที่ถูกต้อง',
    toolParameterRequired: '{{field}}: พารามิเตอร์ [{{param}}] เป็นสิ่งจําเป็น',
  },
  singleRun: {
    testRun: 'ทดสอบการทํางาน',
    startRun: 'เริ่มวิ่ง',
    running: 'กำลัง เรียก ใช้',
    testRunIteration: 'การทดสอบการทําซ้ํา',
    back: 'ย้อนกลับ',
    iteration: 'เกิด ซ้ำ',
  },
  tabs: {
    'searchBlock': 'บล็อกการค้นหา',
    'blocks': 'บล็อก',
    'searchTool': 'เครื่องมือค้นหา',
    'tools': 'เครื่อง มือ',
    'allTool': 'ทั้งหมด',
    'builtInTool': 'ในตัว',
    'customTool': 'ธรรมเนียม',
    'workflowTool': 'เวิร์กโฟลว์',
    'question-understand': 'คําถาม: เข้าใจ',
    'logic': 'ตรรกวิทยา',
    'transform': 'แปลง',
    'utilities': 'สาธารณูปโภค',
    'noResult': 'ไม่พบการจับคู่',
    'agent': 'กลยุทธ์ตัวแทน',
    'plugin': 'ปลั๊กอิน',
  },
  blocks: {
    'start': 'เริ่ม',
    'end': 'ปลาย',
    'answer': 'ตอบ',
    'llm': 'นิติศาสตราจารย์',
    'knowledge-retrieval': 'การดึงความรู้',
    'question-classifier': 'ตัวจําแนกคําถาม',
    'if-else': 'ถ้า/อื่น',
    'code': 'รหัส',
    'template-transform': 'แม่ แบบ',
    'http-request': 'คําขอ HTTP',
    'variable-assigner': 'ตัวรวบรวมตัวแปร',
    'variable-aggregator': 'ตัวรวบรวมตัวแปร',
    'assigner': 'ตัวกําหนดตัวแปร',
    'iteration-start': 'เริ่มการทําซ้ํา',
    'iteration': 'เกิด ซ้ำ',
    'parameter-extractor': 'ตัวแยกพารามิเตอร์',
    'document-extractor': 'ตัวแยกเอกสาร',
    'list-operator': 'ตัวดําเนินการรายการ',
    'agent': 'ตัวแทน',
  },
  blocksAbout: {
    'start': 'กําหนดพารามิเตอร์เริ่มต้นสําหรับการเปิดใช้เวิร์กโฟลว์',
    'end': 'กําหนดชนิดสิ้นสุดและผลลัพธ์ของเวิร์กโฟลว์',
    'answer': 'กําหนดเนื้อหาการตอบกลับของการสนทนาแชท',
    'llm': 'การเรียกใช้โมเดลภาษาขนาดใหญ่เพื่อตอบคําถามหรือประมวลผลภาษาธรรมชาติ',
    'knowledge-retrieval': 'ช่วยให้คุณสามารถสอบถามเนื้อหาข้อความที่เกี่ยวข้องกับคําถามของผู้ใช้จากความรู้',
    'question-classifier': 'กําหนดเงื่อนไขการจําแนกประเภทของคําถามของผู้ใช้ LLM สามารถกําหนดความคืบหน้าของการสนทนาตามคําอธิบายการจําแนกประเภท',
    'if-else': 'ช่วยให้คุณสามารถแบ่งเวิร์กโฟลว์ออกเป็นสองสาขาตามเงื่อนไข if/else',
    'code': 'เรียกใช้โค้ด Python หรือ NodeJS เพื่อใช้ตรรกะที่กําหนดเอง',
    'template-transform': 'แปลงข้อมูลเป็นสตริงโดยใช้ไวยากรณ์เทมเพลต Jinja',
    'http-request': 'อนุญาตให้ส่งคําขอเซิร์ฟเวอร์ผ่านโปรโตคอล HTTP',
    'variable-assigner': 'รวมตัวแปรหลายสาขาเป็นตัวแปรเดียวสําหรับการกําหนดค่าแบบรวมของโหนดดาวน์สตรีม',
    'assigner': 'โหนดการกําหนดตัวแปรใช้สําหรับกําหนดค่าให้กับตัวแปรที่เขียนได้ (เช่นตัวแปรการสนทนา)',
    'variable-aggregator': 'รวมตัวแปรหลายสาขาเป็นตัวแปรเดียวสําหรับการกําหนดค่าแบบรวมของโหนดดาวน์สตรีม',
    'iteration': 'ดําเนินการหลายขั้นตอนกับวัตถุรายการจนกว่าจะส่งออกผลลัพธ์ทั้งหมด',
    'parameter-extractor': 'ใช้ LLM เพื่อแยกพารามิเตอร์ที่มีโครงสร้างจากภาษาธรรมชาติสําหรับการเรียกใช้เครื่องมือหรือคําขอ HTTP',
    'document-extractor': 'ใช้เพื่อแยกวิเคราะห์เอกสารที่อัปโหลดเป็นเนื้อหาข้อความที่ LLM เข้าใจได้ง่าย',
    'list-operator': 'ใช้เพื่อกรองหรือจัดเรียงเนื้อหาอาร์เรย์',
    'agent': 'การเรียกใช้โมเดลภาษาขนาดใหญ่เพื่อตอบคําถามหรือประมวลผลภาษาธรรมชาติ',
  },
  operator: {
    zoomIn: 'ซูมเข้า',
    zoomOut: 'ซูมออก',
    zoomTo50: 'ซูมไปที่ 50%',
    zoomTo100: 'ซูมไปที่ 100%',
    zoomToFit: 'ซูมให้พอดี',
  },
  panel: {
    userInputField: 'ฟิลด์ป้อนข้อมูลของผู้ใช้',
    changeBlock: 'เปลี่ยนบล็อก',
    helpLink: 'ลิงค์ช่วยเหลือ',
    about: 'ประมาณ',
    createdBy: 'สร้างโดย',
    nextStep: 'ขั้นตอนถัดไป',
    addNextStep: 'เพิ่มบล็อกถัดไปในเวิร์กโฟลว์นี้',
    selectNextStep: 'เลือกบล็อกถัดไป',
    runThisStep: 'เรียกใช้ขั้นตอนนี้',
    checklist: 'ตรวจ สอบ',
    checklistTip: 'ตรวจสอบให้แน่ใจว่าปัญหาทั้งหมดได้รับการแก้ไขแล้วก่อนที่จะเผยแพร่',
    checklistResolved: 'ปัญหาทั้งหมดได้รับการแก้ไขแล้ว',
    organizeBlocks: 'จัดระเบียบบล็อก',
    change: 'เปลี่ยน',
    optional: '(ไม่บังคับ)',
  },
  nodes: {
    common: {
      outputVars: 'ตัวแปรเอาต์พุต',
      insertVarTip: 'แทรกตัวแปร',
      memory: {
        memory: 'ความจำ',
        memoryTip: 'การตั้งค่าหน่วยความจําแชท',
        windowSize: 'ขนาดหน้าต่าง',
        conversationRoleName: 'ชื่อบทบาทการสนทนา',
        user: 'คํานําหน้าผู้ใช้',
        assistant: 'คํานําหน้าผู้ช่วย',
      },
      memories: {
        title: 'ความ ทรง จำ',
        tip: 'ความทรงจําการแชท',
        builtIn: 'ในตัว',
      },
      errorHandle: {
        none: {
          title: 'ไม่มีใคร',
          desc: 'โหนดจะหยุดทํางานหากเกิดข้อยกเว้นและไม่ได้รับการจัดการ',
        },
        defaultValue: {
          title: 'ค่าเริ่มต้น',
          desc: 'เมื่อเกิดข้อผิดพลาด ให้ระบุเนื้อหาเอาต์พุตแบบคงที่',
          tip: 'เมื่อเกิดข้อผิดพลาด จะส่งคืนค่าต่ํากว่า',
          inLog: 'ข้อยกเว้นโหนดส่งออกตามค่าเริ่มต้น',
          output: 'ค่าเริ่มต้นเอาต์พุต',
        },
        failBranch: {
          title: 'สาขาล้มเหลว',
          desc: 'เมื่อเกิดข้อผิดพลาด จะดําเนินการสาขาข้อยกเว้น',
          customize: 'ไปที่พื้นที่ทํางานเพื่อปรับแต่งตรรกะสาขาที่ล้มเหลว',
          customizeTip: 'เมื่อเปิดใช้งานสาขาล้มเหลว ข้อยกเว้นที่โหนดโยนจะไม่ยุติกระบวนการ แต่จะเรียกใช้สาขาล้มเหลวที่กําหนดไว้ล่วงหน้าโดยอัตโนมัติ ช่วยให้คุณระบุข้อความแสดงข้อผิดพลาด รายงาน การแก้ไข หรือข้ามการดําเนินการได้อย่างยืดหยุ่น',
          inLog: 'ข้อยกเว้นโหนดจะดําเนินการสาขาที่ล้มเหลวโดยอัตโนมัติ เอาต์พุตโหนดจะส่งคืนประเภทข้อผิดพลาดและข้อความแสดงข้อผิดพลาดและส่งต่อไปยังดาวน์สตรีม',
        },
        partialSucceeded: {
          tip: 'มีโหนด {{num}} ในกระบวนการที่ทํางานผิดปกติ โปรดไปที่การติดตามเพื่อตรวจสอบบันทึก',
        },
        title: 'การจัดการข้อผิดพลาด',
        tip: 'กลยุทธ์การจัดการข้อยกเว้น ทริกเกอร์เมื่อโหนดพบข้อยกเว้น',
      },
      retry: {
        retry: 'ลอง',
        retryOnFailure: 'ลองใหม่เมื่อล้มเหลว',
        maxRetries: 'การลองซ้ําสูงสุด',
        retryInterval: 'ช่วงเวลาลองใหม่',
        retryTimes: 'ลอง {{times}} ครั้งเมื่อล้มเหลว',
        retrying: 'กําลังลองซ้ํา...',
        retrySuccessful: 'ลองใหม่สําเร็จ',
        retryFailed: 'ลองใหม่ล้มเหลว',
        retryFailedTimes: '{{times}} การลองซ้ําล้มเหลว',
        times: 'ครั้ง',
        retries: '{{num}} ลอง',
        ms: 'นางสาว',
      },
    },
    start: {
      required: 'ต้องระบุ',
      inputField: 'ฟิลด์อินพุต',
      builtInVar: 'ตัวแปรในตัว',
      outputVars: {
        query: 'การป้อนข้อมูลของผู้ใช้',
        memories: {
          des: 'ประวัติการสนทนา',
          type: 'ประเภทข้อความ',
          content: 'เนื้อหาข้อความ',
        },
        files: 'รายการไฟล์',
      },
      noVarTip: 'ตั้งค่าอินพุตที่สามารถใช้ในเวิร์กโฟลว์',
    },
    end: {
      outputs: 'เอาต์ พุ ต',
      output: {
        type: 'ประเภทเอาต์พุต',
        variable: 'ตัวแปรเอาต์พุต',
      },
      type: {
        'none': 'ไม่มีใคร',
        'plain-text': 'ข้อความธรรมดา',
        'structured': 'โครง สร้าง',
      },
    },
    answer: {
      answer: 'ตอบ',
      outputVars: 'ตัวแปรเอาต์พุต',
    },
    llm: {
      model: 'แบบ',
      variables: 'ตัว แปร',
      context: 'บริบท',
      contextTooltip: 'คุณสามารถนําเข้าความรู้เป็นบริบทได้',
      notSetContextInPromptTip: 'หากต้องการเปิดใช้งานคุณสมบัติบริบท โปรดกรอกตัวแปรบริบทใน PROMPT',
      prompt: 'พร้อมท์',
      roleDescription: {
        system: 'ให้คําแนะนําระดับสูงสําหรับการสนทนา',
        user: 'ให้คําแนะนํา แบบสอบถาม หรือการป้อนข้อมูลตามข้อความใดๆ ไปยังแบบจําลอง',
        assistant: 'การตอบสนองของโมเดลตามข้อความของผู้ใช้',
      },
      addMessage: 'เพิ่มข้อความ',
      vision: 'การมองเห็น',
      files: 'แฟ้ม',
      resolution: {
        name: 'มติ',
        high: 'สูง',
        low: 'ต่ํา',
      },
      outputVars: {
        output: 'สร้างเนื้อหา',
        usage: 'ข้อมูลการใช้งานรุ่น',
      },
      singleRun: {
        variable: 'ตัวแปร',
      },
      sysQueryInUser: 'sys.query ในข้อความผู้ใช้เป็นสิ่งจําเป็น',
    },
    knowledgeRetrieval: {
      queryVariable: 'ตัวแปรแบบสอบถาม',
      knowledge: 'ความรู้',
      outputVars: {
        output: 'การดึงข้อมูลที่แบ่งส่วน',
        content: 'เนื้อหาที่แบ่งกลุ่ม',
        title: 'ชื่อแบ่งส่วน',
        icon: 'ไอคอนแบ่งส่วน',
        url: 'URL ที่แบ่งกลุ่ม',
        metadata: 'ข้อมูลเมตาอื่นๆ',
      },
    },
    http: {
      inputVars: 'ตัวแปรอินพุต',
      api: 'เอพีไอ',
      apiPlaceholder: 'ป้อน URL พิมพ์ \'/\' แทรกตัวแปร',
      extractListPlaceholder: 'ป้อนดัชนีรายการพิมพ์ \'/\' แทรกตัวแปร',
      notStartWithHttp: 'API ควรขึ้นต้นด้วย http:// หรือ https://',
      key: 'กุญแจ',
      type: 'ประเภท',
      value: 'ค่า',
      bulkEdit: 'แก้ไขจํานวนมาก',
      keyValueEdit: 'การแก้ไขคีย์-ค่า',
      headers: 'หัว กระดาษ',
      params: 'พารามิเตอร์',
      body: 'ร่างกาย',
      binaryFileVariable: 'ตัวแปรไฟล์ไบนารี',
      outputVars: {
        body: 'เนื้อหาการตอบกลับ',
        statusCode: 'รหัสสถานะการตอบกลับ',
        headers: 'JSON รายการส่วนหัวการตอบสนอง',
        files: 'รายการไฟล์',
      },
      authorization: {
        'authorization': 'การอนุญาต',
        'authorizationType': 'ประเภทการอนุญาต',
        'no-auth': 'ไม่มีใคร',
        'api-key': 'คีย์ API',
        'auth-type': 'ประเภทการรับรองความถูกต้อง',
        'basic': 'พื้นฐาน',
        'bearer': 'ผู้ถือ',
        'custom': 'ธรรมเนียม',
        'api-key-title': 'คีย์ API',
        'header': 'หัว ข้อ',
      },
      insertVarPlaceholder: 'พิมพ์ \'/\' เพื่อแทรกตัวแปร',
      timeout: {
        title: 'หมดเวลา',
        connectLabel: 'หมดเวลาการเชื่อมต่อ',
        connectPlaceholder: 'ป้อนการหมดเวลาการเชื่อมต่อเป็นวินาที',
        readLabel: 'หมดเวลาการอ่าน',
        readPlaceholder: 'ป้อนหมดเวลาการอ่านเป็นวินาที',
        writeLabel: 'หมดเวลาการเขียน',
        writePlaceholder: 'ป้อนหมดเวลาการเขียนเป็นวินาที',
      },
      curl: {
        title: 'นําเข้าจาก cURL',
        placeholder: 'วางสตริง cURL ที่นี่',
      },
    },
    code: {
      inputVars: 'ตัวแปรอินพุต',
      outputVars: 'ตัวแปรเอาต์พุต',
      advancedDependencies: 'การพึ่งพาขั้นสูง',
      advancedDependenciesTip: 'เพิ่มการพึ่งพาที่โหลดไว้ล่วงหน้าซึ่งใช้เวลามากขึ้นในการใช้หรือไม่ใช่ค่าเริ่มต้นในตัวที่นี่',
      searchDependencies: 'การพึ่งพาการค้นหา',
    },
    templateTransform: {
      inputVars: 'ตัวแปรอินพุต',
      code: 'รหัส',
      codeSupportTip: 'รองรับเฉพาะ Jinja2',
      outputVars: {
        output: 'เนื้อหาที่แปลงโฉม',
      },
    },
    ifElse: {
      if: 'ถ้า',
      else: 'อื่น',
      elseDescription: 'ใช้เพื่อกําหนดตรรกะที่ควรดําเนินการเมื่อไม่ตรงตามเงื่อนไข if',
      and: 'และ',
      or: 'หรือ',
      operator: 'ผู้ปฏิบัติการ',
      notSetVariable: 'โปรดตั้งค่าตัวแปรก่อน',
      comparisonOperator: {
        'contains': 'ประกอบ ด้วย',
        'not contains': 'ไม่มี',
        'start with': 'เริ่มต้นด้วย',
        'end with': 'ลงท้ายด้วย',
        'is': 'คือ',
        'is not': 'ไม่ใช่',
        'empty': 'ว่างเปล่า',
        'not empty': 'ไม่ว่างเปล่า',
        'null': 'เป็นโมฆะ',
        'not null': 'ไม่เป็นโมฆะ',
        'in': 'ใน',
        'not in': 'ไม่อยู่ใน',
        'all of': 'ทั้งหมด',
        'exists': 'อยู่',
        'not exists': 'ไม่มีอยู่จริง',
      },
      optionName: {
        image: 'ภาพ',
        doc: 'เอกสาร',
        audio: 'เสียง',
        video: 'วีดิทัศน์',
        localUpload: 'อัปโหลดในเครื่อง',
        url: 'URL',
      },
      enterValue: 'ป้อนค่า',
      addCondition: 'เพิ่มเงื่อนไข',
      conditionNotSetup: 'เงื่อนไข NOT ตั้งค่า',
      selectVariable: 'เลือกตัวแปร...',
      addSubVariable: 'ตัวแปรย่อย',
      select: 'เลือก',
    },
    variableAssigner: {
      title: 'กําหนดตัวแปร',
      outputType: 'ประเภทเอาต์พุต',
      varNotSet: 'ไม่ได้ตั้งค่าตัวแปร',
      noVarTip: 'เพิ่มตัวแปรที่จะกําหนด',
      type: {
        string: 'เชือก',
        number: 'เลข',
        object: 'วัตถุ',
        array: 'อาร์เรย์',
      },
      aggregationGroup: 'กลุ่มการรวม',
      aggregationGroupTip: 'การเปิดใช้งานคุณลักษณะนี้ช่วยให้ตัวรวบรวมตัวแปรสามารถรวมชุดตัวแปรหลายชุดได้',
      addGroup: 'เพิ่มกลุ่ม',
      outputVars: {
        varDescribe: '{{groupName}} เอาต์พุต',
      },
      setAssignVariable: 'ตั้งค่าตัวแปรกําหนด',
    },
    assigner: {
      'assignedVariable': 'ตัวแปรที่กําหนด',
      'writeMode': 'โหมดเขียน',
      'writeModeTip': 'โหมดผนวก: ใช้ได้กับตัวแปรอาร์เรย์เท่านั้น',
      'over-write': 'เขียน ทับ',
      'append': 'ผนวก',
      'plus': 'บวก',
      'clear': 'ใส',
      'setVariable': 'ตั้งค่าตัวแปร',
      'variable': 'ตัวแปร',
      'operations': {
        'set': 'ชุด',
        'append': 'ผนวก',
        '-=': '-=',
        '*=': '*=',
        'overwrite': 'เขียน ทับ',
        'extend': 'ขยาย',
        'title': 'การผ่าตัด',
        'clear': 'ใส',
        'over-write': 'เขียน ทับ',
        '+=': '+=',
        '/=': '/=',
      },
      'noAssignedVars': 'ไม่มีตัวแปรที่กําหนด',
      'selectAssignedVariable': 'เลือกตัวแปรที่กําหนด...',
      'variables': 'ตัว แปร',
      'varNotSet': 'ตัวแปรไม่ได้ตั้งค่า',
      'assignedVarsDescription': 'ตัวแปรที่กําหนดต้องเป็นตัวแปรที่เขียนได้ เช่น ตัวแปรการสนทนา',
      'noVarTip': 'คลิกปุ่ม "+" เพื่อเพิ่มตัวแปร',
      'setParameter': 'ตั้งค่าพารามิเตอร์...',
    },
    tool: {
      toAuthorize: 'เพื่ออนุญาต',
      inputVars: 'ตัวแปรอินพุต',
      outputVars: {
        text: 'เนื้อหาที่สร้างขึ้นด้วยเครื่องมือ',
        files: {
          title: 'ไฟล์ที่สร้างขึ้นด้วยเครื่องมือ',
          type: 'ประเภทการสนับสนุน ตอนนี้รองรับเฉพาะรูปภาพ',
          transfer_method: 'วิธีการโอน ค่าเป็น remote_url หรือ local_file',
          url: 'URL ของรูปภาพ',
          upload_file_id: 'อัปโหลดรหัสไฟล์',
        },
        json: 'เครื่องมือสร้าง JSON',
      },
    },
    questionClassifiers: {
      model: 'แบบ',
      inputVars: 'ตัวแปรอินพุต',
      outputVars: {
        className: 'ชื่อคลาส',
      },
      class: 'ประเภท',
      classNamePlaceholder: 'เขียนชื่อชั้นเรียนของคุณ',
      advancedSetting: 'การตั้งค่าขั้นสูง',
      topicName: 'ชื่อหัวข้อ',
      topicPlaceholder: 'เขียนชื่อหัวข้อของคุณ',
      addClass: 'เพิ่มชั้นเรียน',
      instruction: 'การสอน',
      instructionTip: 'ป้อนคําแนะนําเพิ่มเติมเพื่อช่วยให้ตัวจําแนกคําถามเข้าใจวิธีจัดหมวดหมู่คําถามได้ดียิ่งขึ้น',
      instructionPlaceholder: 'เขียนคําแนะนําของคุณ',
    },
    parameterExtractor: {
      inputVar: 'ตัวแปรอินพุต',
      extractParameters: 'แยกพารามิเตอร์',
      importFromTool: 'นําเข้าจากเครื่องมือ',
      addExtractParameter: 'เพิ่มพารามิเตอร์การแยกข้อมูล',
      addExtractParameterContent: {
        name: 'ชื่อ',
        namePlaceholder: 'แยกชื่อพารามิเตอร์',
        type: 'ประเภท',
        typePlaceholder: 'แยกประเภทพารามิเตอร์',
        description: 'คำอธิบาย',
        descriptionPlaceholder: 'แยกคําอธิบายพารามิเตอร์',
        required: 'ต้องระบุ',
        requiredContent: 'Required ใช้เป็นข้อมูลอ้างอิงสําหรับการอนุมานแบบจําลองเท่านั้น และไม่ใช่สําหรับการตรวจสอบความถูกต้องของเอาต์พุตพารามิเตอร์ที่จําเป็น',
      },
      extractParametersNotSet: 'ไม่ได้ตั้งค่าพารามิเตอร์การแยกข้อมูล',
      instruction: 'การสอน',
      instructionTip: 'ป้อนคําแนะนําเพิ่มเติมเพื่อช่วยให้ตัวแยกพารามิเตอร์เข้าใจวิธีการแยกพารามิเตอร์',
      advancedSetting: 'การตั้งค่าขั้นสูง',
      reasoningMode: 'โหมดการให้เหตุผล',
      reasoningModeTip: 'คุณสามารถเลือกโหมดการให้เหตุผลที่เหมาะสมตามความสามารถของโมเดลในการตอบสนองต่อคําแนะนําสําหรับการเรียกใช้ฟังก์ชันหรือข้อความแจ้ง',
      isSuccess: 'คือ Success เมื่อสําเร็จค่าคือ 1 เมื่อล้มเหลวค่าเป็น 0',
      errorReason: 'สาเหตุข้อผิดพลาด',
    },
    iteration: {
      deleteTitle: 'ลบโหนดการทําซ้ํา?',
      deleteDesc: 'การลบโหนดการวนซ้ําจะเป็นการลบโหนดย่อยทั้งหมด',
      input: 'อินพุต',
      output: 'ตัวแปรเอาต์พุต',
      iteration_one: '{{นับ}} เกิด ซ้ำ',
      iteration_other: '{{นับ}} เกิด ซ้ำ',
      currentIteration: 'การทําซ้ําปัจจุบัน',
      comma: ',',
      error_one: '{{นับ}} ความผิดพลาด',
      error_other: '{{นับ}} ข้อ ผิด พลาด',
      parallelMode: 'โหมดขนาน',
      parallelModeUpper: 'โหมดขนาน',
      parallelModeEnableTitle: 'เปิดใช้งานโหมดขนาน',
      parallelModeEnableDesc: 'ในโหมดขนาน งานภายในการทําซ้ําจะสนับสนุนการดําเนินการแบบขนาน คุณสามารถกําหนดค่านี้ได้ในแผงคุณสมบัติทางด้านขวา',
      parallelPanelDesc: 'ในโหมดขนาน งานในการวนซ้ําจะสนับสนุนการดําเนินการแบบขนาน',
      MaxParallelismTitle: 'ความขนานสูงสุด',
      MaxParallelismDesc: 'ความขนานสูงสุดใช้เพื่อควบคุมจํานวนงานที่ดําเนินการพร้อมกันในการทําซ้ําครั้งเดียว',
      errorResponseMethod: 'วิธีการตอบสนองข้อผิดพลาด',
      ErrorMethod: {
        operationTerminated: 'ยก เลิก',
        continueOnError: 'ดําเนินการต่อเมื่อเกิดข้อผิดพลาด',
        removeAbnormalOutput: 'ลบเอาต์พุตที่ผิดปกติ',
      },
      answerNodeWarningDesc: 'คําเตือนโหมดคู่ขนาน: โหนดคําตอบ การกําหนดตัวแปรการสนทนา และการดําเนินการอ่าน/เขียนแบบถาวรภายในการวนซ้ําอาจทําให้เกิดข้อยกเว้น',
    },
    note: {
      addNote: 'เพิ่มหมายเหตุ',
      editor: {
        placeholder: 'เขียนบันทึกของคุณ...',
        small: 'เล็ก',
        medium: 'ปานกลาง',
        large: 'ใหญ่',
        bold: 'กล้า',
        italic: 'ตัวเอียง',
        strikethrough: 'ขีดทับ',
        link: 'ลิงก์',
        openLink: 'เปิด',
        unlink: 'ยก เลิก',
        enterUrl: 'ป้อน URL...',
        invalidUrl: 'URL ไม่ถูกต้อง',
        bulletList: 'รายการสัญลักษณ์แสดงหัวข้อย่อย',
        showAuthor: 'แสดงผู้เขียน',
      },
    },
    docExtractor: {
      inputVar: 'ตัวแปรอินพุต',
      outputVars: {
        text: 'ข้อความที่แยกออกมา',
      },
      supportFileTypes: 'ประเภทไฟล์ที่รองรับ: {{types}}',
      learnMore: 'ศึกษาเพิ่มเติม',
    },
    listFilter: {
      inputVar: 'ตัวแปรอินพุต',
      filterCondition: 'เงื่อนไขการกรอง',
      filterConditionKey: 'คีย์เงื่อนไขตัวกรอง',
      extractsCondition: 'แยกรายการ N',
      filterConditionComparisonOperator: 'ตัวดําเนินการเปรียบเทียบเงื่อนไขตัวกรอง',
      filterConditionComparisonValue: 'ค่าเงื่อนไขตัวกรอง',
      selectVariableKeyPlaceholder: 'เลือกคีย์ตัวแปรย่อย',
      limit: 'ด้านบน N',
      orderBy: 'สั่งซื้อโดย',
      asc: 'เอเอสซี',
      desc: 'สูง สุด',
      outputVars: {
        result: 'กรองผลลัพธ์',
        first_record: 'บันทึกแรก',
        last_record: 'บันทึกล่าสุด',
      },
    },
    agent: {
      strategy: {
        label: 'กลยุทธ์ตัวแทน',
        tooltip: 'กลยุทธ์ Agentic ที่แตกต่างกันกําหนดวิธีที่ระบบวางแผนและดําเนินการเรียกใช้เครื่องมือหลายขั้นตอน',
        configureTipDesc: 'หลังจากกําหนดค่ากลยุทธ์ตัวแทนโหนดนี้จะโหลดการกําหนดค่าที่เหลือโดยอัตโนมัติ กลยุทธ์จะส่งผลต่อกลไกการให้เหตุผลของเครื่องมือหลายขั้นตอน',
        configureTip: 'โปรดกําหนดค่ากลยุทธ์เอเจนต์',
        searchPlaceholder: 'กลยุทธ์ตัวแทนการค้นหา',
        selectTip: 'เลือกกลยุทธ์ตัวแทน',
        shortLabel: 'ยุทธศาสตร์',
      },
      pluginInstaller: {
        installing: 'ติด ตั้ง',
        install: 'ติดตั้ง',
      },
      modelNotInMarketplace: {
        desc: 'โมเดลนี้ติดตั้งจากที่เก็บในเครื่องหรือ GitHub กรุณาใช้หลังการติดตั้ง',
        title: 'ไม่ได้ติดตั้งรุ่น',
        manageInPlugins: 'จัดการในปลั๊กอิน',
      },
      modelNotSupport: {
        descForVersionSwitch: 'เวอร์ชันปลั๊กอินที่ติดตั้งไม่มีรุ่นนี้ คลิกเพื่อเปลี่ยนเวอร์ชัน',
        title: 'รุ่นที่ไม่รองรับ',
        desc: 'เวอร์ชันปลั๊กอินที่ติดตั้งไม่มีรุ่นนี้',
      },
      modelSelectorTooltips: {
        deprecated: 'โมเดลนี้เลิกใช้แล้ว',
      },
      outputVars: {
        files: {
          transfer_method: 'วิธีการโอน ค่าเป็น remote_url หรือ local_file',
          upload_file_id: 'อัปโหลดรหัสไฟล์',
          url: 'URL ของรูปภาพ',
          title: 'ไฟล์ที่สร้างตัวแทน',
          type: 'ประเภทการสนับสนุน ตอนนี้รองรับเฉพาะรูปภาพ',
        },
        text: 'เนื้อหาที่สร้างตัวแทน',
        json: 'ตัวแทนสร้าง JSON',
      },
      checkList: {
        strategyNotSelected: 'ไม่ได้เลือกกลยุทธ์',
      },
      installPlugin: {
        changelog: 'บันทึกการเปลี่ยนแปลง',
        install: 'ติดตั้ง',
        desc: 'เกี่ยวกับการติดตั้งปลั๊กอินต่อไปนี้',
        title: 'ติดตั้งปลั๊กอิน',
        cancel: 'ยกเลิก',
      },
      toolbox: 'เครื่อง มือ',
      maxIterations: 'การทําซ้ําสูงสุด',
      strategyNotFoundDescAndSwitchVersion: 'เวอร์ชันปลั๊กอินที่ติดตั้งไม่มีกลยุทธ์นี้ คลิกเพื่อเปลี่ยนเวอร์ชัน',
      pluginNotInstalledDesc: 'ปลั๊กอินนี้ติดตั้งจาก GitHub โปรดไปที่ปลั๊กอินเพื่อติดตั้งใหม่',
      pluginNotInstalled: 'ไม่ได้ติดตั้งปลั๊กอินนี้',
      toolNotInstallTooltip: '{{tool}} ไม่ได้ติดตั้ง',
      modelNotInstallTooltip: 'ไม่ได้ติดตั้งรุ่นนี้',
      model: 'แบบ',
      strategyNotFoundDesc: 'เวอร์ชันปลั๊กอินที่ติดตั้งไม่มีกลยุทธ์นี้',
      toolNotAuthorizedTooltip: '{{เครื่องมือ}} ไม่ได้รับอนุญาต',
      unsupportedStrategy: 'กลยุทธ์ที่ไม่รองรับ',
      strategyNotSet: 'ไม่ได้ตั้งค่ากลยุทธ์ตัวแทน',
      learnMore: 'ศึกษาเพิ่มเติม',
      pluginNotFoundDesc: 'ปลั๊กอินนี้ติดตั้งจาก GitHub โปรดไปที่ปลั๊กอินเพื่อติดตั้งใหม่',
      notAuthorized: 'ไม่ได้รับอนุญาต',
      configureModel: 'กําหนดค่าแบบจําลอง',
      strategyNotInstallTooltip: '{{strategy}} ไม่ได้ติดตั้ง',
      tools: 'เครื่อง มือ',
      modelNotSelected: 'ไม่ได้เลือกรุ่น',
      linkToPlugin: 'ลิงก์ไปยังปลั๊กอิน',
    },
  },
  tracing: {
    stopBy: 'แวะที่ {{user}}',
  },
  variableReference: {
    conversationVars: 'ตัวแปรการสนทนา',
    noVarsForOperation: 'ไม่มีตัวแปรที่พร้อมใช้งานสําหรับการกําหนดด้วยการดําเนินการที่เลือก',
    noAvailableVars: 'ไม่มีตัวแปรที่ใช้ได้',
    assignedVarsDescription: 'ตัวแปรที่กําหนดต้องเป็นตัวแปรที่เขียนได้ เช่น',
    noAssignedVars: 'ไม่มีตัวแปรที่กําหนด',
  },
}

export default translation
