diff --git a/locales/languages.json b/locales/languages.json index 81732ce..e791ff1 100644 --- a/locales/languages.json +++ b/locales/languages.json @@ -26,5 +26,9 @@ "de": { "label": "Deutsch", "llmInstruction": "Bitte antworten Sie auf Deutsch." + }, + "th": { + "label": "ไทย", + "llmInstruction": "กรุณาตอบเป็นภาษาไทย" } } diff --git a/locales/th.json b/locales/th.json new file mode 100644 index 0000000..fd333fb --- /dev/null +++ b/locales/th.json @@ -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}" + } +} \ No newline at end of file