feat: add Thai language support (100% Thai UI)

- Add locales/th.json with 629 translated keys
- Add Thai to languages.json with llmInstruction for report generation
- Backend auto-loads new locale files from locales/ directory
This commit is contained in:
Kunthawat Greethong
2026-06-17 12:38:33 +07:00
parent 9f2232d40b
commit 8a09a49029
2 changed files with 669 additions and 0 deletions

View File

@@ -26,5 +26,9 @@
"de": {
"label": "Deutsch",
"llmInstruction": "Bitte antworten Sie auf Deutsch."
},
"th": {
"label": "ไทย",
"llmInstruction": "กรุณาตอบเป็นภาษาไทย"
}
}

665
locales/th.json Normal file
View File

@@ -0,0 +1,665 @@
{
"common": {
"confirm": "ยืนยัน",
"cancel": "ยกเลิก",
"loading": "กำลังโหลด...",
"error": "ข้อผิดพลาด",
"success": "สำเร็จ",
"completed": "เสร็จสมบูรณ์",
"processing": "กำลังสร้าง",
"pending": "รอดำเนินการ",
"ready": "พร้อม",
"running": "กำลังทำงาน",
"failed": "ล้มเหลว",
"unknown": "ไม่ทราบ",
"unknownError": "ข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"none": "ไม่มี",
"close": "ปิด",
"back": "ย้อนกลับ",
"next": "ถัดไป",
"retry": "ลองใหม่",
"noData": "ไม่มีข้อมูล",
"hours": "ชั่วโมง",
"minutes": "นาที",
"rounds": "รอบ",
"items": "รายการ",
"files": "ไฟล์"
},
"meta": {
"title": "MiroFish - พยากรณ์ทุกสิ่ง",
"description": "MiroFish - ระบบจำลองความคิดเห็นบนโซเชียลมีเดีย"
},
"nav": {
"visitGithub": "เยี่ยมชมหน้า Github ของเรา"
},
"home": {
"tagline": "เครื่องมือ Swarm Intelligence ที่กระชับและใช้ได้ครอบคลุม",
"version": "/ v0.1-Preview",
"heroTitle1": "อัปโหลดรายงาน,",
"heroTitle2": "พยากรณ์อนาคต",
"heroDesc": "จากเอกสารเพียงชิ้นเดียว {brand} จะสกัดเมล็ดพันธุ์แห่งความจริงเพื่อสร้างโลกคู่ขนานโดยอัตโนมัติที่มี Agent ได้สูงสุดถึง {agentScale} ฉีดตัวแปรจากมุมมองเหนือกว่าเพื่อค้นหา {optimalSolution} ในพลวัตกลุ่มที่ซับซ้อน",
"heroDescBrand": "MiroFish",
"heroDescAgentScale": "ระดับล้าน Agent",
"heroDescOptimalSolution": "\"ค่าเหมาะสมเฉพาะที่\"",
"slogan": "ให้ Agent ซักซ้อมอนาคต ให้การตัดสินใจเป็นผู้ชนะ",
"systemStatus": "สถานะระบบ",
"systemReady": "พร้อม",
"systemReadyDesc": "เครื่องมือพยากรณ์อยู่ในโหมดสแตนด์บาย อัปโหลดข้อมูลที่ไม่มีโครงสร้างเพื่อเริ่มลำดับการจำลอง",
"metricLowCost": "ต้นทุนต่ำ",
"metricLowCostDesc": "เฉลี่ย $5/การจำลอง",
"metricHighAvail": "ปรับขนาดได้",
"metricHighAvailDesc": "Agent นับล้าน",
"workflowSequence": "ขั้นตอนการทำงาน",
"step01Title": "สร้างกราฟ",
"step01Desc": "สกัดเมล็ดพันธุ์ & ฉีดความจำ & สร้าง GraphRAG",
"step02Title": "ตั้งค่าสภาพแวดล้อม",
"step02Desc": "สกัดเอนทิตี & สร้างบุคลิกภาพ & ฉีดค่าตั้ง Agent",
"step03Title": "การจำลอง",
"step03Desc": "จำลองคู่ขนานสองแพลตฟอร์ม & วิเคราะห์ความต้องการอัตโนมัติ & ความจำเชิงเวลา",
"step04Title": "รายงาน",
"step04Desc": "Report Agent โต้ตอบกับสภาพแวดล้อมหลังการจำลองผ่านเครื่องมือครบครัน",
"step05Title": "การโต้ตอบ",
"step05Desc": "สนทนากับบุคคลที่จำลอง & พูดคุยกับ Report Agent",
"realitySeed": "01 / เมล็ดพันธุ์แห่งความจริง",
"supportedFormats": "รูปแบบ: PDF, MD, TXT",
"dragToUpload": "ลากไฟล์เพื่ออัปโหลด",
"orBrowse": "หรือคลิกเพื่อเลือกไฟล์",
"inputParams": "พารามิเตอร์นำเข้า",
"simulationPrompt": ">_ 02 / คำสั่งจำลอง",
"promptPlaceholder": "// อธิบายความต้องการในการจำลองหรือพยากรณ์ของคุณเป็นภาษาธรรมชาติ",
"engineBadge": "Engine: MiroFish-V1.0",
"startEngine": "เริ่ม Engine",
"initializing": "กำลังเริ่มต้น..."
},
"main": {
"layoutGraph": "กราฟ",
"layoutSplit": "แบ่งหน้าจอ",
"layoutWorkbench": "พื้นที่ทำงาน",
"stepNames": ["สร้างกราฟ", "ตั้งค่าสภาพแวดล้อม", "จำลอง", "สร้างรายงาน", "โต้ตอบเชิงลึก"]
},
"step1": {
"ontologyGeneration": "การสร้างออนโทโลยี",
"ontologyCompleted": "สำเร็จ",
"ontologyGenerating": "กำลังสร้าง",
"ontologyPending": "รอดำเนินการ",
"ontologyDesc": "LLM วิเคราะห์เนื้อหาเอกสารและความต้องการในการจำลอง สกัดเมล็ดพันธุ์แห่งความจริง และสร้างโครงสร้างออนโทโลยีที่เหมาะสมโดยอัตโนมัติ",
"analyzingDocs": "กำลังวิเคราะห์เอกสาร...",
"graphRagBuild": "สร้าง GraphRAG",
"graphRagDesc": "จากออนโทโลยีที่สร้างขึ้น เอกสารจะถูกแบ่งเป็นส่วนย่อยโดยอัตโนมัติและส่งไปยัง Zep เพื่อสร้างกราฟความรู้ สกัดเอนทิตีและความสัมพันธ์ สร้างความจำเชิงเวลาและบทสรุปชุมชน",
"entityNodes": "โหนดเอนทิตี",
"relationEdges": "เส้นเชื่อมความสัมพันธ์",
"schemaTypes": "ประเภท Schema",
"buildComplete": "สร้างเสร็จสมบูรณ์",
"buildCompleteDesc": "การสร้างกราฟเสร็จสมบูรณ์ ดำเนินการขั้นตอนถัดไปเพื่อตั้งค่าสภาพแวดล้อมจำลอง",
"inProgress": "กำลังดำเนินการ",
"creating": "กำลังสร้าง...",
"enterEnvSetup": "เข้าสู่การตั้งค่าสภาพแวดล้อม",
"createSimulationFailed": "สร้างการจำลองล้มเหลว: {error}",
"createSimulationException": "เกิดข้อผิดพลาดในการสร้างการจำลอง: {error}"
},
"step2": {
"simInstanceInit": "เริ่มต้นอินสแตนซ์การจำลอง",
"simInstanceDesc": "สร้างอินสแตนซ์การจำลองใหม่และดึงเทมเพลตพารามิเตอร์โลก",
"asyncTaskDone": "งานแบบอะซิงโครนัสเสร็จสมบูรณ์",
"generateAgentPersona": "สร้างบุคลิกภาพ Agent",
"generateAgentPersonaDesc": "ผสานบริบทเพื่อสกัดเอนทิตีและความสัมพันธ์จากกราฟความรู้โดยอัตโนมัติ เริ่มต้นบุคคลที่จำลอง และกำหนดพฤติกรรมและความจำที่เป็นเอกลักษณ์จากเมล็ดพันธุ์แห่งความจริง",
"currentAgentCount": "Agent ปัจจุบัน",
"expectedAgentTotal": "Agent ทั้งหมดที่คาดหวัง",
"relatedTopicsCount": "หัวข้อที่เกี่ยวข้องกับเมล็ดพันธุ์แห่งความจริง",
"generatedAgentPersonas": "บุคลิกภาพ Agent ที่สร้างแล้ว",
"unknownProfession": "ไม่ทราบอาชีพ",
"noBio": "ไม่มีประวัติย่อ",
"dualPlatformConfig": "สร้างค่าตั้งสองแพลตฟอร์ม",
"dualPlatformConfigDesc": "LLM ตั้งค่าการไหลของเวลาโลก ขั้นตอนการแนะนำ ชั่วโมงที่ใช้งานของแต่ละบุคคล ความถี่ในการโพสต์ ตัวกระตุ้นเหตุการณ์ และอื่นๆ อย่างชาญฉลาดตามความต้องการและเมล็ดพันธุ์แห่งความจริง",
"simulationDuration": "ระยะเวลาจำลอง",
"roundDuration": "ระยะเวลาต่อรอบ",
"totalRounds": "รอบทั้งหมด",
"activePerHour": "ใช้งานต่อชั่วโมง",
"peakHours": "ชั่วโมงเร่งด่วน",
"workHours": "ชั่วโมงทำงาน",
"morningHours": "ชั่วโมงเช้า",
"offPeakHours": "ชั่วโมงนอกเวลาเร่งด่วน",
"agentConfig": "ค่าตั้ง Agent",
"activeTimePeriod": "ชั่วโมงที่ใช้งาน",
"postsPerHour": "โพสต์/ชม.",
"commentsPerHour": "ความคิดเห็น/ชม.",
"responseDelay": "ความล่าช้าในการตอบ",
"activityLevel": "ระดับกิจกรรม",
"sentimentBias": "อคติด้านความรู้สึก",
"influenceWeight": "อิทธิพล",
"recommendAlgoConfig": "ค่าตั้งขั้นตอนการแนะนำ",
"platform1Name": "แพลตฟอร์ม 1: Plaza / Feed",
"platform2Name": "แพลตฟอร์ม 2: Topic / Community",
"recencyWeight": "น้ำหนักความใหม่",
"popularityWeight": "น้ำหนักความนิยม",
"relevanceWeight": "น้ำหนักความเกี่ยวข้อง",
"viralThreshold": "เกณฑ์ไวรัล",
"echoChamberStrength": "ความแข็งแกร่งของ Echo Chamber",
"llmConfigReasoning": "เหตุผลค่าตั้ง LLM",
"initialActivation": "การจัดลำดับการเปิดใช้งานเบื้องต้น",
"initialActivationDesc": "สร้างเหตุการณ์เปิดใช้งานเบื้องต้นและหัวข้อยอดนิยมโดยอัตโนมัติตามทิศทางเรื่องราวเพื่อกำหนดสถานะเริ่มต้นของโลกจำลอง",
"orchestrating": "กำลังจัดลำดับ",
"narrativeDirection": "ทิศทางเรื่องราว",
"initialHotTopics": "หัวข้อยอดนิยมเบื้องต้น",
"initialActivationSeq": "ลำดับการเปิดใช้งานเบื้องต้น ({count})",
"setupComplete": "ตั้งค่าเสร็จสมบูรณ์",
"setupCompleteDesc": "สภาพแวดล้อมจำลองพร้อมแล้ว คุณสามารถเริ่มการจำลองได้",
"roundsConfig": "กำหนดค่ารอบการจำลอง",
"roundsConfigDesc": "MiroFish วางแผนอัตโนมัติเพื่อจำลอง {hours} ชั่วโมงโลกจริง แต่ละรอบแทนเวลาที่ผ่านไป {minutesPerRound} นาที",
"customToggle": "กำหนดเอง",
"roundsUnit": "รอบ",
"estimatedDuration": "สำหรับ 100 Agent: ประมาณ ~{minutes} นาที",
"estimatedDurationFull": "สำหรับ 100 Agent: ประมาณ {minutes} นาที",
"recommendedRounds": "{rounds} (แนะนำ)",
"customTip": "สำหรับการรันครั้งแรก แนะนำให้สลับไป 'โหมดกำหนดเอง' เพื่อลดรอบสำหรับดูตัวอย่างอย่างรวดเร็วและลดความเสี่ยงข้อผิดพลาด",
"backToGraphBuild": "ย้อนกลับไปสร้างกราฟ",
"startDualWorldSim": "เริ่มจำลองคู่ขนานสองโลก",
"profileModalAge": "อายุที่ปรากฏ",
"profileModalGender": "เพศที่ปรากฏ",
"profileModalCountry": "ประเทศ/ภูมิภาค",
"profileModalMbti": "MBTI ที่ปรากฏ",
"profileModalBio": "ประวัติบุคลิกภาพ",
"profileModalTopics": "หัวข้อที่เกี่ยวข้องกับเมล็ดพันธุ์แห่งความจริง",
"profileModalPersona": "ภูมิหลังบุคลิกภาพโดยละเอียด",
"personaDimExperience": "ประสบการณ์เหตุการณ์เต็มรูปแบบ",
"personaDimExperienceDesc": "เส้นทางพฤติกรรมที่สมบูรณ์ในเหตุการณ์นี้",
"personaDimBehavior": "โปรไฟล์พฤติกรรม",
"personaDimBehaviorDesc": "สรุปประสบการณ์และความชอบด้านพฤติกรรม",
"personaDimMemory": "รอยประทับความจำที่เป็นเอกลักษณ์",
"personaDimMemoryDesc": "ความจำที่เกิดจากเมล็ดพันธุ์แห่งความจริง",
"personaDimSocial": "เครือข่ายสังคม",
"personaDimSocialDesc": "การเชื่อมต่อระหว่างบุคคลและกราฟการโต้ตอบ",
"genderMale": "ชาย",
"genderFemale": "หญิง",
"genderOther": "อื่นๆ",
"yearsOld": "ปี",
"initializing": "กำลังเริ่มต้น",
"generating": "กำลังสร้าง"
},
"step3": {
"startGenerateReport": "สร้างรายงาน",
"generatingReport": "กำลังเริ่ม...",
"waitingForActions": "รอการกระทำของ Agent...",
"errorMissingSimId": "ข้อผิดพลาด: ไม่พบ simulationId",
"startingDualSim": "กำลังเริ่มจำลองคู่ขนานสองแพลตฟอร์ม...",
"graphMemoryUpdateEnabled": "เปิดใช้งานการอัปเดตความจำกราฟแบบไดนามิก",
"setMaxRounds": "ตั้งรอบจำลองสูงสุด: {rounds}",
"oldSimCleared": "ล้างบันทึกการจำลองเก่าแล้ว กำลังเริ่มการจำลองใหม่",
"engineStarted": "เริ่มเครื่องมือจำลองสำเร็จ",
"startFailed": "เริ่มล้มเหลว: {error}",
"startException": "เกิดข้อผิดพลาดในการเริ่ม: {error}",
"stoppingSim": "กำลังหยุดการจำลอง...",
"simStopped": "หยุดการจำลองแล้ว",
"stopFailed": "หยุดล้มเหลว: {error}",
"stopException": "เกิดข้อผิดพลาดในการหยุด: {error}",
"allPlatformsCompleted": "การจำลองทุกแพลตฟอร์มสิ้นสุดแล้ว",
"simCompleted": "การจำลองเสร็จสมบูรณ์",
"graphRealtimeRefresh": "เปิดใช้การรีเฟรชกราฟแบบเรียลไทม์ (30วินาที)",
"graphRefreshStopped": "หยุดการรีเฟรชกราฟแบบเรียลไทม์แล้ว",
"preparingGoBack": "กำลังเตรียมกลับขั้นตอนที่ 2 กำลังปิดการจำลอง...",
"closingSimEnv": "กำลังปิดสภาพแวดล้อมจำลอง...",
"simEnvClosed": "ปิดสภาพแวดล้อมจำลองแล้ว",
"closeFailed": "ปิดสภาพแวดล้อมจำลองล้มเหลว กำลังพยายามบังคับหยุด...",
"stoppingProcess": "กำลังหยุดกระบวนการจำลอง...",
"checkStatusFailed": "ตรวจสอบสถานะการจำลองล้มเหลว: {error}",
"forceStopSuccess": "บังคับหยุดการจำลองแล้ว",
"forceStopFailed": "บังคับหยุดล้มเหลว: {error}",
"startGenerateReportBtn": "สร้างรายงาน",
"generatingReportBtn": "กำลังเริ่ม..."
},
"step4": {
"generatingSection": "กำลังสร้าง {title}...",
"goToInteraction": "เข้าสู่การโต้ตอบเชิงลึก",
"waitingForReportAgent": "รอ Report Agent...",
"collapse": "ย่อ ▲",
"expandAll": "แสดงทั้งหมด {count} ▼",
"expandAllEntities": "แสดงทั้งหมด {count} ▼",
"scenarioLabel": "สถานการณ์: ",
"tabKeyFacts": "ข้อเท็จจริงสำคัญ ({count})",
"tabCoreEntities": "เอนทิตีหลัก ({count})",
"tabRelationChains": "สายโซ่ความสัมพันธ์ ({count})",
"tabSubQueries": "คำถามย่อย ({count})",
"panelKeyFacts": "ข้อเท็จจริงสำคัญล่าสุดจากความจำเชิงเวลา",
"totalCount": "ทั้งหมด {count}",
"totalEntityCount": "ทั้งหมด {count}",
"panelCoreEntities": "เอนทิตีหลัก",
"factCount": "{count} ข้อเท็จจริง",
"panelRelationChains": "สายโซ่ความสัมพันธ์",
"panelSubQueries": "คำถามย่อยจากการวิเคราะห์แบบ Drift",
"emptyKeyFacts": "ไม่มีข้อเท็จจริงสำคัญ",
"emptyCoreEntities": "ไม่มีเอนทิตีหลัก",
"emptyRelationChains": "ไม่มีสายโซ่ความสัมพันธ์",
"tabActiveFacts": "ข้อเท็จจริงที่ใช้งาน ({count})",
"tabHistoricalFacts": "ข้อเท็จจริงในอดีต ({count})",
"tabEntities": "เอนทิตี ({count})",
"panelActiveFacts": "ข้อเท็จจริงที่ใช้งาน",
"emptyActiveFacts": "ไม่มีข้อเท็จจริงที่ใช้งาน",
"panelHistoricalFacts": "ข้อเท็จจริงในอดีต",
"emptyHistoricalFacts": "ไม่มีข้อเท็จจริงในอดีต",
"panelEntities": "เอนทิตี",
"emptyEntities": "ไม่มีเอนทิตี",
"searchLabel": "ค้นหา: ",
"tabFacts": "ข้อเท็จจริง ({count})",
"tabEdges": "เส้นเชื่อม ({count})",
"tabNodes": "โหนด ({count})",
"panelSearchResults": "ผลการค้นหา",
"emptySearchResults": "ไม่พบผลลัพธ์",
"panelRelatedEdges": "เส้นเชื่อมที่เกี่ยวข้อง",
"panelRelatedNodes": "โหนดที่เกี่ยวข้อง",
"world1": "โลกที่ 1",
"world2": "โลกที่ 2"
},
"step5": {
"interactiveTools": "เครื่องมือโต้ตอบ",
"agentsAvailable": "มี {count} Agent พร้อมใช้งาน",
"chatWithReportAgent": "สนทนากับ Report Agent",
"chatWithAgent": "สนทนากับบุคคลในโลกจำลอง",
"selectChatTarget": "เลือกเป้าหมายสนทนา",
"sendSurvey": "ส่งแบบสำรวจไปยังโลกจำลอง",
"reportAgentChat": "Report Agent - สนทนา",
"reportAgentDesc": "เวอร์ชันสนทนาของ Agent สร้างรายงาน พร้อมเข้าถึงเครื่องมือมืออาชีพ 4 ชิ้นและความจำครบถ้วนของ MiroFish",
"toolInsightForge": "InsightForge การวิเคราะห์เชิงลึก",
"toolInsightForgeDesc": "ปรับข้อมูลเมล็ดพันธุ์แห่งความจริงให้ตรงกับสถานะการจำลอง ผสาน Global/Local Memory สำหรับการวิเคราะห์เชิงลึกข้ามเวลา",
"toolPanoramaSearch": "PanoramaSearch การติดตามครบถ้วน",
"toolPanoramaSearchDesc": "อัลกอริทึม BFS บนกราฟที่สร้างเส้นทางการแพร่กระจายของเหตุการณ์ขึ้นใหม่ จับภาพโทโพโลยีเต็มรูปแบบของการไหลข้อมูล",
"toolQuickSearch": "QuickSearch การค้นหาอย่างรวดเร็ว",
"toolQuickSearchDesc": "อินเทอร์เฟซสืบค้นทันทีบน GraphRAG พร้อมดัชนีที่ปรับปรุงสำหรับสกัดคุณสมบัติโหนดและข้อเท็จจริงแยกส่วนอย่างรวดเร็ว",
"toolInterviewSubAgent": "InterviewSubAgent การสัมภาษณ์เสมือน",
"toolInterviewSubAgentDesc": "การสัมภาษณ์อิสระที่ดำเนินบทสนทนาหลายรอบแบบคู่ขนานกับบุคคลที่จำลอง เก็บข้อมูลความคิดเห็นที่ไม่มีโครงสร้างและสถานะทางจิตวิทยา",
"profileBio": "ประวัติย่อ",
"chatEmptyReportAgent": "สนทนากับ Report Agent เพื่อสำรวจเนื้อหารายงานเชิงลึก",
"chatEmptyAgent": "สนทนากับบุคคลที่จำลองเพื่อเข้าใจมุมมองของพวกเขา",
"chatInputPlaceholder": "พิมพ์คำถามของคุณ...",
"selectSurveyTarget": "เลือกเป้าหมายแบบสำรวจ",
"selectedCount": "เลือกแล้ว {selected} / {total}",
"surveyQuestions": "คำถามแบบสำรวจ",
"surveyInputPlaceholder": "กรอกคำถามที่ต้องการถามเป้าหมายที่เลือกทั้งหมด...",
"submitSurvey": "ส่งแบบสำรวจ",
"surveyResults": "ผลแบบสำรวจ",
"surveyResultsCount": "{count} คำตอบ",
"selectAll": "เลือกทั้งหมด",
"clearSelection": "ล้าง",
"errorOccurred": "ขออภัย เกิดข้อผิดพลาด: {error}",
"noResponse": "ไม่มีคำตอบ",
"requestFailed": "คำขอล้มเหลว",
"selectAgentFirst": "กรุณาเลือกบุคคลที่จำลองก่อน"
},
"graph": {
"panelTitle": "การแสดงผลความสัมพันธ์กราฟ",
"refreshGraph": "รีเฟรชกราฟ",
"graphMemoryRealtime": "GraphRAG ความจำระยะสั้น/ยาวกำลังอัปเดตแบบเรียลไทม์",
"realtimeUpdating": "กำลังอัปเดตแบบเรียลไทม์...",
"pendingContentHint": "บางเนื้อหายังอยู่ระหว่างการประมวลผล ควรรีเฟรชกราฟด้วยตนเองในภายหลัง",
"nodeDetails": "รายละเอียดโหนด",
"relationship": "ความสัมพันธ์",
"graphDataLoading": "กำลังโหลดข้อมูลกราฟ...",
"waitingOntology": "รอการสร้างออนโทโลยี...",
"toggleMaximize": "ขยาย/คืนค่า",
"closeHint": "ปิดคำแนะนำ"
},
"history": {
"title": "ประวัติการจำลอง",
"graphBuild": "สร้างกราฟ",
"envSetup": "ตั้งค่าสภาพแวดล้อม",
"analysisReport": "รายงานวิเคราะห์",
"moreFiles": "+{count} ไฟล์",
"noFiles": "ไม่มีไฟล์",
"loadingText": "กำลังโหลด...",
"simRequirement": "ความต้องการจำลอง",
"relatedFiles": "ไฟล์ที่เกี่ยวข้อง",
"noRelatedFiles": "ไม่มีไฟล์ที่เกี่ยวข้อง",
"replayTitle": "เล่นซ้ำการจำลอง",
"step1Button": "สร้างกราฟ",
"step2Button": "ตั้งค่าสภาพแวดล้อม",
"step4Button": "รายงานวิเคราะห์",
"replayHint": "ขั้นตอนที่ 3 'จำลอง' และขั้นตอนที่ 5 'โต้ตอบเชิงลึก' ต้องเริ่มในระหว่างรันไทม์และไม่รองรับการเล่นซ้ำจากประวัติ",
"notStarted": "ยังไม่เริ่ม",
"roundsProgress": "{current}/{total} รอบ",
"untitledSimulation": "การจำลองไม่มีชื่อ",
"unknownFile": "ไม่ทราบไฟล์"
},
"api": {
"projectNotFound": "ไม่พบโปรเจกต์: {id}",
"projectDeleteFailed": "ไม่พบโปรเจกต์หรือลบล้มเหลว: {id}",
"projectDeleted": "ลบโปรเจกต์แล้ว: {id}",
"projectReset": "รีเซ็ตโปรเจกต์แล้ว: {id}",
"requireSimulationRequirement": "กรุณาระบุความต้องการจำลอง (simulation_requirement)",
"requireFileUpload": "กรุณาอัปโหลดเอกสารอย่างน้อยหนึ่งไฟล์",
"noDocProcessed": "ไม่มีเอกสารใดถูกประมวลผลสำเร็จ กรุณาตรวจสอบรูปแบบไฟล์",
"requireProjectId": "กรุณาระบุ project_id",
"configError": "ข้อผิดพลาดในการกำหนดค่า: {details}",
"zepApiKeyMissing": "ยังไม่ได้ตั้งค่า ZEP_API_KEY",
"ontologyNotGenerated": "ยังไม่ได้สร้างออนโทโลยี กรุณาเรียก /ontology/generate ก่อน",
"graphBuilding": "กำลังสร้างกราฟ อย่าส่งซ้ำ หากต้องการสร้างใหม่ เพิ่ม force: true",
"textNotFound": "ไม่พบเนื้อหาข้อความที่สกัดแล้ว",
"ontologyNotFound": "ไม่พบคำจำกัดความออนโทโลยี",
"graphBuildStarted": "เริ่มงานสร้างกราฟแล้ว สอบถามความคืบหน้าผ่าน /task/{taskId}",
"graphBuildComplete": "สร้างกราฟเสร็จสมบูรณ์",
"buildFailed": "สร้างล้มเหลว: {error}",
"taskNotFound": "ไม่พบงาน: {id}",
"graphDeleted": "ลบกราฟแล้ว: {id}",
"entityNotFound": "ไม่พบเอนทิตี: {id}",
"graphNotBuilt": "ยังไม่ได้สร้างกราฟ กรุณาเรียก /api/graph/build ก่อน",
"requireSimulationId": "กรุณาระบุ simulation_id",
"simulationNotFound": "ไม่พบการจำลอง: {id}",
"projectMissingRequirement": "โปรเจกต์ขาดความต้องการจำลอง (simulation_requirement)",
"prepareStarted": "เริ่มงานเตรียมการแล้ว สอบถามความคืบหน้าผ่าน /api/simulation/prepare/status",
"alreadyPrepared": "เตรียมการเสร็จสมบูรณ์แล้ว ไม่จำเป็นต้องสร้างใหม่",
"notStartedPrepare": "ยังไม่ได้เริ่มเตรียมการ กรุณาเรียก /api/simulation/prepare",
"taskCompletedPrepared": "งานเสร็จสมบูรณ์ (มีการเตรียมการอยู่แล้ว)",
"requireTaskOrSimId": "กรุณาระบุ task_id หรือ simulation_id",
"configNotFound": "ไม่พบค่าตั้งจำลอง กรุณาเรียก /prepare ก่อน",
"configFileNotFound": "ไม่พบไฟล์ค่าตั้ง กรุณาเรียก /prepare ก่อน",
"unknownScript": "ไม่ทราบสคริปต์: {name} ที่มี: {allowed}",
"scriptFileNotFound": "ไม่พบไฟล์สคริปต์: {name}",
"requireGraphId": "กรุณาระบุ graph_id",
"noMatchingEntities": "ไม่พบเอนทิตีที่ตรงกัน",
"maxRoundsPositive": "max_rounds ต้องเป็นจำนวนเต็มบวก",
"maxRoundsInvalid": "max_rounds ต้องเป็นจำนวนเต็มที่ถูกต้อง",
"invalidPlatform": "ประเภทแพลตฟอร์มไม่ถูกต้อง: {platform} ตัวเลือก: twitter/reddit/parallel",
"simRunningForceHint": "การจำลองกำลังทำงาน หยุดก่อนผ่าน /stop หรือใช้ force=true เพื่อเริ่มใหม่",
"simNotReady": "การจำลองยังไม่พร้อม สถานะปัจจุบัน: {status} กรุณาเรียก /prepare ก่อน",
"graphIdRequiredForMemory": "การอัปเดตความจำกราฟต้องมี graph_id ที่ถูกต้อง ตรวจสอบให้แน่ใจว่ากราฟถูกสร้างแล้ว",
"dbNotExist": "ฐานข้อมูลไม่มีอยู่ การจำลองอาจยังไม่ได้รัน",
"requireMessage": "กรุณาระบุข้อความ",
"missingGraphId": "ไม่พบ graph ID",
"missingGraphIdEnsure": "ไม่พบ graph ID กรุณาตรวจสอบให้แน่ใจว่ากราฟถูกสร้างแล้ว",
"missingSimRequirement": "ไม่พบคำอธิบายความต้องการจำลอง",
"reportAlreadyExists": "มีรายงานอยู่แล้ว",
"reportGenerateStarted": "เริ่มงานสร้างรายงานแล้ว สอบถามความคืบหน้าผ่าน /api/report/generate/status",
"reportGenerated": "สร้างรายงานแล้ว",
"reportNotFound": "ไม่พบรายงาน: {id}",
"noReportForSim": "ไม่พบรายงานสำหรับการจำลองนี้: {id}",
"reportDeleted": "ลบรายงานแล้ว: {id}",
"reportGenerateFailed": "สร้างรายงานล้มเหลว",
"sectionNotFound": "ไม่พบส่วน: section_{index}.md",
"reportProgressNotAvail": "ไม่พบรายงานหรือไม่สามารถดูความคืบหน้า: {id}",
"requireAgentId": "กรุณาระบุ agent_id",
"requirePrompt": "กรุณาระบุ prompt (คำถามสัมภาษณ์)",
"invalidInterviewPlatform": "แพลตฟอร์มต้องเป็น 'twitter' หรือ 'reddit'",
"envNotRunning": "สภาพแวดล้อมจำลองไม่ได้ทำงานหรือถูกปิด ตรวจสอบให้แน่ใจว่าการจำลองเสร็จสมบูรณ์และอยู่ในโหมดรอคำสั่ง",
"interviewTimeout": "หมดเวลาตอบสัมภาษณ์: {error}",
"requireInterviews": "กรุณาระบุ interviews (รายการสัมภาษณ์)",
"interviewListMissingAgentId": "รายการสัมภาษณ์ที่ {index} ขาด agent_id",
"interviewListMissingPrompt": "รายการสัมภาษณ์ที่ {index} ขาด prompt",
"interviewListInvalidPlatform": "รายการสัมภาษณ์ที่ {index} แพลตฟอร์มต้องเป็น 'twitter' หรือ 'reddit'",
"batchInterviewTimeout": "หมดเวลาตอบสัมภาษณ์แบบชุด: {error}",
"globalInterviewTimeout": "หมดเวลาตอบสัมภาษณ์ทั้งหมด: {error}",
"envRunning": "สภาพแวดล้อมกำลังทำงานและพร้อมรับคำสั่งสัมภาษณ์",
"envNotRunningShort": "สภาพแวดล้อมไม่ได้ทำงานหรือถูกปิด",
"requireGraphIdAndQuery": "กรุณาระบุ graph_id และ query",
"initReportAgent": "กำลังเริ่มต้น Report Agent..."
},
"progress": {
"initGraphService": "กำลังเริ่มต้นบริการสร้างกราฟ...",
"textChunking": "กำลังแบ่งข้อความเป็นส่วนย่อย...",
"creatingZepGraph": "กำลังสร้างกราฟ Zep...",
"settingOntology": "กำลังตั้งค่าคำจำกัดความออนโทโลยี...",
"addingChunks": "กำลังเพิ่ม {count} ส่วนข้อความ...",
"waitingZepProcess": "รอ Zep ประมวลผลข้อมูล...",
"fetchingGraphData": "กำลังดึงข้อมูลกราฟ...",
"graphBuildComplete": "สร้างกราฟเสร็จสมบูรณ์",
"buildFailed": "สร้างล้มเหลว: {error}",
"startBuildingGraph": "กำลังเริ่มสร้างกราฟ...",
"graphCreated": "สร้างกราฟแล้ว: {graphId}",
"ontologySet": "ตั้งค่าออนโทโลยีแล้ว",
"textSplit": "แบ่งข้อความเป็น {count} ส่วน",
"fetchingGraphInfo": "กำลังดึงข้อมูลกราฟ...",
"sendingBatch": "กำลังส่งชุด {current}/{total} ({chunks} ส่วน)...",
"batchFailed": "ชุด {batch} ล้มเหลว: {error}",
"noEpisodesWait": "ไม่มีตอนให้รอ",
"waitingEpisodes": "รอ {count} ส่วนข้อความประมวลผล...",
"episodesTimeout": "บางส่วนหมดเวลา เสร็จ {completed}/{total}",
"zepProcessing": "Zep กำลังประมวลผล... เสร็จ {completed}/{total} รอ {pending} ({elapsed}วินาที)",
"processingComplete": "ประมวลผลเสร็จสมบูรณ์: {completed}/{total}",
"taskComplete": "งานเสร็จสมบูรณ์",
"taskFailed": "งานล้มเหลว",
"startPreparingEnv": "กำลังเตรียมสภาพแวดล้อมจำลอง...",
"connectingZepGraph": "กำลังเชื่อมต่อกราฟ Zep...",
"readingNodeData": "กำลังอ่านข้อมูลโหนด...",
"readingComplete": "เสร็จ พบ {count} เอนทิตี",
"startGenerating": "กำลังเริ่มสร้าง...",
"analyzingRequirements": "กำลังวิเคราะห์ความต้องการจำลอง...",
"generatingOutline": "กำลังสร้างเค้าโครงรายงาน...",
"parsingOutline": "กำลังวิเคราะห์โครงสร้างเค้าโครง...",
"outlinePlanComplete": "วางแผนเค้าโครงเสร็จสมบูรณ์",
"deepSearchAndWrite": "ค้นหาเชิงลึกและเขียน ({current}/{max})",
"initReport": "กำลังเริ่มต้นรายงาน...",
"startPlanningOutline": "กำลังวางแผนเค้าโครงรายงาน...",
"outlineDone": "เค้าโครงเสร็จสมบูรณ์ {count} ส่วน",
"generatingSection": "กำลังสร้างส่วน: {title} ({current}/{total})",
"sectionDone": "ส่วน {title} เสร็จสมบูรณ์",
"assemblingReport": "กำลังประกอบรายงานฉบับเต็ม...",
"reportComplete": "สร้างรายงานเสร็จสมบูรณ์",
"reportFailed": "สร้างรายงานล้มเหลว: {error}",
"savingProfiles": "กำลังบันทึกไฟล์โปรไฟล์...",
"profilesComplete": "เสร็จ สร้าง {count} โปรไฟล์",
"callingLLMConfig": "เรียก LLM เพื่อสร้างค่าตั้ง...",
"savingConfigFiles": "กำลังบันทึกไฟล์ค่าตั้ง...",
"configComplete": "สร้างค่าตั้งเสร็จสมบูรณ์",
"generatingTimeConfig": "กำลังสร้างค่าตั้งเวลา...",
"generatingEventConfig": "กำลังสร้างค่าตั้งเหตุการณ์และหัวข้อยอดนิยม...",
"generatingAgentConfig": "กำลังสร้างค่าตั้ง Agent ({start}-{end}/{total})...",
"generatingPlatformConfig": "กำลังสร้างค่าตั้งแพลตฟอร์ม...",
"zepSearchQuery": "ข้อมูลทั้งหมด กิจกรรม เหตุการณ์ ความสัมพันธ์ และภูมิหลังเกี่ยวกับ {name}",
"timeConfigLabel": "ค่าตั้งเวลา",
"eventConfigLabel": "ค่าตั้งเหตุการณ์",
"agentConfigResult": "ค่าตั้ง Agent: สร้าง {count} รายการ",
"postAssignResult": "กำหนดโพสต์: กำหนด {count} โพสต์",
"profileGenerated": "[สร้างแล้ว] {name} ({type})",
"readingGraphEntities": "กำลังอ่านเอนทิตีกราฟ",
"generatingProfiles": "กำลังสร้างโปรไฟล์ Agent",
"generatingSimConfig": "กำลังสร้างค่าตั้งจำลอง",
"preparingScripts": "กำลังเตรียมสคริปต์"
},
"log": {
"preparingGoBack": "กำลังเตรียมกลับขั้นตอนที่ 2 กำลังปิดการจำลอง...",
"closingSimEnv": "กำลังปิดสภาพแวดล้อมจำลอง...",
"simEnvClosed": "✓ ปิดสภาพแวดล้อมจำลองแล้ว",
"closeSimEnvFailed": "ปิดสภาพแวดล้อมจำลองล้มเหลว กำลังพยายามบังคับหยุด...",
"simForceStopSuccess": "✓ บังคับหยุดการจำลองแล้ว",
"forceStopFailed": "บังคับหยุดล้มเหลว: {error}",
"stoppingSimProcess": "กำลังหยุดกระบวนการจำลอง...",
"simStopped": "✓ หยุดการจำลองแล้ว",
"stopSimFailed": "หยุดการจำลองล้มเหลว: {error}",
"checkStatusFailed": "ตรวจสอบสถานะการจำลองล้มเหลว: {error}",
"enterStep4": "เข้าสู่ขั้นตอนที่ 4: สร้างรายงาน",
"loadingSimData": "กำลังโหลดข้อมูลจำลอง: {id}",
"timeConfig": "ค่าตั้งเวลา: {minutes} นาทีต่อรอบ",
"timeConfigFetchFailed": "ดึงค่าตั้งเวลาล้มเหลว ใช้ค่าเริ่มต้น: {minutes} นาที/รอบ",
"projectLoadSuccess": "โหลดโปรเจกต์สำเร็จ: {id}",
"loadSimDataFailed": "โหลดข้อมูลจำลองล้มเหลว: {error}",
"loadException": "เกิดข้อผิดพลาดในการโหลด: {error}",
"graphDataLoadSuccess": "โหลดข้อมูลกราฟสำเร็จ",
"graphLoadFailed": "โหลดกราฟล้มเหลว: {error}",
"graphRealtimeRefreshStart": "เปิดใช้การรีเฟรชกราฟแบบเรียลไทม์ (30วินาที)",
"graphRealtimeRefreshStop": "หยุดการรีเฟรชกราฟแบบเรียลไทม์แล้ว",
"simRunViewInit": "เริ่มต้น SimulationRunView",
"customRounds": "รอบจำลองกำหนดเอง: {rounds}",
"enterStep3": "เข้าสู่ขั้นตอนที่ 3: จำลอง",
"customRoundsConfig": "รอบจำลองกำหนดเอง: {rounds} รอบ",
"useAutoRounds": "ใช้รอบจำลองที่ตั้งค่าอัตโนมัติ",
"detectedSimEnvRunning": "ตรวจพบสภาพแวดล้อมจำลองที่กำลังทำงาน กำลังปิด...",
"closeSimEnvFailedWithError": "ปิดสภาพแวดล้อมจำลองล้มเหลว: {error}",
"closeSimEnvException": "เกิดข้อผิดพลาดในการปิดสภาพแวดล้อมจำลอง: {error}",
"detectedSimRunning": "ตรวจพบการจำลองกำลังทำงาน กำลังหยุด...",
"forceStopSimFailed": "บังคับหยุดการจำลองล้มเหลว: {error}",
"forceStopSimException": "เกิดข้อผิดพลาดในการบังคับหยุดการจำลอง: {error}",
"simViewInit": "เริ่มต้น SimulationView",
"errorMissingSimId": "ข้อผิดพลาด: ไม่พบ simulationId",
"simInstanceCreated": "สร้างอินสแตนซ์การจำลองแล้ว: {id}",
"preparingSimEnv": "กำลังเตรียมสภาพแวดล้อมจำลอง...",
"detectedExistingPrep": "ตรวจพบการเตรียมการที่มีอยู่ ใช้โดยตรง",
"prepareTaskStarted": "เริ่มงานเตรียมการแล้ว",
"prepareTaskId": " └─ รหัสงาน: {taskId}",
"zepEntitiesFound": "พบ {count} เอนทิตีจากกราฟ Zep",
"entityTypes": " └─ ประเภทเอนทิตี: {types}",
"startPollingProgress": "กำลังตรวจสอบความคืบหน้าการเตรียมการ...",
"prepareFailed": "เตรียมการล้มเหลว: {error}",
"prepareException": "เกิดข้อผิดพลาดในการเตรียมการ: {error}",
"prepareComplete": "✓ เตรียมการเสร็จสมบูรณ์",
"prepareFailedWithError": "✗ เตรียมการล้มเหลว: {error}",
"startGeneratingConfig": "กำลังสร้างค่าตั้งจำลองสองแพลตฟอร์ม...",
"generatingAgentProfileConfig": "กำลังสร้างค่าตั้งบุคลิกภาพ Agent...",
"generatingLLMConfig": "เรียก LLM เพื่อสร้างพารามิเตอร์ค่าตั้งจำลอง...",
"configComplete": "✓ สร้างค่าตั้งจำลองแล้ว",
"configSummaryAgents": " ├─ Agent: {count}",
"configSummaryHours": " ├─ ระยะเวลา: {hours} ชั่วโมง",
"configSummaryPosts": " ├─ โพสต์เริ่มต้น: {count}",
"configSummaryTopics": " ├─ หัวข้อยอดนิยม: {count}",
"configSummaryPlatforms": " └─ แพลตฟอร์ม: Twitter {twitter}, Reddit {reddit}",
"timeConfigDetail": "ค่าตั้งเวลา: {minutes} นาที/รอบ, รวม {rounds} รอบ",
"narrativeDirection": "ทิศทางเรื่องราว: {direction}",
"envSetupComplete": "✓ ตั้งค่าสภาพแวดล้อมเสร็จสมบูรณ์ พร้อมจำลอง",
"startSimCustomRounds": "เริ่มการจำลอง รอบกำหนดเอง: {rounds}",
"startSimAutoRounds": "เริ่มการจำลอง รอบอัตโนมัติ: {rounds}",
"startGeneratingAgentProfiles": "กำลังสร้างบุคลิกภาพ Agent...",
"agentProfile": "→ บุคลิกภาพ Agent {current}/{total}: {name} ({profession})",
"allProfilesComplete": "✓ สร้างบุคลิกภาพ Agent ทั้งหมด {count} รายการแล้ว",
"loadingExistingConfig": "กำลังโหลดข้อมูลค่าตั้งที่มีอยู่...",
"loadedAgentProfiles": "โหลด {count} บุคลิกภาพ Agent",
"configLoadSuccess": "✓ โหลดค่าตั้งจำลองแล้ว",
"configSummaryPostsAlt": " └─ โพสต์เริ่มต้น: {count}",
"configGenerating": "กำลังสร้างค่าตั้ง กำลังตรวจสอบ...",
"loadConfigFailed": "โหลดค่าตั้งล้มเหลว: {error}",
"step2Init": "เริ่มต้นสภาพแวดล้อมขั้นตอนที่ 2",
"step3Init": "เริ่มต้นการจำลองขั้นตอนที่ 3",
"startingDualSim": "กำลังเริ่มจำลองคู่ขนานสองแพลตฟอร์ม...",
"setMaxRounds": "ตั้งรอบจำลองสูงสุด: {rounds}",
"graphMemoryUpdateEnabled": "เปิดใช้งานการอัปเดตความจำกราฟแบบไดนามิก",
"oldSimCleared": "✓ ล้างบันทึกการจำลองเก่าแล้ว กำลังเริ่มการจำลองใหม่",
"engineStarted": "✓ เริ่มเครื่องมือจำลองสำเร็จ",
"startFailed": "✗ เริ่มล้มเหลว: {error}",
"startException": "✗ เกิดข้อผิดพลาดในการเริ่ม: {error}",
"stoppingSim": "กำลังหยุดการจำลอง...",
"simStoppedSuccess": "✓ หยุดการจำลองแล้ว",
"stopFailed": "หยุดล้มเหลว: {error}",
"stopException": "เกิดข้อผิดพลาดในการหยุด: {error}",
"allPlatformsCompleted": "✓ การจำลองทุกแพลตฟอร์มสิ้นสุดแล้ว",
"simCompleted": "✓ การจำลองเสร็จสมบูรณ์",
"reportRequestSent": "ส่งคำขอสร้างรายงานแล้ว กรุณารอสักครู่...",
"startingReportGen": "กำลังเริ่มสร้างรายงาน...",
"reportGenTaskStarted": "✓ เริ่มงานสร้างรายงานแล้ว: {reportId}",
"reportGenFailed": "✗ เริ่มสร้างรายงานล้มเหลว: {error}",
"reportGenException": "✗ เกิดข้อผิดพลาดในการสร้างรายงาน: {error}",
"step5Init": "เริ่มต้นการโต้ตอบเชิงลึกขั้นตอนที่ 5",
"selectChatTarget": "เลือกเป้าหมายสนทนา: {name}",
"sendFailed": "ส่งล้มเหลว: {error}",
"sendToReportAgent": "ส่งถึง Report Agent: {message}...",
"reportAgentReplied": "Report Agent ตอบแล้ว",
"sendToAgent": "ส่งถึง {name}: {message}...",
"agentReplied": "{name} ตอบแล้ว",
"sendSurvey": "กำลังส่งแบบสำรวจถึง {count} เป้าหมาย...",
"receivedReplies": "รับ {count} คำตอบ",
"surveySendFailed": "ส่งแบบสำรวจล้มเหลว: {error}",
"loadReportData": "กำลังโหลดข้อมูลรายงาน: {id}",
"loadReportFailed": "โหลดรายงานล้มเหลว: {error}",
"reportDataLoaded": "โหลดข้อมูลรายงานแล้ว",
"loadReportLogFailed": "โหลดบันทึกรายงานล้มเหลว: {error}",
"loadedProfiles": "โหลด {count} บุคคลที่จำลอง",
"loadProfilesFailed": "โหลดบุคคลที่จำลองล้มเหลว: {error}",
"interactionViewInit": "เริ่มต้น InteractionView",
"reportViewInit": "เริ่มต้น ReportView",
"getReportInfoFailed": "ดึงข้อมูลรายงานล้มเหลว: {error}",
"enterStep": "เข้าสู่ขั้นตอนที่ {step}: {name}",
"returnToStep": "กลับสู่ขั้นตอนที่ {step}: {name}",
"customSimRounds": "รอบจำลองกำหนดเอง: {rounds} รอบ"
},
"report": {
"taskStarted": "เริ่มงานสร้างรายงานแล้ว",
"planningStart": "กำลังเริ่มวางแผนเค้าโครงรายงาน",
"fetchSimContext": "กำลังดึงบริบทการจำลอง",
"planningComplete": "วางแผนเค้าโครงเสร็จสมบูรณ์",
"sectionStart": "กำลังเริ่มสร้างส่วน: {title}",
"reactThought": "ReACT รอบ {iteration} กำลังคิด",
"toolCall": "เรียกเครื่องมือ: {toolName}",
"toolResult": "เครื่องมือ {toolName} คืนผลลัพธ์",
"llmResponse": "คำตอบ LLM (เรียกเครื่องมือ: {hasToolCalls}, คำตอบสุดท้าย: {hasFinalAnswer})",
"sectionContentDone": "สร้างเนื้อหาส่วน {title} เสร็จสมบูรณ์",
"sectionComplete": "สร้างส่วน {title} เสร็จสมบูรณ์",
"reportComplete": "สร้างรายงานเสร็จสมบูรณ์",
"errorOccurred": "เกิดข้อผิดพลาด: {error}",
"agentInitDone": "เริ่มต้น ReportAgent แล้ว: graph_id={graphId}, simulation_id={simulationId}",
"executingTool": "กำลังเรียกใช้เครื่องมือ: {toolName}, พารามิเตอร์: {params}",
"toolExecFailed": "เรียกใช้เครื่องมือล้มเหลว: {toolName}, ข้อผิดพลาด: {error}",
"startPlanningOutline": "กำลังเริ่มวางแผนเค้าโครงรายงาน...",
"outlinePlanDone": "วางแผนเค้าโครงเสร็จสมบูรณ์: {count} ส่วน",
"outlinePlanFailed": "วางแผนเค้าโครงล้มเหลว: {error}",
"reactGenerateSection": "ReACT กำลังสร้างส่วน: {title}",
"sectionIterNone": "ส่วน {title} รอบ {iteration}: LLM คืนค่า None",
"sectionConflict": "ส่วน {title} รอบ {iteration}: LLM ส่งออกทั้งเรียกเครื่องมือและคำตอบสุดท้าย (ขัดแย้ง #{conflictCount})",
"sectionConflictDowngrade": "ส่วน {title}: ขัดแย้ง {conflictCount} รอบติดต่อกัน ลดระดับเป็นตัดและเรียกเครื่องมือแรก",
"sectionGenDone": "สร้างส่วน {title} เสร็จสมบูรณ์ (เรียกเครื่องมือ: {count})",
"multiToolOnlyFirst": "LLM พยายามเรียกเครื่องมือ {total} ตัว เรียกเฉพาะตัวแรก: {toolName}",
"sectionNoPrefix": "ส่วน {title} ขาดคำนำหน้า 'Final Answer:' ใช้ผลลัพธ์ LLM เป็นเนื้อหาสุดท้าย (เรียกเครื่องมือ: {count})",
"sectionMaxIter": "ส่วน {title} ถึงจำนวนรอบสูงสุด บังคับสร้าง",
"sectionForceFailed": "ส่วน {title} บังคับสร้าง LLM คืนค่า None ใช้ข้อความข้อผิดพลาดเริ่มต้น",
"sectionGenFailedContent": "(ส่วนนี้สร้างไม่สำเร็จ: LLM คืนค่าว่าง กรุณาลองใหม่ภายหลัง)",
"outlineSavedToFile": "บันทึกเค้าโครงลงไฟล์: {reportId}/outline.json",
"sectionSaved": "บันทึกส่วนแล้ว: {reportId}/section_{sectionNum}.md",
"reportGenDone": "สร้างรายงานเสร็จสมบูรณ์: {reportId}",
"reportGenFailed": "สร้างรายงานล้มเหลว: {error}",
"agentChat": "สนทนา Report Agent: {message}...",
"fetchReportFailed": "ดึงเนื้อหารายงานล้มเหลว: {error}",
"outlineSaved": "บันทึกเค้าโครงแล้ว: {reportId}",
"sectionFileSaved": "บันทึกส่วนแล้ว: {reportId}/{fileSuffix}",
"fullReportAssembled": "ประกอบรายงานฉบับเต็มแล้ว: {reportId}",
"reportSaved": "บันทึกรายงานแล้ว: {reportId}",
"reportFolderDeleted": "ลบโฟลเดอร์รายงานแล้ว: {reportId}",
"redirectToQuickSearch": "search_graph เปลี่ยนเส้นทางไป quick_search",
"redirectToInsightForge": "get_simulation_context เปลี่ยนเส้นทางไป insight_forge"
},
"console": {
"zepToolsInitialized": "เริ่มต้น ZepToolsService แล้ว",
"zepRetryAttempt": "Zep {operation} ครั้งที่ {attempt} ล้มเหลว: {error}, ลองใหม่ใน {delay} วินาที...",
"zepAllRetriesFailed": "Zep {operation} ล้มเหลวหลังลอง {retries} ครั้ง: {error}",
"graphSearch": "ค้นหากราฟ: graph_id={graphId}, query={query}...",
"graphSearchOp": "ค้นหากราฟ (graph={graphId})",
"searchComplete": "ค้นหาเสร็จ: พบ {count} ข้อเท็จจริงที่เกี่ยวข้อง",
"zepSearchApiFallback": "Zep Search API ล้มเหลว ใช้การค้นหาท้องถิ่นแทน: {error}",
"usingLocalSearch": "ใช้การค้นหาท้องถิ่น: query={query}...",
"localSearchComplete": "ค้นหาท้องถิ่นเสร็จ: พบ {count} ข้อเท็จจริงที่เกี่ยวข้อง",
"localSearchFailed": "ค้นหาท้องถิ่นล้มเหลว: {error}",
"fetchingAllNodes": "กำลังดึงโหนดทั้งหมดสำหรับกราฟ {graphId}...",
"fetchedNodes": "ดึง {count} โหนด",
"fetchingAllEdges": "กำลังดึงเส้นเชื่อมทั้งหมดสำหรับกราฟ {graphId}...",
"fetchedEdges": "ดึง {count} เส้นเชื่อม",
"fetchingNodeDetail": "กำลังดึงรายละเอียดโหนด: {uuid}...",
"fetchNodeDetailOp": "ดึงรายละเอียดโหนด (uuid={uuid}...)",
"fetchNodeDetailFailed": "ดึงรายละเอียดโหนดล้มเหลว: {error}",
"fetchingNodeEdges": "กำลังดึงเส้นเชื่อมสำหรับโหนด {uuid}...",
"foundNodeEdges": "พบ {count} เส้นเชื่อมที่เกี่ยวข้องกับโหนด",
"fetchNodeEdgesFailed": "ดึงเส้นเชื่อมโหนดล้มเหลว: {error}",
"fetchingEntitiesByType": "กำลังดึงเอนทิตีประเภท {type}...",
"foundEntitiesByType": "พบ {count} เอนทิตีประเภท {type}",
"fetchingEntitySummary": "กำลังดึงสรุปความสัมพันธ์สำหรับเอนทิตี {name}...",
"fetchingGraphStats": "กำลังดึงสถิติสำหรับกราฟ {graphId}...",
"fetchingSimContext": "กำลังดึงบริบทการจำลอง: {requirement}...",
"insightForgeStart": "InsightForge การค้นหาเชิงลึก: {query}...",
"generatedSubQueries": "สร้าง {count} คำถามย่อย",
"insightForgeComplete": "InsightForge เสร็จ: {facts} ข้อเท็จจริง, {entities} เอนทิตี, {relationships} ความสัมพันธ์",
"generateSubQueriesFailed": "สร้างคำถามย่อยล้มเหลว: {error}, ใช้ค่าเริ่มต้น",
"panoramaSearchStart": "PanoramaSearch การค้นหากว้าง: {query}...",
"panoramaSearchComplete": "PanoramaSearch เสร็จ: {active} ใช้งาน, {historical} อดีต",
"quickSearchStart": "QuickSearch การค้นหาง่าย: {query}...",
"quickSearchComplete": "QuickSearch เสร็จ: {count} ผลลัพธ์",
"interviewAgentsStart": "InterviewAgents การสัมภาษณ์เชิงลึก (API จริง): {requirement}...",
"profilesNotFound": "ไม่พบโปรไฟล์สำหรับการจำลอง {simId}",
"loadedProfiles": "โหลด {count} โปรไฟล์ Agent",
"selectedAgentsForInterview": "เลือก {count} Agent สำหรับสัมภาษณ์: {indices}",
"generatedInterviewQuestions": "สร้าง {count} คำถามสัมภาษณ์",
"callingBatchInterviewApi": "เรียก API สัมภาษณ์แบบชุด (สองแพลตฟอร์ม): {count} Agent",
"interviewApiReturned": "API สัมภาษณ์คืนผลลัพธ์: {count} ผลลัพธ์, สำเร็จ={success}",
"interviewApiReturnedFailure": "API สัมภาษณ์คืนค่าล้มเหลว: {error}",
"interviewApiCallFailed": "เรียก API สัมภาษณ์ล้มเหลว (สภาพแวดล้อมไม่ทำงาน?): {error}",
"interviewApiCallException": "เกิดข้อผิดพลาดในการเรียก API สัมภาษณ์: {error}",
"interviewAgentsComplete": "InterviewAgents เสร็จ: สัมภาษณ์ {count} Agent (สองแพลตฟอร์ม)",
"loadedRedditProfiles": "โหลด {count} โปรไฟล์จาก reddit_profiles.json",
"readRedditProfilesFailed": "อ่าน reddit_profiles.json ล้มเหลว: {error}",
"loadedTwitterProfiles": "โหลด {count} โปรไฟล์จาก twitter_profiles.csv",
"readTwitterProfilesFailed": "อ่าน twitter_profiles.csv ล้มเหลว: {error}",
"llmSelectAgentFailed": "LLM เลือก Agent ล้มเหลว ใช้การเลือกเริ่มต้น: {error}",
"generateInterviewQuestionsFailed": "สร้างคำถามสัมภาษณ์ล้มเหลว: {error}",
"generateInterviewSummaryFailed": "สร้างสรุปสัมภาษณ์ล้มเหลว: {error}"
}
}